#ifndef _PROJECT_H
#define _PROJECT_H
-#define PROJECT_H_VERSION "$Id: project.h,v 1.17 2001/06/07 23:15:09 jongfoster Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.18 2001/06/09 10:57:39 jongfoster Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
*
* Revisions :
* $Log: project.h,v $
+ * Revision 1.18 2001/06/09 10:57:39 jongfoster
+ * Adding definition of BUFFER_SIZE.
+ * Changing struct cgi_dispatcher to use "const" strings.
+ *
* Revision 1.17 2001/06/07 23:15:09 jongfoster
* Merging ACL and forward files into config file.
* Moving struct gateway members into struct forward_spec
* redirect did not work due to missing /
*
* Revision 1.14 2001/06/03 11:03:48 oes
- * Makefile/in
- *
- * introduced cgi.c
- *
- * actions.c:
- *
- * adapted to new enlist_unique arg format
- *
- * conf loadcfg.c
- *
- * introduced confdir option
- *
- * filters.c filtrers.h
- *
- * extracted-CGI relevant stuff
- *
- * jbsockets.c
- *
- * filled comment
- *
- * jcc.c
- *
- * support for new cgi mechansim
- *
- * list.c list.h
- *
- * functions for new list type: "map"
- * extended enlist_unique
- *
- * miscutil.c .h
- * introduced bindup()
- *
- * parsers.c parsers.h
- *
- * deleted const struct interceptors
- *
- * pcrs.c
- * added FIXME
- *
- * project.h
- *
- * added struct map
- * added struct http_response
- * changes struct interceptors to struct cgi_dispatcher
+ * Added struct map,
+ * added struct http_response,
+ * changed struct interceptors to struct cgi_dispatcher,
* moved HTML stuff to cgi.h
*
- * re_filterfile:
- *
- * changed
- *
- * showargs.c
- * NO TIME LEFT
- *
* Revision 1.13 2001/06/01 20:05:36 jongfoster
* Support for +image-blocker{}: added ACTION_IMAGE_BLOCKER
* constant, and removed csp->tinygif.
char *cmd;
char *gpc;
char *host;
+ char *host_ip_addr_str; /* NULL before connect_to() */
int port;
char *path;
char *ver;
int ssl;
};
-/* CGI or blocker generated response */
+/* Response generated by CGI, blocker, or error handler */
struct http_response
{
- char *status; /* HTTP status */
+ char *status; /* HTTP status (string)*/
struct list headers[1]; /* List of header lines */
- int content_length; /* Length of body, REQUIRED if binary body*/
char *head; /* Formatted http response head */
+ int head_length; /* Length of http response head */
char *body; /* HTTP document body */
+ int content_length; /* Length of body, REQUIRED if binary body*/
};
/* A URL pattern */
/* Hostname matching: */
char *domain; /* Fully qalified domain name (FQDN) pattern. */
/* May contain "*". */
- char *dbuf; /* FIXME: Comment this */
- char **dvec; /* Domain ptr vector */
+ char *dbuf; /* Buffer with '\0'-delimited fqdn */
+ char **dvec; /* Domain ptr vector into dbuf */
int dcnt; /* How many domains in fqdn? */
int unanchored; /* Bitmap - flags are ANCHOR_LEFT and ANCHOR_RIGHT */
/* The proxy's configuration */
struct configuration_spec * config;
-
/* The actions to perform on the current request */
struct current_action_spec action[1];
-
/* socket to talk to client (web browser) */
int cfd;
char *ip_addr_str;
long ip_addr_long;
+
+ /* Our IP address and hostname, i.e. the IP address that
+ the client used to reach us, and the associated hostname,
+ both as strings
+ */
+ char *my_ip_addr_str;
+ char *my_hostname;
+
#ifdef TRUST_FILES
/* The referer in this request, if one was specified. */
char *referrer;
const char *logdir;
const char *actions_file;
+ /* The administrator's email address */
+ char *admin_address;
+
+ /* A URL with info on this proxy */
+ char *proxy_info_url;
+
#ifdef PCRS
const char *re_filterfile;
#endif /* def PCRS */
struct forward_spec *forward;
- /* Various strings for show-proxy-args */
- char *proxy_args_header;
- char *proxy_args_invocation;
- char *proxy_args_trailer;
+ /* All options from the config file, HTML-formatted */
+ char *proxy_args;
/* the configuration file object. */
struct file_list *config_file_list;
#define SZ(X) (sizeof(X) / sizeof(*X))
-#define WHITEBG "<body bgcolor=\"#ffffff\" link=\"#000078\" alink=\"#ff0022\" vlink=\"#787878\">\n"
-#define BODY "<body bgcolor=\"#f8f8f0\" link=\"#000078\" alink=\"#ff0022\" vlink=\"#787878\">\n"
-#define BANNER "<strong>Internet J<small>UNK<i><font color=\"red\">BUSTER</font></i></small></strong>"
-
#ifdef FORCE_LOAD
#define FORCE_PREFIX "/IJB-FORCE-LOAD"
#endif /* def FORCE_LOAD */
-/* Shouldn't end with '/' */
+/* Hardwired URLs */
#define HOME_PAGE_URL "http://ijbswa.sourceforge.net"
#define REDIRECT_URL HOME_PAGE_URL "/redirect.php?v=" VERSION "&to="
-
#define CGI_PREFIX_HOST "i.j.b"
+/* HTTP snipplets */
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";
-
-#ifdef IMAGE_BLOCKING
-
-/*
- * 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 /* def IMAGE_BLOCKING */
-
-#if defined(FAST_REDIRECTS) || defined(IMAGE_BLOCKING)
-
-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\r\n";
-
-#endif /* defined(FAST_REDIRECTS) || defined(IMAGE_BLOCKING) */
-
#ifdef __cplusplus
} /* extern "C" */
#endif