|
|
|
@ -63,8 +63,8 @@ struct socket_family {
|
|
|
|
|
unsigned int (*hash)(const sockaddr_t *);
|
|
|
|
|
int (*eq)(const sockaddr_t *, const sockaddr_t *);
|
|
|
|
|
int (*addr_parse)(sockaddr_t *, const char *);
|
|
|
|
|
int (*addr_print)(const sockaddr_t *, char *, size_t);
|
|
|
|
|
int (*addr_print_p)(const sockaddr_t *, char *, size_t);
|
|
|
|
|
bool (*addr_print)(const sockaddr_t *, char *, size_t);
|
|
|
|
|
bool (*addr_print_p)(const sockaddr_t *, char *, size_t);
|
|
|
|
|
int (*is_specified)(const sockaddr_t *);
|
|
|
|
|
int (*sockaddr2endpoint)(endpoint_t *, const void *);
|
|
|
|
|
int (*endpoint2sockaddr)(void *, const endpoint_t *);
|
|
|
|
@ -117,10 +117,10 @@ extern socktype_t *socktype_udp;
|
|
|
|
|
#include "auxlib.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INLINE int sockaddr_print(const sockaddr_t *a, char *buf, size_t len) {
|
|
|
|
|
INLINE bool sockaddr_print(const sockaddr_t *a, char *buf, size_t len) {
|
|
|
|
|
if (!a->family) {
|
|
|
|
|
buf[0] = '\0';
|
|
|
|
|
return 0;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return a->family->addr_print(a, buf, len);
|
|
|
|
|
}
|
|
|
|
@ -137,15 +137,15 @@ INLINE int sockaddr_print_gstring(GString *s, const sockaddr_t *a) {
|
|
|
|
|
if (!a->family)
|
|
|
|
|
return 0;
|
|
|
|
|
char buf[THREAD_BUF_SIZE];
|
|
|
|
|
if (sockaddr_print(a, buf, THREAD_BUF_SIZE))
|
|
|
|
|
if (!sockaddr_print(a, buf, THREAD_BUF_SIZE))
|
|
|
|
|
return -1;
|
|
|
|
|
g_string_append(s, buf);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
INLINE int sockaddr_print_p(const sockaddr_t *a, char *buf, size_t len) {
|
|
|
|
|
INLINE bool sockaddr_print_p(const sockaddr_t *a, char *buf, size_t len) {
|
|
|
|
|
if (!a->family) {
|
|
|
|
|
buf[0] = '\0';
|
|
|
|
|
return 0;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return a->family->addr_print_p(a, buf, len);
|
|
|
|
|
}
|
|
|
|
@ -159,7 +159,7 @@ INLINE int sockaddr_print_port(const sockaddr_t *a, unsigned int port, char *buf
|
|
|
|
|
buf[0] = '\0';
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
if (a->family->addr_print_p(a, buf, len-6))
|
|
|
|
|
if (!a->family->addr_print_p(a, buf, len-6))
|
|
|
|
|
return -1;
|
|
|
|
|
sprintf(buf + strlen(buf), ":%u", port);
|
|
|
|
|
return 0;
|
|
|
|
|