HTAlert.h   HTAlert.h 
skipping to change at line 17 skipping to change at line 17
! !
*/ */
/* /*
** (c) COPYRIGHT MIT 1995. ** (c) COPYRIGHT MIT 1995.
** Please first read the full copyright statement in the file COPYRIGH. ** Please first read the full copyright statement in the file COPYRIGH.
*/ */
/* /*
The Alert class defines a set of methods to be used by libwww to be used The Alert class defines a set of methods to be used by libwww for passing
for passing prompts and message to a user. In order to maintain the Library prompts and message to the application. In order to maintain libwww applica
core application independent and natural language independent, libwww does tion
not know how to communicate with a user. Note here that a user independent and natural language independent, it does not know how to commu
is a somewhat abstract notion for  something that can receive a messag nicate
e with a user. Note here that a user is a somewhat abstract notion
or prompt from the Library. This can for example be a person, but is may for  something that can receive a message or prompt from libwww. A
also be handled automatically by a robot or a client receiving a response user can for example be a person, but is may also be handled
from a HTTP server. automatically by a robot or a client receiving a response from a HTTP serve
r.
Libwww has a set of opcodes that classifies the nature of the message, Libwww has a set of opcodes that classifies the nature of the message,
for example that it is a question that must be confirmed in order to contin ue for example that it is a question that must be confirmed in order to contin ue
a request or simply a progress notification. The application can register a request or simply a progress notification. The application can register
a method for any number of the defined opcodes - in case the Library has a callback for any number of the defined opcodes - in case libwww has a mes
a message for an opcode that does not have a method associated, the message sage
is ignored. You can also globally disable any message send from the Library for an opcode that does not have a method associated, the message is ignore
. d.
You can also globally disable any message send from libwww.
Note: The library core does not define any message or dialog Note: The library core does not define any message or dialog
methods - they are all considered part of the application. The library come s methods - they are all considered part of the application. However, it come s
with a default set of methods which can be initiated with a default set of methods which can be initiated
using the function HTAlertInit() in HTInit using the function HTAlertInit() in HTInit
module module
This module is implemented by HTAlert.c, and it is This module is implemented by HTAlert.c, and it is
a part of the W3C Sample Code a part of the W3C Sample Code
Library. Library.
*/ */
#ifndef HTALERT_H #ifndef HTALERT_H
skipping to change at line 59 skipping to change at line 58
/* /*
. .
Message Opcodes and Messages Message Opcodes and Messages
. .
The callback functions are defined as a generic callback where the caller The callback functions are defined as a generic callback where the caller
can pass a set of input parameters and the callee can return a set of outpt u can pass a set of input parameters and the callee can return a set of outpt u
parameters. Also note that all the *_PROG_* opcodes are a subset parameters. Also note that all the *_PROG_* opcodes are a subset
of HT_A_PROGRESS. This means that you easily can register a of HT_A_PROGRESS. This means that you easily can register a
callback for all progress reports. callback for all progress reports.
The callback handler for progress notifications SHOULD NOT be used
to interrupt the ongoing message as it is not guaranteed to be in a state
to do so. Instead you should use the event handlers
or the timers for this.
*/ */
typedef enum _HTAlertOpcode { typedef enum _HTAlertOpcode {
HT_PROG_DNS = 0x1, /* Doing DNS resolution */ HT_PROG_DNS = 0x1, /* Doing DNS resolution */
HT_PROG_CONNECT = 0x2, /* Connecting Active */ HT_PROG_CONNECT = 0x2, /* Connecting Active */
HT_PROG_ACCEPT = 0x4, /* Connecting Passive */ HT_PROG_ACCEPT = 0x4, /* Connecting Passive */
HT_PROG_READ = 0x8, /* Read data */ HT_PROG_READ = 0x8, /* Read data */
HT_PROG_WRITE = 0x10, /* Write data */ HT_PROG_WRITE = 0x10, /* Write data */
HT_PROG_DONE = 0x20, /* Request finished */ HT_PROG_DONE = 0x20, /* Request finished */
HT_PROG_INTERRUPT = 0x40, /* Request interrupted */ HT_PROG_INTERRUPT = 0x40, /* Request interrupted */
skipping to change at line 311 skipping to change at line 315
extern HTAlertCallback * HTAlert_find (HTAlertOpcode opcode); extern HTAlertCallback * HTAlert_find (HTAlertOpcode opcode);
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: HTAlert.html,v 2.55 1999/04/01 19:35:39 frystyk Exp $ @(#) $Id: HTAlert.html,v 2.56 1999/06/30 20:15:03 frystyk Exp $
*/ */
 End of changes. 5 change blocks. 
15 lines changed or deleted 22 lines changed or added


 HTAnchor.h   HTAnchor.h 
skipping to change at line 26 skipping to change at line 26
An anchor represents a region of a hypertext document which is linked to An anchor represents a region of a hypertext document which is linked to
another anchor in the same or a different document. Another name for anchor s another anchor in the same or a different document. Another name for anchor s
would be URLs as an anchor represents all we know about a URL - including would be URLs as an anchor represents all we know about a URL - including
where it points to and who points to it. Because the anchor objects where it points to and who points to it. Because the anchor objects
represent the part of the Web, the application has been in touch, it is oft en represent the part of the Web, the application has been in touch, it is oft en
useful to maintain the anchors throughout the lifetime of the application. useful to maintain the anchors throughout the lifetime of the application.
It would actually be most useful if we had persistent anchors so that an It would actually be most useful if we had persistent anchors so that an
application could build up a higher knowledge about the Web topology. application could build up a higher knowledge about the Web topology.
.When to Escape and Unescape Addresses.
The URI escape policy in libwww is that all URIs created as
anchors must already have been escaped. The reason for this is that if
URIs are not escaped then the URI parser is not guaranteed to work as
expected. Imagine, for example, that you have a ":" in a
host name, then you could get something like this:
http://my:host:8000/ instead of http://my%3Ahost:8000/.
Libwww provides support for escaping and unescaping
URIs using this set of APIs.
This module is implemented by HTAnchor.c, and it This module is implemented by HTAnchor.c, and it
is a part of the W3C Sample Code is a part of the W3C Sample Code
Library. Library.
*/ */
#ifndef HTANCHOR_H #ifndef HTANCHOR_H
#define HTANCHOR_H #define HTANCHOR_H
/* /*
. .
skipping to change at line 674 skipping to change at line 686
extern BOOL HTAnchor_setHeader (HTParentAnchor * me, HTAssocList * li st); extern BOOL HTAnchor_setHeader (HTParentAnchor * me, HTAssocList * li st);
extern HTAssocList * HTAnchor_header (HTParentAnchor * me); extern HTAssocList * HTAnchor_header (HTParentAnchor * me);
/* /*
*/ */
#endif /* HTANCHOR_H */ #endif /* HTANCHOR_H */
/* /*
@(#) $Id: HTAnchor.html,v 2.59 1998/12/22 19:59:58 frystyk Exp $ @(#) $Id: HTAnchor.html,v 2.61 2000/08/04 09:14:58 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 13 lines changed or added


 HTAssoc.h   HTAssoc.h 
skipping to change at line 20 skipping to change at line 20
/* /*
** (c) COPYRIGHT MIT 1995. ** (c) COPYRIGHT MIT 1995.
** Please first read the full copyright statement in the file COPYRIGH. ** Please first read the full copyright statement in the file COPYRIGH.
*/ */
/* /*
This Assoctiation List class is closely related to the This Assoctiation List class is closely related to the
HTList Class as it simply is a list of a specific HTList Class as it simply is a list of a specific
list element containing a characters based name/value pair. Lookups from list element containing a characters based name/value pair. Lookups from
association list are not case-sensitive. association list can be case sensitive and or prefix based.
This module is implemented by HTAssoc.c, and it is This module is implemented by HTAssoc.c, and it is
a part of the W3C Sample Code a part of the W3C Sample Code
Library. Library.
*/ */
#ifndef HTASSOC_H #ifndef HTASSOC_H
#define HTASSOC_H #define HTASSOC_H
#include "HTList.h" #include "HTList.h"
typedef HTList HTAssocList; typedef HTList HTAssocList;
typedef struct { typedef struct {
char * name; char * name;
char * value; char * value;
} HTAssoc; } HTAssoc;
/* /*
( .
Creation and Deletetion Methods Creation and Deletetion Methods
) .
These methods create and deletes and association list These methods create and deletes and association list
*/ */
extern HTAssocList * HTAssocList_new (void); extern HTAssocList * HTAssocList_new (void);
extern BOOL HTAssocList_delete (HTAssocList * alist); extern BOOL HTAssocList_delete (HTAssocList * alist);
/* /*
( .
Add an Element to a List Add an Element to a List
) .
We have two methods for adding new elements - you can either add unconditio nally We have two methods for adding new elements - you can either add unconditio nally
or replace any existing element with the same name but a new value. or replace any existing element with the same name but a new value.
A new list element is added to the beginning of the list so that it is the In replacing an element, the search is case insensitive
first element just after the head element. prefix match! A new list element is added to the beginning of the
list so that it is the first element just after the head element.
*/ */
extern BOOL HTAssocList_addObject (HTAssocList * alist,
const char * name, const char * value);
extern BOOL HTAssocList_replaceObject (HTAssocList * list, extern BOOL HTAssocList_addObject (
const char * name, const char * value HTAssocList * alist,
); const char * name,
const char * value);
extern BOOL HTAssocList_replaceObject (
HTAssocList * list,
const char * name,
const char * value);
/* /*
( .
Remove an Element from a List Remove an Element from a List
.
Remove the element with the given name from the list. Search is
case insensitive prefix match!
*/
extern BOOL HTAssocList_removeObject (
HTAssocList * list,
const char * name);
/*
.
Search for Element in a list
.
We have a small set of methods for searching a specific element within a
list.
(
Case Insensitive, Prefix Match
) )
Remove the element with the given name from the list. In many situations, the values of associations are case insensitive - use
this method to search the list using case insensitive comparison. Also, you
can search for matching prefixes and not the whole string, for example
"foo" matches "football"
*/ */
extern BOOL HTAssocList_removeObject (HTAssocList * list, const char * name
); extern char * HTAssocList_findObject (
HTAssocList * alist,
const char * name);
/* /*
( (
Search for Elements in a list Case Insensitive, Exact Match
) )
We have a small set of methods for searching a specific element within a In case you want case insensitive, exact match
list.
*/ */
extern char * HTAssocList_findObject (HTAssocList * alist, const char * nam
e); extern char * HTAssocList_findObjectExact (
HTAssocList * alist,
const char * name);
/* /*
( (
Get Name and Values Case Sensitive, Prefix Match
) )
In case you want case sensitive, prefix match
*/
extern char * HTAssocList_findObjectCaseSensitive (
HTAssocList * list,
const char * name);
/*
(
Case Sensitive, Exact Match
)
And finally if you want case sensitive, exact match
*/
extern char * HTAssocList_findObjectCaseSensitiveExact (
HTAssocList * list,
const char * name);
/*
.
Get Name and Values
.
Use this to get the name and value of a assoc object Use this to get the name and value of a assoc object
*/ */
#define HTAssoc_name(me) ((me) ? (me)->name : NULL) #define HTAssoc_name(me) ((me) ? (me)->name : NULL)
#define HTAssoc_value(me) ((me) ? (me)->value : NULL) #define HTAssoc_value(me) ((me) ? (me)->value : NULL)
/* /*
( .
Traverse list Traverse list
) .
Fast macro to traverse the list. Call it first with copy of list header: Fast macro to traverse the list. Call it first with copy of list header:
it returns the first object and increments the passed list pointer. Call it returns the first object and increments the passed list pointer. Call
it with the same variable until it returns NULL. it with the same variable until it returns NULL.
*/ */
#define HTAssocList_nextObject(me) \ #define HTAssocList_nextObject(me) \
((me) && ((me) = (me)->next) ? (me)->object : NULL) ((me) && ((me) = (me)->next) ? (me)->object : NULL)
/* /*
*/ */
#endif /* not HTASSOC_H */ #endif /* not HTASSOC_H */
/* /*
@(#) $Id: HTAssoc.html,v 2.17 1998/05/14 02:10:15 frystyk Exp $ @(#) $Id: HTAssoc.html,v 2.18 1999/04/18 20:17:44 frystyk Exp $
*/ */
 End of changes. 21 change blocks. 
25 lines changed or deleted 80 lines changed or added


 HTAtom.h   HTAtom.h 
skipping to change at line 19 skipping to change at line 19
/* /*
** (c) COPYRIGHT MIT 1995. ** (c) COPYRIGHT MIT 1995.
** Please first read the full copyright statement in the file COPYRIGH. ** Please first read the full copyright statement in the file COPYRIGH.
*/ */
/* /*
The Atom Class defines strings which are given representative The Atom Class defines strings which are given representative
pointer values so that they can be stored more efficiently, and comparisons pointer values so that they can be stored more efficiently, and comparisons
for equality done more efficiently. The list of atoms are stored for equality done more efficiently. The list of atoms is stored
in a has table, so when asking for a new atom you might infact get back an in a hash table, so when asking for a new atom you might in fact get back a
n
existing one. existing one.
Note: There are a whole bunch of Note: There are a whole bunch of
MIME-types defined as MIME-types defined as
atoms, so please use them! atoms, so please use them!
This module is implemented by HTAtom.c, and it is This module is implemented by HTAtom.c, and it is
a part of the W3C Sample Code a part of the W3C Sample Code
Library. Library.
*/ */
skipping to change at line 95 skipping to change at line 95
In order to cleanup memory, call this function. This is done automaticly In order to cleanup memory, call this function. This is done automaticly
from the HTLibTerminate function. from the HTLibTerminate function.
*/ */
extern void HTAtom_deleteAll (void); extern void HTAtom_deleteAll (void);
#endif #endif
/* /*
@(#) $Id: HTAtom.html,v 2.26 1998/05/14 02:10:15 frystyk Exp $ @(#) $Id: HTAtom.html,v 2.27 2000/07/04 15:23:24 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
3 lines changed or deleted 4 lines changed or added


 HTBind.h   HTBind.h 
skipping to change at line 17 skipping to change at line 17
! !
*/ */
/* /*
** (c) COPYRIGHT MIT 1995. ** (c) COPYRIGHT MIT 1995.
** Please first read the full copyright statement in the file COPYRIGH. ** Please first read the full copyright statement in the file COPYRIGH.
*/ */
/* /*
This module sets up the binding between a file suffix and a media type, lan The preferences that we described in section
guage, Request Preferences did not mention
encoding etc. In a client application the suffixes are used in protocols what libwww should do if it doesn't know the data format of a document. In
that does not directly support media types etc., like FTP, and in server many protocols this information is provided by the remote server. Typical
applications they are used to make the bindings between the server and the examples are MIME like protocols where the metainformation such as the
local file store that the server can serve to the rest of the world (well Content-Type and the Content-Language is provided together
almost). The HTFormat module holds this information with the document. However, applications often have access to the local fil
against the accept headers received in a request and uses if for format e
negotiation. All the binding management can all be replace by a database system using file URLs which in general do not keep any or at least
interface. very little information of the file type. It is therefore required to have
some kind of binding between the file system and the preferences registered
in the Library which provides this mateinformation about the object.
Often files in a file system is classified by some sort of a suffix, for
example, GIF files are often ending in .gif, text files
in .txt etc. This binding is not static and it is therefore required
to have a dynamic binding just like the preferences themselves. An example
of the latter is HTML files which on most Unix systems end in .html
whereas they on many MS-DOS based systems end in .htm.
This module provides a generic binding mechanism between a file and its
representation internally in libwww. It is not limited to simple file suffi
x
classification but can also be used in more advanced environments using dat
a
bases etc. However, at this point we are interested in how we can register
bindings between file suffixes and for example content types, content langu
ages
etc. The Bind manager is born with a certain knowledge about the set of
delimiters but more can be added to provide the functionality desired.
All the binding management could of course be replaced by a database interf
ace.
This module is implemented by HTBind.c, and it is This module is implemented by HTBind.c, and it is
a part of the W3C Sample Code a part of the W3C Sample Code
Library. Library.
*/ */
#ifndef HTBIND_H #ifndef HTBIND_H
#define HTBIND_H #define HTBIND_H
#include "HTFormat.h" #include "HTFormat.h"
skipping to change at line 201 skipping to change at line 220
/* /*
End of declaration module End of declaration module
*/ */
#endif /* HTBIND_H */ #endif /* HTBIND_H */
/* /*
@(#) $Id: HTBind.html,v 2.17 1998/05/14 02:10:17 frystyk Exp $ @(#) $Id: HTBind.html,v 2.18 1999/06/30 21:05:13 frystyk Exp $
*/ */
 End of changes. 2 change blocks. 
11 lines changed or deleted 34 lines changed or added


 HTCache.h   HTCache.h 
skipping to change at line 140 skipping to change at line 140
the cache doesn't get filled with a very few, very large cached entries. the cache doesn't get filled with a very few, very large cached entries.
The default max size for a single cached entry is 3M. The value indicated The default max size for a single cached entry is 3M. The value indicated
must be in Mbytes, for example, a vaue of 3 would mean 3 MBytes. must be in Mbytes, for example, a vaue of 3 would mean 3 MBytes.
*/ */
extern BOOL HTCacheMode_setMaxCacheEntrySize (int size); extern BOOL HTCacheMode_setMaxCacheEntrySize (int size);
extern int HTCacheMode_maxCacheEntrySize (void); extern int HTCacheMode_maxCacheEntrySize (void);
/* /*
( (
Default expiration time of cache entries
)
If a response does not arrive with an expiration time and does not
explicitly forbid its being cached, use the default expiration time. The
time is given in seconds (e.g., 3,600 is one hour).
*/
extern void HTCacheMode_setDefaultExpiration (const int exp_time);
extern int HTCacheMode_DefaultExpiration (void);
/*
(
How do we handle Expiration of Cached Objects? How do we handle Expiration of Cached Objects?
) )
There are various ways of handling Expires header when met in There are various ways of handling Expires header when met in
a history list. Either it can be ignored all together, the user can a history list. Either it can be ignored all together, the user can
be notified with a warning, or the document can be reloaded automatically. be notified with a warning, or the document can be reloaded automatically.
This flag decides what action to be taken. The default action is This flag decides what action to be taken. The default action is
HT_EXPIRES_IGNORE. In HT_EXPIRES_NOTIFY mode , HT_EXPIRES_IGNORE. In HT_EXPIRES_NOTIFY mode ,
we push a message on to the Error stack which is presented to the user. we push a message on to the Error stack which is presented to the user.
*/ */
skipping to change at line 346 skipping to change at line 359
( (
Find a Cached Object Find a Cached Object
) )
Verifies if a cache object exists for this URL and if so returns a URL for Verifies if a cache object exists for this URL and if so returns a URL for
the cached object. It does not verify whether the object is valid or not, the cached object. It does not verify whether the object is valid or not,
for example it might have expired. Use the cache validation methods for che cking for example it might have expired. Use the cache validation methods for che cking
this. this.
*/ */
extern HTCache * HTCache_find (HTParentAnchor * anchor); extern HTCache * HTCache_find (HTParentAnchor * anchor, char * default_name );
/* /*
( (
Verify if an Object is Fresh Verify if an Object is Fresh
) )
This function checks whether a document has expired or not. The check is This function checks whether a document has expired or not. The check is
based on the metainformation passed in the anchor object The function retur ns based on the metainformation passed in the anchor object The function retur ns
the level of validation needed for getting a fresh version. We also check the level of validation needed for getting a fresh version. We also check
the cache control directives in the request to see if they change the fresh ness the cache control directives in the request to see if they change the fresh ness
skipping to change at line 412 skipping to change at line 425
extern BOOL HTCache_hasLock (HTCache * cache); extern BOOL HTCache_hasLock (HTCache * cache);
extern BOOL HTCache_releaseLock (HTCache * cache); extern BOOL HTCache_releaseLock (HTCache * cache);
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: HTCache.html,v 2.22 1999/02/22 15:56:04 kahan Exp $ @(#) $Id: HTCache.html,v 2.24 2000/06/19 13:43:33 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
2 lines changed or deleted 15 lines changed or added


 HTChannl.h   HTChannl.h 
skipping to change at line 140 skipping to change at line 140
methods. Please read the description in the methods. Please read the description in the
HTIOStream module on the parameters HTIOStream module on the parameters
target, param, and mode. The input and output target, param, and mode. The input and output
stream are instances created by the Transport stream are instances created by the Transport
object. The Transport Object defines the creation methods for the inout object. The Transport Object defines the creation methods for the inout
and output streams and the Channel object contains the actualy stream objec ts. and output streams and the Channel object contains the actualy stream objec ts.
*/ */
extern BOOL HTChannel_setInput (HTChannel * ch, HTInputStream * input); extern BOOL HTChannel_setInput (HTChannel * ch, HTInputStream * input);
extern HTInputStream * HTChannel_input (HTChannel * ch); extern HTInputStream * HTChannel_input (HTChannel * ch);
extern BOOL HTChannel_deleteInput (HTChannel * channel, int status);
extern BOOL HTChannel_setOutput (HTChannel * ch, HTOutputStream * output); extern BOOL HTChannel_setOutput (HTChannel * ch, HTOutputStream * output);
extern HTOutputStream * HTChannel_output (HTChannel * ch); extern HTOutputStream * HTChannel_output (HTChannel * ch);
extern BOOL HTChannel_deleteOutput (HTChannel * channel, int status);
extern HTInputStream * HTChannel_getChannelIStream (HTChannel * ch); extern HTInputStream * HTChannel_getChannelIStream (HTChannel * ch);
extern HTOutputStream * HTChannel_getChannelOStream (HTChannel * ch); extern HTOutputStream * HTChannel_getChannelOStream (HTChannel * ch);
/* /*
*/ */
#endif /* HTCHANNL */ #endif /* HTCHANNL */
/* /*
@(#) $Id: HTChannl.html,v 2.11 1999/02/22 15:58:04 kahan Exp $ @(#) $Id: HTChannl.html,v 2.12 1999/07/07 15:43:28 frystyk Exp $
*/ */
 End of changes. 3 change blocks. 
1 lines changed or deleted 3 lines changed or added


 HTChunk.h   HTChunk.h 
skipping to change at line 57 skipping to change at line 57
typedef struct _HTChunk HTChunk; typedef struct _HTChunk HTChunk;
extern HTChunk * HTChunk_new (int growby); extern HTChunk * HTChunk_new (int growby);
/* /*
. .
Free a chunk Free a chunk
. .
Free a chunk created by HTChunkCreatefrom memory Free a chunk created by HTChunk_newfrom memory
*/ */
extern void HTChunk_delete (HTChunk * ch); extern void HTChunk_delete (HTChunk * ch);
/* /*
. .
Clear a chunk Clear a chunk
. .
Keep the chunk in memory but clear all data kept inside. This can be used Keep the chunk in memory but clear all data kept inside. This can be used
skipping to change at line 169 skipping to change at line 169
increment the size counter with one corresponding to the zero. increment the size counter with one corresponding to the zero.
*/ */
extern void HTChunk_terminate (HTChunk * ch); extern void HTChunk_terminate (HTChunk * ch);
/* /*
. .
CString Conversions CString Conversions
. .
A Chunk may be build from an allocated string. The chunk assumes control A Chunk may be built from an allocated string. The chunk assumes control
of the passes string, elminating the need for additional allocations and of the passed string, elminating the need for additional allocations and
string copies. string copies.
Once a string is built, the chunk may be destroyed and the string kept arou nd. Once a string is built, the chunk may be destroyed and the string kept arou nd.
*/ */
extern HTChunk * HTChunk_fromCString (char * str, int grow); extern HTChunk * HTChunk_fromCString (char * str, int grow);
extern char * HTChunk_toCString (HTChunk * ch); extern char * HTChunk_toCString (HTChunk * ch);
/* /*
. .
Old Interface Names Old Interface Names
skipping to change at line 203 skipping to change at line 203
#define HTChunkData(ch) HTChunk_data(ch) #define HTChunkData(ch) HTChunk_data(ch)
#define HTChunkSize(ch) HTChunk_size(ch) #define HTChunkSize(ch) HTChunk_size(ch)
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: HTChunk.html,v 2.36 1999/02/05 21:35:50 frystyk Exp $ @(#) $Id: HTChunk.html,v 2.37 2000/07/04 15:26:00 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
4 lines changed or deleted 4 lines changed or added


 HTCookie.h   HTCookie.h 
skipping to change at line 158 skipping to change at line 158
/* /*
. .
Cookie Handling Mode Cookie Handling Mode
. .
The application can decide how cookies are to be handled - should they be The application can decide how cookies are to be handled - should they be
ignored, should the user be asked, etc. ignored, should the user be asked, etc.
*/ */
typedef enum _HTCookieMode { typedef enum _HTCookieMode {
HT_COOKIE_ACCEPT = 0x1, /* Accept cookies */ HT_COOKIE_ACCEPT = 0x1, /* Accept cookies */
HT_COOKIE_SEND = 0x2, /* Send cookies when fit */ HT_COOKIE_SEND = 0x2, /* Send cookies when fit */
HT_COOKIE_SAME_HOST = 0x4, /* Don't accept cookies for other ho HT_COOKIE_SAME_HOST = 0x4, /* Don't accept cookies for other hos
sts */ ts */
HT_COOKIE_PROMPT = 0x8 /* Prompt before accepting cookies * HT_COOKIE_SAME_DOMAIN = 0x8, /* Don't accept cookies for other dom
/ ains */
HT_COOKIE_PROMPT = 0x10 /* Prompt before accepting cookies */
} HTCookieMode; } HTCookieMode;
extern BOOL HTCookie_setCookieMode (HTCookieMode mode); extern BOOL HTCookie_setCookieMode (HTCookieMode mode);
extern HTCookieMode HTCookie_cookieMode (void); extern HTCookieMode HTCookie_cookieMode (void);
/* /*
*/ */
#endif /* HTCOOKIE_H */ #endif /* HTCOOKIE_H */
/* /*
@(#) $Id: HTCookie.html,v 2.2 1999/04/01 19:36:32 frystyk Exp $ @(#) $Id: HTCookie.html,v 2.3 1999/07/31 01:30:16 raff Exp $
*/ */
 End of changes. 2 change blocks. 
7 lines changed or deleted 8 lines changed or added


 HTHome.h   HTHome.h 
skipping to change at line 99 skipping to change at line 99
/* /*
. .
Create a New Anchor for Temporary Local Files Create a New Anchor for Temporary Local Files
. .
When the user starts writing a new document, the client application should When the user starts writing a new document, the client application should
create a new anchor which can contain the document while it is created. Thi s create a new anchor which can contain the document while it is created. Thi s
can also be the location for backups and for security "auto-save" functiona lity. can also be the location for backups and for security "auto-save" functiona lity.
This functions creates a new anchor with a URL pointing to the temporary This functions creates a new anchor with a URL pointing to the temporary
location defined by this user profile and returns that anchor. location defined by this user profile and returns that anchor.
Andy Levine: I additionally found that calling HTTmpAnchor repeatedly witho
ut
freeing the newly allocated anchor will cause the anchor hash table to
continue to grow.
*/ */
extern HTParentAnchor * HTTmpAnchor (HTUserProfile * up); extern HTParentAnchor * HTTmpAnchor (HTUserProfile * up);
/* /*
. .
Get The Current Directory in URL form Get The Current Directory in URL form
. .
Creates a local file URL that can be used as a relative name when calling Creates a local file URL that can be used as a relative name when calling
skipping to change at line 141 skipping to change at line 144
*/ */
extern BOOL HTParseFormInput (HTAssocList * list, const char * str); extern BOOL HTParseFormInput (HTAssocList * list, const char * str);
/* /*
. .
Handle Library Trace Messages Handle Library Trace Messages
. .
Standard interface to libwww TRACE messages. Standard interface to libwww TRACE messages.
Pass this function a string of characters and it will set up the appropriat e Pass this function a string of characters. It will set up the appropriate
TRACE flags. The following characters are used as follows: TRACE flags. The following characters are used as follows:
f f
Show BASIC UTILITIES Trace Messages Show BASIC UTILITIES Trace Messages
l l
Show APPLICATION LEVEL Trace Messages Show APPLICATION LEVEL Trace Messages
skipping to change at line 224 skipping to change at line 227
extern int HTSetTraceMessageMask (const char * shortnames); extern int HTSetTraceMessageMask (const char * shortnames);
/* /*
*/ */
#endif /* HTHOME_H */ #endif /* HTHOME_H */
/* /*
@(#) $Id: HTHome.html,v 2.17 1999/01/24 13:56:54 frystyk Exp $ @(#) $Id: HTHome.html,v 2.19 2000/07/04 15:19:45 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
2 lines changed or deleted 6 lines changed or added


 HTHost.h   HTHost.h 
skipping to change at line 248 skipping to change at line 248
channel object associated with it. channel object associated with it.
( (
Create a Channel to a Host Create a Channel to a Host
) )
As a Net Object doesn't necessarily know whether As a Net Object doesn't necessarily know whether
there is a channel up and running and whether that channel can be reused, there is a channel up and running and whether that channel can be reused,
it must do an explicit connect the the host. it must do an explicit connect the the host.
*/ */
extern int HTHost_connect (HTHost * host, HTNet * net, char * url, extern int HTHost_connect (HTHost * host, HTNet * net, char * url);
HTProtocolId port);
extern int HTHost_accept (HTHost * host, HTNet * net, HTNet ** accepted, extern int HTHost_accept (HTHost * host, HTNet * net, char * url);
char * url, HTProtocolId port);
extern int HTHost_listen (HTHost * host, HTNet * net, char * url);
/* /*
( (
Is Channel About to Close? Is Channel About to Close?
) )
As soon as we know that a channel is about to close (for example because As soon as we know that a channel is about to close (for example because
the server sends us a Connection: close header field) then we register the server sends us a Connection: close header field) then we register
this informtation in the Host object: this informtation in the Host object:
*/ */
skipping to change at line 636 skipping to change at line 636
(HTHost_ActivateRequestCallback * cbf); (HTHost_ActivateRequestCallback * cbf);
/* /*
*/ */
#endif /* HTHOST_H */ #endif /* HTHOST_H */
/* /*
@(#) $Id: HTHost.html,v 2.28 1999/03/31 19:48:21 frystyk Exp $ @(#) $Id: HTHost.html,v 2.29 1999/07/07 15:43:28 frystyk Exp $
*/ */
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 HTHstMan.h   HTHstMan.h 
skipping to change at line 78 skipping to change at line 78
/* When does this entry expire? */ /* When does this entry expire? */
time_t expires; /* Persistent channel expires time */ time_t expires; /* Persistent channel expires time */
int reqsPerConnection; /* from Keep-Alive : header */ int reqsPerConnection; /* from Keep-Alive : header */
int reqsMade; /* updated as they are sent */ int reqsMade; /* updated as they are sent */
/* Queuing and connection modes */ /* Queuing and connection modes */
HTList * pipeline; /* Pipe line of net objects */ HTList * pipeline; /* Pipe line of net objects */
HTList * pending; /* List of pending Net objects */ HTList * pending; /* List of pending Net objects */
HTNet * doit; /* Transfer from pending to pip e */ HTNet * doit; /* Transfer from pending to pip e */
HTNet * lock; /* This is a kludge! */ HTNet * lock; /* This is a kludge! */
HTNet * listening; /* Master for accepting connections */
BOOL persistent; BOOL persistent;
HTTransportMode mode; /* Supported mode */ HTTransportMode mode; /* Supported mode */
HTTimer * timer; /* Timer for handling idle connectio n */ HTTimer * timer; /* Timer for handling idle connectio n */
BOOL do_recover; /* If we are supposed to recove r */ BOOL do_recover; /* If we are supposed to recove r */
int recovered; /* How many times had we recovere d */ int recovered; /* How many times had we recovere d */
BOOL close_notification; /* Got a hint about clos e */ BOOL close_notification; /* Got a hint about clos e */
BOOL broken_pipe; BOOL broken_pipe;
/* Support for transports */ /* Support for transports */
HTChannel * channel; /* data channel */ HTChannel * channel; /* data channel */
skipping to change at line 106 skipping to change at line 107
/* Event Management */ /* Event Management */
HTEvent * events[HTEvent_TYPES];/* reading and writing may dif fer */ HTEvent * events[HTEvent_TYPES];/* reading and writing may dif fer */
HTEventType registeredFor; /* Which actions are we bl ocked on */ HTEventType registeredFor; /* Which actions are we bl ocked on */
size_t remainingRead; /* Tells HostEvent to call next net */ size_t remainingRead; /* Tells HostEvent to call next net */
/* User specific stuff */ /* User specific stuff */
ms_t delay; /* Write delay in m s */ ms_t delay; /* Write delay in m s */
void * context; /* Protocol Specific context */ void * context; /* Protocol Specific context */
int forceWriteFlush; int forceWriteFlush;
int inFlush; /* Tells if we're currently proces
sing
a file flush */
}; };
#define HTHost_bytesRead(me) ((me) ? (me)->bytes_read : -1) #define HTHost_bytesRead(me) ((me) ? (me)->bytes_read : -1)
#define HTHost_bytesWritten(me) ((me) ? (me)->bytes_written : -1) #define HTHost_bytesWritten(me) ((me) ? (me)->bytes_written : -1)
#define HTHost_setBytesRead(me,l) ((me) ? (me->bytes_read=(l)) : -1) #define HTHost_setBytesRead(me,l) ((me) ? (me->bytes_read=(l)) : -1)
#define HTHost_setBytesWritten(me,l) ((me) ? (me->bytes_written=(l)) :-1) #define HTHost_setBytesWritten(me,l) ((me) ? (me->bytes_written=(l)) :-1)
#define HTHost_setDNS (host, dns) ((me) ? (me->dns=(dns)) :-1) #define HTHost_setDNS (host, dns) ((me) ? (me->dns=(dns)) :-1)
/* /*
*/ */
#endif /* HTHSTMAN_H */ #endif /* HTHSTMAN_H */
/* /*
@(#) $Id: HTHstMan.html,v 2.17 1998/10/13 19:19:48 frystyk Exp $ @(#) $Id: HTHstMan.html,v 2.19 2000/07/28 13:52:23 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
1 lines changed or deleted 5 lines changed or added


 HTIcons.h   HTIcons.h 
skipping to change at line 142 skipping to change at line 142
. .
Get the alternative text (if any) for text based clients or if you don't Get the alternative text (if any) for text based clients or if you don't
want to download the image right away. The string returned must be freed want to download the image right away. The string returned must be freed
by the caller. by the caller.
*/ */
extern char * HTIcon_alternative (HTIconNode * node, BOOL brackets); extern char * HTIcon_alternative (HTIconNode * node, BOOL brackets);
/* /*
. .
Delete all icons
.
Cleans up all memory used by icons. Should be called by
HTLibTerminate() (but it isn't).
*/
extern void HTIcon_deleteAll (void);
/*
.
A Standard Set of Icons A Standard Set of Icons
. .
The WWWFile interface does not define a default The WWWFile interface does not define a default
set of icons but the Library distribution files comes with a standard set of icons but the Library distribution files comes with a standard
set of icons that can be used if desired. The Icons can be found in set of icons that can be used if desired. The Icons can be found in
$(datadir)/www-icons.The set covers the types described below $(datadir)/www-icons.The set covers the types described below
and they can be set up using the HTIconInit() and they can be set up using the HTIconInit()
initialization function in the WWWInit startup initialization function in the WWWInit startup
interface interface
skipping to change at line 182 skipping to change at line 192
tar.xbm for tar and gtar files tar.xbm for tar and gtar files
o o
compressed.xbm for compressed and gzipped files compressed.xbm for compressed and gzipped files
*/ */
#endif /* HTICONS */ #endif /* HTICONS */
/* /*
@(#) $Id: HTIcons.html,v 2.24 1998/05/14 02:10:35 frystyk Exp $ @(#) $Id: HTIcons.html,v 2.25 2000/01/04 20:25:32 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 11 lines changed or added


 HTInit.h   HTInit.h 
skipping to change at line 152 skipping to change at line 152
#include "WWWXML.h" #include "WWWXML.h"
#endif #endif
extern void HTConverterInit (HTList * conversions); extern void HTConverterInit (HTList * conversions);
/* /*
( (
Presenters Presenters
) )
The Presenters are used to present a media type to the use by calling The Presenters are used to present media types by calling
an external program, for example a post script viewer. This is a part of external programs, for example, a Postscript viewer. This is a part of
the stream stack algorithm. The Converters are also used in the stream the stream stack algorithm. The Converters are also used in the stream
stack, but are initialized separately. The Presenters use the same stack, but are initialized separately. The Presenters use the same
include files as the Converters. include files as the Converters.
*/ */
extern void HTPresenterInit (HTList * conversions); extern void HTPresenterInit (HTList * conversions);
/* /*
( (
Converters and Presenters Converters and Presenters
skipping to change at line 244 skipping to change at line 244
*/ */
extern void HTNetInit (void); extern void HTNetInit (void);
/* /*
. .
Default Access Authentication Modules Default Access Authentication Modules
. .
The Access Manager which is implemented as a The Access Manager which is implemented as a
BEFORE and an AFTER filter (automatically registered in BEFORE and an AFTER filter (automatically registered in
HTNetInit()) does not by default know of any access authentication HTNetInit()) does not, by default, know of any access
schemes. As everything else, this must be registered! This function does authentication schemes. As everything else, this must be registered! This
the job and should be all you need. function does the job and should be all you need.
*/ */
extern void HTAAInit (void); extern void HTAAInit (void);
/* /*
. .
Default Message and Dialog Functions Default Message and Dialog Functions
. .
We register a set of alert messages Not done automaticly - may be done by We register a set of alert messages Not done automaticly - may be done by
application! application!
skipping to change at line 285 skipping to change at line 285
extern void HTIconInit (const char * url_prefix); extern void HTIconInit (const char * url_prefix);
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: HTInit.html,v 2.53 1999/02/22 23:34:34 frystyk Exp $ @(#) $Id: HTInit.html,v 2.55 2000/07/04 15:14:45 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 HTLib.h   HTLib.h 
skipping to change at line 35 skipping to change at line 35
#ifndef HTLIB_H #ifndef HTLIB_H
#define HTLIB_H #define HTLIB_H
#include "HTUser.h" #include "HTUser.h"
/* /*
. .
Initializing and Terminating libwww Initializing and Terminating libwww
. .
These two functions initiates memory and settings for the libwww core and These two functions initialize memory and settings for the libwww core and
cleans up memory kept by libwww core when exiting the application. They cleans up memory kept by libwww core when exiting the application. They
 MUST be used as libwww otherwise is in a undefined state.  MUST be used as libwww otherwise is in a undefined state.
*/ */
extern BOOL HTLibInit (const char * AppName, const char * AppVersion); extern BOOL HTLibInit (const char * AppName, const char * AppVersion);
extern BOOL HTLibTerminate (void); extern BOOL HTLibTerminate (void);
/* /*
. .
Libwww Name and Version Libwww Name and Version
. .
skipping to change at line 103 skipping to change at line 103
extern const char * HTLib_appVersion (void); extern const char * HTLib_appVersion (void);
extern BOOL HTLib_setAppVersion (const char * version); extern BOOL HTLib_setAppVersion (const char * version);
/* /*
. .
Accessing the Local File System Accessing the Local File System
. .
Libwww does normally use the local file system for dumping unknown data obj ects, Libwww does normally use the local file system for dumping unknown data obj ects,
file cache etc. In some situations this is not desired and we can therefore file cache etc. In some situations this is not desired, and we can therefor e
turn it off. This mode also prevents you from being able to access other turn it off. This mode also prevents you from being able to access other
resources where you have to login telnet, for example. resources where you have to login telnet, for example.
*/ */
extern BOOL HTLib_secure (void); extern BOOL HTLib_secure (void);
extern void HTLib_setSecure (BOOL mode); extern void HTLib_setSecure (BOOL mode);
/* /*
. .
Default User Profile Default User Profile
. .
skipping to change at line 131 skipping to change at line 131
extern HTUserProfile * HTLib_userProfile (void); extern HTUserProfile * HTLib_userProfile (void);
extern BOOL HTLib_setUserProfile (HTUserProfile * up); extern BOOL HTLib_setUserProfile (HTUserProfile * up);
/* /*
*/ */
#endif /* HTLIB_H */ #endif /* HTLIB_H */
/* /*
@(#) $Id: HTLib.html,v 2.6 1998/10/15 20:09:34 frystyk Exp $ @(#) $Id: HTLib.html,v 2.7 2000/07/12 10:44:41 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 HTList.h   HTList.h 
skipping to change at line 68 skipping to change at line 68
/* /*
You can also append an element to the end of You can also append an element to the end of
the list (the end is the first entered object) by using the following funct ion: the list (the end is the first entered object) by using the following funct ion:
*/ */
extern BOOL HTList_appendObject (HTList * me, void * newObject); extern BOOL HTList_appendObject (HTList * me, void * newObject);
/* /*
The following two functions, contributed by Vic
Bancroft (bancroft@america.net) that do the same operation as above, but re
turn
a pointer to the new HTList element that was added or appended. This allow
s
one to keep a reference to the end of the list outside of the list itself,
which can be used to speed up certain list operations.
*/
extern HTList * HTList_addList (HTList * me, void * newObject);
extern HTList * HTList_appendList (HTList * me, void * newObject);
/*
. .
Remove List Elements Remove List Elements
. .
You can delete elements in a list using the following methods. The You can delete elements in a list using the following methods. The
first method only removes the first entry that it finds matching the first method only removes the first entry that it finds matching the
oldObject whereas the second method removes all oldObject whereas the second method removes all
occurances of oldObject. occurances of oldObject.
*/ */
skipping to change at line 171 skipping to change at line 182
Free list Free list
. .
*/ */
#define HTList_free(x) HT_FREE(x) #define HTList_free(x) HT_FREE(x)
#endif /* HTLIST_H */ #endif /* HTLIST_H */
/* /*
@(#) $Id: HTList.html,v 2.33 1998/05/14 02:10:39 frystyk Exp $ @(#) $Id: HTList.html,v 2.34 2000/06/15 13:48:44 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 14 lines changed or added


 HTLocal.h   HTLocal.h 
skipping to change at line 55 skipping to change at line 55
#define HT_FB_WRONLY O_WRONLY|O_CREAT #define HT_FB_WRONLY O_WRONLY|O_CREAT
#define HT_FT_WRONLY HT_FB_WRONLY #define HT_FT_WRONLY HT_FB_WRONLY
#define HT_FB_RDWR O_RDWR #define HT_FB_RDWR O_RDWR
#define HT_FT_RDWR HT_FB_RDWR #define HT_FT_RDWR HT_FB_RDWR
#define HT_FB_APPEND O_APPEND #define HT_FB_APPEND O_APPEND
#define HT_FT_APPEND HT_FB_APPEND #define HT_FT_APPEND HT_FB_APPEND
#else #else
typedef const char HTLocalMode[10]; typedef const char *HTLocalMode;
#define HT_FB_RDONLY "rb" #define HT_FB_RDONLY "rb"
#define HT_FT_RDONLY "r" #define HT_FT_RDONLY "r"
#define HT_FB_WRONLY "wb" #define HT_FB_WRONLY "wb"
#define HT_FT_WRONLY "w" #define HT_FT_WRONLY "w"
#define HT_FB_RDWR "r+b" #define HT_FB_RDWR "r+b"
#define HT_FT_RDWR "r+" #define HT_FT_RDWR "r+"
skipping to change at line 103 skipping to change at line 103
extern int HTFileClose (HTNet * net); extern int HTFileClose (HTNet * net);
/* /*
*/ */
#endif /* HTLOCAL_H */ #endif /* HTLOCAL_H */
/* /*
@(#) $Id: HTLocal.html,v 2.5 1998/05/14 02:10:40 frystyk Exp $ @(#) $Id: HTLocal.html,v 2.6 2000/02/29 14:32:15 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 HTMLPDTD.h   HTMLPDTD.h 
skipping to change at line 42 skipping to change at line 42
/* /*
. .
Number of HTML Entities Number of HTML Entities
. .
The entity names are defined in the C file. This gives the number of them. The entity names are defined in the C file. This gives the number of them.
Must Match all tables by element! Must Match all tables by element!
*/ */
#define HTML_ENTITIES 67 #define HTML_ENTITIES 100
/* /*
. .
HTML Element Enumeration HTML Element Enumeration
. .
These include tables in HTMLPDTD.c and These include tables in HTMLPDTD.c and
code in HTML.c. Note that not everything from code in HTML.c. Note that not everything from
HTML 4.0 is there! HTML 4.0 is there!
*/ */
skipping to change at line 345 skipping to change at line 345
HTML_ATTR(BUTTON,DIR), HTML_ATTR(BUTTON,DIR),
HTML_ATTR(BUTTON,DISABLED), HTML_ATTR(BUTTON,DISABLED),
HTML_ATTR(BUTTON,ID), HTML_ATTR(BUTTON,ID),
HTML_ATTR(BUTTON,LANG), HTML_ATTR(BUTTON,LANG),
HTML_ATTR(BUTTON,NAME), HTML_ATTR(BUTTON,NAME),
HTML_ATTR(BUTTON,STYLE), HTML_ATTR(BUTTON,STYLE),
HTML_ATTR(BUTTON,TABINDEX), HTML_ATTR(BUTTON,TABINDEX),
HTML_ATTR(BUTTON,TITLE), HTML_ATTR(BUTTON,TITLE),
HTML_ATTR(BUTTON,TYPE), HTML_ATTR(BUTTON,TYPE),
HTML_ATTR(BUTTON,VALUE), HTML_ATTR(BUTTON,VALUE),
HTML_ATTRIBUTES(BUTTON), HTML_ATTRIBUTES(BUTTON)
}; };
/* /*
( (
COL COL
) )
*/ */
enum _HTML_COL_Attributes { enum _HTML_COL_Attributes {
HTML_ATTR(COL,CLASS) = 0, HTML_ATTR(COL,CLASS) = 0,
skipping to change at line 1118 skipping to change at line 1118
extern void HTNextID (HTStructured * targetStream, const char * s); extern void HTNextID (HTStructured * targetStream, const char * s);
/* /*
*/ */
#endif /* HTMLDTD_H */ #endif /* HTMLDTD_H */
/* /*
@(#) $Id: HTMLPDTD.html,v 2.30 1999/04/02 16:10:36 frystyk Exp $ @(#) $Id: HTMLPDTD.html,v 2.32 2000/01/06 10:48:50 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 HTMuxCh.h   HTMuxCh.h 
skipping to change at line 112 skipping to change at line 112
extern int HTMuxSession_credit (HTMuxSession * session); extern int HTMuxSession_credit (HTMuxSession * session);
extern BOOL HTMuxSession_setCredit (HTMuxChannel * muxch, extern BOOL HTMuxSession_setCredit (HTMuxChannel * muxch,
HTMuxSessionId sid, int credit); HTMuxSessionId sid, int credit);
extern int HTMuxSession_fragment (HTMuxSession * session); extern int HTMuxSession_fragment (HTMuxSession * session);
extern BOOL HTMuxSession_setFragment (HTMuxChannel * muxch, extern BOOL HTMuxSession_setFragment (HTMuxChannel * muxch,
HTMuxSessionId sid, int fragment); HTMuxSessionId sid, int fragment);
extern int HTMuxSession_disposeData (HTMuxSession * me,
const char * buf, int len);
/* /*
. .
Mux Protocol Mux Protocol
. .
*/ */
extern BOOL HTMuxProtocol_add (HTMuxChannel * muxch, extern BOOL HTMuxProtocol_add (HTMuxChannel * muxch,
HTProtocolId pid, const char * protocol); HTProtocolId pid, const char * protocol);
extern BOOL HTMuxProtocol_delete (HTMuxChannel * muxch, HTProtocolId pid); extern BOOL HTMuxProtocol_delete (HTMuxChannel * muxch, HTProtocolId pid);
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: HTMuxCh.html,v 2.3 1998/05/14 02:10:47 frystyk Exp $ @(#) $Id: HTMuxCh.html,v 2.5 2000/08/04 10:37:51 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 4 lines changed or added


 HTNet.h   HTNet.h 
skipping to change at line 29 skipping to change at line 29
I/O for accessing data objects from the network (or local file system), the y I/O for accessing data objects from the network (or local file system), the y
can be used on any platform with or without support for native threads. In can be used on any platform with or without support for native threads. In
the case where you have an application using real threads the Net class is the case where you have an application using real threads the Net class is
simply a object maintaining links to all other objects involved in serving simply a object maintaining links to all other objects involved in serving
the request. If you are using the libwww pseudo threads then the Net object the request. If you are using the libwww pseudo threads then the Net object
contains enough information to stop and start a request based on which BSD contains enough information to stop and start a request based on which BSD
sockets are ready. In practise this is of course transparent to the applica tion sockets are ready. In practise this is of course transparent to the applica tion
- this is just to explain the difference. - this is just to explain the difference.
When a Request object is passed to the Library , When a Request object is passed to the Library ,
the core creates a new HTNet object pr channel the core creates a new HTNet object per channel
used by the request. In many cases a request only uses a single used by the request. In many cases a request only uses a single
channel object but for example FTP requests use channel object but, for example, FTP requests use
at least two - one for the control connection and one for the data connecti on. at least two - one for the control connection and one for the data connecti on.
You can find more information about the libwww pseudo thread model in the You can find more information about the libwww pseudo thread model in the
Multithread Specifications. Multithread Specifications.
This module is implemented by HTNet.c, and it is a This module is implemented by HTNet.c, and it is a
part of the W3C Sample Code Library. part of the W3C Sample Code Library.
*/ */
#ifndef HTNET_H #ifndef HTNET_H
skipping to change at line 69 skipping to change at line 69
#include "HTChannl.h" #include "HTChannl.h"
#include "HTDNS.h" #include "HTDNS.h"
/* /*
. .
Generic BEFORE and AFTER Filter Management Generic BEFORE and AFTER Filter Management
. .
Filter functions can be registered to be called before and Filter functions can be registered to be called before and
after a request has either been started or has terminated. The after a request has either been started or has terminated. The
conditions for BEFORE and AFTER filters are not the same so conditions for BEFORE and AFTER filters are not the same, and so
we maintain them independently. Filters can be registered globally or local ly. we maintain them independently. Filters can be registered globally or local ly.
The global filters are registered directly by the Net Object (this module) The global filters are registered directly by the Net Object (this module)
and the local filters are registered by the and the local filters are registered by the
HTRequest Object. However, both  local and HTRequest Object. However, both  local and
global filters use the same regisration mechanism which we provide here. global filters use the same regisration mechanism which we provide here.
( (
Filter Ordering Filter Ordering
) )
Filters can be registered by anyone and as they are an often used mechanism Filters can be registered by anyone and as they are an often used mechanism
skipping to change at line 149 skipping to change at line 149
/* /*
You can also unregister all instances of a BEFORE filter from a list using You can also unregister all instances of a BEFORE filter from a list using
the following function the following function
*/ */
extern BOOL HTNetCall_deleteBefore (HTList * list, HTNetBefore * before); extern BOOL HTNetCall_deleteBefore (HTList * list, HTNetBefore * before);
/* /*
You get rid of all BEFORE filters usign this function You get rid of all BEFORE filters using this function
*/ */
extern BOOL HTNetCall_deleteBeforeAll (HTList * list); extern BOOL HTNetCall_deleteBeforeAll (HTList * list);
/* /*
The BEFORE filters are expected and called if appropriate every time we iss ue The BEFORE filters are expected and called if appropriate every time we iss ue
a new request. Libwww calls the BEFORE filters in the order specified at a new request. Libwww calls the BEFORE filters in the order specified at
registration time. If a filter returns other than HT_OK then stop and retur n registration time. If a filter returns other than HT_OK then stop and retur n
immediately. Otherwise return what the last filter returns. immediately. Otherwise return what the last filter returns.
skipping to change at line 209 skipping to change at line 209
HT_RETRY HT_RETRY
Retry request after at a later time Retry request after at a later time
HT_PERM_REDIRECT HT_PERM_REDIRECT
The request has been permanently redirected and we send back the new UR L The request has been permanently redirected and we send back the new UR L
HT_TEMP_REDIRECT HT_TEMP_REDIRECT
The request has been temporaryly redirected and we send back the new UR L The request has been temporarily redirected and we send back the new UR L
HT_ALL HT_ALL
All of above All of above
A Protocol module can also in certain cases return a HT_IGNORE in A Protocol module can also, in certain cases, return a HT_IGNORE
which case no filters are called in which case no filters are called
*/ */
typedef int HTNetAfter (HTRequest * request, HTResponse * response, typedef int HTNetAfter (HTRequest * request, HTResponse * response,
void * param, int status); void * param, int status);
/* /*
You can register a AFTER filter in the list provided by the caller. Several You can register a AFTER filter in the list provided by the caller. Several
filters can be registered in which case they are called with the filter ord ering filters can be registered in which case they are called with the filter ord ering
in mind. in mind.
skipping to change at line 464 skipping to change at line 464
OK, else NO OK, else NO
*/ */
extern BOOL HTNet_newServer (HTRequest * request); extern BOOL HTNet_newServer (HTRequest * request);
/* /*
And you can create a plain new HTNet object using the following method: And you can create a plain new HTNet object using the following method:
*/ */
extern HTNet * HTNet_new (HTRequest * request); extern HTNet * HTNet_new (HTHost * host);
/* /*
( (
Duplicate an existing Object Duplicate an existing Object
) )
Creates a new HTNet object as a duplicate of the same request. Returns YES Creates a new HTNet object as a duplicate of the same request. Returns YES
if OK, else NO. if OK, else NO.
*/ */
skipping to change at line 770 skipping to change at line 770
extern BOOL HTNet_setRawBytesCount (HTNet * net, BOOL mode); extern BOOL HTNet_setRawBytesCount (HTNet * net, BOOL mode);
extern BOOL HTNet_rawBytesCount (HTNet * net); extern BOOL HTNet_rawBytesCount (HTNet * net);
/* /*
*/ */
#endif /* HTNET_H */ #endif /* HTNET_H */
/* /*
@(#) $Id: HTNet.html,v 2.55 1998/12/15 05:34:28 frystyk Exp $ @(#) $Id: HTNet.html,v 2.57 2000/07/04 15:18:51 kahan Exp $
*/ */
 End of changes. 8 change blocks. 
9 lines changed or deleted 9 lines changed or added


 HTParse.h   HTParse.h 
skipping to change at line 24 skipping to change at line 24
/* /*
This module contains code to parse URIs and various related things such as: This module contains code to parse URIs and various related things such as:
o o
Parse a URI for tokens Parse a URI for tokens
o o
Canonicalization of URIs Canonicalization of URIs
o o
Search a URI for illigal characters in order to prevent Search a URI for illegal characters in order to prevent
security holes security holes
This module is implemented by HTParse.c, and it is This module is implemented by HTParse.c, and it is
a part of the W3C Sample Code a part of the W3C Sample Code
Library. Library.
*/ */
#ifndef HTPARSE_H #ifndef HTPARSE_H
#define HTPARSE_H #define HTPARSE_H
skipping to change at line 192 skipping to change at line 192
extern BOOL HTCleanTelnetString (char * str); extern BOOL HTCleanTelnetString (char * str);
/* /*
*/ */
#endif /* HTPARSE_H */ #endif /* HTPARSE_H */
/* /*
@(#) $Id: HTParse.html,v 2.38 1999/04/01 19:37:11 frystyk Exp $ @(#) $Id: HTParse.html,v 2.39 2000/08/04 08:10:53 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 HTProfil.h   HTProfil.h 
skipping to change at line 121 skipping to change at line 121
/* /*
( (
Preemptive (Blocking) Client Preemptive (Blocking) Client
) )
Do not use preemptive profiles if you are doing PUT or Do not use preemptive profiles if you are doing PUT or
POST requests. POST requests.
We also have a blocking (preemptive) version of the same client interface. We also have a blocking (preemptive) version of the same client interface.
The difference is that this version uses traditional blocking sockets and The difference is that this version uses traditional blocking sockets and
hence only one reques can be performed at the same time. hence only one request can be performed at the same time.
*/ */
extern void HTProfile_newPreemptiveClient ( extern void HTProfile_newPreemptiveClient (
const char * AppName, const char * AppName,
const char * AppVersion); const char * AppVersion);
/* /*
. .
Robot Application Profile Robot Application Profile
. .
skipping to change at line 165 skipping to change at line 165
const char * AppVersion); const char * AppVersion);
/* /*
. .
Delete a Profile Delete a Profile
. .
This is a generic profile cleanup that should be used on all the profiles This is a generic profile cleanup that should be used on all the profiles
above. This will clean up the memory allocated by the profile and by the above. This will clean up the memory allocated by the profile and by the
Library core itself. After calling this you can not call any Library functi on Library core itself. After calling this you can not call any Library functi on
again. This call also superseeds the termination function for teh Library again. This call also supersedes the termination function for the Library
core, HTLibTerminate() so that you don't have to call that after core, HTLibTerminate() so that you don't have to call that after
calling this function. calling this function.
*/ */
extern void HTProfile_delete (void); extern void HTProfile_delete (void);
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: HTProfil.html,v 2.7 1999/01/06 15:38:47 frystyk Exp $ @(#) $Id: HTProfil.html,v 2.8 2000/07/12 10:44:41 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 HTProxy.h   HTProxy.h 
skipping to change at line 127 skipping to change at line 127
Delete all Noproxy Destinations Delete all Noproxy Destinations
) )
*/ */
extern BOOL HTNoProxy_deleteAll (void); extern BOOL HTNoProxy_deleteAll (void);
/* /*
The remove function removes all entries in the list. This is automatically The remove function removes all entries in the list. This is automatically
done in HTLibTerminate() done in HTLibTerminate()
(
Inverse the meaning of the NoProxy list
)
Allows to change the value of a flag so that the NoProxy list is interprete
d
as if it were an OnlyProxy list.
*/
extern int HTProxy_NoProxyIsOnlyProxy (void);
extern void HTProxy_setNoProxyIsOnlyProxy (int value);
/*
. .
Look for a Proxy server Look for a Proxy server
. .
This function evaluates the lists of registered proxies and if one is found This function evaluates the lists of registered proxies and if one is found
for the actual access method and it is not registered in the `noproxy' list , for the actual access method and it is not registered in the `noproxy' list ,
then a URL containing the host to be contacted is returned to the caller. then a URL containing the host to be contacted is returned to the caller.
This string must be freed be the caller. This string must be freed be the caller.
*/ */
skipping to change at line 188 skipping to change at line 200
extern void HTProxy_getEnvVar (void); extern void HTProxy_getEnvVar (void);
/* /*
*/ */
#endif /* HTPROXY_H */ #endif /* HTPROXY_H */
/* /*
@(#) $Id: HTProxy.html,v 2.13 1998/07/22 19:23:54 frystyk Exp $ @(#) $Id: HTProxy.html,v 2.14 2000/02/29 14:25:59 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 14 lines changed or added


 HTReq.h   HTReq.h 
skipping to change at line 104 skipping to change at line 104
*/ */
extern HTRequest * HTRequest_new (void); extern HTRequest * HTRequest_new (void);
/* /*
( (
Clear a Request Object Clear a Request Object
) )
Clears all protocol specific information so that the request object can be Clears all protocol specific information so that the request object can be
used for another request. It should be use with care as application specifi c used for another request. It should be used with care as application specif ic
information is not re-initialized. Returns YES if OK, else NO. information is not re-initialized. Returns YES if OK, else NO.
*/ */
extern BOOL HTRequest_clear (HTRequest * me); extern BOOL HTRequest_clear (HTRequest * me);
/* /*
( (
Create a duplicate Create a duplicate
) )
skipping to change at line 155 skipping to change at line 155
/* /*
. .
Issuing a Request Issuing a Request
. .
These are the "basic request methods" provided directly by the Request These are the "basic request methods" provided directly by the Request
class. This is a very low level API as the caller must have set up the requ est class. This is a very low level API as the caller must have set up the requ est
object before passing it to libwww. There are two versions: one for issuing object before passing it to libwww. There are two versions: one for issuing
client requests and one for issuing server requests. You will probably most client requests and one for issuing server requests. You will probably most
often use the client version but libwww can in fact also deal with incoming often use the client version, but, in fact, libwww can also deal with incom ing
connections. You can find many higher level issuing functions in the connections. You can find many higher level issuing functions in the
HTAccess module. If you like, you can of course HTAccess module. If you like, you can of course
use this directly! use this directly!
*/ */
extern BOOL HTLoad (HTRequest * request, BOOL recursive); extern BOOL HTLoad (HTRequest * request, BOOL recursive);
extern BOOL HTServe(HTRequest * request, BOOL recursive); extern BOOL HTServe(HTRequest * request, BOOL recursive);
/* /*
. .
skipping to change at line 197 skipping to change at line 197
The Request object is linked to a set of other libwww objects - here's how The Request object is linked to a set of other libwww objects - here's how
to get to these objects... to get to these objects...
( (
Binding to an Anchor Object Binding to an Anchor Object
) )
Every request object has an anchor associated Every request object has an anchor associated
with it. The anchor normally lives until the application terminates but a with it. The anchor normally lives until the application terminates but a
request object only lives as long as the request is being serviced. If the request object only lives as long as the request is being serviced. If the
anchor that we have requested is infact a child anchor then we always load anchor that we have requested is a child anchor then we always load
the parent anchor and then after the load jump to the location. A child anc the parent anchor; after the load jump to the location. A child anchor
hor
is a an anchor which points to a subpart of the document (has a "#" in the is a an anchor which points to a subpart of the document (has a "#" in the
URL). URL).
*/ */
extern void HTRequest_setAnchor (HTRequest *request, HTAnchor *anchor); extern void HTRequest_setAnchor (HTRequest *request, HTAnchor *anchor);
extern HTParentAnchor * HTRequest_anchor (HTRequest *request); extern HTParentAnchor * HTRequest_anchor (HTRequest *request);
extern HTChildAnchor * HTRequest_childAnchor (HTRequest * request); extern HTChildAnchor * HTRequest_childAnchor (HTRequest * request);
/* /*
skipping to change at line 323 skipping to change at line 323
flush at a later time. flush at a later time.
*/ */
extern int HTRequest_forceFlush (HTRequest * request); extern int HTRequest_forceFlush (HTRequest * request);
/* /*
. .
Dealing with Request Error Messages Dealing with Request Error Messages
. .
Errors are like almost anything kept in lists and a error list can be assoc Errors are, like almost anything, kept in lists. An error list can be
iated associated with a request using the following functions. In order to make
with a request using the following functions. In order to make life easier, life easier, there are also some easy mapping functions to the
there are also some easy mapping functions to the
HTError object, so that you can add an error directly HTError object, so that you can add an error directly
to a request object. to a request object.
*/ */
extern HTList * HTRequest_error (HTRequest * request); extern HTList * HTRequest_error (HTRequest * request);
extern void HTRequest_setError (HTRequest * request, HTList * list); extern void HTRequest_setError (HTRequest * request, HTList * list);
extern void HTRequest_deleteAllErrors (HTRequest * request); extern void HTRequest_deleteAllErrors (HTRequest * request);
/* /*
skipping to change at line 403 skipping to change at line 403
A TRACE request MUST NOT include an entity. A TRACE request MUST NOT include an entity.
*/ */
extern BOOL HTRequest_setMaxForwards (HTRequest * request, int maxforwards) ; extern BOOL HTRequest_setMaxForwards (HTRequest * request, int maxforwards) ;
extern int HTRequest_maxForwards (HTRequest * request); extern int HTRequest_maxForwards (HTRequest * request);
/* /*
. .
Preemptive or Non-preemptive Access Preemptive or Non-preemptive Access
. .
A access scheme is defined with a default for using either preemptive (bloc An access scheme is defined with a default for using either preemptive (blo
king cking
I/O) or non-premitve (non-blocking I/O). This is basically a result of the I/O) or non-preemptive (non-blocking I/O). This is basically a result of th
e
implementation of the protocol module itself. However, if non-blocking I/O implementation of the protocol module itself. However, if non-blocking I/O
is the default then some times it is nice to be able to set the mode to blo cking is the default then some times it is nice to be able to set the mode to blo cking
instead. For example when loading the first document (the home page) then instead. For example, when loading the first document (the home page),
blocking can be used instead of non-blocking. blocking mode can be used instead of non-blocking.
*/ */
extern void HTRequest_setPreemptive (HTRequest *request, BOOL mode); extern void HTRequest_setPreemptive (HTRequest *request, BOOL mode);
extern BOOL HTRequest_preemptive (HTRequest *request); extern BOOL HTRequest_preemptive (HTRequest *request);
/* /*
. .
Content Negotiation Content Negotiation
. .
skipping to change at line 631 skipping to change at line 631
Extending The Default Set Of Header Fields Extending The Default Set Of Header Fields
. .
See also how to set up default header fields. There See also how to set up default header fields. There
are three ways to extend the set of headers that are sent in a request: are three ways to extend the set of headers that are sent in a request:
o o
A simple association list A simple association list
o o
A stream oriented approach where the stream (called A stream oriented approach where the stream (called
a generator) has direct access to the outgoing stream. That it, it can a generator) has direct access to the outgoing stream. That is, it can
add any header it likes. add any header it likes.
o o
HTTP extension mechanism which HTTP extension mechanism which
is a much better way for handling extensions. is a much better way for handling extensions.
( (
1) Simple Association List 1) Simple Association List
) )
Add the (name, value) and it will be converted into MIME header format as Add the (name, value) and it will be converted into MIME header format as
skipping to change at line 762 skipping to change at line 762
extern void HTRequest_setCharset (HTRequest *request, HTList *charset, BOOL override); extern void HTRequest_setCharset (HTRequest *request, HTList *charset, BOOL override);
extern HTList * HTRequest_charset (HTRequest *request); extern HTList * HTRequest_charset (HTRequest *request);
/* /*
. .
HTTP Cache Validation and Cache Control HTTP Cache Validation and Cache Control
. .
The Library has two concepts of caching: in memory and on file. When loadin g The Library has two concepts of caching: in memory and on file. When loadin g
a document, this flag can be set in order to define who can give a response a document, this flag can be set in order to define who can give a response
to the request. The mempory buffer is considered to be equivalent to a hist ory to the request. The memory buffer is considered to be equivalent to a histo ry
buffer. That is, it doesn't not follow the same expiration mechanism that buffer. That is, it doesn't not follow the same expiration mechanism that
is characteristic for a persistent file cache. is characteristic for a persistent file cache.
You can also set the cache to run in disconnected mode - see the You can also set the cache to run in disconnected mode - see the
Cache manager for more details on how to do this. Cache manager for more details on how to do this.
*/ */
typedef enum _HTReload { typedef enum _HTReload {
HT_CACHE_OK = 0x0, /* Use any version a vailable */ HT_CACHE_OK = 0x0, /* Use any version a vailable */
HT_CACHE_FLUSH_MEM = 0x1, /* Reload from file cache or network */ HT_CACHE_FLUSH_MEM = 0x1, /* Reload from file cache or network */
skipping to change at line 784 skipping to change at line 784
HT_CACHE_END_VALIDATE = 0x4, /* End to end validatio n */ HT_CACHE_END_VALIDATE = 0x4, /* End to end validatio n */
HT_CACHE_RANGE_VALIDATE = 0x8, HT_CACHE_RANGE_VALIDATE = 0x8,
HT_CACHE_FLUSH = 0x10, /* Force full reload */ HT_CACHE_FLUSH = 0x10, /* Force full reload */
HT_CACHE_ERROR = 0x20 /* An error occurred in the cach e */ HT_CACHE_ERROR = 0x20 /* An error occurred in the cach e */
} HTReload; } HTReload;
extern void HTRequest_setReloadMode (HTRequest *request, HTReload mode); extern void HTRequest_setReloadMode (HTRequest *request, HTReload mode);
extern HTReload HTRequest_reloadMode (HTRequest *request); extern HTReload HTRequest_reloadMode (HTRequest *request);
/* /*
.
Default PUT name
.
When publishing to a server which doesn't accept a URL ending in "/", e.g,
the default Overview, index page, you can use
HTRequest_setAltPutName to setup the intended URL. If this
variable is defined, it'll be used during the cache lookup and update
operationsm, so that cache-wise, it will look as if we had published
only to "/".
*/
extern char * HTRequest_defaultPutName (HTRequest * me);
extern BOOL HTRequest_setDefaultPutName (HTRequest * me, char * name);
extern BOOL HTRequest_deleteDefaultPutName (HTRequest * me);
/*
( (
HTTP Cache Control Directives HTTP Cache Control Directives
) )
The cache control directives are all part of the cache control header and The cache control directives are all part of the cache control header and
control the behavior of any intermediate cache between the user agent and control the behavior of any intermediate cache between the user agent and
the origin server. This association list is a list of the connection contro l the origin server. This association list is a list of the connection contro l
directives that are to be sent as part of the Cache-Control directives that are to be sent as part of the Cache-Control
header. header.
*/ */
skipping to change at line 1223 skipping to change at line 1240
extern long HTRequest_bytesRead (HTRequest * request); extern long HTRequest_bytesRead (HTRequest * request);
extern long HTRequest_bytesWritten (HTRequest * request); extern long HTRequest_bytesWritten (HTRequest * request);
/* /*
*/ */
#endif /* HTREQ_H */ #endif /* HTREQ_H */
/* /*
@(#) $Id: HTReq.html,v 2.66 1999/03/19 14:24:37 frystyk Exp $ @(#) $Id: HTReq.html,v 2.68 2000/07/12 10:44:41 kahan Exp $
*/ */
 End of changes. 10 change blocks. 
17 lines changed or deleted 33 lines changed or added


