File: socket_address.h

package info (click to toggle)
tcpcrypt 0.3~rc1-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,292 kB
  • ctags: 1,285
  • sloc: ansic: 11,305; asm: 482; sh: 192; objc: 149; makefile: 98
file content (35 lines) | stat: -rw-r--r-- 831 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef __TCPCRYPT_SOCKET_ADDRESS_H__
#define __TCPCRYPT_SOCKET_ADDRESS_H__

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/un.h>

union sockaddr_any {
	struct sockaddr sa;
	struct sockaddr_in in;
	struct sockaddr_un un;
};

struct socket_address {
	socklen_t addr_len;
	union sockaddr_any addr;
};

#define SOCKET_ADDRESS_NULL { 0, {} }

#define SOCKET_ADDRESS_ANY { (socklen_t) sizeof(union sockaddr_any), {} }

extern int socket_address_is_null(struct socket_address *sa);

void socket_address_clear(struct socket_address *sa);

extern int socket_address_pretty(char *name, size_t size,
				 struct socket_address *sa);

extern int resolve_socket_address_local(const char *descr,
					struct socket_address *sa,
					char *error, int error_len);

#endif /* __TCPCRYPT_SOCKET_ADDRESS_H__ */