#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.103 2008/03/01 14:00:45 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.107 2008/03/26 18:07:08 fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
*
* Revisions :
* $Log: project.h,v $
+ * Revision 1.107 2008/03/26 18:07:08 fabiankeil
+ * Add hostname directive. Closes PR#1918189.
+ *
+ * Revision 1.106 2008/03/24 11:21:03 fabiankeil
+ * Share the action settings for multiple patterns in the same
+ * section so we waste less memory for gigantic block lists
+ * (and load them slightly faster). Reported by Franz Schwartau.
+ *
+ * Revision 1.105 2008/03/21 11:16:27 fabiankeil
+ * Garbage-collect csp->my_ip_addr_str and csp->my_hostname.
+ *
+ * Revision 1.104 2008/03/04 18:30:40 fabiankeil
+ * Remove the treat-forbidden-connects-like-blocks action. We now
+ * use the "blocked" page for forbidden CONNECT requests by default.
+ *
* Revision 1.103 2008/03/01 14:00:45 fabiankeil
* Let the block action take the reason for the block
* as argument and show it on the "blocked" page.
#define ACTION_NO_COOKIE_READ 0x00001000UL
/** Action bitmap: Block setting cookies. */
#define ACTION_NO_COOKIE_SET 0x00002000UL
-/** Action bitmap: Filter out popups. */
-#define ACTION_NO_POPUPS 0x00004000UL
+/** Action bitmap: Override the forward settings in the config file */
+#define ACTION_FORWARD_OVERRIDE 0x00004000UL
/** Action bitmap: Send a vanilla wafer. */
#define ACTION_VANILLA_WAFER 0x00008000UL
/** Action bitmap: Limit CONNECT requests to safe ports. */
#define ACTION_HANDLE_AS_EMPTY_DOCUMENT 0x08000000UL
/** Action bitmap: Redirect request. */
#define ACTION_REDIRECT 0x10000000UL
-/** Action bitmap: Override the forward settings in the config file */
-#define ACTION_FORWARD_OVERRIDE 0x20000000UL
/** Action string index: How to deanimate GIFs */
/**
- * This structure is used to store the actions list.
+ * This structure is used to store action files.
*
- * It contains a URL pattern, and the chages to the actions.
- * It is a linked list.
+ * It contains an URL or tag pattern, and the changes to
+ * the actions. It's a linked list and should only be
+ * free'd through unload_actions_file() unless there's
+ * only a single entry.
*/
struct url_actions
{
- struct url_spec url[1]; /**< URL pattern. */
+ struct url_spec url[1]; /**< The URL or tag pattern. */
- struct action_spec action[1]; /**< Actions. */
+ struct action_spec *action; /**< Action settings that might be shared with
+ the list entry before or after the current
+ one and can't be free'd willy nilly. */
- struct url_actions * next; /**< Next action in file, or NULL. */
+ struct url_actions *next; /**< Next action section in file, or NULL. */
};
As a number. */
long ip_addr_long;
- /** Our IP address. I.e. the IP address that the client used to reach us,
- as a string. */
- char *my_ip_addr_str;
-
- /** Our hostname. I.e. the reverse DNS of the IP address that the client
- used to reach us, as a string. */
- char *my_hostname;
-
/** The URL that was requested */
struct http_request http[1];
/** The short names of the pcre filter files. */
const char *re_filterfile_short[MAX_AF_FILES];
+ /** The hostname to show on CGI pages, or NULL to use the real one. */
+ const char *hostname;
+
#ifdef FEATURE_COOKIE_JAR
/** The file name of the cookie jar file */