You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2007/12/05 21:45:14 UTC

svn commit: r601514 - /httpd/mod_ftp/trunk/modules/ftp/mod_ftp.c

Author: wrowe
Date: Wed Dec  5 12:45:14 2007
New Revision: 601514

URL: http://svn.apache.org/viewvc?rev=601514&view=rev
Log:
According to mod_ftp.xml, LimitDBFile is global, while the
specific Limit directives are permitted per-vhost.  Drop the
invalid context checks for those related directives, and
greatly simplify the global LimitDBFile logic and save a ton
of cycles at startup.

Modified:
    httpd/mod_ftp/trunk/modules/ftp/mod_ftp.c

Modified: httpd/mod_ftp/trunk/modules/ftp/mod_ftp.c
URL: http://svn.apache.org/viewvc/httpd/mod_ftp/trunk/modules/ftp/mod_ftp.c?rev=601514&r1=601513&r2=601514&view=diff
==============================================================================
--- httpd/mod_ftp/trunk/modules/ftp/mod_ftp.c (original)
+++ httpd/mod_ftp/trunk/modules/ftp/mod_ftp.c Wed Dec  5 12:45:14 2007
@@ -78,11 +78,17 @@
                            apr_pool_t *ptemp, server_rec *s)
 {
     server_rec *base = s;
+    char *global_limitdbfile;
 
     ap_add_version_component(p, FTP_SERVER_STRING);
 
-    /* Fixup base server and virtual host default values
+    /* Fixup global values, then base server and virtual host values
      */
+    ftp_server_config *fsc = ftp_get_module_config(s->module_config);
+    if (!fsc->limitdbfile)
+        fsc->limitdbfile = ap_server_root_relative(p, FTP_DEFAULT_DBFILE);
+    global_limitdbfile = fsc->limitdbfile;
+
     for (; s; s = s->next) {
         ftp_server_config *fsc = ftp_get_module_config(s->module_config);
 
@@ -114,8 +120,7 @@
         if (fsc->limit_perserver == FTP_UNSPEC)
             fsc->limit_perserver = 0;
 
-        fsc->limitdbfile = ap_server_root_relative(p, fsc->limitdbfile);
-
+        fsc->limitdbfile = global_limitdbfile;
     }
 
     if (ftp_mutexdb_init(base, p) != APR_SUCCESS) {
@@ -155,7 +160,6 @@
     fsc->limit_perip        = FTP_UNSPEC;
     fsc->limit_perserver    = FTP_UNSPEC;
 
-    fsc->limitdbfile        = FTP_DEFAULT_DBFILE;
     return fsc;
 }
 
@@ -203,8 +207,6 @@
     if (fsc->limit_perserver == FTP_UNSPEC)
         fsc->limit_perserver = base->limit_perserver;
 
-    fsc->limitdbfile = ap_server_root_relative(p, base->limitdbfile);
-
     if (!fsc->banner_message) {
         fsc->banner_message = base->banner_message;
         fsc->banner_message_isfile = base->banner_message_isfile;
@@ -752,11 +754,6 @@
     char *error_str = NULL;
     ftp_server_config *fsc;
 
-    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
-    if (err != NULL) {
-        return err;
-    }
-
     fsc = ftp_get_module_config(cmd->server->module_config);
 
     /* XXX: better error handling */
@@ -777,11 +774,6 @@
     char *error_str = NULL;
     ftp_server_config *fsc;
 
-    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
-    if (err != NULL) {
-        return err;
-    }
-
     fsc = ftp_get_module_config(cmd->server->module_config);
 
     /* XXX: better error handling */
@@ -801,11 +793,6 @@
 {
     char *error_str = NULL;
     ftp_server_config *fsc;
-
-    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
-    if (err != NULL) {
-        return err;
-    }
 
     fsc = ftp_get_module_config(cmd->server->module_config);