 HTReqMan.h   HTReqMan.h 
skipping to change at line 223 skipping to change at line 223
This association list is a list of the cache control directives that are This association list is a list of the cache control directives that are
to be sent as part of the Cache-Control header. to be sent as part of the Cache-Control header.
*/ */
HTReload reload; HTReload reload;
HTAssocList * cache_control; HTAssocList * cache_control;
/* /*
( (
Default PUT name
)
Stores the default name when publishing to a "/" URL.
*/
char * default_put_name;
/*
(
Byte Ranges Byte Ranges
) )
This association list is a list of the cache control directives that are This association list is a list of the cache control directives that are
to be sent as part of the Range header. to be sent as part of the Range header.
*/ */
HTAssocList * byte_ranges; HTAssocList * byte_ranges;
/* /*
skipping to change at line 413 skipping to change at line 423
/* /*
End of Declaration End of Declaration
*/ */
#endif /* HTREQMAN_H */ #endif /* HTREQMAN_H */
/* /*
@(#) $Id: HTReqMan.html,v 2.44 1999/03/19 14:24:37 frystyk Exp $ @(#) $Id: HTReqMan.html,v 2.45 2000/02/29 14:23:17 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 11 lines changed or added


 HTResponse.h   HTResponse.h 
skipping to change at line 19 skipping to change at line 19
/* /*
** (c) COPYRIGHT MIT 1995. ** (c) COPYRIGHT MIT 1995.
** Please first read the full copyright statement in the file COPYRIGH. ** Please first read the full copyright statement in the file COPYRIGH.
*/ */
/* /*
The response object is created as a placeholder for the response received The response object is created as a placeholder for the response received
by the remote server. All filters can then use the information passed in by the remote server. All filters can then use the information passed in
the response and act appropriately. The response objetc is deleted automati cally the response and act appropriately. The response object is deleted automati cally
when the corresponding request object is deleted. We try and do some fancy when the corresponding request object is deleted. We try and do some fancy
tricks in order to do lazy parsing and reusing parsed values so that we can tricks in order to do lazy parsing and reusing parsed values so that we can
optimize the code. optimize the code.
The Response object is created automatically when we start to receive
metainformation (for example MIME headers) and is
linked to the Request object. The
Response object is also deleted automatically when the corresponding reques
t
object is deleted but it can of course be deleted before if this is
desired.
Note that if you are using non-blocking sockets then libwww
behaves asynchronously as you may issue multiple requests and get back the
responses in the order they appear on the net interface.
This module is implemented by HTResponse.c, and This module is implemented by HTResponse.c, and
it is a part of the W3C Sample Code it is a part of the W3C Sample Code
Library. Library.
*/ */
#ifndef HTRESPONSE_H #ifndef HTRESPONSE_H
#define HTRESPONSE_H #define HTRESPONSE_H
typedef struct _HTResponse HTResponse; typedef struct _HTResponse HTResponse;
skipping to change at line 429 skipping to change at line 440
extern HTAssocList * HTResponse_handOverHeader (HTResponse * me); extern HTAssocList * HTResponse_handOverHeader (HTResponse * me);
/* /*
*/ */
#endif /* HTRESPONSE_H */ #endif /* HTRESPONSE_H */
/* /*
@(#) $Id: HTResponse.html,v 2.11 1999/02/01 18:46:37 frystyk Exp $ @(#) $Id: HTResponse.html,v 2.12 2000/08/04 08:16:00 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
2 lines changed or deleted 14 lines changed or added


 HTString.h   HTString.h 
skipping to change at line 75 skipping to change at line 75
. .
The usual routines (comp instead of cmp) had some problem. The usual routines (comp instead of cmp) had some problem.
*/ */
extern int strcasecomp (const char *a, const char *b); extern int strcasecomp (const char *a, const char *b);
extern int strncasecomp (const char *a, const char *b, int n); extern int strncasecomp (const char *a, const char *b, int n);
/* /*
. .
Tail String Comparison
.
Like strcmp, but match the tail of s2 (used for cookie domain comparison)
*/
extern int tailcomp(const char * s1, const char * s2);
extern int tailcasecomp(const char * s1, const char * s2);
/*
.
String Comparison with Wild Card Match String Comparison with Wild Card Match
. .
String comparison function for file names with one wildcard * in the templa te. String comparison function for file names with one wildcard * in the templa te.
Arguments are: Arguments are:
tmpl tmpl
is a template string to match the name against. agaist, may contain a s ingle is a template string to match the name against. agaist, may contain a s ingle
wildcard character * which matches zero or more arbitrary characters. wildcard character * which matches zero or more arbitrary characters.
skipping to change at line 126 skipping to change at line 137
extern char * HTStrip (char * s); extern char * HTStrip (char * s);
/* /*
*/ */
#endif /* !HTSTRING_H */ #endif /* !HTSTRING_H */
/* /*
@(#) $Id: HTString.html,v 2.37 1999/04/12 15:01:21 frystyk Exp $ @(#) $Id: HTString.html,v 2.38 1999/07/31 01:27:55 raff Exp $
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 12 lines changed or added


 HTTCP.h   HTTCP.h 
skipping to change at line 45 skipping to change at line 45
This makes an active connect to the specified host. An This makes an active connect to the specified host. An
HTNet Object is parsed in order to handle errors HTNet Object is parsed in order to handle errors
and other stuff. The default port might be overwritten by any port indicati on and other stuff. The default port might be overwritten by any port indicati on
in the URL specified in the URL specified
as <host>:<port> If it is a multihomed host (a as <host>:<port> If it is a multihomed host (a
host having multiple IP-addresses with the same host name) &nbsp;then host having multiple IP-addresses with the same host name) &nbsp;then
HTDoConnect() measures the time it takes to connect and updates HTDoConnect() measures the time it takes to connect and updates
the calculated weights in the DNS object. the calculated weights in the DNS object.
*/ */
extern int HTDoConnect (HTNet * net, char * url, u_short default_port); extern int HTDoConnect (HTNet * net);
/* /*
. .
Passive Connection Establishment Passive Connection Establishment
. .
This function makes an accept on a port. The net must contain This function makes an accept on a port. The net must contain
a valid socket to accept on. If accept is OK then we duplicate the a valid socket to accept on. If accept is OK then we duplicate the
net object and assign the accepted socket to the newly created net object. net object and assign the accepted socket to the newly created net object.
The original Net object will keep accepting connections The original Net object will keep accepting connections
on the original socket, for example port 80 in the case of on the original socket, for example port 80 in the case of
HTTP. The newly created Net object will be freed HTTP. The newly created Net object will be freed
when the protocol module has finished. If the when the protocol module has finished. If the
accepted net object pointer points to the net object itself, that accepted net object pointer points to the net object itself, that
is - the same object all along - then we reuse the same Net obejct; closes is - the same object all along - then we reuse the same Net obejct; closes
the original socket and replaces it wik the accepted one. This is a quick the original socket and replaces it wik the accepted one. This is a quick
way of accepting a single connection. way of accepting a single connection.
*/ */
extern int HTDoAccept (HTNet * net, HTNet ** accepted);
extern int HTDoAccept (HTNet * listen, HTNet * accept);
/* /*
. .
Listen on a Socket Listen on a Socket
. .
Listens on the specified port. Passing port 0 means that we Listens on the specified port described in the Net
don't care and a temporary one will be assigned. If object. backlog is the number of connections that can be
master==INVSOC then we listen on all local interfaces (using queued on the socket - you can use HT_BACKLOG for a
a wildcard). If INVSOC is not NULL then platform dependent value (typically 5 on BSD and 32 on SVR4). Returns
use this as the local interface. backlog is the number of HT_ERROR or HT_OK.
connections that can be queued on the socket - you can use
HT_BACKLOG for a platform dependent value (typically 5 on BSD
and 32 on SVR4). Returns HT_ERROR or HT_OK.
*/ */
extern int HTDoListen (HTNet * net, u_short port, SOCKET master, int backlo
g); extern int HTDoListen (HTNet * net, HTNet * accept, int backlog);
/* /*
. .
Closing a socket Closing a socket
. .
Closes a socket Closes a socket
*/ */
extern int HTDoClose (HTNet * net); extern int HTDoClose (HTNet * net);
/* /*
*/ */
#endif /* HTTCP_H */ #endif /* HTTCP_H */
/* /*
@(#) $Id: HTTCP.html,v 2.43 1998/05/14 02:11:08 frystyk Exp $ @(#) $Id: HTTCP.html,v 2.44 1999/07/07 15:43:28 frystyk Exp $
*/ */
 End of changes. 5 change blocks. 
13 lines changed or deleted 11 lines changed or added


