X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=project.h;h=28511c91c954e319cf6e962b5836881a57dda1cc;hp=7371d659e6287e45ddbad4988a36db59025506f3;hb=272bd9c70613923fcccb34753dbb2504059a6713;hpb=87a69fc505def6be1c8a4d24ae225c3623b5e861 diff --git a/project.h b/project.h index 7371d659..28511c91 100644 --- a/project.h +++ b/project.h @@ -1,6 +1,6 @@ #ifndef _PROJECT_H #define _PROJECT_H -#define PROJECT_H_VERSION "$Id: project.h,v 1.2 2001/05/17 23:01:01 oes Exp $" +#define PROJECT_H_VERSION "$Id: project.h,v 1.3 2001/05/20 01:21:20 jongfoster Exp $" /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/project.h,v $ @@ -36,6 +36,19 @@ * * Revisions : * $Log: project.h,v $ + * Revision 1.3 2001/05/20 01:21:20 jongfoster + * Version 2.9.4 checkin. + * - Merged popupfile and cookiefile, and added control over PCRS + * filtering, in new "permissionsfile". + * - Implemented LOG_LEVEL_FATAL, so that if there is a configuration + * file error you now get a message box (in the Win32 GUI) rather + * than the program exiting with no explanation. + * - Made killpopup use the PCRS MIME-type checking and HTTP-header + * skipping. + * - Removed tabs from "config" + * - Moved duplicated url parsing code in "loaders.c" to a new funcition. + * - Bumped up version number. + * * Revision 1.2 2001/05/17 23:01:01 oes * - Cleaned CRLF's from the sources and related files * @@ -118,7 +131,6 @@ struct http_request int ssl; }; - struct gateway { /* generic attributes */ @@ -188,8 +200,8 @@ struct list struct client_state { - int permissions; - + int permissions; + int cfd; int sfd; @@ -242,17 +254,17 @@ struct client_state /* files associated with this client */ struct file_list *blist; /* blockfile */ struct file_list *flist; /* forwardfile */ - struct file_list *permissions_list; - + struct file_list *permissions_list; -#ifdef ACL_FILES + +#ifdef ACL_FILES struct file_list *alist; /* aclfile */ #endif /* def ACL_FILES */ #ifdef USE_IMAGE_LIST struct file_list *ilist; /* imagefile */ #endif /* def USE_IMAGE_LIST */ - + #ifdef PCRS struct file_list *rlist; /* Perl re_filterfile */ #endif /* def PCRS */ @@ -260,7 +272,7 @@ struct client_state #ifdef TRUST_FILES struct file_list *tlist; /* trustfile */ #endif /* def TRUST_FILES */ - + struct client_state *next; }; @@ -349,20 +361,20 @@ struct block_spec int reject; struct block_spec *next; }; - - -#define PERMIT_COOKIE_SET 0x0001 -#define PERMIT_COOKIE_READ 0x0002 -#define PERMIT_RE_FILTER 0x0004 -#define PERMIT_POPUPS 0x0008 - -struct permissions_spec -{ - struct url_spec url[1]; - int permissions; - struct permissions_spec * next; -}; - + + +#define PERMIT_COOKIE_SET 0x0001 +#define PERMIT_COOKIE_READ 0x0002 +#define PERMIT_RE_FILTER 0x0004 +#define PERMIT_POPUPS 0x0008 + +struct permissions_spec +{ + struct url_spec url[1]; + int permissions; + struct permissions_spec * next; +}; + struct forward_spec { struct url_spec url[1]; @@ -380,7 +392,7 @@ struct re_filterfile_spec pcrs_job *joblist; }; #endif /* def PCRS */ - + #ifdef ACL_FILES #define ACL_PERMIT 1 /* accept connection request */ @@ -410,20 +422,113 @@ struct access_control_list #define BANNER "Internet JUNKBUSTER" #ifdef FORCE_LOAD -/* - * FIXME: Unfortunately, IE lowercases the domain name. JunkBuster does - * a case-sensitive compare. JunkBuster should be modified to do a - * case-insensitive compatison. As a temporary workaround, I've lowercased - * the FORCE_PREFIX. - * - * #define FORCE_PREFIX "IJB-FORCE-LOAD-" - */ -#define FORCE_PREFIX "ijb-force-load-" +#define FORCE_PREFIX "/IJB-FORCE-LOAD" #endif /* def FORCE_LOAD */ #define HOME_PAGE_URL "http://ijbswa.sourceforge.net/" #define REDIRECT_URL HOME_PAGE_URL "redirect.php?v=" VERSION "&to=" +static const char CFAIL[] = + "HTTP/1.0 503 Connect failed\n" + "Content-Type: text/html\n\n" + "\n" + "\n" + "Internet Junkbuster: Connect failed\n" + "\n" + BODY + "

