=== modified file 'src/MemObject.cc' --- src/MemObject.cc 2012-09-04 09:10:20 +0000 +++ src/MemObject.cc 2012-11-28 06:02:17 +0000 @@ -77,10 +77,10 @@ void MemObject::resetUrls(char const *aUrl, char const *aLog_url) { - safe_free(url); + safe_free(original_url); safe_free(log_url); /* XXX account log_url */ log_url = xstrdup(aLog_url); - url = xstrdup(aUrl); + original_url = xstrdup(aUrl); } MemObject::MemObject(char const *aUrl, char const *aLog_url) @@ -89,11 +89,11 @@ HttpReply *rep = new HttpReply; _reply = HTTPMSGLOCK(rep); - url = xstrdup(aUrl); + original_url = xstrdup(aUrl); #if URL_CHECKSUM_DEBUG - chksum = url_checksum(url); + chksum = url_checksum(original_url); #endif @@ -109,10 +109,10 @@ MemObject::~MemObject() { debugs(20, 3, HERE << "del MemObject " << this); - const Ctx ctx = ctx_enter(url); + const Ctx ctx = ctx_enter(original_url); #if URL_CHECKSUM_DEBUG - assert(chksum == url_checksum(url)); + assert(chksum == url_checksum(original_url)); #endif if (!shutting_down) @@ -135,7 +135,7 @@ ctx_exit(ctx); /* must exit before we free mem->url */ - safe_free(url); + safe_free(original_url); safe_free(log_url); /* XXX account log_url */ @@ -320,7 +320,7 @@ void MemObject::checkUrlChecksum () const { - assert(chksum == url_checksum(url)); + assert(chksum == url_checksum(original_url)); } #endif === modified file 'src/MemObject.h' --- src/MemObject.h 2012-09-22 20:07:31 +0000 +++ src/MemObject.h 2012-11-28 06:02:17 +0000 @@ -99,7 +99,7 @@ #endif HttpRequestMethod method; - char *url; + char *original_url; mem_hdr data_hdr; int64_t inmem_lo; dlink_list clients; === modified file 'src/Store.h' --- src/Store.h 2012-10-29 04:59:58 +0000 +++ src/Store.h 2012-11-28 05:52:40 +0000 @@ -113,7 +113,7 @@ /// whether we are in the process of writing this entry to disk bool swappingOut() const { return swap_status == SWAPOUT_WRITING; } void swapOutFileClose(int how); - const char *url() const; + const char *originalUrl() const; int checkCachable(); int checkNegativeHit() const; int locked() const; === modified file 'src/StoreMetaURL.cc' --- src/StoreMetaURL.cc 2012-09-01 14:38:36 +0000 +++ src/StoreMetaURL.cc 2012-11-28 06:30:57 +0000 @@ -40,13 +40,17 @@ StoreMetaURL::checkConsistency(StoreEntry *e) const { assert (getType() == STORE_META_URL); - - if (!e->mem_obj->url) + /* + * TODO: add here "or" store_url_rewritted condition. + * this is to prevent url-mismatch when swapping out an object + * when using store_url feature. + */ + if (!e->mem_obj->original_url) return true; - if (strcasecmp(e->mem_obj->url, (char *)value)) { + if (strcasecmp(e->mem_obj->original_url, (char *)value)) { debugs(20, DBG_IMPORTANT, "storeClientReadHeader: URL mismatch"); - debugs(20, DBG_IMPORTANT, "\t{" << (char *) value << "} != {" << e->mem_obj->url << "}"); + debugs(20, DBG_IMPORTANT, "\t{" << (char *) value << "} != {" << e->mem_obj->original_url << "}"); return false; } === modified file 'src/acl/Asn.cc' --- src/acl/Asn.cc 2012-11-15 07:35:32 +0000 +++ src/acl/Asn.cc 2012-11-28 05:52:39 +0000 @@ -290,7 +290,7 @@ } if (result.length == 0 && asState->dataRead) { - debugs(53, 3, "asHandleReply: Done: " << e->url() ); + debugs(53, 3, "asHandleReply: Done: " << e->originalUrl() ); asStateFree(asState); return; } else if (result.flags.error) { @@ -355,7 +355,7 @@ debugs(53, 3, "asState->offset = " << asState->offset); if (e->store_status == STORE_PENDING) { - debugs(53, 3, "asHandleReply: store_status == STORE_PENDING: " << e->url() ); + debugs(53, 3, "asHandleReply: store_status == STORE_PENDING: " << e->originalUrl() ); StoreIOBuffer tempBuffer (AS_REQBUF_SZ - asState->reqofs, asState->offset, asState->reqbuf + asState->reqofs); @@ -366,7 +366,7 @@ asState); } else { StoreIOBuffer tempBuffer; - debugs(53, 3, "asHandleReply: store complete, but data received " << e->url() ); + debugs(53, 3, "asHandleReply: store complete, but data received " << e->originalUrl() ); tempBuffer.offset = asState->offset; tempBuffer.length = AS_REQBUF_SZ - asState->reqofs; tempBuffer.data = asState->reqbuf + asState->reqofs; @@ -382,7 +382,7 @@ asStateFree(void *data) { ASState *asState = (ASState *)data; - debugs(53, 3, "asnStateFree: " << asState->entry->url() ); + debugs(53, 3, "asnStateFree: " << asState->entry->originalUrl() ); storeUnregister(asState->sc, asState->entry, asState); asState->entry->unlock(); HTTPMSGUNLOCK(asState->request); === modified file 'src/cache_manager.cc' --- src/cache_manager.cc 2012-09-18 14:06:31 +0000 +++ src/cache_manager.cc 2012-11-28 05:52:40 +0000 @@ -326,12 +326,12 @@ void CacheManager::Start(const Comm::ConnectionPointer &client, HttpRequest * request, StoreEntry * entry) { - debugs(16, 3, "CacheManager::Start: '" << entry->url() << "'" ); + debugs(16, 3, "CacheManager::Start: '" << entry->originalUrl() << "'" ); - Mgr::Command::Pointer cmd = ParseUrl(entry->url()); + Mgr::Command::Pointer cmd = ParseUrl(entry->originalUrl()); if (!cmd) { ErrorState *err = new ErrorState(ERR_INVALID_URL, HTTP_NOT_FOUND, request); - err->url = xstrdup(entry->url()); + err->url = xstrdup(entry->originalUrl()); errorAppendEntry(entry, err); entry->expires = squid_curtime; return; @@ -408,7 +408,7 @@ // special case: /squid-internal-mgr/ index page if (!strcmp(cmd->profile->name, "index")) { ErrorState err(MGR_INDEX, HTTP_OK, request); - err.url = xstrdup(entry->url()); + err.url = xstrdup(entry->originalUrl()); HttpReply *rep = err.BuildHttpReply(); if (strncmp(rep->body.content(),"Internal Error:", 15) == 0) rep->sline.status = HTTP_NOT_FOUND; === modified file 'src/client_side.cc' --- src/client_side.cc 2012-11-08 10:49:58 +0000 +++ src/client_side.cc 2012-11-28 06:10:15 +0000 @@ -4190,7 +4190,7 @@ if (vary) { /* Oops... something odd is going on here.. */ debugs(33, DBG_IMPORTANT, "varyEvaluateMatch: Oops. Not a Vary object on second attempt, '" << - entry->mem_obj->url << "' '" << vary << "'"); + entry->mem_obj->original_url << "' '" << vary << "'"); safe_free(request->vary_headers); return VARY_CANCEL; } @@ -4232,7 +4232,7 @@ * found the requested variant. Bail out */ debugs(33, DBG_IMPORTANT, "varyEvaluateMatch: Oops. Not a Vary match on second attempt, '" << - entry->mem_obj->url << "' '" << vary << "'"); + entry->mem_obj->original_url << "' '" << vary << "'"); return VARY_CANCEL; } } === modified file 'src/client_side_reply.cc' --- src/client_side_reply.cc 2012-11-12 02:25:12 +0000 +++ src/client_side_reply.cc 2012-11-28 06:02:17 +0000 @@ -365,7 +365,7 @@ if (deleting) return; - debugs(88, 3, "handleIMSReply: " << http->storeEntry()->url() << ", " << (long unsigned) result.length << " bytes" ); + debugs(88, 3, "handleIMSReply: " << http->storeEntry()->originalUrl() << ", " << (long unsigned) result.length << " bytes" ); if (http->storeEntry() == NULL) return; @@ -380,7 +380,7 @@ // request to origin was aborted if (EBIT_TEST(http->storeEntry()->flags, ENTRY_ABORTED)) { - debugs(88, 3, "handleIMSReply: request to origin aborted '" << http->storeEntry()->url() << "', sending old entry to client" ); + debugs(88, 3, "handleIMSReply: request to origin aborted '" << http->storeEntry()->originalUrl() << "', sending old entry to client" ); http->logType = LOG_TCP_REFRESH_FAIL_OLD; sendClientOldEntry(); } @@ -497,8 +497,8 @@ */ assert(http->logType == LOG_TCP_HIT); - if (strcmp(e->mem_obj->url, urlCanonical(r)) != 0) { - debugs(33, DBG_IMPORTANT, "clientProcessHit: URL mismatch, '" << e->mem_obj->url << "' != '" << urlCanonical(r) << "'"); + if (strcmp(e->mem_obj->original_url, urlCanonical(r)) != 0) { + debugs(33, DBG_IMPORTANT, "clientProcessHit: URL mismatch, '" << e->mem_obj->original_url << "' != '" << urlCanonical(r) << "'"); processMiss(); return; } @@ -935,7 +935,7 @@ if (!newEntry->isNull()) { /* Release the cached URI */ - debugs(88, 4, "clientPurgeRequest: GET '" << newEntry->url() << "'" ); + debugs(88, 4, "clientPurgeRequest: GET '" << newEntry->originalUrl() << "'" ); #if USE_HTCP neighborsHtcpClear(newEntry, NULL, http->request, HttpRequestMethod(Http::METHOD_GET), HTCP_CLR_PURGE); #endif @@ -951,7 +951,7 @@ clientReplyContext::purgeDoPurgeHead(StoreEntry *newEntry) { if (newEntry && !newEntry->isNull()) { - debugs(88, 4, "clientPurgeRequest: HEAD '" << newEntry->url() << "'" ); + debugs(88, 4, "clientPurgeRequest: HEAD '" << newEntry->originalUrl() << "'" ); #if USE_HTCP neighborsHtcpClear(newEntry, NULL, http->request, HttpRequestMethod(Http::METHOD_HEAD), HTCP_CLR_PURGE); #endif @@ -966,7 +966,7 @@ StoreEntry *entry = storeGetPublic(urlCanonical(http->request), Http::METHOD_GET); if (entry) { - debugs(88, 4, "clientPurgeRequest: Vary GET '" << entry->url() << "'" ); + debugs(88, 4, "clientPurgeRequest: Vary GET '" << entry->originalUrl() << "'" ); #if USE_HTCP neighborsHtcpClear(entry, NULL, http->request, HttpRequestMethod(Http::METHOD_GET), HTCP_CLR_PURGE); #endif @@ -977,7 +977,7 @@ entry = storeGetPublic(urlCanonical(http->request), Http::METHOD_HEAD); if (entry) { - debugs(88, 4, "clientPurgeRequest: Vary HEAD '" << entry->url() << "'" ); + debugs(88, 4, "clientPurgeRequest: Vary HEAD '" << entry->originalUrl() << "'" ); #if USE_HTCP neighborsHtcpClear(entry, NULL, http->request, HttpRequestMethod(Http::METHOD_HEAD), HTCP_CLR_PURGE); #endif @@ -1514,7 +1514,7 @@ * debugger [hdr->entries.count-1]. */ hdr->putStr(HDR_X_REQUEST_URI, - http->memOjbect()->url ? http->memObject()->url : http->uri); + http->memOjbect()->original_url ? http->memObject()->original_url : http->uri); #endif @@ -2111,7 +2111,7 @@ " new bytes)"); debugs(88, 5, "clientReplyContext::sendMoreData:" << conn->clientConnection << - " '" << entry->url() << "'" << + " '" << entry->originalUrl() << "'" << " out.offset=" << http->out.offset); /* update size of the request */ === modified file 'src/forward.cc' --- src/forward.cc 2012-10-26 11:36:45 +0000 +++ src/forward.cc 2012-11-28 05:52:40 +0000 @@ -118,7 +118,7 @@ FwdState::FwdState(const Comm::ConnectionPointer &client, StoreEntry * e, HttpRequest * r, const AccessLogEntryPointer &alp): al(alp) { - debugs(17, 2, HERE << "Forwarding client request " << client << ", url=" << e->url() ); + debugs(17, 2, HERE << "Forwarding client request " << client << ", url=" << e->originalUrl() ); entry = e; clientConn = client; request = HTTPMSGLOCK(r); @@ -305,7 +305,7 @@ } } - debugs(17, 3, HERE << "'" << entry->url() << "'"); + debugs(17, 3, HERE << "'" << entry->originalUrl() << "'"); /* * This seems like an odd place to bind mem_obj and request. * Might want to assert that request is NULL at this point @@ -356,7 +356,7 @@ void FwdState::startConnectionOrFail() { - debugs(17, 3, HERE << entry->url()); + debugs(17, 3, HERE << entry->originalUrl()); if (serverDestinations.size() > 0) { // Ditch error page if it was created before. @@ -373,7 +373,7 @@ connectStart(); } else { - debugs(17, 3, HERE << "Connection failed: " << entry->url()); + debugs(17, 3, HERE << "Connection failed: " << entry->originalUrl()); if (!err) { ErrorState *anErr = new ErrorState(ERR_CANNOT_FORWARD, HTTP_INTERNAL_SERVER_ERROR, request); fail(anErr); @@ -385,7 +385,7 @@ void FwdState::fail(ErrorState * errorState) { - debugs(17, 3, HERE << err_type_str[errorState->type] << " \"" << httpStatusString(errorState->httpStatus) << "\"\n\t" << entry->url() ); + debugs(17, 3, HERE << err_type_str[errorState->type] << " \"" << httpStatusString(errorState->httpStatus) << "\"\n\t" << entry->originalUrl() ); delete err; err = errorState; @@ -405,7 +405,7 @@ void FwdState::unregister(Comm::ConnectionPointer &conn) { - debugs(17, 3, HERE << entry->url() ); + debugs(17, 3, HERE << entry->originalUrl() ); assert(serverConnection() == conn); assert(Comm::IsConnOpen(conn)); comm_remove_close_handler(conn->fd, fwdServerClosedWrapper, this); @@ -416,7 +416,7 @@ void FwdState::unregister(int fd) { - debugs(17, 3, HERE << entry->url() ); + debugs(17, 3, HERE << entry->originalUrl() ); assert(fd == serverConnection()->fd); unregister(serverConn); } @@ -430,7 +430,7 @@ void FwdState::complete() { - debugs(17, 3, HERE << entry->url() << "\n\tstatus " << entry->getReply()->sline.status ); + debugs(17, 3, HERE << entry->originalUrl() << "\n\tstatus " << entry->getReply()->sline.status ); #if URL_CHECKSUM_DEBUG entry->mem_obj->checkUrlChecksum(); @@ -439,7 +439,7 @@ logReplyStatus(n_tries, entry->getReply()->sline.status); if (reforward()) { - debugs(17, 3, HERE << "re-forwarding " << entry->getReply()->sline.status << " " << entry->url()); + debugs(17, 3, HERE << "re-forwarding " << entry->getReply()->sline.status << " " << entry->originalUrl()); if (Comm::IsConnOpen(serverConn)) unregister(serverConn); @@ -576,7 +576,7 @@ void FwdState::serverClosed(int fd) { - debugs(17, 2, HERE << "FD " << fd << " " << entry->url()); + debugs(17, 2, HERE << "FD " << fd << " " << entry->originalUrl()); retryOrBail(); } @@ -619,7 +619,7 @@ void FwdState::handleUnregisteredServerEnd() { - debugs(17, 2, HERE << "self=" << self << " err=" << err << ' ' << entry->url()); + debugs(17, 2, HERE << "self=" << self << " err=" << err << ' ' << entry->originalUrl()); assert(!Comm::IsConnOpen(serverConn)); retryOrBail(); } @@ -850,7 +850,7 @@ serverConn = conn; flags.connected_okay = true; - debugs(17, 3, HERE << serverConnection() << ": '" << entry->url() << "'" ); + debugs(17, 3, HERE << serverConnection() << ": '" << entry->originalUrl() << "'" ); comm_add_close_handler(serverConnection()->fd, fwdServerClosedWrapper, this); @@ -884,7 +884,7 @@ void FwdState::connectTimeout(int fd) { - debugs(17, 2, "fwdConnectTimeout: FD " << fd << ": '" << entry->url() << "'" ); + debugs(17, 2, "fwdConnectTimeout: FD " << fd << ": '" << entry->originalUrl() << "'" ); assert(serverDestinations[0] != NULL); assert(fd == serverDestinations[0]->fd); @@ -913,7 +913,7 @@ { assert(serverDestinations.size() > 0); - debugs(17, 3, "fwdConnectStart: " << entry->url()); + debugs(17, 3, "fwdConnectStart: " << entry->originalUrl()); if (n_tries == 0) // first attempt request->hier.first_conn_start = current_time; @@ -1059,7 +1059,7 @@ void FwdState::dispatch() { - debugs(17, 3, HERE << clientConn << ": Fetching '" << RequestMethodStr(request->method) << " " << entry->url() << "'"); + debugs(17, 3, HERE << clientConn << ": Fetching '" << RequestMethodStr(request->method) << " " << entry->originalUrl() << "'"); /* * Assert that server_fd is set. This is to guarantee that fwdState * is attached to something and will be deallocated when server_fd @@ -1067,7 +1067,7 @@ */ assert(Comm::IsConnOpen(serverConn)); - fd_note(serverConnection()->fd, entry->url()); + fd_note(serverConnection()->fd, entry->originalUrl()); fd_table[serverConnection()->fd].noteUse(fwdPconnPool); @@ -1158,7 +1158,7 @@ case AnyP::PROTO_WAIS: /* Not implemented */ default: - debugs(17, DBG_IMPORTANT, "WARNING: Cannot retrieve '" << entry->url() << "'."); + debugs(17, DBG_IMPORTANT, "WARNING: Cannot retrieve '" << entry->originalUrl() << "'."); ErrorState *anErr = new ErrorState(ERR_UNSUP_REQ, HTTP_BAD_REQUEST, request); fail(anErr); // Set the dont_retry flag because this is not a transient (network) error. @@ -1197,7 +1197,7 @@ e->mem_obj->checkUrlChecksum(); #endif - debugs(17, 3, HERE << e->url() << "?" ); + debugs(17, 3, HERE << e->originalUrl() << "?" ); if (!EBIT_TEST(e->flags, ENTRY_FWD_HDR_WAIT)) { debugs(17, 3, HERE << "No, ENTRY_FWD_HDR_WAIT isn't set"); === modified file 'src/ftp.cc' --- src/ftp.cc 2012-10-26 11:36:45 +0000 +++ src/ftp.cc 2012-11-28 05:52:40 +0000 @@ -491,7 +491,7 @@ FtpStateData::FtpStateData(FwdState *theFwdState, const Comm::ConnectionPointer &conn) : AsyncJob("FtpStateData"), ServerStateData(theFwdState) { - const char *url = entry->url(); + const char *url = entry->originalUrl(); debugs(9, 3, HERE << "'" << url << "'" ); ++ statCounter.server.all.requests; ++ statCounter.server.ftp.requests; @@ -513,7 +513,7 @@ FtpStateData::~FtpStateData() { - debugs(9, 3, HERE << entry->url() ); + debugs(9, 3, HERE << entry->originalUrl() ); if (reply_hdr) { memFree(reply_hdr, MEM_8K_BUF); @@ -676,7 +676,7 @@ void FtpStateData::ftpTimeout(const CommTimeoutCbParams &io) { - debugs(9, 4, HERE << io.conn << ": '" << entry->url() << "'" ); + debugs(9, 4, HERE << io.conn << ": '" << entry->originalUrl() << "'" ); if (abortOnBadEntry("entry went bad while waiting for a timeout")) return; @@ -1122,7 +1122,7 @@ size_t len = data.readBuf->contentSize(); if (!len) { - debugs(9, 3, HERE << "no content to parse for " << entry->url() ); + debugs(9, 3, HERE << "no content to parse for " << entry->originalUrl() ); return; } @@ -1142,10 +1142,10 @@ if (usable == 0) { if (buf[0] == '\0' && len == 1) { - debugs(9, 3, HERE << "NIL ends data from " << entry->url() << " transfer problem?"); + debugs(9, 3, HERE << "NIL ends data from " << entry->originalUrl() << " transfer problem?"); data.readBuf->consume(len); } else { - debugs(9, 3, HERE << "didn't find end for " << entry->url()); + debugs(9, 3, HERE << "didn't find end for " << entry->originalUrl()); debugs(9, 3, HERE << "buffer remains (" << len << " bytes) '" << rfc1738_do_escape(buf,0) << "'"); } xfree(sbuf); @@ -2815,7 +2815,7 @@ temp->local.SetPort(0); } - ftpState->listenForDataChannel(temp, ftpState->entry->url()); + ftpState->listenForDataChannel(temp, ftpState->entry->originalUrl()); } /// \ingroup ServerProtocolFTPInternal @@ -3580,7 +3580,7 @@ http_status http_code; err_type err_code = ERR_NONE; - debugs(9, 3, HERE << ftpState->entry->url() << ", code " << code); + debugs(9, 3, HERE << ftpState->entry->originalUrl() << ", code " << code); if (cbdataReferenceValid(ftpState)) debugs(9, 5, HERE << "ftpState (" << ftpState << ") is valid!"); === modified file 'src/gopher.cc' --- src/gopher.cc 2012-09-04 09:10:20 +0000 +++ src/gopher.cc 2012-11-28 05:52:40 +0000 @@ -402,7 +402,7 @@ entry = gopherState->entry; if (gopherState->conversion == gopher_ds::HTML_INDEX_PAGE) { - char *html_url = html_quote(entry->url()); + char *html_url = html_quote(entry->originalUrl()); gopherHTMLHeader(entry, "Gopher Index %s", html_url); storeAppendPrintf(entry, "

