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