version 1.1, 2012/02/21 17:26:12
|
version 1.1.1.4, 2016/11/02 10:09:10
|
Line 23
|
Line 23
|
#ifndef _ZEBRA_SOCKUNION_H |
#ifndef _ZEBRA_SOCKUNION_H |
#define _ZEBRA_SOCKUNION_H |
#define _ZEBRA_SOCKUNION_H |
|
|
|
#include "if.h" |
|
|
#if 0 |
#if 0 |
union sockunion { |
union sockunion { |
struct sockinet { |
struct sockinet { |
Line 78 enum connect_result
|
Line 80 enum connect_result
|
#define SET_IN6_LINKLOCAL_IFINDEX(a, i) |
#define SET_IN6_LINKLOCAL_IFINDEX(a, i) |
#endif /* KAME */ |
#endif /* KAME */ |
|
|
/* shortcut macro to specify address field of struct sockaddr */ |
|
#define sock2ip(X) (((struct sockaddr_in *)(X))->sin_addr.s_addr) |
|
#ifdef HAVE_IPV6 |
|
#define sock2ip6(X) (((struct sockaddr_in6 *)(X))->sin6_addr.s6_addr) |
|
#endif /* HAVE_IPV6 */ |
|
|
|
#define sockunion_family(X) (X)->sa.sa_family |
#define sockunion_family(X) (X)->sa.sa_family |
|
|
|
#define sockunion2ip(X) (X)->sin.sin_addr.s_addr |
|
|
/* Prototypes. */ |
/* Prototypes. */ |
extern int str2sockunion (const char *, union sockunion *); |
extern int str2sockunion (const char *, union sockunion *); |
extern const char *sockunion2str (union sockunion *, char *, size_t); | extern const char *sockunion2str (const union sockunion *, char *, size_t); |
extern int sockunion_cmp (union sockunion *, union sockunion *); | extern int sockunion_cmp (const union sockunion *, const union sockunion *); |
extern int sockunion_same (union sockunion *, union sockunion *); | extern int sockunion_same (const union sockunion *, const union sockunion *); |
| extern unsigned int sockunion_hash (const union sockunion *); |
|
|
extern char *sockunion_su2str (union sockunion *su); | extern size_t family2addrsize(int family); |
| extern size_t sockunion_get_addrlen(const union sockunion *); |
| extern const u_char *sockunion_get_addr(const union sockunion *); |
| extern void sockunion_set(union sockunion *, int family, const u_char *addr, size_t bytes); |
| |
extern union sockunion *sockunion_str2su (const char *str); |
extern union sockunion *sockunion_str2su (const char *str); |
extern struct in_addr sockunion_get_in_addr (union sockunion *su); |
|
extern int sockunion_accept (int sock, union sockunion *); |
extern int sockunion_accept (int sock, union sockunion *); |
extern int sockunion_stream_socket (union sockunion *); |
extern int sockunion_stream_socket (union sockunion *); |
extern int sockopt_reuseaddr (int); |
extern int sockopt_reuseaddr (int); |
extern int sockopt_reuseport (int); |
extern int sockopt_reuseport (int); |
|
extern int sockopt_v6only (int family, int sock); |
extern int sockunion_bind (int sock, union sockunion *, |
extern int sockunion_bind (int sock, union sockunion *, |
unsigned short, union sockunion *); |
unsigned short, union sockunion *); |
extern int sockopt_ttl (int family, int sock, int ttl); |
extern int sockopt_ttl (int family, int sock, int ttl); |
extern int sockopt_minttl (int family, int sock, int minttl); |
extern int sockopt_minttl (int family, int sock, int minttl); |
extern int sockopt_cork (int sock, int onoff); |
extern int sockopt_cork (int sock, int onoff); |
extern int sockunion_socket (union sockunion *su); | extern int sockunion_socket (const union sockunion *su); |
extern const char *inet_sutop (union sockunion *su, char *str); | extern const char *inet_sutop (const union sockunion *su, char *str); |
extern enum connect_result sockunion_connect (int fd, union sockunion *su, | extern enum connect_result sockunion_connect (int fd, const union sockunion *su, |
unsigned short port, |
unsigned short port, |
unsigned int); | ifindex_t); |
extern union sockunion *sockunion_getsockname (int); |
extern union sockunion *sockunion_getsockname (int); |
extern union sockunion *sockunion_getpeername (int); |
extern union sockunion *sockunion_getpeername (int); |
extern union sockunion *sockunion_dup (union sockunion *); | extern union sockunion *sockunion_dup (const union sockunion *); |
extern void sockunion_free (union sockunion *); |
extern void sockunion_free (union sockunion *); |
|
|
#ifndef HAVE_INET_NTOP |
#ifndef HAVE_INET_NTOP |