| version 1.11.2.1, 2016/08/02 11:44:05 | version 1.17, 2024/04/15 10:42:26 | 
| Line 12  terms: | Line 12  terms: | 
 | All of the documentation and software included in the ELWIX and AITNET | All of the documentation and software included in the ELWIX and AITNET | 
 | Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> | Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> | 
 |  |  | 
| Copyright 2004 - 2016 | Copyright 2004 - 2024 | 
 | by Michael Pounov <misho@elwix.org>.  All rights reserved. | by Michael Pounov <misho@elwix.org>.  All rights reserved. | 
 |  |  | 
 | Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | 
| Line 60  typedef union { | Line 60  typedef union { | 
 | struct sockaddr_in6     sin6; | struct sockaddr_in6     sin6; | 
 | #ifndef __linux__ | #ifndef __linux__ | 
 | struct sockaddr_dl      sdl; | struct sockaddr_dl      sdl; | 
 |  | #else | 
 |  | struct sockaddr_ll      sll; | 
 | #endif | #endif | 
 | } sockaddr_t; | } sockaddr_t; | 
 | #define E_SOCKADDR_INIT { .ss = { 0 } } | #define E_SOCKADDR_INIT { .ss = { 0 } } | 
 |  | #define E_SOCKADDR_MAX  MIN(sizeof(sockaddr_t), 0xff) | 
 |  |  | 
 | typedef union { | typedef union { | 
| union { | struct in4_addr { | 
| in_addr_t      s_addr; |  | 
 | u_char          s4_addr[sizeof(in_addr_t)]; | u_char          s4_addr[sizeof(in_addr_t)]; | 
| }               in; | }               in4; | 
|  | struct in_addr  in; | 
 | struct in6_addr in6; | struct in6_addr in6; | 
 | } inaddr_t; | } inaddr_t; | 
 |  |  | 
| Line 76  typedef struct { | Line 79  typedef struct { | 
 | sockaddr_t      addr; | sockaddr_t      addr; | 
 | inaddr_t        mask; | inaddr_t        mask; | 
 | } netaddr_t; | } netaddr_t; | 
| #define E_CIDRMASK(x)   htonl((((1 << (x)) - 1) << (32 - (x))) & 0xFFFFFFFF) | #define E_CIDRMASK(x)   htonl((((unsigned int)(((unsigned long)(1 << (x))) - 1) << (32 - (x))) & 0xFFFFFFFF)) | 
 |  |  | 
 |  |  | 
 | /* | /* | 
| Line 223  sockaddr_t *e_getlinkbyether(const ether_addr_t * __re | Line 226  sockaddr_t *e_getlinkbyether(const ether_addr_t * __re | 
 | unsigned char type, const char *iface, sockaddr_t * __restrict addr); | unsigned char type, const char *iface, sockaddr_t * __restrict addr); | 
 | #define e_getlinkbymac(_mac, _addr)     e_getlinkbyether((_mac), 0, 0, NULL, (_addr)) | #define e_getlinkbymac(_mac, _addr)     e_getlinkbyether((_mac), 0, 0, NULL, (_addr)) | 
 | #endif | #endif | 
 |  |  | 
 |  | /* | 
 |  | * e_network() - Get network from address string | 
 |  | * | 
 |  | * @csAddr = Address string with CIDR mask /xx | 
 |  | * @net = Network information structure | 
 |  | * return: -1 error, 1 nothing for return or 0 ok | 
 |  | */ | 
 |  | int e_network(const char *csAddr, netaddr_t * __restrict net); | 
 |  |  | 
 |  |  | 
 | #endif | #endif |