diff options
author | Christian Grothoff <christian@grothoff.org> | 2009-08-29 20:00:36 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2009-08-29 20:00:36 +0000 |
commit | 70486ed8cb9e5d7c64842a4721c8d106c01dccd6 (patch) | |
tree | 32b1b2fa1af701c6fbd2cf0235bd404b73b01edc /src | |
parent | 02e058ca700d62fb41d14cef5040cc613e74408a (diff) | |
download | gnunet-70486ed8cb9e5d7c64842a4721c8d106c01dccd6.tar.gz gnunet-70486ed8cb9e5d7c64842a4721c8d106c01dccd6.zip |
fix check for close
Diffstat (limited to 'src')
-rw-r--r-- | src/util/disk.c | 43 | ||||
-rw-r--r-- | src/util/server.c | 8 | ||||
-rw-r--r-- | src/util/test_connection.c | 8 | ||||
-rw-r--r-- | src/util/test_connection_addressing.c | 4 | ||||
-rw-r--r-- | src/util/test_connection_receive_cancel.c | 4 | ||||
-rw-r--r-- | src/util/test_connection_timeout.c | 4 | ||||
-rw-r--r-- | src/util/test_crypto_hash.c | 2 | ||||
-rw-r--r-- | src/util/test_scheduler.c | 2 |
8 files changed, 40 insertions, 35 deletions
diff --git a/src/util/disk.c b/src/util/disk.c index ef7a62351..412f8fb16 100644 --- a/src/util/disk.c +++ b/src/util/disk.c | |||
@@ -1481,18 +1481,17 @@ GNUNET_DISK_pipe (int blocking) | |||
1481 | return p; | 1481 | return p; |
1482 | } | 1482 | } |
1483 | 1483 | ||
1484 | |||
1484 | /** | 1485 | /** |
1485 | * Closes an interprocess channel | 1486 | * Closes an interprocess channel |
1486 | * @param p pipe | 1487 | * |
1488 | * @param p pipe to close | ||
1487 | * @return GNUNET_OK on success, GNUNET_SYSERR otherwise | 1489 | * @return GNUNET_OK on success, GNUNET_SYSERR otherwise |
1488 | */ | 1490 | */ |
1489 | int | 1491 | int |
1490 | GNUNET_DISK_pipe_close (struct GNUNET_DISK_PipeHandle *p) | 1492 | GNUNET_DISK_pipe_close (struct GNUNET_DISK_PipeHandle *p) |
1491 | { | 1493 | { |
1492 | int ret; | 1494 | int ret = GNUNET_OK; |
1493 | |||
1494 | ret = GNUNET_OK; | ||
1495 | |||
1496 | #ifdef MINGW | 1495 | #ifdef MINGW |
1497 | if (!CloseHandle (p->fd[0].h)) | 1496 | if (!CloseHandle (p->fd[0].h)) |
1498 | { | 1497 | { |
@@ -1506,30 +1505,26 @@ GNUNET_DISK_pipe_close (struct GNUNET_DISK_PipeHandle *p) | |||
1506 | ret = GNUNET_SYSERR; | 1505 | ret = GNUNET_SYSERR; |
1507 | } | 1506 | } |
1508 | #else | 1507 | #else |
1509 | { | 1508 | int save; |
1510 | int save; | 1509 | |
1511 | 1510 | if (0 != close (p->fd[0].fd)) | |
1512 | if (close (p->fd[0].fd) != -1) | 1511 | { |
1513 | { | 1512 | ret = GNUNET_SYSERR; |
1514 | ret = GNUNET_SYSERR; | 1513 | save = errno; |
1515 | save = errno; | 1514 | } |
1516 | } | 1515 | else |
1517 | else | 1516 | save = 0; |
1518 | save = 0; | 1517 | |
1519 | 1518 | if (0 != close (p->fd[1].fd)) | |
1520 | if (close (p->fd[1].fd) != -1) | 1519 | ret = GNUNET_SYSERR; |
1521 | { | 1520 | else |
1522 | ret = GNUNET_SYSERR; | 1521 | errno = save; |
1523 | } | ||
1524 | else | ||
1525 | errno = save; | ||
1526 | } | ||
1527 | #endif | 1522 | #endif |
1528 | GNUNET_free (p); | 1523 | GNUNET_free (p); |
1529 | |||
1530 | return ret; | 1524 | return ret; |
1531 | } | 1525 | } |
1532 | 1526 | ||
1527 | |||
1533 | /** | 1528 | /** |
1534 | * Get the handle to a particular pipe end | 1529 | * Get the handle to a particular pipe end |
1535 | * @param p pipe | 1530 | * @param p pipe |
diff --git a/src/util/server.c b/src/util/server.c index 8fcc20830..c05247a63 100644 --- a/src/util/server.c +++ b/src/util/server.c | |||
@@ -282,7 +282,9 @@ destroy_server (struct GNUNET_SERVER_Handle *server) | |||
282 | "Server shutting down.\n"); | 282 | "Server shutting down.\n"); |
283 | #endif | 283 | #endif |
284 | GNUNET_assert (server->listen_socket == NULL); | 284 | GNUNET_assert (server->listen_socket == NULL); |
285 | GNUNET_break (GNUNET_YES == GNUNET_DISK_pipe_close (server->shutpipe)); | 285 | if (GNUNET_OK != GNUNET_DISK_pipe_close (server->shutpipe)) |
286 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, | ||
287 | "pipe-close"); | ||
286 | while (server->clients != NULL) | 288 | while (server->clients != NULL) |
287 | { | 289 | { |
288 | pos = server->clients; | 290 | pos = server->clients; |
@@ -455,7 +457,7 @@ GNUNET_SERVER_create (struct GNUNET_SCHEDULER_Handle *sched, | |||
455 | struct GNUNET_NETWORK_Descriptor *lsock; | 457 | struct GNUNET_NETWORK_Descriptor *lsock; |
456 | struct GNUNET_NETWORK_FDSet *r; | 458 | struct GNUNET_NETWORK_FDSet *r; |
457 | 459 | ||
458 | lsock = NULL; // FIXME NILS: this was -2, does that have a special meaning? | 460 | lsock = NULL; |
459 | if (serverAddr != NULL) | 461 | if (serverAddr != NULL) |
460 | { | 462 | { |
461 | lsock = open_listen_socket (serverAddr, socklen); | 463 | lsock = open_listen_socket (serverAddr, socklen); |
@@ -464,7 +466,7 @@ GNUNET_SERVER_create (struct GNUNET_SCHEDULER_Handle *sched, | |||
464 | } | 466 | } |
465 | ret = GNUNET_malloc (sizeof (struct GNUNET_SERVER_Handle)); | 467 | ret = GNUNET_malloc (sizeof (struct GNUNET_SERVER_Handle)); |
466 | ret->shutpipe = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileDescriptor *[2])); | 468 | ret->shutpipe = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileDescriptor *[2])); |
467 | if ((ret->shutpipe = GNUNET_DISK_pipe (GNUNET_NO)) == NULL) | 469 | if (NULL == (ret->shutpipe = GNUNET_DISK_pipe (GNUNET_NO))) |
468 | { | 470 | { |
469 | GNUNET_break (0 == GNUNET_NETWORK_socket_close (lsock)); | 471 | GNUNET_break (0 == GNUNET_NETWORK_socket_close (lsock)); |
470 | GNUNET_free (ret->shutpipe); | 472 | GNUNET_free (ret->shutpipe); |
diff --git a/src/util/test_connection.c b/src/util/test_connection.c index 3ca09281d..770b34e8c 100644 --- a/src/util/test_connection.c +++ b/src/util/test_connection.c | |||
@@ -40,7 +40,7 @@ static struct GNUNET_CONNECTION_Handle *lsock; | |||
40 | 40 | ||
41 | static size_t sofar; | 41 | static size_t sofar; |
42 | 42 | ||
43 | static int ls; | 43 | static struct GNUNET_NETWORK_Descriptor *ls; |
44 | 44 | ||
45 | 45 | ||
46 | 46 | ||
@@ -64,7 +64,9 @@ open_listen_socket () | |||
64 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) | 64 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) |
65 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 65 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
66 | "setsockopt"); | 66 | "setsockopt"); |
67 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, &sa, sizeof (sa)) >= 0); | 67 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, |
68 | (const struct sockaddr*) &sa, | ||
69 | sizeof (sa)) >= 0); | ||
68 | GNUNET_NETWORK_socket_listen (desc, 5); | 70 | GNUNET_NETWORK_socket_listen (desc, 5); |
69 | return desc; | 71 | return desc; |
70 | } | 72 | } |
@@ -113,7 +115,7 @@ run_accept (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
113 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Test accepts connection\n"); | 115 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Test accepts connection\n"); |
114 | #endif | 116 | #endif |
115 | asock = GNUNET_CONNECTION_create_from_accept (tc->sched, | 117 | asock = GNUNET_CONNECTION_create_from_accept (tc->sched, |
116 | NULL, NULL, ls, 1024); | 118 | NULL, NULL, ls, 1024); |
117 | GNUNET_assert (asock != NULL); | 119 | GNUNET_assert (asock != NULL); |
118 | GNUNET_assert (GNUNET_YES == GNUNET_CONNECTION_check (asock)); | 120 | GNUNET_assert (GNUNET_YES == GNUNET_CONNECTION_check (asock)); |
119 | #if VERBOSE | 121 | #if VERBOSE |
diff --git a/src/util/test_connection_addressing.c b/src/util/test_connection_addressing.c index 650b716af..de11560d3 100644 --- a/src/util/test_connection_addressing.c +++ b/src/util/test_connection_addressing.c | |||
@@ -63,7 +63,9 @@ open_listen_socket () | |||
63 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) | 63 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) |
64 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 64 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
65 | "setsockopt"); | 65 | "setsockopt"); |
66 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, &sa, sizeof (sa)) >= 0); | 66 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, |
67 | (const struct sockaddr*) &sa, | ||
68 | sizeof (sa)) >= 0); | ||
67 | GNUNET_NETWORK_socket_listen (desc, 5); | 69 | GNUNET_NETWORK_socket_listen (desc, 5); |
68 | return desc; | 70 | return desc; |
69 | } | 71 | } |
diff --git a/src/util/test_connection_receive_cancel.c b/src/util/test_connection_receive_cancel.c index 338caa737..eb9d906ff 100644 --- a/src/util/test_connection_receive_cancel.c +++ b/src/util/test_connection_receive_cancel.c | |||
@@ -64,7 +64,9 @@ open_listen_socket () | |||
64 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) | 64 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) |
65 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 65 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
66 | "setsockopt"); | 66 | "setsockopt"); |
67 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, &sa, sizeof (sa)) >= 0); | 67 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, |
68 | (const struct sockaddr*) &sa, | ||
69 | sizeof (sa)) >= 0); | ||
68 | GNUNET_NETWORK_socket_listen (desc, 5); | 70 | GNUNET_NETWORK_socket_listen (desc, 5); |
69 | return desc; | 71 | return desc; |
70 | } | 72 | } |
diff --git a/src/util/test_connection_timeout.c b/src/util/test_connection_timeout.c index 61d9a2d07..289bb102a 100644 --- a/src/util/test_connection_timeout.c +++ b/src/util/test_connection_timeout.c | |||
@@ -57,7 +57,9 @@ open_listen_socket () | |||
57 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) | 57 | if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) < 0) |
58 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 58 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
59 | "setsockopt"); | 59 | "setsockopt"); |
60 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, &sa, sizeof (sa)) >= 0); | 60 | GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, |
61 | (const struct sockaddr*) &sa, | ||
62 | sizeof (sa)) >= 0); | ||
61 | GNUNET_NETWORK_socket_listen (desc, 5); | 63 | GNUNET_NETWORK_socket_listen (desc, 5); |
62 | return desc; | 64 | return desc; |
63 | } | 65 | } |
diff --git a/src/util/test_crypto_hash.c b/src/util/test_crypto_hash.c index a22a0e16a..e10aee9b1 100644 --- a/src/util/test_crypto_hash.c +++ b/src/util/test_crypto_hash.c | |||
@@ -98,7 +98,7 @@ testArithmetic () | |||
98 | if (1 != GNUNET_CRYPTO_hash_get_bit (&d, 6)) | 98 | if (1 != GNUNET_CRYPTO_hash_get_bit (&d, 6)) |
99 | return 1; | 99 | return 1; |
100 | memset (&d, 0, sizeof (d)); | 100 | memset (&d, 0, sizeof (d)); |
101 | GNUNET_CRYPTO_hash_to_AES_key (&d, &skey, &iv); | 101 | GNUNET_CRYPTO_hash_to_aes_key (&d, &skey, &iv); |
102 | if ((0 != memcmp (&skey, &zskey, sizeof (skey) - sizeof (unsigned int))) || | 102 | if ((0 != memcmp (&skey, &zskey, sizeof (skey) - sizeof (unsigned int))) || |
103 | (0 != memcmp (&iv, &ziv, sizeof (iv)))) | 103 | (0 != memcmp (&iv, &ziv, sizeof (iv)))) |
104 | return 1; | 104 | return 1; |
diff --git a/src/util/test_scheduler.c b/src/util/test_scheduler.c index 34def7b1e..6ae293058 100644 --- a/src/util/test_scheduler.c +++ b/src/util/test_scheduler.c | |||
@@ -57,7 +57,7 @@ task4 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
57 | } | 57 | } |
58 | 58 | ||
59 | struct GNUNET_DISK_PipeHandle *p; | 59 | struct GNUNET_DISK_PipeHandle *p; |
60 | static struct GNUNET_DISK_FileHandle *fds[2]; | 60 | static const struct GNUNET_DISK_FileHandle *fds[2]; |
61 | 61 | ||
62 | 62 | ||
63 | static void | 63 | static void |