]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
moving SSLVerifyClient directive parsing into ssl_cmd_verify_parse
authorDoug MacEachern <dougm@apache.org>
Tue, 12 Mar 2002 21:06:17 +0000 (21:06 +0000)
committerDoug MacEachern <dougm@apache.org>
Tue, 12 Mar 2002 21:06:17 +0000 (21:06 +0000)
function, which can also be used for SSLProxyVerify directive.

dropping support for undocumented integer form of levels (0..3)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/ssl@93870 13f79535-47bb-0310-9956-ffa450edef68

ssl_engine_config.c

index 1003b1dc01fbc1e18d4fdd6e1aab3aa5295b35c1..ae9e3bb80160974b79e561b58d71ba7c8d4ec1af 100644 (file)
@@ -722,29 +722,43 @@ const char *ssl_cmd_SSLCARevocationFile(cmd_parms *cmd, void *ctx,
     return NULL;
 }
 
-const char *ssl_cmd_SSLVerifyClient(cmd_parms *cmd, void *ctx,
-                                    const char *level)
+static const char *ssl_cmd_verify_parse(cmd_parms *parms,
+                                        const char *arg,
+                                        ssl_verify_t *id)
 {
-    SSLDirConfigRec *dc = (SSLDirConfigRec *)ctx;
-    SSLSrvConfigRec *sc = mySrvConfig(cmd->server);
-    ssl_verify_t id;
-
-    if (strEQ(level, "0") || strcEQ(level, "none")) {
-        id = SSL_CVERIFY_NONE;
+    if (strcEQ(arg, "none") || strcEQ(arg, "off")) {
+        *id = SSL_CVERIFY_NONE;
     }
-    else if (strEQ(level, "1") || strcEQ(level, "optional")) {
-        id = SSL_CVERIFY_OPTIONAL;
+    else if (strcEQ(arg, "optional")) {
+        *id = SSL_CVERIFY_OPTIONAL;
     }
-    else if (strEQ(level, "2") || strcEQ(level, "require")) {
-        id = SSL_CVERIFY_REQUIRE;
+    else if (strcEQ(arg, "require") || strcEQ(arg, "on")) {
+        *id = SSL_CVERIFY_REQUIRE;
     }
-    else if (strEQ(level, "3") || strcEQ(level, "optional_no_ca")) {
-        id = SSL_CVERIFY_OPTIONAL_NO_CA;
+    else if (strcEQ(arg, "optional_no_ca")) {
+        *id = SSL_CVERIFY_OPTIONAL_NO_CA;
     }
     else {
-        return "SSLVerifyClient: Invalid argument";
+        return apr_pstrcat(parms->temp_pool, parms->cmd->name,
+                           ": Invalid argument '", arg, "'",
+                           NULL);
     }
 
+    return NULL;
+}
+
+const char *ssl_cmd_SSLVerifyClient(cmd_parms *cmd, void *ctx,
+                                    const char *arg)
+{
+    SSLDirConfigRec *dc = (SSLDirConfigRec *)ctx;
+    SSLSrvConfigRec *sc = mySrvConfig(cmd->server);
+    ssl_verify_t id;
+    const char *err;
+
+    if ((err = ssl_cmd_verify_parse(cmd, arg, &id))) {
+        return err;
+    }
+    
     if (!(cmd->path || dc)) {
         sc->nVerifyClient = id;
     }