Diff for /libwww/Library/src/HTReqMan.html between versions 2.34 and 2.35

version 2.34, 1996/09/16 21:33:48 version 2.35, 1996/10/07 02:05:16
Line 50  struct _HTRequest { Line 50  struct _HTRequest {
     time_t              date;      /* Time stamp when the request was issued */      time_t              date;      /* Time stamp when the request was issued */
   
     HTMethod            method;      HTMethod            method;
     HTReload            reload;  
   
     int                 retrys;               /* Number of automatic reloads */  
     time_t              retry_after;             /* Absolut time for a retry */  
     HTNet *             net;                /* Information about socket etc. */  
     HTPriority          priority;               /* Priority for this request */      HTPriority          priority;               /* Priority for this request */
 </PRE>  </PRE>
 <H3>  <H3>
Line 66  information about this host and the user Line 62  information about this host and the user
 <PRE>  <PRE>
     HTUserProfile *     userprofile;      HTUserProfile *     userprofile;
 </PRE>  </PRE>
   
   <H3>
   Net Object
   </H3>
   Each request is assigned a Net object which contains pointers to other objects handling the request.
   <PRE>
       HTNet *             net;                /* Information about socket etc. */
   </PRE>
   
   <H3>
   Response Object
   </H3>
   
   When we start getting MIME headers in as a response we keep it in this object until we know what to do with it.
   
   <PRE>
       HTResponse *        response;
   </PRE>
   
   <H3>
     Error Manager
   </H3>
   <PRE>
       HTList *            error_stack;                       /* List of errors */
   </PRE>
   
   <H3>
   Have many times do We Want to Try?
   </H3>
   
   <PRE>
       int                 retrys;               /* Number of automatic reloads */
       int                 max_forwards;
   </PRE>
   
   <H3>
     Preemtive or Non-Preemptive load?
   </H3>
   
   Each protocol module is registered with a default behavior but if you have registered a protocol module for non-preemtive load you can override this by using the following flag.
   
   <PRE>
       BOOL                preemptive;
   </PRE>
   
   <H3>
   Content Negotiation
   </H3>
   
   Normally, when we access the local file system we do content negotiation in order to find the most suited representation. However, you can turn this off by using the following flag.
   
   <PRE>
       BOOL                ContentNegotiation;
   </PRE>
   
   <H3>
     Headers and header information
   </H3>
   
   These are the masks that decides what headers to send.
   
   <PRE>
       HTGnHd              GenMask;
       HTRsHd              ResponseMask;
       HTRqHd              RequestMask;
       HTEnHd              EntityMask;
   
       HTList *            generators;
       BOOL                gens_local;
   </PRE>
   
   <H3>
   Local MIME Header Parsers 
   </H3>
   
   Each request can be assigned its own MIME header parsers.
   
   <PRE>
       HTMIMEParseSet *    parseSet;
       BOOL                pars_local;
   </PRE>
   
 <H3>  <H3>
   Accept headers    Accept headers
 </H3>  </H3>
   
   These are the accept headers that we want to send out.
   
 <PRE>  <PRE>
     HTList *            conversions;      HTList *            conversions;
     BOOL                conv_local;      BOOL                conv_local;
Line 91  information about this host and the user Line 172  information about this host and the user
     HTList *            afters;      HTList *            afters;
     BOOL                afters_local;      BOOL                afters_local;
 </PRE>  </PRE>
   
 <H3>  <H3>
   Headers and header information  Are we using a Proxy?
 </H3>  </H3>
   
   If so then we keep the name in this variable
   
 <PRE>  <PRE>
     HTGnHd              GenMask;      char *              proxy;
     HTRsHd              ResponseMask;      BOOL                full_uri;
     HTRqHd              RequestMask;  </PRE>
     HTEnHd              EntityMask;  
   
     HTMIMEParseSet *    parseSet;  <H3>
     BOOL                pars_local;    Cache Control Directives
   </H3>
   <P>
   This association list is a list of the cache control directives that are
   to be sent as part of the <CODE>Cache-Control</CODE> header.
   <PRE>
       HTReload            reload;
       HTAssocList *       cache_control;
   </PRE>
   
     HTList *            generators;  <H3>
     BOOL                gens_local;  Byte Ranges
   </H3>
   
   This association list is a list of the cache control directives that are
   to be sent as part of the <CODE>Range</CODE> header.
   
   <PRE>
       HTAssocList *       byte_ranges;
   </PRE>
   
   <H3>
     Connection Control Directives
   </H3>
   <P>
   This association list is a list of the connection control directives that
   are to be sent as part of the <CODE>Connection</CODE> header.
   
   <PRE>
       HTAssocList *       connection;
   </PRE>
   <H3>
     Access Authentication Information
   </H3>
   <P>
   The <CODE>credentials</CODE> list contains the information that we are to send as part of the <CODE>Authorization</CODE> header. The realm is if we already know that we need to generate credentials for a specific realm.
   <PRE>
       char *              realm;                              /* Current realm */
       HTAssocList *       credentials;       /* Credentials received by server */
   </PRE>
   <H3>
     Protocol Extension Protocol (PEP) Information
   </H3>
   
   These association lists contain the information that we are to send as PEP headers in the request.
   
   <PRE>
       HTAssocList *       protocol;
       HTAssocList *       protocol_info;
       HTAssocList *       protocol_request;
 </PRE>  </PRE>
   
 <H3>  <H3>
   Anchors    Anchors
 </H3>  </H3>
Line 115  information about this host and the user Line 246  information about this host and the user
     HTChildAnchor *     childAnchor;        /* For element within the object */      HTChildAnchor *     childAnchor;        /* For element within the object */
     HTParentAnchor *    parentAnchor;                   /* For referer field */      HTParentAnchor *    parentAnchor;                   /* For referer field */
 </PRE>  </PRE>
 <H4>  
   Redirection  
 </H4>  
 <P>  
 If we get a redirection back then we return the new destination for this  
 request to the application using this anchor.  
 <PRE>  
     HTAnchor *          redirectionAnchor;                /* Redirection URL */  
 </PRE>  
 <H3>  <H3>
   Streams From Network to Application    Streams From Network to Application
 </H3>  </H3>
Line 156  request to the application using this an Line 278  request to the application using this an
     void *              context;      void *              context;
 </PRE>  </PRE>
 <H3>  <H3>
   Other Flags  
 </H3>  
 <PRE>  
     BOOL                preemptive;  
     BOOL                ContentNegotiation;  
   
     BOOL                full_uri;  
     char *              proxy;  
   
     int                 max_forwards;  
 </PRE>  
 <H3>  
   Error Manager  
 </H3>  
 <PRE>  
     HTList *            error_stack;                       /* List of errors */  
 </PRE>  
 <H3>  
   PostWeb Information    PostWeb Information
 </H3>  </H3>
 <PRE>  <PRE>
Line 185  request to the application using this an Line 289  request to the application using this an
     int                 destRequests;      /* Number of destination requests */      int                 destRequests;      /* Number of destination requests */
     int                 destStreams;        /* Number of destination streams */      int                 destStreams;        /* Number of destination streams */
 </PRE>  </PRE>
 <H3>  
   Cache Control Directives  
 </H3>  
 <P>  
 This association list is a list of the cache control directives that are  
 to be sent as part of the <CODE>Cache-Control</CODE> header.  
 <CODE>Cache-control</CODE> directives can be sent in both directions - we  
 keep the out-going ones here and the incoming becomes part of the  
 <A HREF="HTAnchor.html">anchor object</A>.  
 <PRE>  
     HTAssocList *       cache_control;  
 </PRE>  
 <H3>  
   Original Header Values  
 </H3>  
 <P>  
 The cache uses (for the moment) the original header values when it creates  
 a cache entry. We can pass the headers to the cache manager using this list  
 <PRE>  
     HTAssocList *      headers;  
 </PRE>  
 <H3>  
   Connection Control Directives  
 </H3>  
 <P>  
 This association list is a list of the connection control directives that  
 are to be sent as part of the <CODE>Connection</CODE> header.  
 <CODE>Connection</CODE> directives can be sent in both directions - that  
 is - from the server to the client and vise-verse. In order to separate outgoing  
 from incoming connections directives, we keep two lists - one for outgoing  
 and one for incoming.  
 <PRE>  
     HTAssocList *       client_connection;  
     HTAssocList *       server_connection;  
 </PRE>  
 <H3>  
   Access Authentication Information  
 </H3>  
 <P>  
 The <CODE>challenge</CODE> and the <CODE>credentials</CODE> entries are use  
 by the authentication parsers and generators respectively.  
 <PRE>    char *         realm;                              /* Current realm */  
     char *              scheme;                            /* Current scheme */  
   
     HTAssocList *       challenge;           /* Challenge received by client */  
     HTAssocList *       credentials;       /* Credentials received by server */  
 </PRE>  
 <H3>  
   Protocol Extension Protocol (PEP) Information  
 </H3>  
 <PRE>  
     HTAssocList *       protocol;  
     HTAssocList *       protocol_info;  
     HTAssocList *       protocol_request;  
 </PRE>  
 <P>  
 As a small alternative to the PEP protocol headers, we also support the extension  
 header which works pretty much the same way but is somewhat simpler in use.  
 <PRE>  
     HTAssocList *       client_extension;  
     HTAssocList *       server_extension;  
 </PRE>  
 <PRE>  <PRE>
 };  };
 </PRE>  </PRE>

Removed from v.2.34  
changed lines
  Added in v.2.35


Webmaster