| OLD | NEW |
| 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // Written in NSPR style to also be suitable for adding to the NSS demo suite | 4 // Written in NSPR style to also be suitable for adding to the NSS demo suite |
| 5 | 5 |
| 6 /* memio is a simple NSPR I/O layer that lets you decouple NSS from | 6 /* memio is a simple NSPR I/O layer that lets you decouple NSS from |
| 7 * the real network. It's rather like openssl's memory bio, | 7 * the real network. It's rather like openssl's memory bio, |
| 8 * and is useful when your app absolutely, positively doesn't | 8 * and is useful when your app absolutely, positively doesn't |
| 9 * want to let NSS do its own networking. | 9 * want to let NSS do its own networking. |
| 10 */ | 10 */ |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 fd = PR_CreateIOLayerStub(memio_identity, &memio_layer_methods); | 352 fd = PR_CreateIOLayerStub(memio_identity, &memio_layer_methods); |
| 353 secret = malloc(sizeof(struct PRFilePrivate)); | 353 secret = malloc(sizeof(struct PRFilePrivate)); |
| 354 memset(secret, 0, sizeof(*secret)); | 354 memset(secret, 0, sizeof(*secret)); |
| 355 | 355 |
| 356 memio_buffer_new(&secret->readbuf, bufsize); | 356 memio_buffer_new(&secret->readbuf, bufsize); |
| 357 memio_buffer_new(&secret->writebuf, bufsize); | 357 memio_buffer_new(&secret->writebuf, bufsize); |
| 358 fd->secret = secret; | 358 fd->secret = secret; |
| 359 return fd; | 359 return fd; |
| 360 } | 360 } |
| 361 | 361 |
| 362 void memio_SetPeerName(PRFileDesc *fd, const struct sockaddr *peername, | 362 void memio_SetPeerName(PRFileDesc *fd, const PRNetAddr *peername) |
| 363 size_t peername_len) | |
| 364 { | 363 { |
| 365 PRFileDesc *memiofd = PR_GetIdentitiesLayer(fd, memio_identity); | 364 PRFileDesc *memiofd = PR_GetIdentitiesLayer(fd, memio_identity); |
| 366 struct PRFilePrivate *secret = memiofd->secret; | 365 struct PRFilePrivate *secret = memiofd->secret; |
| 367 size_t len; | 366 secret->peername = *peername; |
| 368 | |
| 369 memset(&secret->peername, 0, sizeof(secret->peername)); | |
| 370 PR_ASSERT(peername_len <= sizeof(secret->peername)); | |
| 371 len = PR_MIN(peername_len, sizeof(secret->peername)); | |
| 372 memcpy(&secret->peername, peername, len); | |
| 373 } | 367 } |
| 374 | 368 |
| 375 memio_Private *memio_GetSecret(PRFileDesc *fd) | 369 memio_Private *memio_GetSecret(PRFileDesc *fd) |
| 376 { | 370 { |
| 377 PRFileDesc *memiofd = PR_GetIdentitiesLayer(fd, memio_identity); | 371 PRFileDesc *memiofd = PR_GetIdentitiesLayer(fd, memio_identity); |
| 378 struct PRFilePrivate *secret = memiofd->secret; | 372 struct PRFilePrivate *secret = memiofd->secret; |
| 379 return (memio_Private *)secret; | 373 return (memio_Private *)secret; |
| 380 } | 374 } |
| 381 | 375 |
| 382 int memio_GetReadParams(memio_Private *secret, char **buf) | 376 int memio_GetReadParams(memio_Private *secret, char **buf) |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 CHECKEQ(memio_buffer_unused_contiguous(&mb), 0); | 475 CHECKEQ(memio_buffer_unused_contiguous(&mb), 0); |
| 482 CHECKEQ(memio_buffer_used_contiguous(&mb), 1); | 476 CHECKEQ(memio_buffer_used_contiguous(&mb), 1); |
| 483 | 477 |
| 484 /* TODO: add more cases */ | 478 /* TODO: add more cases */ |
| 485 | 479 |
| 486 printf("Test passed\n"); | 480 printf("Test passed\n"); |
| 487 exit(0); | 481 exit(0); |
| 488 } | 482 } |
| 489 | 483 |
| 490 #endif | 484 #endif |
| OLD | NEW |