diff options
Diffstat (limited to 'WWW/Library/Implementation/HTAccess.h')
-rw-r--r-- | WWW/Library/Implementation/HTAccess.h | 306 |
1 files changed, 306 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HTAccess.h b/WWW/Library/Implementation/HTAccess.h new file mode 100644 index 00000000..f0c7e794 --- /dev/null +++ b/WWW/Library/Implementation/HTAccess.h @@ -0,0 +1,306 @@ +/* HTAccess: Access manager for libwww + ACCESS MANAGER + + This module keeps a list of valid protocol (naming scheme) specifiers with associated + access code. It allows documents to be loaded given various combinations of + parameters. New access protocols may be registered at any time. + + Part of the libwww library . + + */ +#ifndef HTACCESS_H +#define HTACCESS_H + +extern char * use_this_url_instead; + +/* Definition uses: +*/ +#ifndef HTUTILS_H +#include "HTUtils.h" +#endif /* HTUTILS_H */ +#include "tcp.h" +#include "HTAnchor.h" +#include "HTFormat.h" + +#ifdef SHORT_NAMES +#define HTClientHost HTClHost +#define HTSearchAbsolute HTSeAbso +#define HTOutputStream HTOuStre +#define HTOutputFormat HTOuForm +#endif + +/* Return codes from load routines: +** +** These codes may be returned by the protocol modules, +** and by the HTLoad routines. +** In general, positive codes are OK and negative ones are bad. +*/ + +#define HT_NO_DATA -9999 /* return code: OK but no data was loaded */ + /* Typically, other app started or forked */ + +/* + +Default Addresses + + These control the home page selection. To mess with these for normal browses is asking + for user confusion. + + */ +#define LOGICAL_DEFAULT "WWW_HOME" /* Defined to be the home page */ + +#ifndef PERSONAL_DEFAULT +#define PERSONAL_DEFAULT "WWW/default.html" /* in home directory */ +#endif +#ifndef LOCAL_DEFAULT_FILE +#define LOCAL_DEFAULT_FILE "/usr/local/lib/WWW/default.html" +#endif +/* If one telnets to a www access point, + it will look in this file for home page */ +#ifndef REMOTE_POINTER +#define REMOTE_POINTER "/etc/www-remote.url" /* can't be file */ +#endif +/* and if that fails it will use this. */ +#ifndef REMOTE_ADDRESS +#define REMOTE_ADDRESS "http://www.w3.org/remote.html" /* can't be file */ +#endif + +/* If run from telnet daemon and no -l specified, use this file: +*/ +#ifndef DEFAULT_LOGFILE +#define DEFAULT_LOGFILE "/usr/adm/www-log/www-log" +#endif + +/* If the home page isn't found, use this file: +*/ +#ifndef LAST_RESORT +#define LAST_RESORT "http://www.w3.org/default.html" +#endif + + +/* + +Flags which may be set to control this module + + */ +#ifdef NOT +extern int HTDiag; /* Flag: load source as plain text */ +#endif /* NOT */ +extern char * HTClientHost; /* Name or number of telnetting host */ +extern FILE * HTlogfile; /* File to output one-liners to */ +extern BOOL HTSecure; /* Disable security holes? */ +extern HTStream* HTOutputStream; /* For non-interactive, set this */ +extern HTFormat HTOutputFormat; /* To convert on load, set this */ + + + +/* + +Load a document from relative name + + ON ENTRY, + + relative_name The relative address of the file to be accessed. + + here The anchor of the object being searched + + ON EXIT, + + returns YES Success in opening file + + NO Failure + + */ +extern BOOL HTLoadRelative PARAMS(( + CONST char * relative_name, + HTParentAnchor * here)); + + +/* + +Load a document from absolute name + + ON ENTRY, + + addr The absolute address of the document to be accessed. + + filter if YES, treat document as HTML + + */ + +/* + + ON EXIT, + + */ + +/* + + returns YES Success in opening document + + NO Failure + + */ +extern BOOL HTLoadAbsolute PARAMS((CONST DocAddress * addr)); + + +/* + +Load a document from absolute name to a stream + + ON ENTRY, + + addr The absolute address of the document to be accessed. + + filter if YES, treat document as HTML + + ON EXIT, + + returns YES Success in opening document + + NO Failure + + Note: This is equivalent to HTLoadDocument + + */ +extern BOOL HTLoadToStream PARAMS((CONST char * addr, BOOL filter, + HTStream * sink)); + + +/* + +Load if necessary, and select an anchor + + ON ENTRY, + + destination The child or parenet anchor to be loaded. + + */ + +/* + + ON EXIT, + + */ + +/* + + returns YES Success + + returns NO Failure + + */ + + + +extern BOOL HTLoadAnchor PARAMS((HTAnchor * destination)); + + +/* + +Make a stream for Saving object back + + ON ENTRY, + + anchor is valid anchor which has previously beeing loaded + + ON EXIT, + + returns 0 if error else a stream to save the object to. + + */ + + +extern HTStream * HTSaveStream PARAMS((HTParentAnchor * anchor)); + + +/* + +Search + + Performs a search on word given by the user. Adds the search words to the end of the + current address and attempts to open the new address. + + ON ENTRY, + + *keywords space-separated keyword list or similar search list + + here The anchor of the object being searched + + */ +extern BOOL HTSearch PARAMS((CONST char * keywords, HTParentAnchor* here)); + + +/* + +Search Given Indexname + + Performs a keyword search on word given by the user. Adds the keyword to the end of + the current address and attempts to open the new address. + + ON ENTRY, + + *keywords space-separated keyword list or similar search list + + *indexname is name of object search is to be done on. + + */ +extern BOOL HTSearchAbsolute PARAMS(( + CONST char * keywords, + CONST char * indexname)); + + +/* + +Register an access method + + */ + +typedef struct _HTProtocol { + char * name; + + int (*load)PARAMS(( + CONST char * full_address, + HTParentAnchor * anchor, + HTFormat format_out, + HTStream* sink)); + + HTStream* (*saveStream)PARAMS((HTParentAnchor * anchor)); + +} HTProtocol; + +extern BOOL HTRegisterProtocol PARAMS((HTProtocol * protocol)); + + +/* + +Generate the anchor for the home page + + */ + +/* + + As it involves file access, this should only be done once when the program first runs. + This is a default algorithm -- browser don't HAVE to use this. + + */ +extern HTParentAnchor * HTHomeAnchor NOPARAMS; + +/* + +Return Host Name + + */ +extern CONST char * HTHostName NOPARAMS; + +/* + +For registering protocols supported by Lynx + +*/ +extern void LYRegisterLynxProtocols NOARGS; + +#endif /* HTACCESS_H */ +/* + + end of HTAccess */ |