Changeset: ad3994bd989b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ad3994bd989b
Modified Files:
        clients/examples/C/testsfile.c
        clients/mapilib/msettings.c
        clients/mapilib/msettings.h
Branch: monetdburl
Log Message:

Let msettings_connect_tls_verify() return an enum


diffs (90 lines):

diff --git a/clients/examples/C/testsfile.c b/clients/examples/C/testsfile.c
--- a/clients/examples/C/testsfile.c
+++ b/clients/examples/C/testsfile.c
@@ -166,6 +166,22 @@ expect_string(const char *location, cons
        return false;
 }
 
+static const char *
+stringify_tls_verify(const msettings *mp)
+{
+       enum msetting_tls_verify verify = msettings_connect_tls_verify(mp);
+       switch (verify) {
+               case verify_none:
+                       return "";
+               case verify_system:
+                       return "system";
+               case verify_cert:
+                       return "cert";
+               case verify_hash:
+                       return "hash";
+       }
+       assert(0 && "unreachable");
+}
 
 static bool
 handle_expect_command(const char *location, char *key, char *value)
@@ -201,7 +217,7 @@ handle_expect_command(const char *locati
        if (strcmp("connect_port", key) == 0)
                return expect_long(location, MP_UNKNOWN, 
msettings_connect_port, value);
        if (strcmp("connect_tls_verify", key) == 0)
-               return expect_string(location, MP_UNKNOWN, 
msettings_connect_tls_verify, value);
+               return expect_string(location, MP_UNKNOWN, 
stringify_tls_verify, value);
        if (strcmp("connect_certhash_digits", key) == 0)
                return expect_string(location, MP_UNKNOWN, 
msettings_connect_certhash_digits, value);
        if (strcmp("connect_binary", key) == 0)
diff --git a/clients/mapilib/msettings.c b/clients/mapilib/msettings.c
--- a/clients/mapilib/msettings.c
+++ b/clients/mapilib/msettings.c
@@ -746,7 +746,7 @@ msettings_connect_port(const msettings *
                return port;
 }
 
-const char*
+enum msetting_tls_verify
 msettings_connect_tls_verify(const msettings *mp)
 {
        assert(mp->validated);
@@ -755,12 +755,12 @@ msettings_connect_tls_verify(const msett
        const char *certhash = msetting_string(mp, MP_CERTHASH);
 
        if (!tls)
-               return "";
-       if (*certhash)
-               return "hash";
+               return verify_none;
+       if (*certhash) // certhash comes before cert
+               return verify_hash;
        if (*cert)
-               return "cert";
-       return "system";
+               return verify_cert;
+       return verify_system;
 }
 
 const char*
diff --git a/clients/mapilib/msettings.h b/clients/mapilib/msettings.h
--- a/clients/mapilib/msettings.h
+++ b/clients/mapilib/msettings.h
@@ -106,14 +106,20 @@ bool msettings_validate(msettings *mp, c
 
 
 /* virtual parameters */
+enum msetting_tls_verify {
+       verify_none,
+       verify_system,
+       verify_cert,
+       verify_hash,
+};
 bool msettings_connect_scan(const msettings *mp);
 const char *msettings_connect_sockdir(const msettings *mp);
 const char *msettings_connect_unix(const msettings *mp);
 const char *msettings_connect_tcp(const msettings *mp);
 long msettings_connect_port(const msettings *mp);
-const char *msettings_connect_tls_verify(const msettings *mp);
 const char *msettings_connect_certhash_digits(const msettings *mp);
 long msettings_connect_binary(const msettings *mp);
+enum msetting_tls_verify msettings_connect_tls_verify(const msettings *mp);
 
 /* automatically incremented each time the corresponding field is updated */
 long msettings_user_generation(const msettings *mp);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to