summaryrefslogtreecommitdiffstats
path: root/WWW/Library/Implementation/HTRules.h
diff options
context:
space:
mode:
Diffstat (limited to 'WWW/Library/Implementation/HTRules.h')
-rw-r--r--WWW/Library/Implementation/HTRules.h169
1 files changed, 169 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HTRules.h b/WWW/Library/Implementation/HTRules.h
new file mode 100644
index 0000000..9bb8593
--- /dev/null
+++ b/WWW/Library/Implementation/HTRules.h
@@ -0,0 +1,169 @@
+/* Configuration Manager for libwww
+ * CONFIGURATION MANAGER
+ *
+ * Author Tim Berners-Lee/CERN. Public domain. Please mail changes to
+ * timbl@info.cern.ch.
+ *
+ * The configuration information loaded includes tables (file suffixes,
+ * presentation methods) in other modules. The most likely routines needed by
+ * developers will be:
+ *
+ * HTSetConfiguration to load configuration information.
+ *
+ * HTLoadRules to load a whole file of configuration information
+ *
+ * HTTranslate to translate a URL using the rule table.
+ *
+ */
+#ifndef HTRULE_H
+#define HTRULE_H
+
+#ifndef HTUTILS_H
+#include <HTUtils.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ typedef enum {
+ HT_Invalid,
+ HT_Map,
+ HT_Pass,
+ HT_Fail,
+ HT_DefProt,
+ HT_Protect,
+ HT_Progress,
+ HT_InfoMsg,
+ HT_UserMsg,
+ HT_Alert,
+ HT_AlwaysAlert,
+ HT_Redirect,
+ HT_RedirectPerm,
+ HT_PermitRedir,
+ HT_UseProxy
+ } HTRuleOp;
+
+#ifndef NO_RULES
+
+/*
+
+Server Side Script Execution
+
+ If a URL starts with /htbin/ it is understood to mean a script execution request on
+ server. This feature needs to be turned on by setting HTBinDir by the htbin rule.
+ Index searching is enabled by setting HTSearchScript into the name of script in BinDir
+ doing the actual search by search rule (BinDir must also be set in this case, of
+ course).
+
+ */
+
+ extern char *HTBinDir; /* Physical /htbin location */
+ extern char *HTSearchScript; /* Search script name */
+
+/*
+
+HTAddRule: Add rule to the list
+
+ ON ENTRY,
+
+ pattern points to 0-terminated string containing a single "*"
+
+ equiv points to the equivalent string with * for the place where the
+ text matched by * goes; or to other 2nd parameter
+ meaning depends on op).
+
+ cond_op, additional condition for applying rule; cond_op should
+ cond be either NULL (no additional condition), or one of
+ the strings "if" or "unless"; if cond_op is not NULL,
+ cond should point to a recognized condition keyword
+ (as a string) such as "userspec", "redirected".
+
+ ON EXIT,
+
+ returns 0 if success, -1 if error.
+
+ Note that if BYTE_ADDRESSING is set, the three blocks required are allocated and
+ deallocated as one. This will save time and storage, when malloc's allocation units are
+ large.
+
+ */
+ extern int HTAddRule(HTRuleOp op, const char *pattern,
+ const char *equiv,
+ const char *cond_op,
+ const char *cond);
+
+/*
+
+HTClearRules: Clear all rules
+
+ ON EXIT,
+
+ Rule file There are no rules
+
+ */
+
+ extern void HTClearRules(void);
+
+/*
+
+HTTranslate: Translate by rules
+
+ */
+
+/*
+
+ ON ENTRY,
+
+ required points to a string whose equivalent value is needed
+
+ ON EXIT,
+
+ returns the address of the equivalent string allocated from the heap
+ which the CALLER MUST FREE. If no translation occurred, then it is
+ a copy of the original.
+
+ */
+ extern char *HTTranslate(const char *required);
+
+/*
+
+HTSetConfiguration: Load one line of configuration information
+
+ ON ENTRY,
+
+ config is a string in the syntax of a rule file line.
+
+ This routine may be used for loading configuration information from sources other than
+ the rule file, for example INI files for X resources.
+
+ */
+ extern int HTSetConfiguration(char *config);
+
+/*
+
+HtLoadRules: Load the rules from a file
+
+ ON ENTRY,
+
+ Rule table Rules can be in any state
+
+ ON EXIT,
+
+ Rule table Any existing rules will have been kept. Any new rules will have
+ been loaded on top, so as to be tried first.
+
+ Returns 0 if no error.
+
+ */
+
+ extern int HTLoadRules(const char *filename);
+
+/*
+
+ */
+
+#endif /* NO_RULES */
+#ifdef __cplusplus
+}
+#endif
+#endif /* HTRULE_H */