 HTTP.h   HTTP.h 
skipping to change at line 88 skipping to change at line 88
the communication. the communication.
*/ */
extern HTProtCallback HTLoadHTTP; extern HTProtCallback HTLoadHTTP;
extern HTConverter HTTPStatus_new; extern HTConverter HTTPStatus_new;
#endif /* HTTP_H */ #endif /* HTTP_H */
/* /*
@(#) $Id: HTTP.html,v 2.39 1998/11/19 17:03:24 frystyk Exp $ @(#) $Id: HTTP.html,v 2.40 2000/02/29 16:34:15 kahan Exp $
*/ */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 HTTimer.h   HTTimer.h 
skipping to change at line 17 skipping to change at line 17
! !
*/ */
/* /*
** (c) COPYRIGHT MIT 1995. ** (c) COPYRIGHT MIT 1995.
** Please first read the full copyright statement in the file COPYRIGH. ** Please first read the full copyright statement in the file COPYRIGH.
*/ */
/* /*
The Timer class handles timer for libwww and the application. This works The Timer class handles timers for libwww and the application. This works
exactly as in X where you create a timer object with a callback function exactly as in X where you create a timer object with a callback function
and a timeout. The callback will be called every time the timer expires. and a timeout. The callback will be called every time the timer expires.
There are several timeouts that can be set in libwww:
o
The time we keep an idle persistent connection open. Here there
are in fact
two mechanisms depending on whether you use blocking or non-blo
cking sockets.
The default is 60 secs. The timers can be accessed using the fu
nctions defined
in the HTHost object
o
The idle time we want to wait when receiving a response from a
server, that
is, if it doesn't send anything in a number of secs. The defaul
t here is
no timeout. It can be accessed in the
HTHost object as well.
o
The timeout before we flush pending requests in a pipeline, the
default here
is 30 ms. It is also accessed in the HTHost
object
o
The timeout before we start sending the body of a PUT or
POST request. Normally we send the Expect: 100-continue
header field but if the server doesn't send back a 100 Continue
code then we upload the body anyway. The default is 2 secs and can be a
ccessed
in the HTTP module.
*/ */
#ifndef HTTIMER_H #ifndef HTTIMER_H
#define HTTIMER_H #define HTTIMER_H
#include "wwwsys.h" #include "wwwsys.h"
#include "HTReq.h" #include "HTReq.h"
typedef struct _HTTimer HTTimer; typedef struct _HTTimer HTTimer;
skipping to change at line 149 skipping to change at line 172
extern BOOL HTTimer_registerSetTimerCallback (HTTimerSetCallback * cbf); extern BOOL HTTimer_registerSetTimerCallback (HTTimerSetCallback * cbf);
extern BOOL HTTimer_registerDeleteTimerCallback (HTTimerSetCallback * cbf); extern BOOL HTTimer_registerDeleteTimerCallback (HTTimerSetCallback * cbf);
/* /*
*/ */
#endif /* HTTIMER_H */ #endif /* HTTIMER_H */
/* /*
@(#) $Id: HTTimer.html,v 2.10 1999/02/22 15:58:04 kahan Exp $ @(#) $Id: HTTimer.html,v 2.11 1999/06/30 21:05:13 frystyk Exp $
*/ */
 End of changes. 3 change blocks. 
2 lines changed or deleted 32 lines changed or added


