- From: Thibault Parmentier <thibault.parmentier@imag.fr>
- Date: Fri, 30 Oct 1998 11:34:36 +0100
- To: lib www <www-lib@w3.org>
- Message-ID: <3639963C.547577E0@imag.fr>
As Henrik Frystyk Nielsen recommend me yesterday, I've use a gcc compiler to compile again the library and my example file. But I've got the same problems with the headers file. there is no problem during the library compilation but during the use :-( I have attach the three header files that are supposed to generate problems. This is my example compilation: gcc -o toto -I/softs/IMAGENE/imagene_develop/src/libwww/Library/src -L/softs/IMAGENE/imagene_develop/src/libwww/solaris2.5/Library/src/.libs/libwww.a test5.c In file included from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTNet.h:48, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTReq.h:58, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWCore.h:51, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWLib.h:51, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTProfil.h:34, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWInit.h:39, from test5.c:4: /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTDNS.h:46: warning: `struct hostent' declared inside parameter list /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTDNS.h:46: warning: its scope is only this definition or declaration, /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTDNS.h:46: warning: which is probably not what you want. In file included from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTInet.h:20, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWCore.h:232, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWLib.h:51, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTProfil.h:34, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWInit.h:39, from test5.c:4: /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTHstMan.h:82: field `sock_addr' has incomplete type In file included from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWFile.h:51, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTInit.h:42, from /softs/IMAGENE/imagene_develop/src/libwww/Library/src/WWWInit.h:46, from test5.c:4: /softs/IMAGENE/imagene_develop/src/libwww/Library/src/HTMulti.h:43: warning: `struct stat' declared inside parameter list Thank you for any help, Thib -- Thibault Parmentier, Projet SHERPA - INRIA OFFICE: (+33) 4 76 61 53 74 Fax: (+33) 4 76 61 52 07 HOME: (+33) 4 76 86 24 04 ROWING: (+33) 4 76 42 77 86 OUAIB: http://chooyu.inrialpes.fr:2000/
/* W3C Sample Code Library libwww Private Hst Definition */ /* ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. */ /* This is the private definition of the Host Class. Please look in the public Host Class for more documentation This module is implemented by HTHost.c, and it is a part of the W3C Sample Code Library. */ #ifndef HTHSTMAN_H #define HTHSTMAN_H #include "HTHost.h" #include "HTDNS.h" #include "HTEvent.h" #include "HTProt.h" #define PIPE_BUFFER_SIZE 8192 /* The HTHost object is the core of the request queue management. This object contains information about the socket descriptor, the input read buffer etc. required to identify and service a request. */ typedef enum _TCPState { TCP_ERROR = -2, TCP_CONNECTED = -1, TCP_BEGIN = 0, TCP_CHANNEL, TCP_DNS, TCP_NEED_SOCKET, TCP_NEED_BIND, TCP_NEED_LISTEN, TCP_NEED_CONNECT, TCP_IN_USE } TCPState; struct _HTHost { int hash; /* Information about the otherend */ char * hostname; /* name of host + optional port */ u_short u_port; time_t ntime; /* Creation time */ char * type; /* Peer type */ int version; /* Peer version */ HTMethod methods; /* Public methods (bit-flag) */ char * server; /* Server name */ char * user_agent; /* User Agent */ char * range_units; /* ??? */ /* When does this entry expire? */ time_t expires; /* Persistent channel expires time */ int reqsPerConnection; /* from Keep-Alive: header */ int reqsMade; /* updated as they are sent */ /* Queuing and connection modes */ HTList * pipeline; /* Pipe line of net objects */ HTList * pending; /* List of pending Net objects */ HTNet * doit; /* Transfer from pending to pipe */ HTNet * lock; /* This is a kludge! */ BOOL persistent; HTTransportMode mode; /* Supported mode */ HTTimer * timer; /* Timer for handling idle connection */ BOOL do_recover; /* If we are supposed to recover */ int recovered; /* How many times had we recovered */ BOOL close_notification; /* Got a hint about close */ BOOL broken_pipe; /* Support for transports */ HTChannel * channel; /* data channel */ /* Connection dependent stuff */ HTdns * dns; /* Link to DNS object */ TCPState tcpstate; /* State in connection */ SockA sock_addr; /* SockA is defined in wwwsys.h */ int retry; /* Counting attempts to connect */ int home; /* Current home if multiple */ ms_t connecttime; /* Time in ms on multihomed hosts */ /* Event Management */ HTEvent * events[HTEvent_TYPES];/* reading and writing may differ */ HTEventType registeredFor; /* Which actions are we blocked on */ size_t remainingRead; /* Tells HostEvent to call next net */ /* User specific stuff */ ms_t delay; /* Write delay in ms */ void * context; /* Protocol Specific context */ int forceWriteFlush; }; #define HTHost_bytesRead(me) ((me) ? (me)->bytes_read : -1) #define HTHost_bytesWritten(me) ((me) ? (me)->bytes_written : -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_setDNS (host, dns) ((me) ? (me->dns=(dns)) :-1) /* */ #endif /* HTHSTMAN_H */ /* ___________________________________ */
/* W3C Sample Code Library libwww DNS Class */ /* ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. */ /* The DNS Class defines generic access to the DNS system. It maintains a cache of all visited hosts so that subsequent connects to the same host doesn't imply a new request to the DNS every time. Multihomed hosts are treated specially in that the time spend on every connect is measured and kept in the cache. On the next request to the same host, the IP-address with the lowest average connect time is chosen. If one IP-address fails completely, e.g. connection refused then it disabled and HTDoConnect tries one of the other IP-addresses to the same host. Every entry in the cache has its own time to live (TTL) and hence the cache manages its own automatic garbage collection. Currently the TTL is not bound to the DNS records which should be changed. You can set the DNS object TTL This module is implemented by HTDNS.c, and it is a part of the W3C Sample Code Library. */ #ifndef HTDNS_H #define HTDNS_H /* */ typedef struct _HTdns HTdns; /* When to remove an entry in the cache. The default value is 12h. */ extern void HTDNS_setTimeout (time_t timeout); extern time_t HTDNS_timeout (time_t timeout); /* Add an element to the cache of visited hosts. The homes variable indicates the number of IP addresses found when looking up the name. A host name must NOT contain a port number. */ extern HTdns * HTDNS_add (HTList * list, struct hostent * element, char * host, int * homes); /* This function flushes the DNS object from the cache and frees up memory */ extern BOOL HTDNS_delete (const char * host); /* This function is called from HTLibTerminate. It can be called at any point in time if the DNS cache is going to be flushed. */ extern BOOL HTDNS_deleteAll (void); /* On every connect to a multihomed host, the average connect time is updated exponentially for all the entries. */ extern BOOL HTDNS_updateWeigths (HTdns *dns, int cur, ms_t deltatime); /* These are the functions that resolve a host name This function should have been called HTGetHostByAddr but for historical reasons this is not the case. */ extern char * HTGetHostBySock (int soc); /* This function gets the address of the host and puts it in to the socket structure. It maintains its own cache of connections so that the communication to the Domain Name Server is minimized. Returns the number of homes or -1 if error. */ extern int HTGetHostByName (HTHost * host, char *hostname, HTRequest * request); /* */ #endif /* ___________________________________ */
/* W3C Sample Code Library libwww Content Negotiation */ /* ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. */ /* As part of the HTTP content negotiation, a server must be able to match the preferences sent by the client in an HTTP request with the possible set of documents that it has avaiable for this URL. For example , it may have an English and a Danish version in which case it looks at the Accept-Language header and sees what the client prefers. The Library has a simple "Match" algorithm for finding the best as specified by the HTTP specification. As the content algorithm is part of the File Interface then all file access regardless of whether it is from a server or a client application will be able to content negotiotion. This module is implemented by HTMulti.c, and it is a part of the W3C Sample Code Library */ #ifndef HTMULTI_H #define HTMULTI_H #include "HTReq.h" /* This function is used when the best match among several possible documents is to be found as a function of the accept headers sent in the client request. Set default file name for welcome page on each directory. */ extern void HTAddWelcome (char * welcome_name); /* This function looks for a set of bindings between a set of possible objects to be served on a request on the local file system. */ extern char * HTMulti (HTRequest * req, char * path, struct stat * stat_info); /* */ #endif /* HTMULTI_H */ /* ___________________________________ */
Received on Friday, 30 October 1998 05:34:44 UTC