]> granicus.if.org Git - apache/commitdiff
Switch mod_dbd to using APR_STATUS_IS_foo macros in error handling
authorNick Kew <niq@apache.org>
Fri, 21 Aug 2009 19:40:17 +0000 (19:40 +0000)
committerNick Kew <niq@apache.org>
Fri, 21 Aug 2009 19:40:17 +0000 (19:40 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@806692 13f79535-47bb-0310-9956-ffa450edef68

modules/database/mod_dbd.c
modules/database/mod_dbd.h

index d487a585c15fe3e85e51d99d7a68506e5b1e240e..106a9c111902f36d6cbfa9d157890f082db08811 100644 (file)
@@ -160,6 +160,7 @@ static void ap_dbd_sql_init(server_rec *s, const char *query)
 
 static const char *dbd_param(cmd_parms *cmd, void *dconf, const char *val)
 {
+    apr_status_t rv;
     const apr_dbd_driver_t *driver = NULL;
     svr_cfg *svr = ap_get_module_config(cmd->server->module_config,
                                         &dbd_module);
@@ -172,10 +173,11 @@ static const char *dbd_param(cmd_parms *cmd, void *dconf, const char *val)
          * best done at server startup.  This also guarantees that
          * we won't return an error later.
          */
-        switch (apr_dbd_get_driver(cmd->pool, cfg->name, &driver)) {
-        case APR_ENOTIMPL:
+        rv = apr_dbd_get_driver(cmd->pool, cfg->name, &driver);
+        if (APR_STATUS_IS_ENOTIMPL(rv)) {
             return apr_psprintf(cmd->pool, "DBD: No driver for %s", cfg->name);
-        case APR_EDSOOPEN:
+        }
+        else if (APR_STATUS_IS_EDSOOPEN(rv)) {
             return apr_psprintf(cmd->pool,
 #ifdef NETWARE
                                 "DBD: Can't load driver file dbd%s.nlm",
@@ -183,7 +185,8 @@ static const char *dbd_param(cmd_parms *cmd, void *dconf, const char *val)
                                 "DBD: Can't load driver file apr_dbd_%s.so",
 #endif
                                 cfg->name);
-        case APR_ESYMNOTFOUND:
+        }
+        else if (APR_STATUS_IS_ESYMNOTFOUND(rv)) {
             return apr_psprintf(cmd->pool,
                                 "DBD: Failed to load driver apr_dbd_%s_driver",
                                 cfg->name);
@@ -535,26 +538,23 @@ static apr_status_t dbd_construct(void **data_ptr,
      */
     rv = apr_dbd_get_driver(rec->pool, cfg->name, &rec->driver);
     if (rv != APR_SUCCESS) {
-        switch (rv) {
-        case APR_ENOTIMPL:
+        if (APR_STATUS_IS_ENOTIMPL(rv)) {
             ap_log_error(APLOG_MARK, APLOG_ERR, rv, cfg->server,
                          "DBD: driver for %s not available", cfg->name);
-            break;
-        case APR_EDSOOPEN:
+        }
+        else if (APR_STATUS_IS_EDSOOPEN(rv)) {
             ap_log_error(APLOG_MARK, APLOG_ERR, rv, cfg->server,
                          "DBD: can't find driver for %s", cfg->name);
-            break;
-        case APR_ESYMNOTFOUND:
+        }
+        else if (APR_STATUS_IS_ESYMNOTFOUND(rv)) {
             ap_log_error(APLOG_MARK, APLOG_ERR, rv, cfg->server,
                          "DBD: driver for %s is invalid or corrupted",
                          cfg->name);
-            break;
-        default:
+        }
+        else {
             ap_log_error(APLOG_MARK, APLOG_ERR, rv, cfg->server,
                          "DBD: mod_dbd not compatible with APR in get_driver");
-            break;
         }
-
         apr_pool_destroy(rec->pool);
         return rv;
     }
index fbad740121b14409dbd3bc70132d31dd312660f8..c1ee768b7324774a470e74e2e3cfef532fc16a4b 100644 (file)
@@ -116,7 +116,7 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
 APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));
 
 APR_DECLARE_EXTERNAL_HOOK(dbd, DBD, apr_status_t, post_connect,
-                          (apr_pool_t *, dbd_cfg_t *, ap_dbd_t *));
+                          (apr_pool_t *, dbd_cfg_t *, ap_dbd_t *))
 
 #endif
 /** @} */