 HTTrans.h   HTTrans.h 
skipping to change at line 45 skipping to change at line 45
#ifndef HTTRANS_H #ifndef HTTRANS_H
#define HTTRANS_H #define HTTRANS_H
/* /*
. .
Creation and Deletion Methods Creation and Deletion Methods
. .
All transport interfaces are registered dynamically in libwww. This means All transport interfaces are registered dynamically in libwww. This means
that libwww is independent of the transport being used (for example TCP) that libwww is independent of the transport being used (TCP, for example),
and you can therefore use libwww in any context you like. You have to speci fy and you can therefore use libwww in any context you like. You have to speci fy
a set of parameters in order for libwww to be able to use it. The transport a set of parameters in order for libwww to be able to use it. The transport
class is defined as follows: class is defined as follows:
*/ */
typedef struct _HTTransport HTTransport; typedef struct _HTTransport HTTransport;
typedef enum _HTTransportMode { typedef enum _HTTransportMode {
HT_TP_SINGLE = 0, /* One single request at a time */ HT_TP_SINGLE = 0, /* One single request at a time */
HT_TP_PIPELINE = 1, /* Use pipelined requests */ HT_TP_PIPELINE = 1, /* Use pipelined requests */
skipping to change at line 148 skipping to change at line 148
HTOutput_new * output_new; /* Output stream creation method */ HTOutput_new * output_new; /* Output stream creation method */
}; };
/* /*
*/ */
#endif /* HTTRANS_H */ #endif /* HTTRANS_H */
/* /*
@(#) $Id: HTTrans.html,v 2.7 1998/05/14 02:11:14 frystyk Exp $ @(#) $Id: HTTrans.html,v 2.8 2000/07/04 15:11:35 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 HTUtils.h   HTUtils.h 
skipping to change at line 133 skipping to change at line 133
SHOW_PROTOCOL_TRACE = 0x80, SHOW_PROTOCOL_TRACE = 0x80,
SHOW_MEM_TRACE = 0x100, SHOW_MEM_TRACE = 0x100,
SHOW_URI_TRACE = 0x200, SHOW_URI_TRACE = 0x200,
SHOW_AUTH_TRACE = 0x400, SHOW_AUTH_TRACE = 0x400,
SHOW_ANCHOR_TRACE = 0x800, SHOW_ANCHOR_TRACE = 0x800,
SHOW_PICS_TRACE = 0x1000, SHOW_PICS_TRACE = 0x1000,
SHOW_CORE_TRACE = 0x2000, SHOW_CORE_TRACE = 0x2000,
SHOW_MUX_TRACE = 0x4000, SHOW_MUX_TRACE = 0x4000,
SHOW_SQL_TRACE = 0x8000, SHOW_SQL_TRACE = 0x8000,
SHOW_XML_TRACE = 0x10000, SHOW_XML_TRACE = 0x10000,
SHOW_ALL_TRACE = 0xFFFFFFFF SHOW_ALL_TRACE = (int) 0xFFFFFFFF
} HTTraceFlags; } HTTraceFlags;
/* /*
The flags are made so that they can serve as a group flag for correlated The flags are made so that they can serve as a group flag for correlated
trace messages, e.g. showing messages for SGML and HTML at the same time. trace messages, e.g. showing messages for SGML and HTML at the same time.
*/ */
#define UTIL_TRACE (WWWTRACE & SHOW_UTIL_TRACE) #define UTIL_TRACE (WWWTRACE & SHOW_UTIL_TRACE)
#define APP_TRACE (WWWTRACE & SHOW_APP_TRACE) #define APP_TRACE (WWWTRACE & SHOW_APP_TRACE)
skipping to change at line 403 skipping to change at line 403
#include "HTMemory.h" #include "HTMemory.h"
/* /*
*/ */
#endif /* HT_UTILS.h */ #endif /* HT_UTILS.h */
/* /*
@(#) $Id: HTUtils.html,v 2.91 1999/04/04 00:10:14 frystyk Exp $ @(#) $Id: HTUtils.html,v 2.92 2000/01/06 10:48:50 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 HTXML.h   HTXML.h 
skipping to change at line 58 skipping to change at line 58
extern HTConverter HTXML_new; extern HTConverter HTXML_new;
/* /*
. .
Callback Handler Announcing a new Expat Stream object Callback Handler Announcing a new Expat Stream object
. .
When a libwww to expat XML stream converter instance When a libwww to expat XML stream converter instance
is created, the stream checks to see if there are any callbacks registered is created, the stream checks to see if there are any callbacks registered
which should be notified about the new stream instance. If that is the case which should be notified about the new stream instance. If that is the case
then this callback is called and a pointer to the XML parsed passed along. then this callback is called and a pointer to the XML parser passed along.
The output stream is the target that was originally set for the request obj ect The output stream is the target that was originally set for the request obj ect
before the request was issued. before the request was issued.
*/ */
typedef void HTXMLCallback_new ( typedef void HTXMLCallback_new (
HTStream * me, HTStream * me,
HTRequest * request, HTRequest * request,
HTFormat target_format, HTFormat target_format,
HTStream * target_stream, HTStream * target_stream,
XML_Parser xmlparser); XML_Parser xmlparser,
void * context);
/* /*
( (
Register Creation notification Callback Register Creation notification Callback
) )
@@@Should be handled via XML names spaces@@@
*/ */
extern BOOL HTXMLCallback_registerNew (HTXMLCallback_new *); extern BOOL HTXMLCallback_registerNew (HTXMLCallback_new *, void * context) ;
/* /*
. .
XML Expat Stream to Libwww Structured Stream XML Expat Stream to Libwww Structured Stream
. .
This is a stream that converts from the expat stream to a This is a stream that converts from the expat stream to a
libwww structured stream. Again, the application libwww structured stream. Again, the application
can can
*/ */
skipping to change at line 105 skipping to change at line 107
extern BOOL HTXMLStructured_setUserData (HTStream * me, void * user_data); extern BOOL HTXMLStructured_setUserData (HTStream * me, void * user_data);
extern HTStream * HTXMLStructured_new (const SGML_dtd * dtd, HTStructured * starget); extern HTStream * HTXMLStructured_new (const SGML_dtd * dtd, HTStructured * starget);
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: HTXML.html,v 2.2 1999/02/22 01:04:24 frystyk Exp $ @(#) $Id: HTXML.html,v 2.3 1999/04/18 20:23:51 frystyk Exp $
*/ */
 End of changes. 5 change blocks. 
4 lines changed or deleted 6 lines changed or added


 WWWFile.h   WWWFile.h 
skipping to change at line 63 skipping to change at line 63
itself. You can read more about the transport managament in the itself. You can read more about the transport managament in the
Transport Interface. Transport Interface.
*/ */
#include "HTFile.h" #include "HTFile.h"
/* /*
( (
Content Negotiation Content Negotiation
) )
When accessing the lccal file system, you can enable content negotiation When accessing the local file system, you can enable content negotiation
as described in the HTTP as described in the HTTP
specification. &nbsp;The content negotiation algorithm is based on file specification. &nbsp;The content negotiation algorithm is based on file
suffixes as defined by the Bind manager. When looking suffixes as defined by the Bind manager. When looking
for a file you do not have to specify a suffix. Instead this module for a file you do not have to specify a suffix. Instead this module
looks for all alternatives with the same main name. For example, looking looks for all alternatives with the same main name. For example, looking
for the file Overview can result in any of the files (or directories) for the file Overview can result in any of the files (or directories)
Overview.txt, Overview.html, Overview.ps etc. The selection Overview.txt, Overview.html, Overview.ps etc. The selection
algorithm is based on the values of the preferences for language, media typ e, algorithm is based on the values of the preferences for language, media typ e,
encoding, etc. - exactly like a server would do with the accept encoding, etc. - exactly like a server would do with the accept
headers. headers.
skipping to change at line 118 skipping to change at line 118
*/ */
#ifdef __cplusplus #ifdef __cplusplus
} /* end extern C definitions */ } /* end extern C definitions */
#endif #endif
#endif #endif
/* /*
@(#) $Id: WWWFile.html,v 2.10 1999/02/07 18:31:24 frystyk Exp $ @(#) $Id: WWWFile.html,v 2.11 2000/07/04 15:08:14 kahan Exp $
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 WWWXML.h   WWWXML.h 
/* /*
W3C Sample Code Library libwww XML E xpat Parser Wrapper W3C Sample Code Library libwww XML/R DF Module
! !
Declaration of W3C Sample Code XML Expat Parser Module Declaration of W3C Sample Code XML/RDF Module
! !
*/ */
/* /*
** (c) COPYRIGHT MIT 1995. ** (c) COPYRIGHT MIT 1999.
** Please first read the full copyright statement in the file COPYRIGH. ** Please first read the full copyright statement in the file COPYRIGH.
*/ */
/* /*
Thanks so much to John Punin for writing this code!
We use James Clark's expat We use James Clark's expat
XML parser which is very neat indeed. As the code doesn't come as a separat e XML parser which is very neat indeed. As the code doesn't come as a separat e
library, I included it in the libwww CVS code base where I compile is as library, I included it in the libwww CVS code base where I compile is as
two libraries: libxmltok.a and libxmlparse.a. See two libraries: libxmltok.a and libxmlparse.a. See
the external modules that libwww works with for the external modules that libwww works with for
details. Thanks so much to John Punin for writing this code! details.
*/ */
#ifndef WWWXML_H #ifndef WWWXML_H
#define WWWXML_H #define WWWXML_H
/* /*
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
skipping to change at line 48 skipping to change at line 50
. .
The wwwsys.h file includes system-specific include The wwwsys.h file includes system-specific include
files and flags for I/O to network and disk. The only reason for this file files and flags for I/O to network and disk. The only reason for this file
is that the Internet world is more complicated than Posix and ANSI. is that the Internet world is more complicated than Posix and ANSI.
*/ */
#include "wwwsys.h" #include "wwwsys.h"
/* /*
. (
Library Includes The Libwww Expat Wrapper Stream
. )
*/ */
#ifdef HT_EXPAT #ifdef HT_EXPAT
#include "HTXML.h" #include "HTXML.h"
#endif #endif /* HT_EXPAT */
/*
(
The RDF Parser Using The XML Parser
)
This RDF parser is based on Janne Saarela's Java based
SiRPAC and
James Clark's expat XML
parser
*/
#ifdef HT_EXPAT
#include "HTRDF.h"
#endif /* HT_EXPAT */
/* /*
End of XML module End of XML module
*/ */
#ifdef __cplusplus #ifdef __cplusplus
} /* end extern C definitions */ } /* end extern C definitions */
#endif #endif
#endif #endif
/* /*
@(#) $Id: WWWXML.html,v 2.2 1999/04/01 19:37:11 frystyk Exp $ @(#) $Id: WWWXML.html,v 2.3 1999/04/18 20:24:41 frystyk Exp $
*/ */
 End of changes. 8 change blocks. 