This is a searchable Gopher index. Use the search\n" @@ -417,7 +417,7 @@ } if (gopherState->conversion == gopher_ds::HTML_CSO_PAGE) { - char *html_url = html_quote(entry->url()); + char *html_url = html_quote(entry->originalUrl()); gopherHTMLHeader(entry, "CSO Search of %s", html_url); storeAppendPrintf(entry, "

A CSO database usually contains a phonebook or\n" @@ -457,7 +457,7 @@ llen = left; } if (gopherState->len + llen >= TEMP_BUF_SIZE) { - debugs(10, DBG_IMPORTANT, "GopherHTML: Buffer overflow. Lost some data on URL: " << entry->url() ); + debugs(10, DBG_IMPORTANT, "GopherHTML: Buffer overflow. Lost some data on URL: " << entry->originalUrl() ); llen = TEMP_BUF_SIZE - gopherState->len - 1; } if (!lpos) { @@ -724,7 +724,7 @@ gopherTimeout(const CommTimeoutCbParams &io) { GopherStateData *gopherState = static_cast(io.data); - debugs(10, 4, HERE << io.conn << ": '" << gopherState->entry->url() << "'" ); + debugs(10, 4, HERE << io.conn << ": '" << gopherState->entry->originalUrl() << "'" ); gopherState->fwd->fail(new ErrorState(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT, gopherState->fwd->request)); @@ -857,7 +857,7 @@ err = new ErrorState(ERR_WRITE_ERROR, HTTP_SERVICE_UNAVAILABLE, gopherState->fwd->request); err->xerrno = xerrno; err->port = gopherState->fwd->request->port; - err->url = xstrdup(entry->url()); + err->url = xstrdup(entry->originalUrl()); gopherState->fwd->fail(err); gopherState->serverConn->close(); @@ -967,7 +967,7 @@ gopherState->fwd = fwd; - debugs(10, 3, "gopherStart: " << entry->url() ); + debugs(10, 3, "gopherStart: " << entry->originalUrl() ); ++ statCounter.server.all.requests; === modified file 'src/htcp.cc' --- src/htcp.cc 2012-10-26 11:36:45 +0000 +++ src/htcp.cc 2012-11-28 05:52:40 +0000 @@ -1034,7 +1034,7 @@ static void htcpClrStoreEntry(StoreEntry * e) { - debugs(31, 4, "htcpClrStoreEntry: Clearing store for entry: " << e->url() ); + debugs(31, 4, "htcpClrStoreEntry: Clearing store for entry: " << e->originalUrl() ); e->releaseRequest(); } @@ -1578,7 +1578,7 @@ stuff.response = 0; stuff.msg_id = ++msg_id_counter; stuff.S.method = (char *) RequestMethodStr(req->method); - stuff.S.uri = (char *) e->url(); + stuff.S.uri = (char *) e->originalUrl(); stuff.S.version = vbuf; HttpStateData::httpBuildRequestHeader(req, e, NULL, &hdr, flags); mb.init(); @@ -1647,7 +1647,7 @@ } stuff.S.uri = xstrdup(uri); } else { - stuff.S.uri = (char *) e->url(); + stuff.S.uri = (char *) e->originalUrl(); } stuff.S.version = vbuf; if (reason != HTCP_CLR_INVALIDATION) { === modified file 'src/http.cc' --- src/http.cc 2012-11-27 10:57:12 +0000 +++ src/http.cc 2012-11-28 06:11:47 +0000 @@ -179,7 +179,7 @@ void HttpStateData::httpTimeout(const CommTimeoutCbParams ¶ms) { - debugs(11, 4, HERE << serverConnection << ": '" << entry->url() << "'" ); + debugs(11, 4, HERE << serverConnection << ": '" << entry->originalUrl() << "'" ); if (entry->store_status == STORE_PENDING) { fwd->fail(new ErrorState(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT, fwd->request)); @@ -255,7 +255,7 @@ if (e->mem_obj->request) pe = storeGetPublicByRequest(e->mem_obj->request); else - pe = storeGetPublic(e->mem_obj->url, e->mem_obj->method); + pe = storeGetPublic(e->mem_obj->original_url, e->mem_obj->method); if (pe != NULL) { assert(e != pe); @@ -272,7 +272,7 @@ if (e->mem_obj->request) pe = storeGetPublicByRequestMethod(e->mem_obj->request, Http::METHOD_HEAD); else - pe = storeGetPublic(e->mem_obj->url, Http::METHOD_HEAD); + pe = storeGetPublic(e->mem_obj->original_url, Http::METHOD_HEAD); if (pe != NULL) { assert(e != pe); @@ -335,7 +335,7 @@ * condition */ #define REFRESH_OVERRIDE(flag) \ - ((R = (R ? R : refreshLimits(entry->mem_obj->url))) , \ + ((R = (R ? R : refreshLimits(entry->mem_obj->original_url))) , \ (R && R->flags.flag)) #else #define REFRESH_OVERRIDE(flag) 0 @@ -655,7 +655,7 @@ if (Config.onoff.detect_broken_server_pconns && reply->bodySize(request->method) == -1 && !flags.chunked) { - debugs(11, DBG_IMPORTANT, "keepaliveAccounting: Impossible keep-alive header from '" << entry->url() << "'" ); + debugs(11, DBG_IMPORTANT, "keepaliveAccounting: Impossible keep-alive header from '" << entry->originalUrl() << "'" ); // debugs(11, 2, "GOT HTTP REPLY HDR:\n---------\n" << readBuf->content() << "\n----------" ); flags.keepalive_broken = true; } @@ -685,7 +685,7 @@ /** Creates a blank header. If this routine is made incremental, this will not do */ /* NP: all exit points to this function MUST call ctx_exit(ctx) */ - Ctx ctx = ctx_enter(entry->mem_obj->url); + Ctx ctx = ctx_enter(entry->mem_obj->original_url); debugs(11, 3, "processReplyHeader: key '" << entry->getMD5Text() << "'"); @@ -893,7 +893,7 @@ { ServerStateData::haveParsedReplyHeaders(); - Ctx ctx = ctx_enter(entry->mem_obj->url); + Ctx ctx = ctx_enter(entry->mem_obj->original_url); HttpReply *rep = finalReply(); if (rep->sline.status == HTTP_PARTIAL_CONTENT && @@ -1012,7 +1012,7 @@ * connection. */ if (!flags.request_sent) { - debugs(11, 2, "statusIfComplete: Request not yet fully sent \"" << RequestMethodStr(request->method) << " " << entry->url() << "\"" ); + debugs(11, 2, "statusIfComplete: Request not yet fully sent \"" << RequestMethodStr(request->method) << " " << entry->originalUrl() << "\"" ); return COMPLETE_NONPERSISTENT_MSG; } @@ -1262,7 +1262,7 @@ const http_status s = vrep->sline.status; const HttpVersion &v = vrep->sline.version; if (s == HTTP_INVALID_HEADER && v != HttpVersion(0,9)) { - debugs(11, DBG_IMPORTANT, "WARNING: HTTP: Invalid Response: Bad header encountered from " << entry->url() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); + debugs(11, DBG_IMPORTANT, "WARNING: HTTP: Invalid Response: Bad header encountered from " << entry->originalUrl() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); error = ERR_INVALID_RESP; } else if (s == HTTP_HEADER_TOO_LARGE) { fwd->dontRetry(true); @@ -1272,18 +1272,18 @@ } } else { // parsed headers but got no reply - debugs(11, DBG_IMPORTANT, "WARNING: HTTP: Invalid Response: No reply at all for " << entry->url() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); + debugs(11, DBG_IMPORTANT, "WARNING: HTTP: Invalid Response: No reply at all for " << entry->originalUrl() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); error = ERR_INVALID_RESP; } } else { assert(eof); if (readBuf->hasContent()) { error = ERR_INVALID_RESP; - debugs(11, DBG_IMPORTANT, "WARNING: HTTP: Invalid Response: Headers did not parse at all for " << entry->url() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); + debugs(11, DBG_IMPORTANT, "WARNING: HTTP: Invalid Response: Headers did not parse at all for " << entry->originalUrl() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); } else { error = ERR_ZERO_SIZE_OBJECT; debugs(11, (request->flags.accelerated?DBG_IMPORTANT:2), "WARNING: HTTP: Invalid Response: No object data received for " << - entry->url() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); + entry->originalUrl() << " AKA " << request->GetHost() << request->urlpath.termedBuf() ); } } @@ -1735,7 +1735,7 @@ static int warnedCount = 0; if (warnedCount++ < 100) { - const char *url = entry ? entry->url() : urlCanonical(request); + const char *url = entry ? entry->originalUrl() : urlCanonical(request); debugs(11, DBG_IMPORTANT, "Warning: likely forwarding loop with " << url); } } @@ -1804,7 +1804,7 @@ /* Add max-age only without no-cache */ if (!cc->hasMaxAge() && !cc->noCache()) { const char *url = - entry ? entry->url() : urlCanonical(request); + entry ? entry->originalUrl() : urlCanonical(request); cc->maxAge(getMaxAge(url)); } @@ -2050,7 +2050,7 @@ HttpVersion httpver(1,1); const char * url; if (_peer && !_peer->options.originserver) - url = entry->url(); + url = entry->originalUrl(); else url = request->urlpath.termedBuf(); mb->Printf("%s %s %s/%d.%d\r\n", @@ -2213,7 +2213,7 @@ void httpStart(FwdState *fwd) { - debugs(11, 3, "httpStart: \"" << RequestMethodStr(fwd->request->method) << " " << fwd->entry->url() << "\"" ); + debugs(11, 3, "httpStart: \"" << RequestMethodStr(fwd->request->method) << " " << fwd->entry->originalUrl() << "\"" ); AsyncJob::Start(new HttpStateData(fwd)); } @@ -2321,7 +2321,7 @@ if (flags.headers_parsed && !flags.abuse_detected) { flags.abuse_detected = true; - debugs(11, DBG_IMPORTANT, "http handleMoreRequestBodyAvailable: Likely proxy abuse detected '" << request->client_addr << "' -> '" << entry->url() << "'" ); + debugs(11, DBG_IMPORTANT, "http handleMoreRequestBodyAvailable: Likely proxy abuse detected '" << request->client_addr << "' -> '" << entry->originalUrl() << "'" ); if (virginReply()->sline.status == HTTP_INVALID_HEADER) { serverConnection->close(); === modified file 'src/mgr/Forwarder.cc' --- src/mgr/Forwarder.cc 2012-09-01 14:38:36 +0000 +++ src/mgr/Forwarder.cc 2012-11-28 05:52:40 +0000 @@ -68,7 +68,7 @@ void Mgr::Forwarder::handleError() { - debugs(16, DBG_CRITICAL, "ERROR: uri " << entry->url() << " exceeds buffer size"); + debugs(16, DBG_CRITICAL, "ERROR: uri " << entry->originalUrl() << " exceeds buffer size"); sendError(new ErrorState(ERR_INVALID_URL, HTTP_REQUEST_URI_TOO_LARGE, httpRequest)); mustStop("long URI"); } === modified file 'src/neighbors.cc' --- src/neighbors.cc 2012-11-18 10:37:19 +0000 +++ src/neighbors.cc 2012-11-28 05:52:41 +0000 @@ -580,7 +580,7 @@ int *exprep, int *timeout) { - const char *url = entry->url(); + const char *url = entry->originalUrl(); MemObject *mem = entry->mem_obj; CachePeer *p = NULL; int i; === modified file 'src/peer_select.cc' --- src/peer_select.cc 2012-09-19 17:16:56 +0000 +++ src/peer_select.cc 2012-11-28 05:52:41 +0000 @@ -91,7 +91,7 @@ peerSelectStateFree(ps_state * psstate) { if (psstate->entry) { - debugs(44, 3, HERE << psstate->entry->url()); + debugs(44, 3, HERE << psstate->entry->originalUrl()); if (psstate->entry->ping_status == PING_WAITING) eventDelete(peerPingTimeout, psstate); @@ -124,7 +124,7 @@ assert(entry); assert(entry->ping_status == PING_NONE); assert(direct != DIRECT_YES); - debugs(44, 3, "peerSelectIcpPing: " << entry->url() ); + debugs(44, 3, "peerSelectIcpPing: " << entry->originalUrl() ); if (!request->flags.hierarchical && direct != DIRECT_NO) return 0; @@ -150,7 +150,7 @@ ps_state *psstate; if (entry) - debugs(44, 3, "peerSelect: " << entry->url() ); + debugs(44, 3, "peerSelect: " << entry->originalUrl() ); else debugs(44, 3, "peerSelect: " << RequestMethodStr(request->method)); @@ -260,7 +260,7 @@ if (fs && psstate->paths->size() < (unsigned int)Config.forward_max_tries) { // send the next one off for DNS lookup. const char *host = fs->_peer ? fs->_peer->host : psstate->request->GetHost(); - debugs(44, 2, "Find IP destination for: " << psstate->entry->url() << "' via " << host); + debugs(44, 2, "Find IP destination for: " << psstate->entry->originalUrl() << "' via " << host); ipcache_nbgethostbyname(host, peerSelectDnsResults, psstate); return; } @@ -282,12 +282,12 @@ psstate->callback = NULL; if (psstate->paths->size() < 1) { - debugs(44, DBG_IMPORTANT, "Failed to select source for '" << psstate->entry->url() << "'"); + debugs(44, DBG_IMPORTANT, "Failed to select source for '" << psstate->entry->originalUrl() << "'"); debugs(44, DBG_IMPORTANT, " always_direct = " << psstate->always_direct); debugs(44, DBG_IMPORTANT, " never_direct = " << psstate->never_direct); debugs(44, DBG_IMPORTANT, " timedout = " << psstate->ping.timedout); } else { - debugs(44, 2, "Found sources for '" << psstate->entry->url() << "'"); + debugs(44, 2, "Found sources for '" << psstate->entry->originalUrl() << "'"); debugs(44, 2, " always_direct = " << psstate->always_direct); debugs(44, 2, " never_direct = " << psstate->never_direct); for (size_t i = 0; i < psstate->paths->size(); ++i) { @@ -738,7 +738,7 @@ StoreEntry *entry = psstate->entry; if (entry) - debugs(44, 3, "peerPingTimeout: '" << entry->url() << "'" ); + debugs(44, 3, "peerPingTimeout: '" << entry->originalUrl() << "'" ); if (!cbdataReferenceValid(psstate->callback_data)) { /* request aborted */ @@ -806,7 +806,7 @@ { ps_state *psstate = (ps_state *)data; icp_opcode op = header->getOpCode(); - debugs(44, 3, "peerHandleIcpReply: " << icp_opcode_str[op] << " " << psstate->entry->url() ); + debugs(44, 3, "peerHandleIcpReply: " << icp_opcode_str[op] << " " << psstate->entry->originalUrl() ); #if USE_CACHE_DIGESTS && 0 /* do cd lookup to count false misses */ @@ -841,7 +841,7 @@ ps_state *psstate = (ps_state *)data; debugs(44, 3, "peerHandleHtcpReply: " << (htcp->hit ? "HIT" : "MISS") << " " << - psstate->entry->url() ); + psstate->entry->originalUrl() ); ++ psstate->ping.n_recv; if (htcp->hit) { === modified file 'src/refresh.cc' --- src/refresh.cc 2012-09-19 17:16:56 +0000 +++ src/refresh.cc 2012-11-28 06:24:37 +0000 @@ -240,7 +240,7 @@ stale_flags sf; if (entry->mem_obj) - uri = entry->mem_obj->url; + uri = entry->mem_obj->original_url; else if (request) uri = urlCanonical(request); === modified file 'src/store.cc' --- src/store.cc 2012-10-26 11:36:45 +0000 +++ src/store.cc 2012-11-28 06:02:17 +0000 @@ -686,7 +686,7 @@ if (mem_obj != NULL) { mem_obj->id = getKeyCounter(); - newkey = storeKeyPrivate(mem_obj->url, mem_obj->method, mem_obj->id); + newkey = storeKeyPrivate(mem_obj->original_url, mem_obj->method, mem_obj->id); } else { newkey = storeKeyPrivate("JUNK", Http::METHOD_NONE, getKeyCounter()); } @@ -720,7 +720,7 @@ #if MORE_DEBUG_OUTPUT if (EBIT_TEST(flags, RELEASE_REQUEST)) - debugs(20, DBG_IMPORTANT, "assertion failed: RELEASE key " << key << ", url " << mem_obj->url); + debugs(20, DBG_IMPORTANT, "assertion failed: RELEASE key " << key << ", url " << mem_obj->original_url); #endif @@ -738,7 +738,7 @@ * to record the new variance key */ safe_free(request->vary_headers); /* free old "bad" variance key */ - StoreEntry *pe = storeGetPublic(mem_obj->url, mem_obj->method); + StoreEntry *pe = storeGetPublic(mem_obj->original_url, mem_obj->method); if (pe) pe->release(); @@ -755,10 +755,10 @@ // TODO: storeGetPublic() calls below may create unlocked entries. // We should add/use storeHas() API or lock/unlock those entries. - if (mem_obj->vary_headers && !storeGetPublic(mem_obj->url, mem_obj->method)) { + if (mem_obj->vary_headers && !storeGetPublic(mem_obj->original_url, mem_obj->method)) { /* Create "vary" base object */ String vary; - StoreEntry *pe = storeCreateEntry(mem_obj->url, mem_obj->log_url, request->flags, request->method); + StoreEntry *pe = storeCreateEntry(mem_obj->original_url, mem_obj->log_url, request->flags, request->method); /* We are allowed to do this typecast */ HttpReply *rep = new HttpReply; rep->setHeaders(HTTP_OK, "Internal marker object", "x-squid-internal/vary", -1, -1, squid_curtime + 100000); @@ -793,17 +793,17 @@ newkey = storeKeyPublicByRequest(mem_obj->request); } else - newkey = storeKeyPublic(mem_obj->url, mem_obj->method); + newkey = storeKeyPublic(mem_obj->original_url, mem_obj->method); if ((e2 = (StoreEntry *) hash_lookup(store_table, newkey))) { - debugs(20, 3, "StoreEntry::setPublicKey: Making old '" << mem_obj->url << "' private."); + debugs(20, 3, "StoreEntry::setPublicKey: Making old '" << mem_obj->original_url << "' private."); e2->setPrivateKey(); e2->release(); if (mem_obj->request) newkey = storeKeyPublicByRequest(mem_obj->request); else - newkey = storeKeyPublic(mem_obj->url, mem_obj->method); + newkey = storeKeyPublic(mem_obj->original_url, mem_obj->method); } if (key) @@ -1644,19 +1644,19 @@ assert(mem_obj->inmem_lo == 0); if (EBIT_TEST(flags, ENTRY_SPECIAL)) { - debugs(20, 4, "StoreEntry::setMemStatus: not inserting special " << mem_obj->url << " into policy"); + debugs(20, 4, "StoreEntry::setMemStatus: not inserting special " << mem_obj->original_url << " into policy"); } else { mem_policy->Add(mem_policy, this, &mem_obj->repl); - debugs(20, 4, "StoreEntry::setMemStatus: inserted mem node " << mem_obj->url << " key: " << getMD5Text()); + debugs(20, 4, "StoreEntry::setMemStatus: inserted mem node " << mem_obj->original_url << " key: " << getMD5Text()); } ++hot_obj_count; // TODO: maintain for the shared hot cache as well } else { if (EBIT_TEST(flags, ENTRY_SPECIAL)) { - debugs(20, 4, "StoreEntry::setMemStatus: special entry " << mem_obj->url); + debugs(20, 4, "StoreEntry::setMemStatus: special entry " << mem_obj->original_url); } else { mem_policy->Remove(mem_policy, this, &mem_obj->repl); - debugs(20, 4, "StoreEntry::setMemStatus: removed mem node " << mem_obj->url); + debugs(20, 4, "StoreEntry::setMemStatus: removed mem node " << mem_obj->original_url); } --hot_obj_count; @@ -1666,14 +1666,14 @@ } const char * -StoreEntry::url() const +StoreEntry::originalUrl() const { if (this == NULL) return "[null_entry]"; else if (mem_obj == NULL) return "[null_mem_obj]"; else - return mem_obj->url; + return mem_obj->original_url; } void @@ -1738,7 +1738,7 @@ StoreEntry::reset() { assert (mem_obj); - debugs(20, 3, "StoreEntry::reset: " << url()); + debugs(20, 3, "StoreEntry::reset: " << originalUrl()); mem_obj->reset(); HttpReply *rep = (HttpReply *) getReply(); // bypass const rep->reset(); @@ -1832,7 +1832,7 @@ void StoreEntry::replaceHttpReply(HttpReply *rep, bool andStartWriting) { - debugs(20, 3, "StoreEntry::replaceHttpReply: " << url()); + debugs(20, 3, "StoreEntry::replaceHttpReply: " << originalUrl()); if (!mem_obj) { debugs(20, DBG_CRITICAL, "Attempt to replace object with no in-memory representation"); @@ -1921,7 +1921,7 @@ if (mod_time < 0) mod_time = timestamp; - debugs(88, 3, "modifiedSince: '" << url() << "'"); + debugs(88, 3, "modifiedSince: '" << originalUrl() << "'"); debugs(88, 3, "modifiedSince: mod_time = " << mod_time); === modified file 'src/store_client.cc' --- src/store_client.cc 2012-09-18 21:05:32 +0000 +++ src/store_client.cc 2012-11-28 06:26:12 +0000 @@ -716,7 +716,7 @@ if (sc->_callback.pending()) { /* callback with ssize = -1 to indicate unexpected termination */ - debugs(90, 3, "storeUnregister: store_client for " << mem->url << " has a callback"); + debugs(90, 3, "storeUnregister: store_client for " << mem->original_url << " has a callback"); sc->fail(); } === modified file 'src/store_log.cc' --- src/store_log.cc 2012-09-04 09:10:20 +0000 +++ src/store_log.cc 2012-11-28 06:27:38 +0000 @@ -71,9 +71,9 @@ ++storeLogTagsCounts[tag]; if (mem != NULL) { if (mem->log_url == NULL) { - debugs(20, DBG_IMPORTANT, "storeLog: NULL log_url for " << mem->url); + debugs(20, DBG_IMPORTANT, "storeLog: NULL log_url for " << mem->original_url); mem->dump(); - mem->log_url = xstrdup(mem->url); + mem->log_url = xstrdup(mem->original_url); } reply = e->getReply(); === modified file 'src/store_swapmeta.cc' --- src/store_swapmeta.cc 2012-09-01 14:38:36 +0000 +++ src/store_swapmeta.cc 2012-11-28 05:52:41 +0000 @@ -67,7 +67,7 @@ assert(e->mem_obj != NULL); const int64_t objsize = e->mem_obj->expectedReplySize(); assert(e->swap_status == SWAPOUT_WRITING); - url = e->url(); + url = e->originalUrl(); debugs(20, 3, "storeSwapMetaBuild: " << url ); tlv *t = StoreMeta::Factory (STORE_META_KEY,SQUID_MD5_DIGEST_LENGTH, e->key); === modified file 'src/store_swapout.cc' --- src/store_swapout.cc 2012-09-04 09:10:20 +0000 +++ src/store_swapout.cc 2012-11-28 05:52:41 +0000 @@ -65,7 +65,7 @@ /* Build the swap metadata, so the filesystem will know how much * metadata there is to store */ - debugs(20, 5, "storeSwapOutStart: Begin SwapOut '" << e->url() << "' to dirno " << + debugs(20, 5, "storeSwapOutStart: Begin SwapOut '" << e->originalUrl() << "' to dirno " << e->swap_dirn << ", fileno " << std::hex << std::setw(8) << std::setfill('0') << std::uppercase << e->swap_filen); e->swap_status = SWAPOUT_WRITING; @@ -220,7 +220,7 @@ #if SIZEOF_OFF_T <= 4 if (mem_obj->endOffset() > 0x7FFF0000) { - debugs(20, DBG_CRITICAL, "WARNING: preventing off_t overflow for " << url()); + debugs(20, DBG_CRITICAL, "WARNING: preventing off_t overflow for " << originalUrl()); abort(); return; } @@ -330,7 +330,7 @@ e->releaseRequest(); } else { /* swapping complete */ - debugs(20, 3, "storeSwapOutFileClosed: SwapOut complete: '" << e->url() << "' to " << + debugs(20, 3, "storeSwapOutFileClosed: SwapOut complete: '" << e->originalUrl() << "' to " << e->swap_dirn << ", " << std::hex << std::setw(8) << std::setfill('0') << std::uppercase << e->swap_filen); debugs(20, 5, HERE << "swap_file_sz = " << @@ -398,7 +398,7 @@ } if (EBIT_TEST(flags, ENTRY_SPECIAL)) { - debugs(20, 3, HERE << url() << " SPECIAL"); + debugs(20, 3, HERE << originalUrl() << " SPECIAL"); decision = MemObject::SwapOut::swImpossible; return false; } === modified file 'src/tests/stub_store.cc' --- src/tests/stub_store.cc 2012-10-04 09:14:06 +0000 +++ src/tests/stub_store.cc 2012-11-28 05:52:41 +0000 @@ -42,7 +42,7 @@ void StoreEntry::purgeMem() STUB void StoreEntry::swapOut() STUB void StoreEntry::swapOutFileClose(int how) STUB -const char *StoreEntry::url() const STUB_RETVAL(NULL) +const char *StoreEntry::originalUrl() const STUB_RETVAL(NULL) int StoreEntry::checkCachable() STUB_RETVAL(0) int StoreEntry::checkNegativeHit() const STUB_RETVAL(0) int StoreEntry::locked() const STUB_RETVAL(0) === modified file 'src/urn.cc' --- src/urn.cc 2012-10-26 11:36:45 +0000 +++ src/urn.cc 2012-11-28 05:52:41 +0000 @@ -237,7 +237,7 @@ void UrnState::start(HttpRequest * r, StoreEntry * e) { - debugs(52, 3, "urnStart: '" << e->url() << "'" ); + debugs(52, 3, "urnStart: '" << e->originalUrl() << "'" ); entry = e; request = HTTPMSGLOCK(r); @@ -362,7 +362,7 @@ k = headersEnd(buf, urnState->reqofs); if (0 == k) { - debugs(52, DBG_IMPORTANT, "urnHandleReply: didn't find end-of-headers for " << e->url() ); + debugs(52, DBG_IMPORTANT, "urnHandleReply: didn't find end-of-headers for " << e->originalUrl() ); urnHandleReplyError(urnState, urlres_e); return; } @@ -376,7 +376,7 @@ if (rep->sline.status != HTTP_OK) { debugs(52, 3, "urnHandleReply: failed."); err = new ErrorState(ERR_URN_RESOLVE, HTTP_NOT_FOUND, urnState->request); - err->url = xstrdup(e->url()); + err->url = xstrdup(e->originalUrl()); errorAppendEntry(e, err); delete rep; urnHandleReplyError(urnState, urlres_e); @@ -396,9 +396,9 @@ debugs(53, 3, "urnFindMinRtt: Counted " << i << " URLs"); if (urls == NULL) { /* unkown URN error */ - debugs(52, 3, "urnTranslateDone: unknown URN " << e->url() ); + debugs(52, 3, "urnTranslateDone: unknown URN " << e->originalUrl() ); err = new ErrorState(ERR_URN_RESOLVE, HTTP_NOT_FOUND, urnState->request); - err->url = xstrdup(e->url()); + err->url = xstrdup(e->originalUrl()); errorAppendEntry(e, err); urnHandleReplyError(urnState, urlres_e); return; @@ -412,7 +412,7 @@ mb->Printf( "Select URL for %s\n" "\n" "

Select URL for %s

\n" - "\n", e->url(), e->url()); + "
\n", e->originalUrl(), e->originalUrl()); for (i = 0; i < urlcnt; ++i) { u = &urls[i]; === modified file 'src/whois.cc' --- src/whois.cc 2012-09-04 09:10:20 +0000 +++ src/whois.cc 2012-11-28 05:52:41 +0000 @@ -123,7 +123,7 @@ whoisTimeout(const CommTimeoutCbParams &io) { WhoisState *p = static_cast(io.data); - debugs(75, 3, HERE << io.conn << ", URL " << p->entry->url()); + debugs(75, 3, HERE << io.conn << ", URL " << p->entry->originalUrl()); io.conn->close(); } @@ -196,7 +196,7 @@ entry->setPublicKey(); fwd->complete(); - debugs(75, 3, "whoisReadReply: Done: " << entry->url()); + debugs(75, 3, "whoisReadReply: Done: " << entry->originalUrl()); conn->close(); }