|
|
| version 1.10.10.3, 2014/11/17 23:00:36 | version 1.10.10.6, 2014/12/11 01:51:24 |
|---|---|
| Line 95 e_link_ntoa(const struct sockaddr_dl *sdl) | Line 95 e_link_ntoa(const struct sockaddr_dl *sdl) |
| } | } |
| /* | /* |
| * e_link_addr() - String ethernet address to link address | |
| * | |
| * @mac = ethernet address | |
| * @sdl = link address | |
| * return: -1 error or 0 ok | |
| */ | |
| int | |
| e_link_addr(const char *mac, struct sockaddr_dl * __restrict sdl) | |
| { | |
| if (!mac || !sdl) | |
| return -1; | |
| if (!sdl->sdl_len) | |
| sdl->sdl_len = sizeof(struct sockaddr_dl); | |
| link_addr(mac, sdl); | |
| return 0; | |
| } | |
| /* | |
| * e_ether_ntoa() - Convert ethernet address to string | * e_ether_ntoa() - Convert ethernet address to string |
| * | * |
| * @n = ethernet address structure, like struct ether_addr | * @n = ethernet address structure, like struct ether_addr |
| Line 520 e_getifacebyname(const char *psIface, sockaddr_t * __r | Line 539 e_getifacebyname(const char *psIface, sockaddr_t * __r |
| freeifaddrs(ifa); | freeifaddrs(ifa); |
| return addr; | return addr; |
| } | |
| /* | |
| * e_getlinkbyname() - Get host ethernet address and make network structure | |
| * | |
| * @psHost = Host ethernet address | |
| * @addr = Network address structure | |
| * return: NULL error or !=NULL network structure | |
| */ | |
| sockaddr_t * | |
| e_getlinkbyname(const char *psHost, sockaddr_t * __restrict addr) | |
| { | |
| ait_val_t v; | |
| sockaddr_t *a = addr; | |
| if (!psHost || !addr) | |
| return NULL; | |
| else | |
| memset(addr, 0, sizeof(sockaddr_t)); | |
| AIT_INIT_VAL2(&v, string); | |
| if (!strchr(psHost, '.')) | |
| AIT_SET_STR(&v, ":"); | |
| AIT_SET_STRCAT(&v, psHost); | |
| addr->sdl.sdl_len = sizeof(struct sockaddr_dl); | |
| if (e_link_addr(AIT_GET_STR(&v), &addr->sdl)) | |
| a = NULL; | |
| AIT_FREE_VAL(&v); | |
| return a; | |
| } | } |