9 lines changed or deleted 26 lines changed or added


 wwwconf.h   wwwconf.h 
skipping to change at line 110 skipping to change at line 110
/* Define to build Cyrillic version. */ /* Define to build Cyrillic version. */
/* #undef CYRILLIC */ /* #undef CYRILLIC */
/* Define to use internal signal handler */ /* Define to use internal signal handler */
/* #undef WWWLIB_SIG */ /* #undef WWWLIB_SIG */
/* Define to build using reentrant system calls. */ /* Define to build using reentrant system calls. */
/* #undef HT_REENTRANT */ /* #undef HT_REENTRANT */
/* Define to use the two-argument variant of ctime_r */
/* #undef HAVE_CTIME_R_2 */
/* Define to use the three-argument variant of ctime_r */
/* #undef HAVE_CTIME_R_3 */
/* Define to use the two-argument variant of readdir_r */
/* #undef HAVE_READDIR_R_2 */
/* Define to use the three-argument variant of readdir_r */
/* #undef HAVE_READDIR_R_3 */
/* Define to use the three-argument variant of gethostbyname_r */
/* #undef HAVE_GETHOSTBYNAME_R_3 */
/* Define to use the five-argument variant of gethostbyname_r */
/* #undef HAVE_GETHOSTBYNAME_R_5 */
/* Define to use the six-argument variant of gethostbyname_r */
/* #undef HAVE_GETHOSTBYNAME_R_6 */
/* Define to use the five-argument variant of gethostbyaddr_r */
/* #undef HAVE_GETHOSTBYADDR_R_5 */
/* Define to use the seven-argument variant of gethostbyaddr_r */
/* #undef HAVE_GETHOSTBYADDR_R_7 */
/* Define to use the eight-argument variant of gethostbyaddr_r */
/* #undef HAVE_GETHOSTBYADDR_R_8 */
/* Define if getlogin_r returns an integer */
/* #undef GETLOGIN_R_RETURNS_INT */
/* Define if getlogin_r returns a pointer */
/* #undef GETLOGIN_R_RETURNS_POINTER */
/* Define to be the package name. */ /* Define to be the package name. */
#define W3C_PACKAGE "w3c-libwww" #define W3C_PACKAGE "w3c-libwww"
/* Define to be the version. */ /* Define to be the version. */
#define W3C_VERSION "5.2.8" #define W3C_VERSION "5.3.1"
/* Define this to be the prefix for cache files. */ /* Define this to be the prefix for cache files. */
#define CACHE_FILE_PREFIX "/usr/wsrc/" #define CACHE_FILE_PREFIX "/usr/wsrc/"
/* Define to disable Nagle's algorithm */ /* Define to disable Nagle's algorithm */
#define HT_NO_NAGLE 1 #define HT_NO_NAGLE 1
/* Define to disable HTTP/1.1 pipelining */ /* Define to disable HTTP/1.1 pipelining */
/* #undef HT_NO_PIPELINING */ /* #undef HT_NO_PIPELINING */
skipping to change at line 455 skipping to change at line 491
/* Define if you have the <unixlib.h> header file. */ /* Define if you have the <unixlib.h> header file. */
/* #undef HAVE_UNIXLIB_H */ /* #undef HAVE_UNIXLIB_H */
/* Define if you have the <wais.h> header file. */ /* Define if you have the <wais.h> header file. */
/* #undef HAVE_WAIS_H */ /* #undef HAVE_WAIS_H */
/* Define if you have the <wais/wais.h> header file. */ /* Define if you have the <wais/wais.h> header file. */
/* #undef HAVE_WAIS_WAIS_H */ /* #undef HAVE_WAIS_WAIS_H */
/* Define if you have the ICE library (-lICE). */
#define HAVE_LIBICE 1
/* Define if you have the dl library (-ldl). */ /* Define if you have the dl library (-ldl). */
#define HAVE_LIBDL 1 #define HAVE_LIBDL 1
/* Define if you have the inet library (-linet). */ /* Define if you have the inet library (-linet). */
/* #undef HAVE_LIBINET */ /* #undef HAVE_LIBINET */
/* Define if you have the nsl library (-lnsl). */ /* Define if you have the nsl library (-lnsl). */
/* #undef HAVE_LIBNSL */ /* #undef HAVE_LIBNSL */
/* Define if you have the socket library (-lsocket). */ /* Define if you have the socket library (-lsocket). */
/* #undef HAVE_LIBSOCKET */ /* #undef HAVE_LIBSOCKET */
/* Name of package */ /* Name of package */
#define PACKAGE "w3c-libwww" #define PACKAGE "w3c-libwww"
/* Version number of package */ /* Version number of package */
#define VERSION "5.2.8" #define VERSION "5.3.1"
/* Define this if you have the external variable 'socket_errno'. */ /* Define this if you have the external variable 'socket_errno'. */
/* #undef HAVE_SOCKET_ERRNO */ /* #undef HAVE_SOCKET_ERRNO */
/* Define this if you have the external variable 'sys_errlist'. */ /* Define this if you have the external variable 'sys_errlist'. */
/* #undef HAVE_SYS_ERRLIST */ /* #undef HAVE_SYS_ERRLIST */
/* Define this if you have the external variable 'sys_nerr'. */ /* Define this if you have the external variable 'sys_nerr'. */
/* #undef HAVE_SYS_NERR */ /* #undef HAVE_SYS_NERR */
 End of changes. 4 change blocks. 
