=== modified file 'src/HierarchyLogEntry.h' --- src/HierarchyLogEntry.h 2009-08-23 09:30:49 +0000 +++ src/HierarchyLogEntry.h 2010-06-02 05:59:20 +0000 @@ -64,6 +64,7 @@ int64_t peer_response_time; ///< last peer response delay timeval first_conn_start; ///< first connection use among all peers int64_t total_response_time; ///< cumulative for all peers + u_short peer_local_port; //< local port of the last server-side connection }; extern void hierarchyNote(HierarchyLogEntry *, hier_code, const char *); === modified file 'src/cf.data.pre' --- src/cf.data.pre 2010-05-26 02:03:36 +0000 +++ src/cf.data.pre 2010-06-02 06:00:48 +0000 @@ -2611,6 +2611,7 @@ local_port is often cached. + request->hier.peer_local_port = comm_local_port(fd); + dispatch(); return; @@ -895,6 +898,8 @@ if (!fs->_peer) origin_tries++; + request->hier.peer_local_port = comm_local_port(fd); + /* * stats.conn_open is used to account for the number of * connections that we have open to the peer, so we can limit === modified file 'src/log/access_log.cc' --- src/log/access_log.cc 2010-05-28 21:56:27 +0000 +++ src/log/access_log.cc 2010-06-02 05:58:01 +0000 @@ -344,6 +344,7 @@ LFT_LOCAL_IP, LFT_LOCAL_PORT, /*LFT_LOCAL_NAME, */ + LFT_PEER_LOCAL_PORT, LFT_TIME_SECONDS_SINCE_EPOCH, LFT_TIME_SUBSECOND, @@ -505,6 +506,7 @@ {"la", LFT_LOCAL_IP}, {"lp", LFT_LOCAL_PORT}, /*{ "lA", LFT_LOCAL_NAME }, */ + {"hier.peer_local_port) { + outint = al->hier.peer_local_port; + doint = 1; + } + + break; + case LFT_TIME_SECONDS_SINCE_EPOCH: // some platforms store time in 32-bit, some 64-bit... outoff = static_cast(current_time.tv_sec); @@ -2081,7 +2091,8 @@ n_ichoices(0), peer_reply_status(HTTP_STATUS_NONE), peer_response_time(-1), - total_response_time(-1) + total_response_time(-1), + peer_local_port(0) { memset(host, '\0', SQUIDHOSTNAMELEN); memset(cd_host, '\0', SQUIDHOSTNAMELEN);