- while (wproto_process(wcl, timeout) > 0)
- {
- char *p;
-
- wo_clear (wcl, "text/html");
- strcpy (parms_buf, wcl->wf_parms);
- script = parms = parms_buf;
- while (*parms && *parms != '/')
- parms++;
- if (*parms)
- *parms++ = '\0';
- if (*script)
- {
- p = script + strlen(script) - 1;
- while (*p && p != script)
- switch (*p)
- {
- case '+':
- wproto_cache (wcl, wcl->cache_level+1);
- *p = '\0';
- break;
- case '-':
- if (p[1])
- wproto_cache (wcl, wcl->cache_level-atoi(p+1));
- else
- wproto_cache (wcl, wcl->cache_level-1);
- *p = '\0';
- break;
- case '=':
- if (isdigit(p[1]))
- wproto_cache (wcl, atoi(p+1));
- *p = '\0';
- break;
- default:
- --p;
- }
- }
- for (p = parms; *p; p++)
- if (*p == '+')
- *p = ' ';
- gw_log (GW_LOG_DEBUG, mod, "script: %s", script);
- gw_log (GW_LOG_DEBUG, mod, "parms: %s", parms);
- if (w_interp_exec (w_interp, script, parms))
- {
- wo_printf (wcl, "<html><head><title>wsh error</title></head>\n");
- wo_printf (wcl, "<body>Couldn't execute script %s</body></html>",
- script);
- }
- wo_finish(wcl);
- }
- wproto_terminate(wcl);
- return 0;