blob: d5023a433532d10e0ccf7161e980d425df8d8dc4 (
plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#ifndef OPTIONS_H
#define OPTIONS_H 1
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#ifndef WIN32
#include <pwd.h>
#include <grp.h>
#endif
#ifdef HAVE_SELINUX
#include <selinux/selinux.h>
#endif
#include "md5.h"
#include "pconfig.h"
struct options {
/** user defined magic value (prevent Cisco WSA/IronPort fingerprint scan) */
uint32_t magic;
/** proxy or forwarder? */
int mode;
/** Proxy's internet address */
char *given_proxy_hostname;
uint32_t given_proxy_ip;
/** Port the client listens on */
uint32_t tcp_listen_port;
/** restrict Forward/Proxy destination internet address */
int restrict_dst_ip;
char *given_dst_hostname;
uint32_t given_dst_ip;
/** restrict Forward/Proxy destination port */
int restrict_dst_port;
uint32_t given_dst_port;
/** Default maximum number of tunnels to support at once */
uint32_t max_tunnels;
/** Default log level */
int log_level;
#ifdef HAVE_PCAP
/** Non zero value if user wants packet capturing */
int pcap;
/** Device to capture packets from */
char *pcap_device;
#endif
/** Usually stdout, but can be altered by the user */
char *log_path;
FILE *log_file;
/** Print more detailed traffic statistics if non zero value */
int print_stats;
/** Password (must be the same on proxy and client for authentica tion to succeed) */
char *password;
/** MD5 digest of challenge+password */
md5_byte_t password_digest[kMD5_digest_size];
/** use UDP instead of ICMP */
int udp;
/** unpriviledged mode */
int unprivileged;
#ifndef WIN32
/** run as daemon if non zero value */
int daemonize;
/** PIDFILE if running as daemon */
char *pid_path;
FILE *pid_file;
/** log to syslog if non zero value */
int use_syslog;
/** UID of the running process */
uid_t uid;
/** GID of the running process */
gid_t gid;
/** CHROOT dir */
int chroot;
char *root_dir;
#endif
#ifdef HAVE_SELINUX
/** Non zero value if uer wants SeLinux */
int selinux;
/** SeLinux context name */
char *selinux_context;
#endif
};
extern struct options opts;
void print_usage(const char *arg0);
int parse_options(int argc, char **argv);
#endif
|