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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <pcap.h>
#define GLOUGLOUD_USER "_glougloud"
#define PCAP_COUNT 20
#define PCAP_TO 300
#define DNSNAME_MAX 20
/* ipc */
enum imsg_type {
IMSG_SRVCONN_REQ,
IMSG_SRVCONN_RES,
IMSG_USRCONN_REQ,
IMSG_USRCONN_RES,
IMSG_USRDNS_REQ,
IMSG_USRDNS_RES
};
/* XXX restore the _req _res structs, so that we have less bytes going on
* the pipe */
struct imsg_srvconn {
struct sockaddr_in addr;
u_short ok;
u_short deco;
};
struct imsg_usrconn {
struct sockaddr_in addr;
u_short ok;
u_short deco;
};
struct imsg_usrdns_req {
struct in_addr addr;
};
struct imsg_usrdns_res {
struct in_addr addr;
char name[DNSNAME_MAX];
};
/* glougloud.c */
extern int net_socket;
/* server.c */
int server_init(int *);
/* user.c */
int user_init(int *, pcap_t *pcap);
/* util.c */
void log_init(int, int);
void log_pinvalid(const char *, ...);
void log_tmp(const char *, ...);
void log_debug(const char *, ...);
void log_info(const char *, ...);
void log_warn(const char *, ...);
void fatal(const char *, ...);
void *xmalloc(size_t);
void *xcalloc(size_t, size_t);
void fd_nonblock(int);
void droppriv();
void addrcpy(struct sockaddr_in *, struct sockaddr_in *);
void socketpair_prepare(int *);
|