5 lines changed or deleted 38 lines changed or added


 wwwsys.h   wwwsys.h 
skipping to change at line 299 skipping to change at line 299
#define EWOULDBLOCK WSAEWOULDBLOCK #define EWOULDBLOCK WSAEWOULDBLOCK
#define EINPROGRESS WSAEINPROGRESS #define EINPROGRESS WSAEINPROGRESS
#define ECONNREFUSED WSAECONNREFUSED #define ECONNREFUSED WSAECONNREFUSED
#define ETIMEDOUT WSAETIMEDOUT #define ETIMEDOUT WSAETIMEDOUT
#define ENETUNREACH WSAENETUNREACH #define ENETUNREACH WSAENETUNREACH
#define EHOSTUNREACH WSAEHOSTUNREACH #define EHOSTUNREACH WSAEHOSTUNREACH
#define EHOSTDOWN WSAEHOSTDOWN #define EHOSTDOWN WSAEHOSTDOWN
#define EISCONN WSAEISCONN #define EISCONN WSAEISCONN
#define EINVAL WSAEINVAL #define EINVAL WSAEINVAL
#define ECONNRESET WSAECONNRESET
#define ECONNABORTED WSAECONNABORTED
#define ESHUTDOWN WSAESHUTDOWN
/* Some compilers do only define WIN32 and NOT _WINDOWS */ /* Some compilers do only define WIN32 and NOT _WINDOWS */
#define NO_GROUPS #define NO_GROUPS
#ifdef _WIN32 #ifdef _WIN32
#define MKDIR(a,b) mkdir((a)) /* CLB NT has mkdir, but only one arg */ #define MKDIR(a,b) mkdir((a)) /* CLB NT has mkdir, but only one arg */
#define SLEEP(n) Sleep((n)*1000) #define SLEEP(n) Sleep((n)*1000)
#else #else
#define MKDIR(a,b) _mkdir((a)) /* CLB NT has mkdir, but only one arg */ #define MKDIR(a,b) _mkdir((a)) /* CLB NT has mkdir, but only one arg */
#endif /* WIN32 */ #endif /* WIN32 */
skipping to change at line 1458 skipping to change at line 1461
#ifdef _POSIX_LOGIN_NAME_MAX #ifdef _POSIX_LOGIN_NAME_MAX
#define HT_LOGNAME_MAX _POSIX_LOGIN_NAME_MAX #define HT_LOGNAME_MAX _POSIX_LOGIN_NAME_MAX
#else #else
#ifdef LOGNAME_MAX #ifdef LOGNAME_MAX
#define HT_LOGNAME_MAX (LOGNAME_MAX+1) #define HT_LOGNAME_MAX (LOGNAME_MAX+1)
#else #else
#define HT_LOGNAME_MAX 64 #define HT_LOGNAME_MAX 64
#endif #endif
#endif #endif
#define HOSTENT_MAX 128 #define HOSTENT_MAX 1024
#define CTIME_MAX 26 #define CTIME_MAX 26
#endif /* HT_REENTRANT */ #endif /* HT_REENTRANT */
/* /*
. .
Types Types
. .
We define some types here so we son't have to worry about it later We define some types here so we son't have to worry about it later
*/ */
typedef unsigned long ms_t; typedef unsigned long ms_t;
/* /*
*/ */
#endif #endif
/* /*
@(#) $Id: wwwsys.html,v 2.123 1999/03/14 02:22:04 frystyk Exp $ @(#) $Id: wwwsys.html,v 2.125 2000/07/11 09:18:38 kahan Exp $
*/ */
 End of changes. 3 change blocks. 
