aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-08-29 20:00:36 +0000
committerChristian Grothoff <christian@grothoff.org>2009-08-29 20:00:36 +0000
commit70486ed8cb9e5d7c64842a4721c8d106c01dccd6 (patch)
tree32b1b2fa1af701c6fbd2cf0235bd404b73b01edc /src
parent02e058ca700d62fb41d14cef5040cc613e74408a (diff)
downloadgnunet-70486ed8cb9e5d7c64842a4721c8d106c01dccd6.tar.gz
gnunet-70486ed8cb9e5d7c64842a4721c8d106c01dccd6.zip
fix check for close
Diffstat (limited to 'src')
-rw-r--r--src/util/disk.c43
-rw-r--r--src/util/server.c8
-rw-r--r--src/util/test_connection.c8
-rw-r--r--src/util/test_connection_addressing.c4
-rw-r--r--src/util/test_connection_receive_cancel.c4
-rw-r--r--src/util/test_connection_timeout.c4
-rw-r--r--src/util/test_crypto_hash.c2
-rw-r--r--src/util/test_scheduler.c2
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 */
1489int 1491int
1490GNUNET_DISK_pipe_close (struct GNUNET_DISK_PipeHandle *p) 1492GNUNET_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
41static size_t sofar; 41static size_t sofar;
42 42
43static int ls; 43static 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
59struct GNUNET_DISK_PipeHandle *p; 59struct GNUNET_DISK_PipeHandle *p;
60static struct GNUNET_DISK_FileHandle *fds[2]; 60static const struct GNUNET_DISK_FileHandle *fds[2];
61 61
62 62
63static void 63static void