" + BANNER + "

" + "TCP connection to '%s' failed: %s.\n
" + "\n" + "\n"; + +static const char CNXDOM[] = + "HTTP/1.0 404 Non-existent domain\n" + "Content-Type: text/html\n\n" + "\n" + "\n" + "Internet Junkbuster: Non-existent domain\n" + "\n" + BODY + "

" + BANNER + "

" + "No such domain: %s\n" + "\n" + "\n"; + +static const char CNOBANNER[] = + "HTTP/1.0 200 No Banner\n" + "Content-Type: text/html\n\n" + "\n" + "\n" + "Internet Junkbuster: No Banner\n" + "\n" + BODY + "

" + BANNER + "

" + "You asked for a banner that this proxy can't produce because either configuration does not permit.\n
" + "or the URL didn't end with .gif\n" + "\n" + "\n"; + +static const char CSUCCEED[] = + "HTTP/1.0 200 Connection established\n" + "Proxy-Agent: IJ/" VERSION "\n\n"; + +static const char CHEADER[] = + "HTTP/1.0 400 Invalid header received from browser\n\n"; + +static const char SHEADER[] = + "HTTP/1.0 502 Invalid header received from server\n\n"; + +#if defined(DETECT_MSIE_IMAGES) || defined(USE_IMAGE_LIST) + +/* + * Hint: You can encode your own GIFs like that: + * perl -e 'while (read STDIN, $c, 1) { printf("\\%.3o,", unpack("C", $c)); }' + */ + +static const char BLANKGIF[] = + "HTTP/1.0 200 OK\r\n" + "Pragma: no-cache\r\n" + "Last-Modified: Thu Jul 31, 1997 07:42:22 pm GMT\r\n" + "Expires: Thu Jul 31, 1997 07:42:22 pm GMT\r\n" + "Content-type: image/gif\r\n\r\n" + "GIF89a\001\000\001\000\200\000\000\377\377\377\000\000" + "\000!\371\004\001\000\000\000\000,\000\000\000\000\001" + "\000\001\000\000\002\002D\001\000;"; + +static const char JBGIF[] = + "HTTP/1.0 200 OK\r\n" + "Pragma: no-cache\r\n" + "Last-Modified: Thu Jul 31, 1997 07:42:22 pm GMT\r\n" + "Expires: Thu Jul 31, 1997 07:42:22 pm GMT\r\n" + "Content-type: image/gif\r\n\r\n" + "GIF89aD\000\013\000\360\000\000\000\000\000\377\377\377!" + "\371\004\001\000\000\001\000,\000\000\000\000D\000\013\000" + "\000\002a\214\217\251\313\355\277\000\200G&K\025\316hC\037" + "\200\234\230Y\2309\235S\230\266\206\372J\253<\3131\253\271" + "\270\215\342\254\013\203\371\202\264\334P\207\332\020o\266" + "N\215I\332=\211\312\3513\266:\026AK)\364\370\365aobr\305" + "\372\003S\275\274k2\354\254z\347?\335\274x\306^9\374\276" + "\037Q\000\000;"; + +#endif /* defined(DETECT_MSIE_IMAGES) || defined(USE_IMAGE_LIST) */ + +#if defined(FAST_REDIRECTS) || defined(DETECT_MSIE_IMAGES) || defined(USE_IMAGE_LIST) + +static const char HTTP_REDIRECT_TEMPLATE[] = + "HTTP/1.0 302 Local Redirect from Junkbuster\r\n" + "Pragma: no-cache\r\n" + "Last-Modified: Thu Jul 31, 1997 07:42:22 pm GMT\r\n" + "Expires: Thu Jul 31, 1997 07:42:22 pm GMT\r\n" + "Location: %s\r\n"; + +#endif /* defined(DETECT_MSIE_IMAGES) || defined(USE_IMAGE_LIST) */ + #ifdef __cplusplus } /* extern "C" */ #endif