Annotation of libwww/Library/src/HTProxy.html, revision 2.10
2.1 frystyk 1: <HTML>
2: <HEAD>
2.10 ! frystyk 3: <!-- Changed by: Henrik Frystyk Nielsen, 23-Mar-1996 -->
! 4: <TITLE>W3C Reference Library libwww Proxies and Gateways</TITLE>
2.1 frystyk 5: </HEAD>
6: <BODY>
2.10 ! frystyk 7: <H1>
! 8: Proxy and gateway Manager
! 9: </H1>
2.1 frystyk 10: <PRE>
11: /*
12: ** (c) COPYRIGHT MIT 1995.
13: ** Please first read the full copyright statement in the file COPYRIGH.
14: */
15: </PRE>
2.10 ! frystyk 16: <P>
! 17: This module keeps a list of proxies and gateways to be contacted on a request
! 18: in stead of requesting it directly from the origin server. The module replaces
! 19: the old system of environment variables for gateways and proxies. However
! 20: for backward compatibility there is a function that reads the environment
! 21: variables at start up. Note that there is a difference between a proxy and
! 22: a gateway - the difference is the way the URL is set up in the
! 23: <EM>RequestLine</EM> of the HTTP request. If the original, full URL looks
! 24: like <CODE>"http://www.w3.org/test.html"</CODE> then the result will for
! 25: a proxy is <CODE>"http://www.w3.org/test.html"</CODE> and a gateway
! 26: <CODE>"/www.w3.org/test.html"</CODE>
! 27: <P>
! 28: The module is implemented by <A HREF="HTProxy.c">HTProxy.c</A>, and it is
! 29: a part of the <A HREF="http://www.w3.org/pub/WWW/Library/"> W3C Reference
! 30: Library</A>.
! 31: <PRE>#ifndef HTPROXY_H
2.1 frystyk 32: #define HTPROXY_H
33:
34: #include "HTList.h"
35: </PRE>
2.10 ! frystyk 36: <H2>
! 37: Registering a proxy server
! 38: </H2>
! 39: <P>
! 40: A proxy server is registered with a corresponding access method, for example
! 41: <EM>http</EM>, <EM>ftp</EM> etc. The `proxy' parameter should be a fully
! 42: valid name, like <CODE>http://proxy.w3.org:8001</CODE> but domain name is
! 43: not required. If an entry exists for this access then delete it and use the
! 44: new one.
2.1 frystyk 45: <PRE>
2.6 frystyk 46: extern BOOL HTProxy_add (const char * access, const char * proxy);
2.5 frystyk 47: extern BOOL HTProxy_deleteAll (void);
2.1 frystyk 48: </PRE>
2.10 ! frystyk 49: <P>
! 50: The remove function removes all registered proxies. This is automatically
! 51: done in <A HREF="HTLib.html"> HTLibTerminate()</A> <A NAME="noproxy"></A>
! 52: <H2>
! 53: Registering a host or domain with no proxy
! 54: </H2>
! 55: <P>
! 56: The <EM>noproxy</EM> list is a list of host names and domain names where
! 57: we don't contact a proxy even though a proxy is in fact registered for this
! 58: particular access method . When registering a <EM>noproxy</EM> item, you
! 59: can specify a specific port for this access method in which case it isvalid
! 60: only for requests to this port. If `port' is '0' then it applies to all ports
! 61: and if `access' is NULL then it applies to to all access methods. Examples
! 62: of host names are <CODE>w3.org</CODE> and <CODE>www.close.com</CODE>
2.1 frystyk 63: <PRE>
2.6 frystyk 64: extern BOOL HTNoProxy_add (const char * host, const char * access,
2.5 frystyk 65: unsigned port);
66: extern BOOL HTNoProxy_deleteAll (void);
2.1 frystyk 67: </PRE>
2.10 ! frystyk 68: <P>
! 69: The remove function removes all entries in the list. This is automatically
! 70: done in <A HREF="HTLib.html"> HTLibTerminate()</A>
! 71: <H2>
! 72: Look for a Proxy server
! 73: </H2>
! 74: <P>
! 75: This function evaluates the lists of registered proxies and if one is found
! 76: for the actual access method and it is not registered in the `noproxy' list,
! 77: then a URL containing the host to be contacted is returned to the caller.
! 78: This string must be freed be the caller.
2.1 frystyk 79: <PRE>
2.6 frystyk 80: extern char * HTProxy_find (const char * url);
2.1 frystyk 81: </PRE>
2.10 ! frystyk 82: <H2>
! 83: Registering a gateway
! 84: </H2>
! 85: <P>
! 86: A gateway is registered with a corresponding access method, for example
! 87: <EM>http</EM>, <EM>ftp</EM> etc. The `gate' parameter should be a fully valid
! 88: name, like <CODE>http://gateway.w3.org:8001</CODE> but domain name is not
! 89: required. If an entry exists for this access then delete it and use the new
! 90: one.
2.1 frystyk 91: <PRE>
2.6 frystyk 92: extern BOOL HTGateway_add (const char * access, const char * gate);
2.5 frystyk 93: extern BOOL HTGateway_deleteAll (void);
2.1 frystyk 94: </PRE>
2.10 ! frystyk 95: <P>
! 96: The remove function removes all registered proxies. This is automatically
! 97: done in <A HREF="HTLib.html"> HTLibTerminate()</A>
! 98: <H2>
! 99: Look for a Gateway
! 100: </H2>
! 101: <P>
! 102: This function evaluates the lists of registered gateways and if one is found
! 103: for the actual access method then it is returned and must be freed by the
! 104: caller.
2.1 frystyk 105: <PRE>
2.6 frystyk 106: extern char * HTGateway_find (const char * url);
2.1 frystyk 107: </PRE>
2.10 ! frystyk 108: <H2>
! 109: Backwards Compability with Environment Variables
! 110: </H2>
! 111: <P>
! 112: This function maintains backwards compatibility with the old environment
! 113: variables and searches for the most common values: http, ftp, news, wais,
! 114: and gopher
2.1 frystyk 115: <PRE>
2.5 frystyk 116: extern void HTProxy_getEnvVar (void);
2.1 frystyk 117: </PRE>
118: <PRE>
119: #endif /* HTPROXY_H */
120: </PRE>
2.10 ! frystyk 121: <P>
! 122: <HR>
2.8 frystyk 123: <ADDRESS>
2.10 ! frystyk 124: @(#) $Id: HTProxy.html,v 2.10 1996/07/19 07:41:50 frystyk Exp $
2.8 frystyk 125: </ADDRESS>
2.10 ! frystyk 126: </BODY></HTML>
Webmaster