* Trim a mask in a sockaddr */
| 207 | * Trim a mask in a sockaddr |
| 208 | */ |
| 209 | static void |
| 210 | in_socktrim(struct sockaddr_in *ap) |
| 211 | { |
| 212 | char *cplim = (char *) &ap->sin_addr; |
| 213 | char *cp = (char *) (&ap->sin_addr + 1); |
| 214 | |
| 215 | ap->sin_len = 0; |
| 216 | while (--cp >= cplim) |
| 217 | if (*cp) { |
| 218 | (ap)->sin_len = cp - (char *) (ap) + 1; |
| 219 | break; |
| 220 | } |
| 221 | } |
| 222 | |
| 223 | /* |
| 224 | * Generic internet control operations (ioctl's). |