version 1.9, 2015/06/25 17:53:49
|
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 - 2015 | 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 58 typedef union {
|
Line 58 typedef union {
|
struct sockaddr_un sun; |
struct sockaddr_un sun; |
struct sockaddr_in sin; |
struct sockaddr_in sin; |
struct sockaddr_in6 sin6; |
struct sockaddr_in6 sin6; |
|
#ifndef __linux__ |
struct sockaddr_dl sdl; |
struct sockaddr_dl sdl; |
|
#else |
|
struct sockaddr_ll sll; |
|
#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 74 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 84 typedef struct {
|
Line 89 typedef struct {
|
* return: -1 interrupted by signal or 0 ok |
* return: -1 interrupted by signal or 0 ok |
*/ |
*/ |
int e_usleep(unsigned int usec); |
int e_usleep(unsigned int usec); |
|
#ifndef __linux__ |
/* |
/* |
* e_link_addr() - String ethernet address to link address |
* e_link_addr() - String ethernet address to link address |
* |
* |
Line 99 int e_link_addr(const char *mac, struct sockaddr_dl *
|
Line 105 int e_link_addr(const char *mac, struct sockaddr_dl *
|
* return: =NULL error or !=NULL ethernet address, should be e_free() |
* return: =NULL error or !=NULL ethernet address, should be e_free() |
*/ |
*/ |
char *e_link_ntoa(const struct sockaddr_dl *sdl); |
char *e_link_ntoa(const struct sockaddr_dl *sdl); |
|
#endif |
/* |
/* |
* e_ether_ntoa() - Convert ethernet address to string |
* e_ether_ntoa() - Convert ethernet address to string |
* |
* |
Line 137 const char *e_n2addr(sockaddr_t * __restrict addr, ait
|
Line 144 const char *e_n2addr(sockaddr_t * __restrict addr, ait
|
* @psHost = Hostname |
* @psHost = Hostname |
* @port = Port |
* @port = Port |
* @addr = Network address structure |
* @addr = Network address structure |
* return: NULL error or !=NULL network structure | * return: 0 is error or >0 length of network structure |
*/ |
*/ |
sockaddr_t *e_gethostbyname(const char *psHost, unsigned short port, | socklen_t e_gethostbyname(const char *psHost, unsigned short port, |
sockaddr_t * __restrict addr); |
sockaddr_t * __restrict addr); |
/* |
/* |
|
* e_addrlen() - Get address length from network structure |
|
* |
|
* @addr = address |
|
* return: 0 is error or >0 length of network structure |
|
*/ |
|
socklen_t e_addrlen(const sockaddr_t *addr); |
|
/* |
* e_addrcmp() - Compare network addresses |
* e_addrcmp() - Compare network addresses |
* |
* |
* @a = 1st address |
* @a = 1st address |
Line 169 netaddr_t *e_getnet(const char *net);
|
Line 183 netaddr_t *e_getnet(const char *net);
|
* e_ether_addr() - Get or set ethernet address from interface name |
* e_ether_addr() - Get or set ethernet address from interface name |
* |
* |
* @ifname = interface name |
* @ifname = interface name |
* @addr = if addr is !=NULL then set this for new address | * @addr = if addr is !=NULL then set new ethernet address |
* return: NULL error or !=NULL get ethernet address should be e_free() | * return: NULL error or !=NULL get current ethernet address should be e_free() |
*/ |
*/ |
ether_addr_t *e_ether_addr(const char *ifname, ether_addr_t * __restrict addr); |
ether_addr_t *e_ether_addr(const char *ifname, ether_addr_t * __restrict addr); |
/* |
/* |
Line 181 ether_addr_t *e_ether_addr(const char *ifname, ether_a
|
Line 195 ether_addr_t *e_ether_addr(const char *ifname, ether_a
|
* return: -1 error or 0 ok |
* return: -1 error or 0 ok |
*/ |
*/ |
int e_get1stiface(char *szIface, int iflen); |
int e_get1stiface(char *szIface, int iflen); |
|
#ifndef __linux__ |
/* |
/* |
* e_getifacebyname() - Get interface and make network structure |
* e_getifacebyname() - Get interface and make network structure |
* |
* |
Line 210 sockaddr_t *e_getlinkbyname(const char *psHost, sockad
|
Line 225 sockaddr_t *e_getlinkbyname(const char *psHost, sockad
|
sockaddr_t *e_getlinkbyether(const ether_addr_t * __restrict mac, unsigned short idx, |
sockaddr_t *e_getlinkbyether(const ether_addr_t * __restrict mac, unsigned short idx, |
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 |
|
|
|
/* |
|
* 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 |