X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=www%2Fwproto.h;h=deb30068f4ab15143756198e438159dac2b12526;hb=1140389ab96fc8ca7bc9c8dc642adbcec625f4a6;hp=ec71a80ff10ca50c467192e0ab6138de0f5ab2ec;hpb=53a28f8f2ab30977f9ee2edffe5809fae61d5a4e;p=egate.git diff --git a/www/wproto.h b/www/wproto.h index ec71a80..deb3006 100644 --- a/www/wproto.h +++ b/www/wproto.h @@ -41,7 +41,38 @@ * USE OR PERFORMANCE OF THIS SOFTWARE. * * $Log: wproto.h,v $ - * Revision 1.5 1996/01/12 10:05:21 adam + * Revision 1.13 1997/01/27 11:27:15 adam + * Implemented a new command, egw_clear, to clear http output cache. + * Changed prototype for function wo_clear. + * + * Revision 1.12 1997/01/24 13:13:12 adam + * Implemnted egw_source and added a "raw" option to the URL. + * Fixed a bug in the buffering system of wproto; the macro wo_putc could + * override memory if it was the first HTML generating function called. + * + * Revision 1.11 1996/05/23 15:53:11 adam + * Bug fix: egw_enc failed on 8-bit chars. + * New command: egw_parms. + * + * Revision 1.10 1996/05/21 14:53:04 adam + * Tcl command wform extented; options -raw and -exists added. + * + * Revision 1.9 1996/03/14 11:48:39 adam + * New function egw_prog that returns name of shell. + * + * 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]. @@ -72,12 +103,9 @@ #define COMBUF 4096 #define OUTBUFFER_CHUNK 4096 -#define FIFOROOT "/tmp" -#define FIFODIR "egw" - typedef struct wform_data { - char name[20]; + char name[64]; char value[512]; } wform_data; @@ -99,9 +127,14 @@ struct w_select_handle { typedef struct wclient_data { int id; - wform_data wf_data[100]; - char wf_parms[512]; - char wf_serverp[512]; + char *prog; + char *raw_data; + wform_data wf_data[50]; + wform_data wf_parms_var[50]; + char wf_parms[1024]; + char wf_serverp[1024]; + char wf_serverf[1024]; + char wf_script[1024]; char path[512]; int linein; int lineout; @@ -112,23 +145,30 @@ typedef struct wclient_data 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, 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); +char *wgetval (WCLIENT wc, char *name); + +/* wproto_process: wait for one request from egwcgi. returns <=0 on + timeout; returns >0 otherwise. */ +int wproto_process (WCLIENT wc, int timeout); + +/* wproto_init: initializes communication with egwcgi. */ +WCLIENT wproto_init (const char *fifoDir, const char *prog); + +void wo_printf (WCLIENT wc, const char *fmt, ...); +void wo_clear (WCLIENT wc); +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); +void wo_puts (WCLIENT wc, const char *s); +void wo_write (WCLIENT wc, const char *s, size_t len); #endif