2 lines changed or deleted 5 lines changed or added


 xmlparse.h   xmlparse.h 
/* /*
The contents of this file are subject to the Mozilla Public License The contents of this file are subject to the Mozilla Public License
Version 1.0 (the "License"); you may not use this file except in Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/ http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations License for the specific language governing rights and limitations
under the License. under the License.
The Original Code is expat. The Original Code is expat.
The Initial Developer of the Original Code is James Clark. The Initial Developer of the Original Code is James Clark.
Portions created by James Clark are Copyright (C) 1998 Portions created by James Clark are Copyright (C) 1998, 1999
James Clark. All Rights Reserved. James Clark. All Rights Reserved.
Contributor(s): Contributor(s):
Alternatively, the contents of this file may be used under the terms
of the GNU General Public License (the "GPL"), in which case the
provisions of the GPL are applicable instead of those above. If you
wish to allow use of your version of this file only under the terms of
the GPL and not to allow others to use your version of this file under
the MPL, indicate your decision by deleting the provisions above and
replace them with the notice and other provisions required by the
GPL. If you do not delete the provisions above, a recipient may use
your version of this file under either the MPL or the GPL.
*/ */
#ifndef XmlParse_INCLUDED #ifndef XmlParse_INCLUDED
#define XmlParse_INCLUDED 1 #define XmlParse_INCLUDED 1
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifndef XMLPARSEAPI #ifndef XMLPARSEAPI
skipping to change at line 72 skipping to change at line 82
#endif /* not XML_UNICODE */ #endif /* not XML_UNICODE */
#endif /* not XML_UNICODE_WCHAR_T */ #endif /* not XML_UNICODE_WCHAR_T */
/* Constructs a new parser; encoding is the encoding specified by the exter nal /* Constructs a new parser; encoding is the encoding specified by the exter nal
protocol or null if there is none specified. */ protocol or null if there is none specified. */
XML_Parser XMLPARSEAPI XML_Parser XMLPARSEAPI
XML_ParserCreate(const XML_Char *encoding); XML_ParserCreate(const XML_Char *encoding);
/* Constructs a new parser and namespace processor. Element type names
and attribute names that belong to a namespace will be expanded;
unprefixed attribute names are never expanded; unprefixed element type
names are expanded only if there is a default namespace. The expanded
name is the concatenation of the namespace URI, the namespace separator cha
racter,
and the local part of the name. If the namespace separator is '\0' then
the namespace URI and the local part will be concatenated without any
separator. When a namespace is not declared, the name and prefix will be
passed through without expansion. */
XML_Parser XMLPARSEAPI
XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);
/* atts is array of name/value pairs, terminated by 0; /* atts is array of name/value pairs, terminated by 0;
names and values are 0 terminated. */ names and values are 0 terminated. */
typedef void (*XML_StartElementHandler)(void *userData, typedef void (*XML_StartElementHandler)(void *userData,
const XML_Char *name, const XML_Char *name,
const XML_Char **atts); const XML_Char **atts);
typedef void (*XML_EndElementHandler)(void *userData, typedef void (*XML_EndElementHandler)(void *userData,
const XML_Char *name); const XML_Char *name);
/* s is not 0 terminated. */ /* s is not 0 terminated. */
typedef void (*XML_CharacterDataHandler)(void *userData, typedef void (*XML_CharacterDataHandler)(void *userData,
const XML_Char *s, const XML_Char *s,
int len); int len);
/* target and data are 0 terminated */ /* target and data are 0 terminated */
typedef void (*XML_ProcessingInstructionHandler)(void *userData, typedef void (*XML_ProcessingInstructionHandler)(void *userData,
const XML_Char *target, const XML_Char *target,
const XML_Char *data); const XML_Char *data);
/* data is 0 terminated */
typedef void (*XML_CommentHandler)(void *userData, const XML_Char *data);
typedef void (*XML_StartCdataSectionHandler)(void *userData);
typedef void (*XML_EndCdataSectionHandler)(void *userData);
/* This is called for any characters in the XML document for /* This is called for any characters in the XML document for
which there is no applicable handler. This includes both which there is no applicable handler. This includes both
characters that are part of markup which is of a kind that is characters that are part of markup which is of a kind that is
not reported (comments, markup declarations), or characters not reported (comments, markup declarations), or characters
that are part of a construct which could be reported but that are part of a construct which could be reported but
for which no handler has been supplied. The characters are passed for which no handler has been supplied. The characters are passed
exactly as they were in the XML document except that exactly as they were in the XML document except that
they will be encoded in UTF-8. Line boundaries are not normalized. they will be encoded in UTF-8. Line boundaries are not normalized.
Note that a byte order mark character is not passed to the default handler. Note that a byte order mark character is not passed to the default handler.
If a default handler is set, internal entity references There are no guarantees about how characters are divided between calls
are not expanded. There are no guarantees about to the default handler: for example, a comment might be split between
how characters are divided between calls to the default handler: multiple calls. */
for example, a comment might be split between multiple calls. */
typedef void (*XML_DefaultHandler)(void *userData, typedef void (*XML_DefaultHandler)(void *userData,
const XML_Char *s, const XML_Char *s,
int len); int len);
/* This is called for a declaration of an unparsed (NDATA) /* This is called for a declaration of an unparsed (NDATA)
entity. The base argument is whatever was set by XML_SetBase. entity. The base argument is whatever was set by XML_SetBase.
The entityName, systemId and notationName arguments will never be null. The entityName, systemId and notationName arguments will never be null.
The other arguments may be. */ The other arguments may be. */
skipping to change at line 132 skipping to change at line 160
/* This is called for a declaration of notation. /* This is called for a declaration of notation.
The base argument is whatever was set by XML_SetBase. The base argument is whatever was set by XML_SetBase.
The notationName will never be null. The other arguments can be. */ The notationName will never be null. The other arguments can be. */
typedef void (*XML_NotationDeclHandler)(void *userData, typedef void (*XML_NotationDeclHandler)(void *userData,
const XML_Char *notationName, const XML_Char *notationName,
const XML_Char *base, const XML_Char *base,
const XML_Char *systemId, const XML_Char *systemId,
const XML_Char *publicId); const XML_Char *publicId);
/* When namespace processing is enabled, these are called once for
each namespace declaration. The call to the start and end element
handlers occur between the calls to the start and end namespace
declaration handlers. For an xmlns attribute, prefix will be null.
For an xmlns="" attribute, uri will be null. */
typedef void (*XML_StartNamespaceDeclHandler)(void *userData,
const XML_Char *prefix,
const XML_Char *uri);
typedef void (*XML_EndNamespaceDeclHandler)(void *userData,
const XML_Char *prefix);
/* This is called if the document is not standalone (it has an
external subset or a reference to a parameter entity, but does not
have standalone="yes"). If this handler returns 0, then processing
will not continue, and the parser will return a
XML_ERROR_NOT_STANDALONE error. */
typedef int (*XML_NotStandaloneHandler)(void *userData);
/* This is called for a reference to an external parsed general entity. /* This is called for a reference to an external parsed general entity.
The referenced entity is not automatically parsed. The referenced entity is not automatically parsed.
The application can parse it immediately or later using The application can parse it immediately or later using
XML_ExternalEntityParserCreate. XML_ExternalEntityParserCreate.
The parser argument is the parser parsing the entity containing the referen ce; The parser argument is the parser parsing the entity containing the referen ce;
it can be passed as the parser argument to XML_ExternalEntityParserCreate. it can be passed as the parser argument to XML_ExternalEntityParserCreate.
The systemId argument is the system identifier as specified in the entity d eclaration; The systemId argument is the system identifier as specified in the entity d eclaration;
it will not be null. it will not be null.
The base argument is the system identifier that should be used as the base for The base argument is the system identifier that should be used as the base for
resolving systemId if systemId was relative; this is set by XML_SetBase; resolving systemId if systemId was relative; this is set by XML_SetBase;
it may be null. it may be null.
The publicId argument is the public identifier as specified in the entity d eclaration, The publicId argument is the public identifier as specified in the entity d eclaration,
or null if none was specified; the whitespace in the public identifier or null if none was specified; the whitespace in the public identifier
will have been normalized as required by the XML spec. will have been normalized as required by the XML spec.
The openEntityNames argument is a space-separated list of the names of the The context argument specifies the parsing context in the format
entities expected by the context argument to
that are open for the parse of this entity (including the name of the refer XML_ExternalEntityParserCreate; context is valid only until the handler
enced
entity); this can be passed as the openEntityNames argument to
XML_ExternalEntityParserCreate; openEntityNames is valid only until the han
dler
returns, so if the referenced entity is to be parsed later, it must be copi ed. returns, so if the referenced entity is to be parsed later, it must be copi ed.
The handler should return 0 if processing should not continue because of The handler should return 0 if processing should not continue because of
a fatal error in the handling of the external entity. a fatal error in the handling of the external entity.
In this case the calling parser will return an XML_ERROR_EXTERNAL_ENTITY_HA NDLING In this case the calling parser will return an XML_ERROR_EXTERNAL_ENTITY_HA NDLING
error. error.
Note that unlike other handlers the first argument is the parser, not userD ata. */ Note that unlike other handlers the first argument is the parser, not userD ata. */
typedef int (*XML_ExternalEntityRefHandler)(XML_Parser parser, typedef int (*XML_ExternalEntityRefHandler)(XML_Parser parser,
const XML_Char *openEntityNames, const XML_Char *context,
const XML_Char *base, const XML_Char *base,
const XML_Char *systemId, const XML_Char *systemId,
const XML_Char *publicId); const XML_Char *publicId);
/* This structure is filled in by the XML_UnknownEncodingHandler /* This structure is filled in by the XML_UnknownEncodingHandler
to provide information to the parser about encodings that are unknown to provide information to the parser about encodings that are unknown
to the parser. to the parser.
The map[b] member gives information about byte sequences The map[b] member gives information about byte sequences
whose first byte is b. whose first byte is b.
If map[b] is c where c is >= 0, then b by itself encodes the Unicode scalar value c. If map[b] is c where c is >= 0, then b by itself encodes the Unicode scalar value c.
skipping to change at line 238 skipping to change at line 286
XML_StartElementHandler start, XML_StartElementHandler start,
XML_EndElementHandler end); XML_EndElementHandler end);
void XMLPARSEAPI void XMLPARSEAPI
XML_SetCharacterDataHandler(XML_Parser parser, XML_SetCharacterDataHandler(XML_Parser parser,
XML_CharacterDataHandler handler); XML_CharacterDataHandler handler);
void XMLPARSEAPI void XMLPARSEAPI
XML_SetProcessingInstructionHandler(XML_Parser parser, XML_SetProcessingInstructionHandler(XML_Parser parser,
XML_ProcessingInstructionHandler handler ); XML_ProcessingInstructionHandler handler );
void XMLPARSEAPI
XML_SetCommentHandler(XML_Parser parser,
XML_CommentHandler handler);
void XMLPARSEAPI
XML_SetCdataSectionHandler(XML_Parser parser,
XML_StartCdataSectionHandler start,
XML_EndCdataSectionHandler end);
/* This sets the default handler and also inhibits expansion of internal en
tities.
The entity reference will be passed to the default handler. */
void XMLPARSEAPI void XMLPARSEAPI
XML_SetDefaultHandler(XML_Parser parser, XML_SetDefaultHandler(XML_Parser parser,
XML_DefaultHandler handler); XML_DefaultHandler handler);
/* This sets the default handler but does not inhibit expansion of internal
entities.
The entity reference will not be passed to the default handler. */
void XMLPARSEAPI
XML_SetDefaultHandlerExpand(XML_Parser parser,
XML_DefaultHandler handler);
void XMLPARSEAPI void XMLPARSEAPI
XML_SetUnparsedEntityDeclHandler(XML_Parser parser, XML_SetUnparsedEntityDeclHandler(XML_Parser parser,
XML_UnparsedEntityDeclHandler handler); XML_UnparsedEntityDeclHandler handler);
void XMLPARSEAPI void XMLPARSEAPI
XML_SetNotationDeclHandler(XML_Parser parser, XML_SetNotationDeclHandler(XML_Parser parser,
XML_NotationDeclHandler handler); XML_NotationDeclHandler handler);
void XMLPARSEAPI void XMLPARSEAPI
XML_SetNamespaceDeclHandler(XML_Parser parser,
XML_StartNamespaceDeclHandler start,
XML_EndNamespaceDeclHandler end);
void XMLPARSEAPI
XML_SetNotStandaloneHandler(XML_Parser parser,
XML_NotStandaloneHandler handler);
void XMLPARSEAPI
XML_SetExternalEntityRefHandler(XML_Parser parser, XML_SetExternalEntityRefHandler(XML_Parser parser,
XML_ExternalEntityRefHandler handler); XML_ExternalEntityRefHandler handler);
/* If a non-null value for arg is specified here, then it will be passed
as the first argument to the external entity ref handler instead
of the parser object. */
void XMLPARSEAPI
XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg);
void XMLPARSEAPI void XMLPARSEAPI
XML_SetUnknownEncodingHandler(XML_Parser parser, XML_SetUnknownEncodingHandler(XML_Parser parser,
XML_UnknownEncodingHandler handler, XML_UnknownEncodingHandler handler,
void *encodingHandlerData); void *encodingHandlerData);
/* This can be called within a handler for a start element, end element, /* This can be called within a handler for a start element, end element,
processing instruction or character data. It causes the corresponding processing instruction or character data. It causes the corresponding
markup to be passed to the default handler. markup to be passed to the default handler. */
Within the expansion of an internal entity, nothing will be passed
to the default handler, although this usually will not happen since
setting a default handler inhibits expansion of internal entities. */
void XMLPARSEAPI XML_DefaultCurrent(XML_Parser parser); void XMLPARSEAPI XML_DefaultCurrent(XML_Parser parser);
/* This value is passed as the userData argument to callbacks. */ /* This value is passed as the userData argument to callbacks. */
void XMLPARSEAPI void XMLPARSEAPI
XML_SetUserData(XML_Parser parser, void *userData); XML_SetUserData(XML_Parser parser, void *userData);
/* Returns the last value set by XML_SetUserData or null. */ /* Returns the last value set by XML_SetUserData or null. */
#define XML_GetUserData(parser) (*(void **)(parser)) #define XML_GetUserData(parser) (*(void **)(parser))
/* This is equivalent to supplying an encoding argument
to XML_CreateParser. It must not be called after XML_Parse
or XML_ParseBuffer. */
int XMLPARSEAPI
XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);
/* If this function is called, then the parser will be passed /* If this function is called, then the parser will be passed
as the first argument to callbacks instead of userData. as the first argument to callbacks instead of userData.
The userData will still be accessible using XML_GetUserData. */ The userData will still be accessible using XML_GetUserData. */
void XMLPARSEAPI void XMLPARSEAPI
XML_UseParserAsHandlerArg(XML_Parser parser); XML_UseParserAsHandlerArg(XML_Parser parser);
/* Sets the base to be used for resolving relative URIs in system identifie rs in /* Sets the base to be used for resolving relative URIs in system identifie rs in
declarations. Resolving relative identifiers is left to the application: declarations. Resolving relative identifiers is left to the application:
this value will be passed through as the base argument to the this value will be passed through as the base argument to the
XML_ExternalEntityRefHandler, XML_NotationDeclHandler XML_ExternalEntityRefHandler, XML_NotationDeclHandler
and XML_UnparsedEntityDeclHandler. The base argument will be copied. and XML_UnparsedEntityDeclHandler. The base argument will be copied.
Returns zero if out of memory, non-zero otherwise. */ Returns zero if out of memory, non-zero otherwise. */
int XMLPARSEAPI int XMLPARSEAPI
XML_SetBase(XML_Parser parser, const XML_Char *base); XML_SetBase(XML_Parser parser, const XML_Char *base);
const XML_Char XMLPARSEAPI * const XML_Char XMLPARSEAPI *
XML_GetBase(XML_Parser parser); XML_GetBase(XML_Parser parser);
/* Returns the number of the attributes passed in last call to the
XML_StartElementHandler that were specified in the start-tag rather
than defaulted. */
int XMLPARSEAPI XML_GetSpecifiedAttributeCount(XML_Parser parser);
/* Parses some input. Returns 0 if a fatal error is detected. /* Parses some input. Returns 0 if a fatal error is detected.
The last call to XML_Parse must have isFinal true; The last call to XML_Parse must have isFinal true;
len may be zero for this call (or any other). */ len may be zero for this call (or any other). */
int XMLPARSEAPI int XMLPARSEAPI
XML_Parse(XML_Parser parser, const char *s, int len, int isFinal); XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);
void XMLPARSEAPI * void XMLPARSEAPI *
XML_GetBuffer(XML_Parser parser, int len); XML_GetBuffer(XML_Parser parser, int len);
int XMLPARSEAPI int XMLPARSEAPI
XML_ParseBuffer(XML_Parser parser, int len, int isFinal); XML_ParseBuffer(XML_Parser parser, int len, int isFinal);
/* Creates an XML_Parser object that can parse an external general entity; /* Creates an XML_Parser object that can parse an external general entity;
openEntityNames is a space-separated list of the names of the entities that context is a '\0'-terminated string specifying the parse context;
are open encoding is a '\0'-terminated string giving the name of the externally spec
for the parse of this entity (including the name of this one); ified encoding,
encoding is the externally specified encoding,
or null if there is no externally specified encoding. or null if there is no externally specified encoding.
The context string consists of a sequence of tokens separated by formfeeds
(\f);
a token consisting of a name specifies that the general entity of the name
is open; a token of the form prefix=uri specifies the namespace for a parti
cular
prefix; a token of the form =uri specifies the default namespace.
This can be called at any point after the first call to an ExternalEntityRe fHandler This can be called at any point after the first call to an ExternalEntityRe fHandler
so longer as the parser has not yet been freed. so longer as the parser has not yet been freed.
The new parser is completely independent and may safely be used in a separa te thread. The new parser is completely independent and may safely be used in a separa te thread.
The handlers and userData are initialized from the parser argument. The handlers and userData are initialized from the parser argument.
Returns 0 if out of memory. Otherwise returns a new XML_Parser object. */ Returns 0 if out of memory. Otherwise returns a new XML_Parser object. */
XML_Parser XMLPARSEAPI XML_Parser XMLPARSEAPI
XML_ExternalEntityParserCreate(XML_Parser parser, XML_ExternalEntityParserCreate(XML_Parser parser,
const XML_Char *openEntityNames, const XML_Char *context,
const XML_Char *encoding); const XML_Char *encoding);
enum XML_Error { enum XML_Error {
XML_ERROR_NONE, XML_ERROR_NONE,
XML_ERROR_NO_MEMORY, XML_ERROR_NO_MEMORY,
XML_ERROR_SYNTAX, XML_ERROR_SYNTAX,
XML_ERROR_NO_ELEMENTS, XML_ERROR_NO_ELEMENTS,
XML_ERROR_INVALID_TOKEN, XML_ERROR_INVALID_TOKEN,
XML_ERROR_UNCLOSED_TOKEN, XML_ERROR_UNCLOSED_TOKEN,
XML_ERROR_PARTIAL_CHAR, XML_ERROR_PARTIAL_CHAR,
skipping to change at line 344 skipping to change at line 438
XML_ERROR_UNDEFINED_ENTITY, XML_ERROR_UNDEFINED_ENTITY,
XML_ERROR_RECURSIVE_ENTITY_REF, XML_ERROR_RECURSIVE_ENTITY_REF,
XML_ERROR_ASYNC_ENTITY, XML_ERROR_ASYNC_ENTITY,
XML_ERROR_BAD_CHAR_REF, XML_ERROR_BAD_CHAR_REF,
XML_ERROR_BINARY_ENTITY_REF, XML_ERROR_BINARY_ENTITY_REF,
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF, XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,
XML_ERROR_MISPLACED_XML_PI, XML_ERROR_MISPLACED_XML_PI,
XML_ERROR_UNKNOWN_ENCODING, XML_ERROR_UNKNOWN_ENCODING,
XML_ERROR_INCORRECT_ENCODING, XML_ERROR_INCORRECT_ENCODING,
XML_ERROR_UNCLOSED_CDATA_SECTION, XML_ERROR_UNCLOSED_CDATA_SECTION,
XML_ERROR_EXTERNAL_ENTITY_HANDLING XML_ERROR_EXTERNAL_ENTITY_HANDLING,
XML_ERROR_NOT_STANDALONE
}; };
/* If XML_Parse or XML_ParseBuffer have returned 0, then XML_GetErrorCode /* If XML_Parse or XML_ParseBuffer have returned 0, then XML_GetErrorCode
returns information about the error. */ returns information about the error. */
enum XML_Error XMLPARSEAPI XML_GetErrorCode(XML_Parser parser); enum XML_Error XMLPARSEAPI XML_GetErrorCode(XML_Parser parser);
/* These functions return information about the current parse location. /* These functions return information about the current parse location.
They may be called when XML_Parse or XML_ParseBuffer return 0; They may be called when XML_Parse or XML_ParseBuffer return 0;
in this case the location is the location of the character at which in this case the location is the location of the character at which
the error was detected. the error was detected.
They may also be called from any other callback called to report They may also be called from any other callback called to report
some parse event; in this the location is the location of the first some parse event; in this the location is the location of the first
of the sequence of characters that generated the event. */ of the sequence of characters that generated the event. */
int XMLPARSEAPI XML_GetCurrentLineNumber(XML_Parser parser); int XMLPARSEAPI XML_GetCurrentLineNumber(XML_Parser parser);
int XMLPARSEAPI XML_GetCurrentColumnNumber(XML_Parser parser); int XMLPARSEAPI XML_GetCurrentColumnNumber(XML_Parser parser);
long XMLPARSEAPI XML_GetCurrentByteIndex(XML_Parser parser); long XMLPARSEAPI XML_GetCurrentByteIndex(XML_Parser parser);
/* Return the number of bytes in the current event.
Returns 0 if the event is in an internal entity. */
int XMLPARSEAPI XML_GetCurrentByteCount(XML_Parser parser);
/* For backwards compatibility with previous versions. */ /* For backwards compatibility with previous versions. */
#define XML_GetErrorLineNumber XML_GetCurrentLineNumber #define XML_GetErrorLineNumber XML_GetCurrentLineNumber
#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber #define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber
#define XML_GetErrorByteIndex XML_GetCurrentByteIndex #define XML_GetErrorByteIndex XML_GetCurrentByteIndex
/* Frees memory used by the parser. */ /* Frees memory used by the parser. */
void XMLPARSEAPI void XMLPARSEAPI
XML_ParserFree(XML_Parser parser); XML_ParserFree(XML_Parser parser);
/* Returns a string describing the error. */ /* Returns a string describing the error. */
 End of changes. 21 change blocks. 
24 lines changed or deleted 126 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/