25 #ifndef G_SOCKADDR_H_INCLUDED
26 #define G_SOCKADDR_H_INCLUDED
31 #include <sys/types.h>
32 #include <sys/socket.h>
34 #include <netinet/in.h>
38 #define MAX_SOCKADDR_STRING 64
41 #define GSA_ADDRESS_ONLY 1
45 typedef struct _GSockAddr
73 static inline struct sockaddr *
83 static inline struct sockaddr_in *
88 return (
struct sockaddr_in *) g_sockaddr_get_sa(s);
99 static inline struct in_addr
100 g_sockaddr_inet_get_address(
GSockAddr *s)
102 return g_sockaddr_inet_get_sa(s)->sin_addr;
114 g_sockaddr_inet_set_address(
GSockAddr *s,
struct in_addr addr)
116 g_sockaddr_inet_get_sa(s)->sin_addr = addr;
120 #if SYSLOG_NG_ENABLE_IPV6
121 gboolean g_sockaddr_inet6_check(
GSockAddr *a);
122 GSockAddr *g_sockaddr_inet6_new(
const gchar *ip, guint16 port);
123 GSockAddr *g_sockaddr_inet6_new2(
struct sockaddr_in6 *sin6);
125 static inline struct sockaddr_in6 *
128 g_assert(g_sockaddr_inet6_check(s));
130 return (
struct sockaddr_in6 *) g_sockaddr_get_sa(s);
140 static inline struct in6_addr *
141 g_sockaddr_inet6_get_address(
GSockAddr *s)
143 return &g_sockaddr_inet6_get_sa(s)->sin6_addr;
155 g_sockaddr_inet6_set_address(
GSockAddr *s,
struct in6_addr *addr)
157 g_sockaddr_inet6_get_sa(s)->sin6_addr = *addr;
160 gboolean g_sockaddr_inet6_is_v4_mapped(
GSockAddr *s);
const gchar * name
Definition: debugger.c:265
GSockAddr * g_sockaddr_ref(GSockAddr *a)
Definition: gsockaddr.c:168
GSockAddr * g_sockaddr_inet_or_inet6_new(const gchar *name, guint16 port)
Definition: gsockaddr.c:505
void g_sockaddr_unref(GSockAddr *a)
Definition: gsockaddr.c:188
GSockAddr * g_sockaddr_unix_new(const gchar *name)
Definition: gsockaddr.c:568
gchar * g_sockaddr_format(GSockAddr *a, gchar *text, gulong n, gint format)
Definition: gsockaddr.c:100
void g_sockaddr_set_port(GSockAddr *a, guint16 port)
Definition: gsockaddr.c:113
gsize g_sockaddr_len(GSockAddr *a)
Definition: gsockaddr.c:676
guint16 g_sockaddr_get_port(GSockAddr *a)
Definition: gsockaddr.c:106
gboolean g_sockaddr_inet_check(GSockAddr *a)
Definition: gsockaddr.c:284
GSockAddr * g_sockaddr_inet_new(const gchar *ip, guint16 port)
Definition: gsockaddr.c:302
GSockAddr * g_sockaddr_unix_new2(struct sockaddr_un *s_un, int sunlen)
Definition: gsockaddr.c:604
GSockAddr * g_sockaddr_inet_new2(struct sockaddr_in *sin)
Definition: gsockaddr.c:335
GSockAddr * g_sockaddr_new(struct sockaddr *sa, int salen)
Definition: gsockaddr.c:56
gboolean g_sockaddr_inet_or_inet6_check(GSockAddr *a)
Definition: gsockaddr.c:516
guint8 * g_sockaddr_get_address(GSockAddr *self, guint8 *buffer, gsize buffer_size, gsize *addr_len)
Definition: gsockaddr.c:120
Definition: gsockaddr.h:46
GAtomicCounter refcnt
Definition: gsockaddr.h:47
guint32 flags
Definition: gsockaddr.h:48
GSockAddrFuncs * sa_funcs
Definition: gsockaddr.h:49
Definition: gsockaddr.h:55
void(* set_port)(GSockAddr *addr, guint16 port)
Definition: gsockaddr.h:60
guint16(* get_port)(GSockAddr *addr)
Definition: gsockaddr.h:59
GIOStatus(* bind)(int sock, GSockAddr *addr)
Definition: gsockaddr.h:57
GIOStatus(* bind_prepare)(gint sock, GSockAddr *addr)
Definition: gsockaddr.h:56
gchar *(* format)(GSockAddr *addr, gchar *text, gulong n, gint format)
Definition: gsockaddr.h:58
GString * buffer
Definition: test_smart_multi_line.c:69
int sock
Definition: test_thread_wakeup.c:93
SerializeArchive * sa
Definition: test_timestamp_serialize.c:31