X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=www%2Fwproto.h;h=abe0f059a3c294873ca9cb004c60c88e57ec30bd;hb=25db261b6bbbfcc7bc26f679f195b51d31b9d7d7;hp=fef0d489eff745742c2d4e909f5578b80ffaccc7;hpb=1938b1fd36e774fa9b6d11a4eb5edfcdaee0267b;p=egate.git diff --git a/www/wproto.h b/www/wproto.h index fef0d48..abe0f05 100644 --- a/www/wproto.h +++ b/www/wproto.h @@ -41,7 +41,36 @@ * USE OR PERFORMANCE OF THIS SOFTWARE. * * $Log: wproto.h,v $ - * Revision 1.1 1995/10/20 11:49:27 adam + * Revision 1.8 1996/02/12 10:09:25 adam + * New parameter to wproto_init: directory root for the FIFOs (instead + * of using preprocessor defines FIFODIR/FIFOROOT). + * + * Revision 1.7 1996/01/24 08:26:55 adam + * All tcl commands prefixed with egw_ (except the html command). + * + * Revision 1.6 1996/01/12 13:08:07 adam + * CGI script passes name of lock file to the shell. The server will not close + * the response FIFO until this file becomes unlocked. This method handles + * cancel operations much better. + * + * Revision 1.5 1996/01/12 10:05:21 adam + * If script name ends with ';' HTTP/GET/Expires will be defined. + * The cgi interface only reads final handshake if response from + * server (shell) was zero-terminated [If it isn't it probably died]. + * + * Revision 1.4 1995/11/06 10:51:18 adam + * End of response marker in response from wsh/wproto to wcgi. + * Shells are respawned when necessary. + * + * Revision 1.3 1995/10/27 15:12:11 adam + * IrTcl incorporated in the gateway. + * Better separation of script types. + * Z39.50 gateway scripts entered. + * + * Revision 1.2 1995/10/23 16:55:41 adam + * A lot of changes - really. + * + * Revision 1.1 1995/10/20 11:49:27 adam * First version of www gateway. * */ @@ -55,9 +84,6 @@ #define COMBUF 4096 #define OUTBUFFER_CHUNK 4096 -#define FIFOROOT "/tmp" -#define FIFODIR "egw" - typedef struct wform_data { char name[20]; @@ -70,11 +96,22 @@ typedef struct cache_data char path[256]; } cache_data; +struct w_select_handle { + int fd; + struct { + void (*sproc)(int, void *); + void *obj; + } rwx[3]; + struct w_select_handle *next; +}; + typedef struct wclient_data { + int id; wform_data wf_data[100]; char wf_parms[512]; char wf_serverp[512]; + char wf_serverf[512]; char path[512]; int linein; int lineout; @@ -84,23 +121,26 @@ typedef struct wclient_data int cache_level; cache_data cache[20]; int cache_fd; + struct w_select_handle *select_list; + const char *fifoDir; } *WCLIENT, wclient_data; #define wo_putc(wc, ch) \ ((wc)->outbuffer_offset >= OUTBUFFER_CHUNK ? wo_overflow((wc), (ch)) : \ (*((wc)->outbuffer + (wc)->outbuffer_offset++) = (char) (ch)), 0) -char *wgetval(WCLIENT wc, char *name); -int wproto_process(WCLIENT wc, int timeout); -WCLIENT wproto_init(void); -void wo_printf(WCLIENT wc, const char *fmt, ...); -void wo_clear(WCLIENT wc, char *type); -int wo_finish(WCLIENT wc); -int wo_flush(WCLIENT wc); -int wo_overflow(WCLIENT wc, char ch); -void wproto_terminate(WCLIENT wc); -int wproto_cache(WCLIENT wc, int level); -int wo_puthtml(WCLIENT wc, char *name); -void wo_puts(WCLIENT wc, char *s); +char *wgetval (WCLIENT wc, char *name); +int wproto_process (WCLIENT wc, int timeout); +WCLIENT wproto_init (const char *fifoDir); +void wo_printf (WCLIENT wc, const char *fmt, ...); +void wo_clear (WCLIENT wc, const char *type); +int wo_finish (WCLIENT wc); +int wo_flush (WCLIENT wc); +int wo_overflow (WCLIENT wc, char ch); +void wproto_terminate (WCLIENT wc); +int wproto_cache (WCLIENT wc, int level); +int wo_puthtml (WCLIENT wc, char *name); +void wo_puts (WCLIENT wc, const char *s); +void wo_write (WCLIENT wc, const char *s, size_t len); #endif