cec4673bf73e1e94ae1094ad6e53f1d2a7ae0ff8
[radsecproxy.git] / lib / radsecproxy / util.h
1 /* Copyright (c) 2007-2009, UNINETT AS */
2 /* See LICENSE for licensing information. */
3
4 #include <sys/socket.h>
5 #include <netdb.h>
6
7 #define SOCKADDR_SIZE(addr) ((addr).ss_family == AF_INET ?      \
8                              sizeof(struct sockaddr_in) :       \
9                              sizeof(struct sockaddr_in6))
10
11 #define SOCKADDRP_SIZE(addr) ((addr)->sa_family == AF_INET ?    \
12                               sizeof(struct sockaddr_in) :      \
13                               sizeof(struct sockaddr_in6))
14
15 #if defined (__cplusplus)
16 extern "C" {
17 #endif
18
19 char *stringcopy(const char *s, int len);
20 char *addr2string(struct sockaddr *addr);
21 struct sockaddr *addr_copy(struct sockaddr *in);
22 void port_set(struct sockaddr *sa, uint16_t port);
23
24 void printfchars(char *prefixfmt, char *prefix, char *charfmt, char *chars, int len);
25 void disable_DF_bit(int socket, struct addrinfo *res);
26 int bindtoaddr(struct addrinfo *addrinfo, int family, int reuse, int v6only);
27 int connecttcp(struct addrinfo *addrinfo, struct addrinfo *src, uint16_t timeout);
28
29 #if defined (__cplusplus)
30 }
31 #endif
32
33 /* Local Variables: */
34 /* c-file-style: "stroustrup" */
35 /* End: */