Changes in uspace/lib/net/tl/tl_common.c [7c8267b:14f1db0] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/net/tl/tl_common.c
r7c8267b r14f1db0 157 157 } 158 158 159 int tl_set_address_port(struct sockaddr * addr, int addrlen, uint16_t port) 160 { 159 int tl_set_address_port(struct sockaddr * addr, int addrlen, uint16_t port){ 161 160 struct sockaddr_in * address_in; 162 161 struct sockaddr_in6 * address_in6; 163 162 size_t length; 164 163 165 if (addrlen < 0)166 return EINVAL; 167 164 if(addrlen < 0){ 165 return EINVAL; 166 } 168 167 length = (size_t) addrlen; 169 if (length < sizeof(struct sockaddr)) 170 return EINVAL; 171 172 switch (addr->sa_family) { 173 case AF_INET: 174 if (length != sizeof(struct sockaddr_in)) 175 return EINVAL; 176 address_in = (struct sockaddr_in *) addr; 177 address_in->sin_port = htons(port); 178 return EOK; 179 case AF_INET6: 180 if (length != sizeof(struct sockaddr_in6)) 181 return EINVAL; 182 address_in6 = (struct sockaddr_in6 *) addr; 183 address_in6->sin6_port = htons(port); 184 return EOK; 185 default: 186 return EAFNOSUPPORT; 168 if(length < sizeof(struct sockaddr)){ 169 return EINVAL; 170 } 171 switch(addr->sa_family){ 172 case AF_INET: 173 if(length != sizeof(struct sockaddr_in)){ 174 return EINVAL; 175 } 176 address_in = (struct sockaddr_in *) addr; 177 address_in->sin_port = htons(port); 178 return EOK; 179 case AF_INET6: 180 if(length != sizeof(struct sockaddr_in6)){ 181 return EINVAL; 182 } 183 address_in6 = (struct sockaddr_in6 *) addr; 184 address_in6->sin6_port = htons(port); 185 return EOK; 186 default: 187 return EAFNOSUPPORT; 187 188 } 188 189 }
Note:
See TracChangeset
for help on using the changeset viewer.