summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/acl.h2
-rw-r--r--src/anonymous.c1
-rw-r--r--src/child.c1
-rw-r--r--src/conf.c2
-rw-r--r--src/conf.h77
-rw-r--r--src/filter.c1
-rw-r--r--src/hashmap.h2
-rw-r--r--src/html-error.c1
-rw-r--r--src/log.c1
-rw-r--r--src/main.h76
-rw-r--r--src/reqs.c1
-rw-r--r--src/sock.c1
-rw-r--r--src/stats.c1
13 files changed, 89 insertions, 78 deletions
diff --git a/src/acl.h b/src/acl.h
index b1a5dee..2d11cef 100644
--- a/src/acl.h
+++ b/src/acl.h
@@ -21,6 +21,8 @@
#ifndef TINYPROXY_ACL_H
#define TINYPROXY_ACL_H
+#include "vector.h"
+
typedef enum { ACL_ALLOW, ACL_DENY } acl_access_t;
extern int insert_acl (char *location, acl_access_t access_type,
diff --git a/src/anonymous.c b/src/anonymous.c
index 2834852..3049acf 100644
--- a/src/anonymous.c
+++ b/src/anonymous.c
@@ -26,6 +26,7 @@
#include "hashmap.h"
#include "heap.h"
#include "log.h"
+#include "conf.h"
short int is_anonymous_enabled (void)
{
diff --git a/src/child.c b/src/child.c
index 6bd7456..d640bed 100644
--- a/src/child.c
+++ b/src/child.c
@@ -30,6 +30,7 @@
#include "reqs.h"
#include "sock.h"
#include "utils.h"
+#include "conf.h"
static int listenfd;
static socklen_t addrlen;
diff --git a/src/conf.c b/src/conf.c
index 128b09c..3abadb1 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -22,8 +22,6 @@
* add new directives to. Who knows if I'm right though.
*/
-#include "main.h"
-
#include "conf.h"
#include "acl.h"
diff --git a/src/conf.h b/src/conf.h
index 39f3a51..c4f7ee9 100644
--- a/src/conf.h
+++ b/src/conf.h
@@ -21,6 +21,83 @@
#ifndef TINYPROXY_CONF_H
#define TINYPROXY_CONF_H
+#include "hashmap.h"
+#include "vector.h"
+
+/*
+ * Hold all the configuration time information.
+ */
+struct config_s {
+ char *logf_name;
+ char *config_file;
+ unsigned int syslog; /* boolean */
+ int port;
+ char *stathost;
+ unsigned int godaemon; /* boolean */
+ unsigned int quit; /* boolean */
+ char *user;
+ char *group;
+ char *ipAddr;
+#ifdef FILTER_ENABLE
+ char *filter;
+ unsigned int filter_url; /* boolean */
+ unsigned int filter_extended; /* boolean */
+ unsigned int filter_casesensitive; /* boolean */
+#endif /* FILTER_ENABLE */
+#ifdef XTINYPROXY_ENABLE
+ unsigned int add_xtinyproxy; /* boolean */
+#endif
+#ifdef REVERSE_SUPPORT
+ struct reversepath *reversepath_list;
+ unsigned int reverseonly; /* boolean */
+ unsigned int reversemagic; /* boolean */
+ char *reversebaseurl;
+#endif
+#ifdef UPSTREAM_SUPPORT
+ struct upstream *upstream_list;
+#endif /* UPSTREAM_SUPPORT */
+ char *pidpath;
+ unsigned int idletimeout;
+ char *bind_address;
+ unsigned int bindsame;
+
+ /*
+ * The configured name to use in the HTTP "Via" header field.
+ */
+ char *via_proxy_name;
+
+ unsigned int disable_viaheader; /* boolean */
+
+ /*
+ * Error page support. Map error numbers to file paths.
+ */
+ hashmap_t errorpages;
+
+ /*
+ * Error page to be displayed if appropriate page cannot be located
+ * in the errorpages structure.
+ */
+ char *errorpage_undef;
+
+ /*
+ * The HTML statistics page.
+ */
+ char *statpage;
+
+ vector_t access_list;
+
+ /*
+ * Store the list of port allowed by CONNECT.
+ */
+ vector_t connect_ports;
+
+ /*
+ * Map of headers which should be let through when the
+ * anonymous feature is turned on.
+ */
+ hashmap_t anonymous_map;
+};
+
extern int load_config_file (const char *config_fname, struct config_s *conf);
void free_config (struct config_s *conf);
int reload_config (const char *config_fname, struct config_s *conf,
diff --git a/src/filter.c b/src/filter.c
index e0e5f9e..3164191 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -28,6 +28,7 @@
#include "heap.h"
#include "log.h"
#include "reqs.h"
+#include "conf.h"
#define FILTER_BUFFER_LEN (512)
diff --git a/src/hashmap.h b/src/hashmap.h
index 5095f77..e8fa819 100644
--- a/src/hashmap.h
+++ b/src/hashmap.h
@@ -21,6 +21,8 @@
#ifndef _HASHMAP_H
#define _HASHMAP_H
+#include "common.h"
+
/*
* We're using a typedef here to "hide" the implementation details of the
* hash map. Sure, it's a pointer, but the struct is hidden in the C file.
diff --git a/src/html-error.c b/src/html-error.c
index e4ddf88..adb9775 100644
--- a/src/html-error.c
+++ b/src/html-error.c
@@ -29,6 +29,7 @@
#include "html-error.h"
#include "network.h"
#include "utils.h"
+#include "conf.h"
/*
* Add an error number -> filename mapping to the errorpages list.
diff --git a/src/log.c b/src/log.c
index 4398488..5d669b4 100644
--- a/src/log.c
+++ b/src/log.c
@@ -27,6 +27,7 @@
#include "log.h"
#include "utils.h"
#include "vector.h"
+#include "conf.h"
static const char *syslog_level[] = {
NULL,
diff --git a/src/main.h b/src/main.h
index c07482c..f3864e4 100644
--- a/src/main.h
+++ b/src/main.h
@@ -23,87 +23,11 @@
#define __MAIN_H__
#include "common.h"
-#include "hashmap.h"
-#include "vector.h"
/* Global variables for the main controls of the program */
#define MAXBUFFSIZE ((size_t)(1024 * 96)) /* Max size of buffer */
#define MAX_IDLE_TIME (60 * 10) /* 10 minutes of no activity */
-/*
- * Hold all the configuration time information.
- */
-struct config_s {
- char *logf_name;
- char *config_file;
- unsigned int syslog; /* boolean */
- int port;
- char *stathost;
- unsigned int godaemon; /* boolean */
- unsigned int quit; /* boolean */
- char *user;
- char *group;
- char *ipAddr;
-#ifdef FILTER_ENABLE
- char *filter;
- unsigned int filter_url; /* boolean */
- unsigned int filter_extended; /* boolean */
- unsigned int filter_casesensitive; /* boolean */
-#endif /* FILTER_ENABLE */
-#ifdef XTINYPROXY_ENABLE
- unsigned int add_xtinyproxy; /* boolean */
-#endif
-#ifdef REVERSE_SUPPORT
- struct reversepath *reversepath_list;
- unsigned int reverseonly; /* boolean */
- unsigned int reversemagic; /* boolean */
- char *reversebaseurl;
-#endif
-#ifdef UPSTREAM_SUPPORT
- struct upstream *upstream_list;
-#endif /* UPSTREAM_SUPPORT */
- char *pidpath;
- unsigned int idletimeout;
- char *bind_address;
- unsigned int bindsame;
-
- /*
- * The configured name to use in the HTTP "Via" header field.
- */
- char *via_proxy_name;
-
- unsigned int disable_viaheader; /* boolean */
-
- /*
- * Error page support. Map error numbers to file paths.
- */
- hashmap_t errorpages;
-
- /*
- * Error page to be displayed if appropriate page cannot be located
- * in the errorpages structure.
- */
- char *errorpage_undef;
-
- /*
- * The HTML statistics page.
- */
- char *statpage;
-
- vector_t access_list;
-
- /*
- * Store the list of port allowed by CONNECT.
- */
- vector_t connect_ports;
-
- /*
- * Map of headers which should be let through when the
- * anonymous feature is turned on.
- */
- hashmap_t anonymous_map;
-};
-
/* Global Structures used in the program */
extern struct config_s config;
extern unsigned int received_sighup; /* boolean */
diff --git a/src/reqs.c b/src/reqs.c
index 83873df..2f6b67e 100644
--- a/src/reqs.c
+++ b/src/reqs.c
@@ -47,6 +47,7 @@
#include "transparent-proxy.h"
#include "upstream.h"
#include "connect-ports.h"
+#include "conf.h"
/*
* Maximum length of a HTTP line
diff --git a/src/sock.c b/src/sock.c
index d9acd5b..be50376 100644
--- a/src/sock.c
+++ b/src/sock.c
@@ -32,6 +32,7 @@
#include "network.h"
#include "sock.h"
#include "text.h"
+#include "conf.h"
/*
* Bind the given socket to the supplied address. The socket is
diff --git a/src/stats.c b/src/stats.c
index 0b60071..c7b4423 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -32,6 +32,7 @@
#include "html-error.h"
#include "stats.h"
#include "utils.h"
+#include "conf.h"
struct stat_s {
unsigned long int num_reqs;