diff options
author | Stefan Fritsch <sf@apache.org> | 2011-11-30 22:51:51 +0100 |
---|---|---|
committer | Stefan Fritsch <sf@apache.org> | 2011-11-30 22:51:51 +0100 |
commit | 7ecccc1570579528009a27eaebeb853f1f973f6e (patch) | |
tree | 06ddc1d55de84bf955e12ae92dc4883ef6d8320c /modules/session | |
parent | Clarify the peer IP of the connection and the client IP of the request within (diff) | |
download | apache2-7ecccc1570579528009a27eaebeb853f1f973f6e.tar.xz apache2-7ecccc1570579528009a27eaebeb853f1f973f6e.zip |
Remove some more now redundant log prefixes
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1208816 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/session')
-rw-r--r-- | modules/session/mod_session.c | 19 | ||||
-rw-r--r-- | modules/session/mod_session_cookie.c | 1 | ||||
-rw-r--r-- | modules/session/mod_session_crypto.c | 55 | ||||
-rw-r--r-- | modules/session/mod_session_dbd.c | 33 |
4 files changed, 52 insertions, 56 deletions
diff --git a/modules/session/mod_session.c b/modules/session/mod_session.c index 09ef7cbc85..72a99f4ae2 100644 --- a/modules/session/mod_session.c +++ b/modules/session/mod_session.c @@ -22,7 +22,6 @@ #include "http_request.h" #include "http_protocol.h" -#define SESSION_PREFIX "mod_session: " #define SESSION_EXPIRY "expiry" #define HTTP_SESSION "HTTP_SESSION" @@ -106,7 +105,7 @@ static int ap_session_load(request_rec * r, session_rec ** z) /* should the session be loaded at all? */ if (!session_included(r, dconf)) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "excluded by configuration for: %s", r->uri); return APR_SUCCESS; } @@ -114,13 +113,13 @@ static int ap_session_load(request_rec * r, session_rec ** z) /* load the session from the session hook */ rv = ap_run_session_load(r, &zz); if (DECLINED == rv) { - ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, "session is enabled but no session modules have been configured, " "session not loaded: %s", r->uri); return APR_EGENERAL; } else if (OK != rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "error while loading the session, " "session not loaded: %s", r->uri); return rv; @@ -141,7 +140,7 @@ static int ap_session_load(request_rec * r, session_rec ** z) else { rv = ap_run_session_decode(r, zz); if (OK != rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "error while decoding the session, " "session not loaded: %s", r->uri); return rv; @@ -181,13 +180,13 @@ static int ap_session_save(request_rec * r, session_rec * z) /* sanity checks, should we try save at all? */ if (z->written) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "attempt made to save the session twice, " "session not saved: %s", r->uri); return APR_EGENERAL; } if (z->expiry && z->expiry < now) { - ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, "attempt made to save a session when the session had already expired, " "session not saved: %s", r->uri); return APR_EGENERAL; @@ -202,7 +201,7 @@ static int ap_session_save(request_rec * r, session_rec * z) /* encode the session */ rv = ap_run_session_encode(r, z); if (OK != rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "error while encoding the session, " "session not saved: %s", r->uri); return rv; @@ -211,13 +210,13 @@ static int ap_session_save(request_rec * r, session_rec * z) /* try the save */ rv = ap_run_session_save(r, z); if (DECLINED == rv) { - ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, "session is enabled but no session modules have been configured, " "session not saved: %s", r->uri); return APR_EGENERAL; } else if (OK != rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, SESSION_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "error while saving the session, " "session not saved: %s", r->uri); return rv; diff --git a/modules/session/mod_session_cookie.c b/modules/session/mod_session_cookie.c index 760157a948..0100518fea 100644 --- a/modules/session/mod_session_cookie.c +++ b/modules/session/mod_session_cookie.c @@ -20,7 +20,6 @@ #include "http_log.h" #include "util_cookies.h" -#define LOG_PREFIX "mod_session_cookie: " #define MOD_SESSION_COOKIE "mod_session_cookie" module AP_MODULE_DECLARE_DATA session_cookie_module; diff --git a/modules/session/mod_session_crypto.c b/modules/session/mod_session_crypto.c index f3947c910d..a0e2d99756 100644 --- a/modules/session/mod_session_crypto.c +++ b/modules/session/mod_session_crypto.c @@ -34,7 +34,6 @@ #include "apr_crypto.h" /* for apr_*_crypt et al */ -#define LOG_PREFIX "mod_session_crypto: " #define CRYPTO_KEY "session_crypto_context" module AP_MODULE_DECLARE_DATA session_crypto_module; @@ -77,7 +76,7 @@ static apr_status_t crypt_init(request_rec *r, res = apr_crypto_get_block_key_types(&ciphers, f); if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "no ciphers returned by APR. " "session encryption not possible"); return res; @@ -110,7 +109,7 @@ static apr_status_t crypt_init(request_rec *r, } options[offset] = 0; - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "cipher '%s' not recognised by crypto driver. " "session encryption not possible, options: %s", dconf->cipher, options); @@ -164,26 +163,26 @@ static apr_status_t encrypt_string(request_rec * r, const apr_crypto_t *f, (unsigned char *) (&salt), sizeof(apr_uuid_t), *cipher, APR_MODE_CBC, 1, 4096, f, r->pool); if (APR_STATUS_IS_ENOKEY(res)) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "the passphrase '%s' was empty", passphrase); } if (APR_STATUS_IS_EPADDING(res)) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "padding is not supported for cipher"); } if (APR_STATUS_IS_EKEYTYPE(res)) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "the key type is not known"); } if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "encryption could not be configured."); return res; } res = apr_crypto_block_encrypt_init(&block, &iv, key, &blockSize, r->pool); if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "apr_crypto_block_encrypt_init failed"); return res; } @@ -192,13 +191,13 @@ static apr_status_t encrypt_string(request_rec * r, const apr_crypto_t *f, res = apr_crypto_block_encrypt(&encrypt, &encryptlen, (unsigned char *)in, strlen(in), block); if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "apr_crypto_block_encrypt failed"); return res; } res = apr_crypto_block_encrypt_finish(encrypt + encryptlen, &tlen, block); if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "apr_crypto_block_encrypt_finish failed"); return res; } @@ -264,29 +263,29 @@ static apr_status_t decrypt_string(request_rec * r, const apr_crypto_t *f, (unsigned char *)decoded, sizeof(apr_uuid_t), *cipher, APR_MODE_CBC, 1, 4096, f, r->pool); if (APR_STATUS_IS_ENOKEY(res)) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "the passphrase '%s' was empty", passphrase); continue; } else if (APR_STATUS_IS_EPADDING(res)) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "padding is not supported for cipher"); continue; } else if (APR_STATUS_IS_EKEYTYPE(res)) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "the key type is not known"); continue; } else if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "encryption could not be configured."); continue; } /* sanity check - decoded too short? */ if (decodedlen < (sizeof(apr_uuid_t) + ivSize)) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r, "too short to decrypt, skipping"); res = APR_ECRYPT; continue; @@ -299,7 +298,7 @@ static apr_status_t decrypt_string(request_rec * r, const apr_crypto_t *f, res = apr_crypto_block_decrypt_init(&block, &blockSize, (unsigned char *)slider, key, r->pool); if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "apr_crypto_block_decrypt_init failed"); continue; } @@ -312,7 +311,7 @@ static apr_status_t decrypt_string(request_rec * r, const apr_crypto_t *f, res = apr_crypto_block_decrypt(&decrypted, &decryptedlen, (unsigned char *)slider, len, block); if (res) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "apr_crypto_block_decrypt failed"); continue; } @@ -320,7 +319,7 @@ static apr_status_t decrypt_string(request_rec * r, const apr_crypto_t *f, res = apr_crypto_block_decrypt_finish(decrypted + decryptedlen, &tlen, block); if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "apr_crypto_block_decrypt_finish failed"); continue; } @@ -331,7 +330,7 @@ static apr_status_t decrypt_string(request_rec * r, const apr_crypto_t *f, } if (APR_SUCCESS != res) { - ap_log_rerror(APLOG_MARK, APLOG_INFO, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_INFO, res, r, "decryption failed"); } @@ -358,7 +357,7 @@ AP_DECLARE(int) ap_session_crypto_encode(request_rec * r, session_rec * z) apr_pool_userdata_get((void **)&f, CRYPTO_KEY, r->server->process->pconf); res = encrypt_string(r, f, dconf, z->encoded, &encoded); if (res != OK) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, res, r, "encrypt session failed"); return res; } @@ -389,7 +388,7 @@ AP_DECLARE(int) ap_session_crypto_decode(request_rec * r, session_rec * z) r->server->process->pconf); res = decrypt_string(r, f, dconf, z->encoded, &encoded); if (res != APR_SUCCESS) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, res, r, "decrypt session failed, wrong passphrase?"); return res; } @@ -426,31 +425,31 @@ AP_DECLARE(int) ap_session_crypto_init(apr_pool_t *p, apr_pool_t *plog, rv = apr_crypto_init(p); if (APR_SUCCESS != rv) { - ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, LOG_PREFIX + ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "APR crypto could not be initialised"); return rv; } rv = apr_crypto_get_driver(&driver, conf->library, conf->params, &err, p); if (APR_EREINIT == rv) { - ap_log_error(APLOG_MARK, APLOG_WARNING, rv, s, LOG_PREFIX + ap_log_error(APLOG_MARK, APLOG_WARNING, rv, s, "warning: crypto for '%s' was already initialised, " "using existing configuration", conf->library); rv = APR_SUCCESS; } if (APR_SUCCESS != rv && err) { - ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, LOG_PREFIX + ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "%s", err->msg); return rv; } if (APR_ENOTIMPL == rv) { - ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, LOG_PREFIX + ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "The crypto library '%s' could not be found", conf->library); return rv; } if (APR_SUCCESS != rv || !driver) { - ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, LOG_PREFIX + ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "The crypto library '%s' could not be loaded", conf->library); return rv; @@ -458,13 +457,13 @@ AP_DECLARE(int) ap_session_crypto_init(apr_pool_t *p, apr_pool_t *plog, rv = apr_crypto_make(&f, driver, conf->params, p); if (APR_SUCCESS != rv) { - ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, LOG_PREFIX + ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "The crypto library '%s' could not be initialised", conf->library); return rv; } - ap_log_error(APLOG_MARK, APLOG_INFO, rv, s, LOG_PREFIX + ap_log_error(APLOG_MARK, APLOG_INFO, rv, s, "The crypto library '%s' was loaded successfully", conf->library); diff --git a/modules/session/mod_session_dbd.c b/modules/session/mod_session_dbd.c index 37bedf04e7..3feae97bda 100644 --- a/modules/session/mod_session_dbd.c +++ b/modules/session/mod_session_dbd.c @@ -23,7 +23,6 @@ #include "mod_dbd.h" #include "mpm_common.h" -#define LOG_PREFIX "mod_session_dbd: " #define MOD_SESSION_DBD "mod_session_dbd" module AP_MODULE_DECLARE_DATA session_dbd_module; @@ -67,7 +66,7 @@ static apr_status_t dbd_init(request_rec *r, const char *query, ap_dbd_t **dbdp, session_dbd_prepare_fn = APR_RETRIEVE_OPTIONAL_FN(ap_dbd_prepare); session_dbd_acquire_fn = APR_RETRIEVE_OPTIONAL_FN(ap_dbd_acquire); if (!session_dbd_prepare_fn || !session_dbd_acquire_fn) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "You must load mod_dbd to enable AuthDBD functions"); return APR_EGENERAL; } @@ -75,14 +74,14 @@ static apr_status_t dbd_init(request_rec *r, const char *query, ap_dbd_t **dbdp, dbd = session_dbd_acquire_fn(r); if (!dbd) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "failed to acquire database connection"); return APR_EGENERAL; } statement = apr_hash_get(dbd->prepared, query, APR_HASH_KEY_STRING); if (!statement) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "failed to find the prepared statement called '%s'", query); return APR_EGENERAL; } @@ -110,7 +109,7 @@ static apr_status_t dbd_load(request_rec * r, const char *key, const char **val) &session_dbd_module); if (conf->selectlabel == NULL) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "no SessionDBDselectlabel has been specified"); return APR_EGENERAL; } @@ -122,7 +121,7 @@ static apr_status_t dbd_load(request_rec * r, const char *key, const char **val) rv = apr_dbd_pvbselect(dbd->driver, r->pool, dbd->handle, &res, statement, 0, key, &expiry, NULL); if (rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "query execution error saving session '%s' " "in database using query '%s': %s", key, conf->selectlabel, apr_dbd_error(dbd->driver, dbd->handle, rv)); @@ -132,7 +131,7 @@ static apr_status_t dbd_load(request_rec * r, const char *key, const char **val) rv != -1; rv = apr_dbd_get_row(dbd->driver, r->pool, res, &row, -1)) { if (rv != 0) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "error retrieving results while saving '%s' " "in database using query '%s': %s", key, conf->selectlabel, apr_dbd_error(dbd->driver, dbd->handle, rv)); @@ -264,7 +263,7 @@ static apr_status_t dbd_save(request_rec * r, const char *key, const char *val, &session_dbd_module); if (conf->updatelabel == NULL) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "no SessionDBDupdatelabel has been specified"); return APR_EGENERAL; } @@ -276,7 +275,7 @@ static apr_status_t dbd_save(request_rec * r, const char *key, const char *val, rv = apr_dbd_pvbquery(dbd->driver, r->pool, dbd->handle, &rows, statement, val, &expiry, key, NULL); if (rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "query execution error updating session '%s' " "using database query '%s': %s", key, conf->updatelabel, apr_dbd_error(dbd->driver, dbd->handle, rv)); @@ -292,7 +291,7 @@ static apr_status_t dbd_save(request_rec * r, const char *key, const char *val, } if (conf->insertlabel == NULL) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "no SessionDBDinsertlabel has been specified"); return APR_EGENERAL; } @@ -304,7 +303,7 @@ static apr_status_t dbd_save(request_rec * r, const char *key, const char *val, rv = apr_dbd_pvbquery(dbd->driver, r->pool, dbd->handle, &rows, statement, val, &expiry, key, NULL); if (rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "query execution error inserting session '%s' " "in database with '%s': %s", key, conf->insertlabel, apr_dbd_error(dbd->driver, dbd->handle, rv)); @@ -319,7 +318,7 @@ static apr_status_t dbd_save(request_rec * r, const char *key, const char *val, return APR_SUCCESS; } - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "the session insert query did not cause any rows to be added " "to the database for session '%s', session not inserted", key); @@ -341,14 +340,14 @@ static apr_status_t dbd_remove(request_rec * r, const char *key) &session_dbd_module); ap_dbd_t *dbd = session_dbd_acquire_fn(r); if (dbd == NULL) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "failed to acquire database connection to remove " "session with key '%s'", key); return APR_EGENERAL; } if (conf->deletelabel == NULL) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "no SessionDBDdeletelabel has been specified"); return APR_EGENERAL; } @@ -356,7 +355,7 @@ static apr_status_t dbd_remove(request_rec * r, const char *key) statement = apr_hash_get(dbd->prepared, conf->deletelabel, APR_HASH_KEY_STRING); if (statement == NULL) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "prepared statement could not be found for " "SessionDBDdeletelabel with the label '%s'", conf->deletelabel); @@ -365,7 +364,7 @@ static apr_status_t dbd_remove(request_rec * r, const char *key) rv = apr_dbd_pvbquery(dbd->driver, r->pool, dbd->handle, &rows, statement, key, NULL); if (rv != APR_SUCCESS) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "query execution error removing session '%s' " "from database", key); return rv; @@ -462,7 +461,7 @@ static int session_dbd_save(request_rec * r, session_rec * z) return OK; } else { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, LOG_PREFIX + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "peruser sessions can only be saved if a user is logged in, " "session not saved: %s", r->uri); } |