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) then | host having multiple IP-addresses with the same host name) 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. The content negotiation algorithm is based on file | specification. 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 | |||