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