Replacing hard references to the URL of the config interface
[privoxy.git] / cgiedit.c
index 5645bfd..789bc3b 100644 (file)
--- a/cgiedit.c
+++ b/cgiedit.c
@@ -1,4 +1,4 @@
-const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.7 2001/11/13 00:28:24 jongfoster Exp $";
+const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.8 2001/11/30 23:35:51 jongfoster Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/cgiedit.c,v $
@@ -35,6 +35,9 @@ const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.7 2001/11/13 00:28:24 jongfoster
  *
  * Revisions   :
  *    $Log: cgiedit.c,v $
+ *    Revision 1.8  2001/11/30 23:35:51  jongfoster
+ *    Renaming actionsfile to ijb.action
+ *
  *    Revision 1.7  2001/11/13 00:28:24  jongfoster
  *    - Renaming parameters from edit-actions-for-url so that they only
  *      contain legal JavaScript characters.  If we wanted to write
@@ -124,6 +127,7 @@ const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.7 2001/11/13 00:28:24 jongfoster
 #include "errlog.h"
 #include "loadcfg.h"
 /* loadcfg.h is for g_bToggleIJB only */
+#include "urlmatch.h"
 
 const char cgiedit_h_rcs[] = CGIEDIT_H_VERSION;
 
@@ -2599,7 +2603,8 @@ jb_err cgi_edit_actions(struct client_state *csp,
    {
       return JB_ERR_MEMORY;
    }
-   if (enlist_unique_header(rsp->headers, "Location", "http://ijbswa.sourceforge.net/config/edit-actions-list?filename=ijb"))
+   if (enlist_unique_header(rsp->headers, "Location",
+      CGI_PREFIX "edit-actions-list?filename=ijb"))
    {
       free(rsp->status);
       rsp->status = NULL;
@@ -3140,7 +3145,7 @@ jb_err cgi_edit_actions_submit(struct client_state *csp,
       return err;
    }
 
-   target = strdup("http://ijbswa.sourceforge.net/config/edit-actions-list?filename=");
+   target = strdup(CGI_PREFIX "edit-actions-list?filename=");
    string_append(&target, file->identifier);
 
    edit_free_file(file);
@@ -3294,7 +3299,7 @@ jb_err cgi_edit_actions_url(struct client_state *csp,
       return err;
    }
 
-   target = strdup("http://ijbswa.sourceforge.net/config/edit-actions-list?filename=");
+   target = strdup(CGI_PREFIX "edit-actions-list?filename=");
    string_append(&target, file->identifier);
 
    edit_free_file(file);
@@ -3355,6 +3360,7 @@ jb_err cgi_edit_actions_add_url(struct client_state *csp,
    unsigned line_number;
    char * target;
    jb_err err;
+   struct url_spec compiled[1];
 
    if (0 == (csp->config->feature_flags & RUNTIME_FEATURE_CGI_EDIT_ACTIONS))
    {
@@ -3374,6 +3380,14 @@ jb_err cgi_edit_actions_add_url(struct client_state *csp,
       return JB_ERR_CGI_PARAMS;
    }
 
+   /* Check that regex is valid */
+   err = create_url_spec(compiled, newval);
+   if (err)
+   {
+      return (err == JB_ERR_MEMORY) ? JB_ERR_MEMORY : JB_ERR_CGI_PARAMS;
+   }
+   free_url_spec(compiled);
+
    err = edit_read_actions_file(csp, rsp, parameters, 1, &file);
    if (err)
    {
@@ -3436,7 +3450,7 @@ jb_err cgi_edit_actions_add_url(struct client_state *csp,
       return err;
    }
 
-   target = strdup("http://ijbswa.sourceforge.net/config/edit-actions-list?filename=");
+   target = strdup(CGI_PREFIX "edit-actions-list?filename=");
    string_append(&target, file->identifier);
 
    edit_free_file(file);
@@ -3584,7 +3598,7 @@ jb_err cgi_edit_actions_remove_url(struct client_state *csp,
       return err;
    }
 
-   target = strdup("http://ijbswa.sourceforge.net/config/edit-actions-list?filename=");
+   target = strdup(CGI_PREFIX "edit-actions-list?filename=");
    string_append(&target, file->identifier);
 
    edit_free_file(file);
@@ -3717,7 +3731,7 @@ jb_err cgi_edit_actions_section_remove(struct client_state *csp,
       return err;
    }
 
-   target = strdup("http://ijbswa.sourceforge.net/config/edit-actions-list?filename=");
+   target = strdup(CGI_PREFIX "edit-actions-list?filename=");
    string_append(&target, file->identifier);
 
    edit_free_file(file);
@@ -3891,7 +3905,7 @@ jb_err cgi_edit_actions_section_add(struct client_state *csp,
       return err;
    }
 
-   target = strdup("http://ijbswa.sourceforge.net/config/edit-actions-list?filename=");
+   target = strdup(CGI_PREFIX "edit-actions-list?filename=");
    string_append(&target, file->identifier);
 
    edit_free_file(file);