-const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.29 2002/04/10 13:38:35 oes Exp $";
+const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.34 2002/04/30 12:06:12 oes Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
*
* Revisions :
* $Log: cgisimple.c,v $
+ * Revision 1.34 2002/04/30 12:06:12 oes
+ * Deleted unused code from default_cgi
+ *
+ * Revision 1.33 2002/04/30 11:14:52 oes
+ * Made csp the first parameter in *action_to_html
+ *
+ * Revision 1.32 2002/04/26 18:29:13 jongfoster
+ * Fixing this Visual C++ warning:
+ * cgisimple.c(775) : warning C4018: '<' : signed/unsigned mismatch
+ *
+ * Revision 1.31 2002/04/26 12:54:36 oes
+ * - Kill obsolete REDIRECT_URL code
+ * - Error handling fixes
+ * - Style sheet related HTML snipplet changes
+ * - cgi_show_url_info:
+ * - Matches now in table, actions on single lines,
+ * linked to help
+ * - standard.action suppressed
+ * - Buttons to View and Edit AFs
+ *
+ * Revision 1.30 2002/04/24 02:18:08 oes
+ * - show-status is now the starting point for editing
+ * the actions files, generate list of all AFs with buttons
+ * for viewing and editing, new look for file list (Jon:
+ * buttons now aligned ;-P ), view mode now supports multiple
+ * AFs, name changes, no view links for unspecified files,
+ * no edit link for standard.action.
+ *
+ * - Jon's multiple AF patch: cgi_show_url_info now uses all
+ * AFs and marks the output accordingly
+ *
* Revision 1.29 2002/04/10 13:38:35 oes
* load_template signature changed
*
*
* Function : cgi_default
*
- * Description : CGI function that is called if no action was given.
- * Lists menu of available unhidden CGIs.
+ * Description : CGI function that is called for the CGI_SITE_1_HOST
+ * and CGI_SITE_2_HOST/CGI_SITE_2_PATH base URLs.
+ * Boring - only exports the default exports.
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory
- * (Problems other than out-of-memory should be
- * handled by this routine - it should set the
- * rsp appropriately and return "success")
*
*********************************************************************/
jb_err cgi_default(struct client_state *csp,
struct http_response *rsp,
const struct map *parameters)
{
- char *tmp;
struct map *exports;
assert(csp);
assert(rsp);
- assert(parameters);
if (NULL == (exports = default_exports(csp, "")))
{
return JB_ERR_MEMORY;
}
- /* If there were other parameters, export a dump as "cgi-parameters" */
- if (parameters->first)
- {
- tmp = strdup("<p>What made you think this cgi takes parameters?\n"
- "Anyway, here they are, in case you're interested:</p>\n");
- string_join(&tmp, dump_map(parameters));
- if (tmp == NULL)
- {
- free_map(exports);
- return JB_ERR_MEMORY;
- }
- if (map(exports, "cgi-parameters", 1, tmp, 0))
- {
- return JB_ERR_MEMORY;
- }
- }
- else
- {
- if (map(exports, "cgi-parameters", 1, "", 1))
- {
- return JB_ERR_MEMORY;
- }
- }
-
return template_fill_for_cgi(csp, "default", exports, rsp);
}
-
-
/*********************************************************************
*
* Function : cgi_error_404
{
char *s = NULL;
unsigned i;
+ int j;
FILE * fp;
char buf[BUFFER_SIZE];
#endif /* ndef FEATURE_STATISTICS */
struct file_list * fl;
struct url_actions * b;
- jb_err err;
+ jb_err err = JB_ERR_OK;
struct map *exports;
return template_fill_for_cgi(csp, "show-status-file", exports, rsp);
}
- if (map(exports, "redirect-url", 1, html_encode(REDIRECT_URL), 0))
- {
- free_map(exports);
- return JB_ERR_MEMORY;
- }
-
s = strdup("");
- for (i = 0; (s != NULL) && (i < Argc); i++)
+ for (j = 0; (s != NULL) && (j < Argc); j++)
{
- string_join (&s, html_encode(Argv[i]));
- string_append(&s, " ");
+ if (!err) err = string_join (&s, html_encode(Argv[j]));
+ if (!err) err = string_append(&s, " ");
}
- if (map(exports, "invocation", 1, s, 0))
+ if (!err) err = map(exports, "invocation", 1, s, 0);
+
+ if (!err) err = map(exports, "options", 1, csp->config->proxy_args, 1);
+ if (!err) err = show_defines(exports);
+
+ if (err)
{
free_map(exports);
return JB_ERR_MEMORY;
}
- err = map(exports, "options", 1, csp->config->proxy_args, 1);
- if (!err) err = show_defines(exports);
-
#ifdef FEATURE_STATISTICS
local_urls_read = urls_read;
local_urls_rejected = urls_rejected;
{
if (!err) err = string_append(&s, "<tr><td>");
if (!err) err = string_join(&s, html_encode(csp->actions_list[i]->filename));
- snprintf(buf, 100, "</td><td class=\"cmd\"><a href=\"/show-status?file=actions&index=%d\">View</a> ", i);
+ snprintf(buf, 100, "</td><td class=\"buttons\"><a href=\"/show-status?file=actions&index=%d\">View</a> ", i);
if (!err) err = string_append(&s, buf);
if (NULL == strstr(csp->actions_list[i]->filename, "standard.action") && NULL != csp->config->actions_file_short[i])
{
char *url_param;
struct map *exports;
+ char buf[150];
assert(csp);
assert(rsp);
init_current_action(action);
- if (map(exports, "default", 1, html_encode_and_free_original(
- current_action_to_text(action)), 0))
+ if (map(exports, "default", 1, current_action_to_html(csp, action), 0))
{
free_current_action(action);
free(url_param);
return JB_ERR_MEMORY;
}
-
err = parse_http_url(url_param, url_to_query, csp);
free(url_param);
}
}
- matches = strdup("");
+ matches = strdup("<table class=\"transparent\">");
for (i = 0; i < MAX_ACTION_FILES; i++)
{
+ if (NULL == csp->config->actions_file_short[i]
+ || !strcmp(csp->config->actions_file_short[i], "standard")) continue;
+
b = NULL;
hits = 1;
if ((fl = csp->actions_list[i]) != NULL)
{
if ((b = fl->f) != NULL)
{
- string_append(&matches, "<b>--- <a href=\"edit-actions-list?f=");
+ /* FIXME: Hardcoded HTML! */
+ string_append(&matches, "<tr><th>In file: ");
string_join (&matches, html_encode(csp->config->actions_file_short[i]));
- string_append(&matches, "\">File ");
+ snprintf(buf, 150, ".action <a class=\"cmd\" href=\"/show-status?file=actions&index=%d\">", i);
+ string_append(&matches, buf);
+ string_append(&matches, "View</a> <a class=\"cmd\" href=\"/edit-actions-list?f=");
string_join (&matches, html_encode(csp->config->actions_file_short[i]));
- string_append(&matches, "</a> ---</b><br>\n<br>\n");
+ string_append(&matches, "\">Edit</a></th></tr>\n");
hits = 0;
b = b->next;
{
if (url_match(b->url, url_to_query))
{
- string_append(&matches, "<b>{");
- string_join (&matches, html_encode_and_free_original(
- actions_to_text(b->action)));
+ string_append(&matches, "<tr><td>{");
+ string_join (&matches, actions_to_html(csp, b->action));
string_append(&matches, " }</b><br>\n<code>");
string_join (&matches, html_encode(b->url->spec));
- string_append(&matches, "</code><br>\n<br>\n");
+ string_append(&matches, "</code></td></tr>\n");
if (merge_current_action(action, b->action))
{
if (!hits)
{
- string_append(&matches, "(no matches in this file)\n<br>\n");
+ string_append(&matches, "<tr><td>(no matches in this file)</td></tr>\n");
}
}
+ string_append(&matches, "</table>\n");
free_http_request(url_to_query);
return JB_ERR_MEMORY;
}
- s = html_encode_and_free_original(current_action_to_text(action));
+ s = current_action_to_html(csp, action);
free_current_action(action);
/* In alphabetical order */
SHOW_RCS(actions_h_rcs)
SHOW_RCS(actions_rcs)
+#ifdef AMIGA
+ SHOW_RCS(amiga_h_rcs)
+ SHOW_RCS(amiga_rcs)
+#endif /* def AMIGA */
SHOW_RCS(cgi_h_rcs)
SHOW_RCS(cgi_rcs)
#ifdef FEATURE_CGI_EDIT_ACTIONS