diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-20 18:50:38 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-20 18:50:38 +0000 |
commit | ac9eec64de86f3d3a290a1a8b9321260cff7ed23 (patch) | |
tree | aac041c6ddaec400b6e2b6d3d982935aa7f69a9c /net/base/nss_memio.c | |
parent | 8c1ae5ec4d47638315096f54819793484383c91f (diff) | |
download | chromium_src-ac9eec64de86f3d3a290a1a8b9321260cff7ed23.zip chromium_src-ac9eec64de86f3d3a290a1a8b9321260cff7ed23.tar.gz chromium_src-ac9eec64de86f3d3a290a1a8b9321260cff7ed23.tar.bz2 |
Really connect to the same server in FTP network transaction.
Also create necessary infrastructure to know the address
a client socket is connected to.
TEST=Covered by net_unittests.
BUG=35670
Review URL: http://codereview.chromium.org/598071
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39559 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/nss_memio.c')
-rw-r--r-- | net/base/nss_memio.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/base/nss_memio.c b/net/base/nss_memio.c index 341cfee..6796882 100644 --- a/net/base/nss_memio.c +++ b/net/base/nss_memio.c @@ -359,11 +359,17 @@ PRFileDesc *memio_CreateIOLayer(int bufsize) return fd; } -void memio_SetPeerName(PRFileDesc *fd, const PRNetAddr *peername) +void memio_SetPeerName(PRFileDesc *fd, const struct sockaddr *peername, + size_t peername_len) { PRFileDesc *memiofd = PR_GetIdentitiesLayer(fd, memio_identity); struct PRFilePrivate *secret = memiofd->secret; - secret->peername = *peername; + size_t len; + + memset(&secret->peername, 0, sizeof(secret->peername)); + PR_ASSERT(peername_len <= sizeof(secret->peername)); + len = PR_MIN(peername_len, sizeof(secret->peername)); + memcpy(&secret->peername, peername, len); } memio_Private *memio_GetSecret(PRFileDesc *fd) |