about summary refs log blame commit diff stats
path: root/WWW/Library/Implementation/HTAccess.h
blob: 3aa9c6d9c363953e9000cd6f96df958de484fd09 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                             



                  

                        

                     
 






                                      
                                        




                                                                    




                 
                                                                                          
                      
 
   
                                                                         

                        
                                                                       






                                                            
                                                                   


                                         
                                                                                   













                                                                





                                             







                                                                           
 
                                                                        













                                                                
                                                 





                                  
                                                                          
                                                                 
 
          
                                                 
                                 
 
   

                                                         





                                  
                                                                              
                                                        
 
          
                                                     
                                 
 
   
                                                       





                                              
                                                                              
                                                        
 
          
                                                     
                                 
 
                                             
 
   

                                                                





                                       
                                                                     
 
          
                                 
                                 
 
   
                                                     





                                    
                                                                          
 
          
                                                                         
 
   
                                                          




      
                                                                                        
                                                        
 
           
                                                                             
                                                                 
 
   
                                                                     




                      
                                                                                        
                                                            
 
           
                                                                             
                                                                    
 
   

                                                      






                         

                                
 



                                              
 
                                                         
 
                 
 
                                                          










                                                                                         
 
   
                                              





                
                                        





                                           
                                              
 

                                                        
 
                                                                 
 



                                                
/*
 * $LynxId: HTAccess.h,v 1.20 2008/01/03 00:24:16 tom Exp $
 *					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

/*      Definition uses:
*/
#include <HTAnchor.h>
#include <HTFormat.h>

#ifdef __cplusplus
extern "C" {
#endif
    extern char *use_this_url_instead;

    extern int redirection_attempts;

/*      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.
 */

/*

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 BOOL HTPermitRedir;	/* Special flag for getfile() */
    extern HTStream *HTOutputStream;	/* For non-interactive, set this */
    extern HTFormat HTOutputFormat;	/* To convert on load, set this */

/*	Check for proxy override.			override_proxy()
 *
 *	Check the no_proxy environment variable to get the list
 *	of hosts for which proxy server is not consulted.
 *
 *	no_proxy is a comma- or space-separated list of machine
 *	or domain names, with optional :port part.  If no :port
 *	part is present, it applies to all ports on that domain.
 *
 *  Example:
 *          no_proxy="cern.ch,some.domain:8001"
 *
 *  Use "*" to override all proxy service:
 *	     no_proxy="*"
 */
    extern BOOL override_proxy(const char *addr);

/*

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(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_it               if YES, treat document as HTML

  ON EXIT,
  returns YES             Success in opening document
  NO                      Failure

 */
    extern BOOL HTLoadAbsolute(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_it               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(const char *addr, BOOL filter_it,
			       HTStream *sink);

/*

Load if necessary, and select an anchor

  ON ENTRY,
  destination                The child or parent anchor to be loaded.

  ON EXIT,
  returns YES             Success
  returns NO              Failure

 */
    extern BOOL HTLoadAnchor(HTAnchor * destination);

/*

Make a stream for Saving object back

  ON ENTRY,
  anchor                  is valid anchor which has previously been loaded

  ON EXIT,
  returns                 0 if error else a stream to save the object to.

 */
    extern HTStream *HTSaveStream(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(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(const char *keywords,
				 char *indexname);

/*

Register an access method

 */

    typedef struct _HTProtocol {
	const char *name;

	int (*load) (const char *full_address,
		     HTParentAnchor *anchor,
		     HTFormat format_out,
		     HTStream *sink);

	HTStream *(*saveStream) (HTParentAnchor *anchor);

    } HTProtocol;

    extern BOOL HTRegisterProtocol(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(void);

/*

Return Host Name

 */
    extern const char *HTHostName(void);

/*

For registering protocols supported by Lynx

*/
    extern void LYRegisterLynxProtocols(void);

    extern void LYUCPushAssumed(HTParentAnchor *anchor);
    extern int LYUCPopAssumed(void);

    extern BOOL using_proxy;	/* Are we using an NNTP proxy? */

#ifdef __cplusplus
}
#endif
#endif				/* HTACCESS_H */