X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=www%2Fwsh.c;h=4bd4257eba9c4ca58eb27964b49824b66f5a7670;hb=f37ddd57014f51c88ef36050ed08b4c6e226e094;hp=f36d42e7d2eb4ccabcf4ef52c40114ea16606dda;hpb=1938b1fd36e774fa9b6d11a4eb5edfcdaee0267b;p=egate.git diff --git a/www/wsh.c b/www/wsh.c index f36d42e..4bd4257 100644 --- a/www/wsh.c +++ b/www/wsh.c @@ -41,21 +41,24 @@ * USE OR PERFORMANCE OF THIS SOFTWARE. * * $Log: wsh.c,v $ - * Revision 1.1 1995/10/20 11:49:28 adam + * Revision 1.2 1995/10/20 14:02:42 adam + * First version of WWW gateway with embedded Tcl. + * + * Revision 1.1 1995/10/20 11:49:28 adam * First version of www gateway. * */ #include #include -#include +#include #include #include #include -#include "wproto.h" +#include "winterp.h" -#define TIMEOUT_SHORT 300 +#define TIMEOUT_SHORT 60 #define TIMEOUT_MEDIUM 1800 #define TIMEOUT_LONG 7200 @@ -64,8 +67,9 @@ static char *mod = "wsh"; int main (int argc, char **argv) { - char *argument, *p, parms[512]; + char *script, *p, parms[512]; int timeout = TIMEOUT_SHORT; + W_Interp tcl_interp, html_interp; chdir("/usr/local/etc/httpd/cgi-bin"); gw_log_init ("egw"); @@ -78,20 +82,28 @@ int main (int argc, char **argv) gw_log (GW_LOG_FATAL, mod, "init"); exit(1); } + tcl_interp = w_interp_create (w_interp_tcl, NULL); + html_interp = w_interp_create (w_interp_html, NULL); while (wproto_process(wcl, timeout) > 0) { wo_clear(wcl, "text/html"); - wo_printf(wcl, "INDEX\n"); strcpy(parms, wcl->wf_parms); - argument = p = parms; + script = p = parms; while (*p && *p != '/') p++; if (*p == '/') *(p++) = '\0'; - gw_log (GW_LOG_DEBUG, mod, "command: %s", argument); - wo_printf (wcl, "hej - %s\n", argument); + gw_log (GW_LOG_DEBUG, mod, "script: %s", script); + gw_log (GW_LOG_DEBUG, mod, "parms: %s", p); + if (w_interp_exec (tcl_interp, wcl, script, p)) + { + wo_printf (wcl, "wsh error\n"); + wo_printf (wcl, "Couldn't execute script %s", + script); + } wo_finish(wcl); } wproto_terminate(wcl); return 0; } +