--- embedaddon/quagga/lib/sockunion.h 2013/07/21 23:54:39 1.1.1.3 +++ embedaddon/quagga/lib/sockunion.h 2016/11/02 10:09:10 1.1.1.4 @@ -23,6 +23,8 @@ #ifndef _ZEBRA_SOCKUNION_H #define _ZEBRA_SOCKUNION_H +#include "if.h" + #if 0 union sockunion { struct sockinet { @@ -84,10 +86,16 @@ enum connect_result /* Prototypes. */ extern int str2sockunion (const char *, union sockunion *); -extern const char *sockunion2str (union sockunion *, char *, size_t); -extern int sockunion_cmp (union sockunion *, union sockunion *); -extern int sockunion_same (union sockunion *, union sockunion *); +extern const char *sockunion2str (const union sockunion *, char *, size_t); +extern int sockunion_cmp (const union sockunion *, const union sockunion *); +extern int sockunion_same (const union sockunion *, const union sockunion *); +extern unsigned int sockunion_hash (const union sockunion *); +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 int sockunion_accept (int sock, union sockunion *); extern int sockunion_stream_socket (union sockunion *); @@ -99,14 +107,14 @@ extern int sockunion_bind (int sock, union sockunion * extern int sockopt_ttl (int family, int sock, int ttl); extern int sockopt_minttl (int family, int sock, int minttl); extern int sockopt_cork (int sock, int onoff); -extern int sockunion_socket (union sockunion *su); -extern const char *inet_sutop (union sockunion *su, char *str); -extern enum connect_result sockunion_connect (int fd, union sockunion *su, +extern int sockunion_socket (const union sockunion *su); +extern const char *inet_sutop (const union sockunion *su, char *str); +extern enum connect_result sockunion_connect (int fd, const union sockunion *su, unsigned short port, - unsigned int); + ifindex_t); extern union sockunion *sockunion_getsockname (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 *); #ifndef HAVE_INET_NTOP