summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tinyproxy.c50
-rw-r--r--src/tinyproxy.h8
2 files changed, 16 insertions, 42 deletions
diff --git a/src/tinyproxy.c b/src/tinyproxy.c
index 22907ab..e41d95e 100644
--- a/src/tinyproxy.c
+++ b/src/tinyproxy.c
@@ -1,4 +1,4 @@
-/* $Id: tinyproxy.c,v 1.2 2000-03-11 20:37:44 rjkaes Exp $
+/* $Id: tinyproxy.c,v 1.3 2000-03-31 20:08:19 rjkaes Exp $
*
* The initialize routine. Basically sets up all the initial stuff (logfile,
* listening socket, config options, etc.) and then sits there and loops
@@ -56,6 +56,7 @@ adns_state adns;
#include "reqs.h"
#include "buffer.h"
#include "filter.h"
+#include "anonymous.h"
void takesig(int sig);
@@ -89,7 +90,6 @@ struct config_s config = {
struct stat_s stats;
float load = 0.00;
-struct allowedhdr_s *allowedhdrs = NULL;
/*
* Dump info to the logfile
@@ -258,9 +258,6 @@ int main(int argc, char **argv)
char *upstream_ptr;
#endif /* UPSTREAM_PROXY */
- struct allowedhdr_s **rpallowedptr = &allowedhdrs;
- struct allowedhdr_s *allowedptr = allowedhdrs, *newallowed;
-
while ((optch = getopt(argc, argv, "vh?dp:l:Sa:w:s:u:n:i:rx:f:t:")) !=
EOF) {
switch (optch) {
@@ -310,27 +307,7 @@ int main(int argc, char **argv)
break;
case 'a':
config.anonymous = TRUE;
-
- while (allowedptr) {
- rpallowedptr = &allowedptr->next;
- allowedptr = allowedptr->next;
- }
-
- if (!
- (newallowed =
- xmalloc(sizeof(struct allowedhdr_s)))) {
- log("tinyproxy: cannot allocate headers");
- exit(EX_SOFTWARE);
- }
-
- if (!(newallowed->hdrname = xstrdup(optarg))) {
- log("tinyproxy: cannot duplicate string");
- exit(EX_SOFTWARE);
- }
-
- *rpallowedptr = newallowed;
- newallowed->next = allowedptr;
-
+ anon_insert(optarg);
break;
case 'n':
if (!(config.subnet = xstrdup(optarg))) {
@@ -397,6 +374,18 @@ int main(int argc, char **argv)
exit(EX_OK);
}
+ /*
+ * If ANONYMOUS is turned on, make sure that Content-Length is
+ * in the list of allowed headers, since it is required in a
+ * HTTP/1.0 request. Also add the Content-Type header since it goes
+ * hand in hand with Content-Length.
+ * - rjkaes
+ */
+ if (config.anonymous) {
+ anon_insert("Content-Length:");
+ anon_insert("Content-Type:");
+ }
+
/* chris - Initialise asynchronous DNS */
if (adns_init(&adns, 0, 0)) {
log("tinyproxy: could not initialise ADNS");
@@ -499,15 +488,6 @@ int main(int argc, char **argv)
else
closelog();
- allowedptr = allowedhdrs;
- while (allowedptr) {
- struct allowedhdr_s *delptr = NULL;
- delptr = allowedptr;
- safefree(delptr->hdrname);
- allowedptr = delptr->next;
- safefree(delptr);
- }
-
/* finsih up ADNS */
adns_finish(adns);
diff --git a/src/tinyproxy.h b/src/tinyproxy.h
index 22630a7..041c80f 100644
--- a/src/tinyproxy.h
+++ b/src/tinyproxy.h
@@ -1,4 +1,4 @@
-/* $Id: tinyproxy.h,v 1.2 2000-03-11 20:37:44 rjkaes Exp $
+/* $Id: tinyproxy.h,v 1.3 2000-03-31 20:08:19 rjkaes Exp $
*
* See 'tinyproxy.c' for a detailed description.
*
@@ -77,15 +77,9 @@ struct stat_s {
unsigned long int num_refused;
};
-struct allowedhdr_s {
- char *hdrname;
- struct allowedhdr_s *next;
-};
-
/* Global Structures used in the program */
extern struct config_s config;
extern struct stat_s stats;
-extern struct allowedhdr_s *allowedhdrs;
extern float load;
#endif