X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=cgiedit.c;h=e3ffce4baecbb4d76637de477e2b2a9914e73228;hb=46b21455cec9cc16ffceed066cb6dd177ccac3f1;hp=ec7b5d289d81b3dc66c25d060a8e3151a870174d;hpb=426f0650549b9cb1f4275d72efb4ae3ac1acce8e;p=privoxy.git diff --git a/cgiedit.c b/cgiedit.c index ec7b5d28..e3ffce4b 100644 --- a/cgiedit.c +++ b/cgiedit.c @@ -1,4 +1,4 @@ -const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.12 2002/03/03 09:18:03 joergs Exp $"; +const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.15 2002/03/06 22:54:35 jongfoster Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/cgiedit.c,v $ @@ -42,6 +42,15 @@ const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.12 2002/03/03 09:18:03 joergs Exp * * Revisions : * $Log: cgiedit.c,v $ + * Revision 1.15 2002/03/06 22:54:35 jongfoster + * Automated function-comment nitpicking. + * + * Revision 1.14 2002/03/05 00:24:51 jongfoster + * Patch to always edit the current actions file. + * + * Revision 1.13 2002/03/04 02:07:59 david__schmidt + * Enable web editing of actions file on OS/2 (it had been broken all this time!) + * * Revision 1.12 2002/03/03 09:18:03 joergs * Made jumbjuster work on AmigaOS again. * @@ -315,7 +324,7 @@ static jb_err get_url_spec_param(struct client_state *csp, static jb_err map_radio(struct map * exports, const char * optionname, const char * values, - char value); + int value); static jb_err actions_to_radio(struct map * exports, const struct action_spec *action); static jb_err actions_from_radio(const struct map * parameters, @@ -339,9 +348,9 @@ static jb_err map_copy_parameter_url(struct map *out, * encoding it. * * Parameters : - * 1 : out = target map - * 2 : in = source map - * 3 : name = name of cgi parameter to copy + * 1 : out = target map + * 2 : in = source map + * 3 : name = name of cgi parameter to copy * * Returns : JB_ERR_OK on success * JB_ERR_MEMORY on out-of-memory @@ -388,9 +397,9 @@ static jb_err map_copy_parameter_html(struct map *out, * encoding it. * * Parameters : - * 1 : out = target map - * 2 : in = source map - * 3 : name = name of cgi parameter to copy + * 1 : out = target map + * 2 : in = source map + * 3 : name = name of cgi parameter to copy * * Returns : JB_ERR_OK on success * JB_ERR_MEMORY on out-of-memory @@ -436,9 +445,9 @@ static jb_err map_copy_parameter_url(struct map *out, * edit-actions-url * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters * f : (filename) Identifies the file to edit @@ -532,9 +541,9 @@ jb_err cgi_edit_actions_url_form(struct client_state *csp, * edit-actions-url * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * f : (filename) Identifies the file to edit @@ -590,9 +599,9 @@ jb_err cgi_edit_actions_add_url_form(struct client_state *csp, * edit-actions-url * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * f : (filename) Identifies the file to edit @@ -762,7 +771,7 @@ jb_err edit_write_file(struct editable_file * file) /* Allocate new memory for string */ len = strlen(cur_line->unprocessed); - if (NULL == (str = malloc(len + 1 + numhash))) + if (NULL == (str = malloc((size_t) len + 1 + numhash))) { /* Uh oh, just trashed file! */ fclose(fp); @@ -941,15 +950,15 @@ static void edit_free_file_lines(struct file_line * first_line) * Description : Match an actions file {{header}} line * * Parameters : - * 1 : line - String from file - * 2 : name - Header to match against + * 1 : line = String from file + * 2 : name = Header to match against * * Returns : 0 iff they match. * *********************************************************************/ static int match_actions_file_header_line(const char * line, const char * name) { - int len; + size_t len; assert(line); assert(name); @@ -999,10 +1008,10 @@ static int match_actions_file_header_line(const char * line, const char * name) * Description : Match an actions file {{header}} line * * Parameters : - * 1 : line - String from file. Must not start with + * 1 : line = String from file. Must not start with * whitespace (else infinite loop!) - * 2 : name - Destination for name - * 2 : name - Destination for value + * 2 : name = Destination for name + * 2 : name = Destination for value * * Returns : JB_ERR_OK on success * JB_ERR_MEMORY on out-of-memory @@ -1015,7 +1024,7 @@ static jb_err split_line_on_equals(const char * line, char ** pname, char ** pva { const char * name_end; const char * value_start; - int name_len; + size_t name_len; assert(line); assert(pname); @@ -1095,7 +1104,7 @@ static jb_err split_line_on_equals(const char * line, char ** pname, char ** pva jb_err edit_parse_actions_file(struct editable_file * file) { struct file_line * cur_line; - int len; + size_t len; const char * text; /* Text from a line */ char * name; /* For lines of the form name=value */ char * value; /* For lines of the form name=value */ @@ -1714,13 +1723,13 @@ jb_err edit_read_actions_file(struct client_state *csp, * secure. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : parameters = map of cgi parameters - * 3 : param_name = The name of the parameter to read - * 4 : suffix = File extension, e.g. ".actions" - * 5 : pfilename = destination for full filename. Caller + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : parameters = map of cgi parameters + * 3 : param_name = The name of the parameter to read + * 4 : suffix = File extension, e.g. ".actions" + * 5 : pfilename = destination for full filename. Caller * free()s. Set to NULL on error. - * 6 : pparam = destination for partial filename, + * 6 : pparam = destination for partial filename, * suitable for use in another URL. Allocated as part * of the map "parameters", so don't free it. * Set to NULL if not specified. @@ -1740,7 +1749,9 @@ static jb_err get_file_name_param(struct client_state *csp, { const char *param; const char *s; +#if 0 /* Patch to make 3.0.0 work properly. */ char *name; +#endif /* 0 - Patch to make 3.0.0 work properly. */ char *fullpath; char ch; int len; @@ -1784,6 +1795,13 @@ static jb_err get_file_name_param(struct client_state *csp, } } + /* + * FIXME Following is a hack to make 3.0.0 work properly. + * Change "#if 0" --> "#if 1" below when we have modular action + * files. + * -- Jon + */ +#if 0 /* Patch to make 3.0.0 work properly. */ /* Append extension */ name = malloc(len + strlen(suffix) + 1); if (name == NULL) @@ -1796,6 +1814,16 @@ static jb_err get_file_name_param(struct client_state *csp, /* Prepend path */ fullpath = make_path(csp->config->confdir, name); free(name); +#else /* 1 - Patch to make 3.0.0 work properly. */ + if ((csp->actions_list == NULL) + || (csp->actions_list->filename == NULL)) + { + return JB_ERR_CGI_PARAMS; + } + + fullpath = ( (csp->actions_list && csp->actions_list->filename) + ? strdup(csp->actions_list->filename) : NULL); +#endif /* 1 - Patch to make 3.0.0 work properly. */ if (fullpath == NULL) { return JB_ERR_MEMORY; @@ -1816,10 +1844,10 @@ static jb_err get_file_name_param(struct client_state *csp, * passed to a CGI function. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : parameters = map of cgi parameters - * 3 : name = Name of CGI parameter to read - * 4 : pvalue = destination for value. + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : parameters = map of cgi parameters + * 3 : name = Name of CGI parameter to read + * 4 : pvalue = destination for value. * Set to -1 on error. * * Returns : JB_ERR_OK on success @@ -1842,7 +1870,7 @@ static jb_err get_number_param(struct client_state *csp, assert(name); assert(pvalue); - *pvalue = -1; + *pvalue = 0; param = lookup(parameters, name); if (!*param) @@ -1881,6 +1909,7 @@ static jb_err get_number_param(struct client_state *csp, *pvalue = value; return JB_ERR_OK; + } @@ -1893,10 +1922,10 @@ static jb_err get_number_param(struct client_state *csp, * spaces and validates it. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : parameters = map of cgi parameters - * 3 : name = Name of CGI parameter to read - * 4 : pvalue = destination for value. Will be malloc()'d. + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : parameters = map of cgi parameters + * 3 : name = Name of CGI parameter to read + * 4 : pvalue = destination for value. Will be malloc()'d. * Set to NULL on error. * * Returns : JB_ERR_OK on success @@ -2026,10 +2055,10 @@ static jb_err get_url_spec_param(struct client_state *csp, * Where 'sel' is 'a', 'b', or 'c'. * * Parameters : - * 1 : exports = Exports map to modify. - * 2 : optionname = name for map - * 3 : values = null-terminated list of values; - * 4 : value = Selected value. + * 1 : exports = Exports map to modify. + * 2 : optionname = name for map + * 3 : values = null-terminated list of values; + * 4 : value = Selected value. * * CGI Parameters : None * @@ -2040,9 +2069,9 @@ static jb_err get_url_spec_param(struct client_state *csp, static jb_err map_radio(struct map * exports, const char * optionname, const char * values, - char value) + int value) { - int len; + size_t len; char * buf; char * p; char c; @@ -2095,9 +2124,9 @@ static jb_err map_radio(struct map * exports, * outside the CGI editor. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : filename = The file that was modified. + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : filename = The file that was modified. * * CGI Parameters : none * @@ -2140,9 +2169,9 @@ jb_err cgi_error_modified(struct client_state *csp, * be parsed by the CGI editor. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : file = The file that was modified. + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : file = The file that was modified. * * CGI Parameters : none * @@ -2194,9 +2223,9 @@ jb_err cgi_error_parse(struct client_state *csp, * opened by the CGI editor. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : filename = The file that was modified. + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : filename = The file that was modified. * * CGI Parameters : none * @@ -2239,8 +2268,8 @@ jb_err cgi_error_file(struct client_state *csp, * (query string) for a CGI were wrong. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output * * CGI Parameters : none * @@ -2273,9 +2302,9 @@ jb_err cgi_error_disabled(struct client_state *csp, * actions file to edit. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : None * @@ -2319,9 +2348,9 @@ jb_err cgi_edit_actions(struct client_state *csp, * FIXME: This function shouldn't FATAL ever. * FIXME: This function doesn't check the retval of map() * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : filename * @@ -2674,9 +2703,9 @@ jb_err cgi_edit_actions_list(struct client_state *csp, * Description : CGI function that edits the Actions list. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : None * @@ -2763,9 +2792,9 @@ jb_err cgi_edit_actions_for_url(struct client_state *csp, * Description : CGI function that actually edits the Actions list. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : None * @@ -2782,7 +2811,7 @@ jb_err cgi_edit_actions_submit(struct client_state *csp, unsigned sectionid; char * actiontext; char * newtext; - int len; + size_t len; struct editable_file * file; struct file_line * cur_line; unsigned line_number; @@ -2906,9 +2935,9 @@ jb_err cgi_edit_actions_submit(struct client_state *csp, * an actions file. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * filename : Identifies the file to edit @@ -3028,9 +3057,9 @@ jb_err cgi_edit_actions_url(struct client_state *csp, * an actions file. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * filename : Identifies the file to edit @@ -3167,9 +3196,9 @@ jb_err cgi_edit_actions_add_url(struct client_state *csp, * the actions file. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * f : (filename) Identifies the file to edit @@ -3284,9 +3313,9 @@ jb_err cgi_edit_actions_remove_url(struct client_state *csp, * (else JB_ERR_CGI_PARAMS). * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * f : (filename) Identifies the file to edit @@ -3415,9 +3444,9 @@ jb_err cgi_edit_actions_section_remove(struct client_state *csp, * an actions file. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * f : (filename) Identifies the file to edit @@ -3592,9 +3621,9 @@ jb_err cgi_edit_actions_section_add(struct client_state *csp, * specified. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * f : (filename) Identifies the file to edit @@ -3788,9 +3817,9 @@ jb_err cgi_edit_actions_section_swap(struct client_state *csp, * an actions file. * * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * 2 : rsp = http_response data structure for output - * 3 : parameters = map of cgi parameters + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters * * CGI Parameters : * set : If present, how to change toggle setting: