]> granicus.if.org Git - apache/commitdiff
Fix rewritemap/dbd bug pointed out by Davi Arnaut, and improve error reporting.
authorNick Kew <niq@apache.org>
Tue, 10 Oct 2006 13:15:07 +0000 (13:15 +0000)
committerNick Kew <niq@apache.org>
Tue, 10 Oct 2006 13:15:07 +0000 (13:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@454732 13f79535-47bb-0310-9956-ffa450edef68

modules/mappers/mod_rewrite.c

index 8775ad1a1dfed83d0ad4ed5e8cdaf8083b8484d8..0092fd417500a961b972475ccfa9ffa59f1e656d 100644 (file)
@@ -1330,6 +1330,7 @@ static char *lookup_map_dbd(request_rec *r, char *key, const char *label)
 {
     apr_status_t rv;
     apr_dbd_prepared_t *stmt;
+    const char *errmsg;
     apr_dbd_results_t *res = NULL;
     apr_dbd_row_t *row = NULL;
     const char *ret = NULL;
@@ -1341,8 +1342,10 @@ static char *lookup_map_dbd(request_rec *r, char *key, const char *label)
     rv = apr_dbd_pvselect(db->driver, r->pool, db->handle, &res,
                           stmt, 0, key, NULL);
     if (rv != 0) {
+        errmsg = apr_dbd_error(db->driver, db->handle, rv);
         ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
-                      "rewritemap: error querying for %s", key);
+                      "rewritemap: error %s querying for %s", errmsg, key);
+        return NULL;
     }
     while (rv = apr_dbd_get_row(db->driver, r->pool, res, &row, -1), rv == 0) {
         ++n;
@@ -1357,8 +1360,9 @@ static char *lookup_map_dbd(request_rec *r, char *key, const char *label)
         }
     }
     if (rv != -1) {
+        errmsg = apr_dbd_error(db->driver, db->handle, rv);
         ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
-                      "rewritemap: error looking up %s", key);
+                      "rewritemap: error %s looking up %s", errmsg, key);
     }
     switch (n) {
     case 0: