projects
/
oweals
/
gnunet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
trying to port statvfs call to BSD
[oweals/gnunet.git]
/
src
/
util
/
test_server_with_client.c
diff --git
a/src/util/test_server_with_client.c
b/src/util/test_server_with_client.c
index 508c505b1fba79f174d26d10837d02add2379678..b28b3b69f0705f0c4e82981bca9191e767194b2d 100644
(file)
--- a/
src/util/test_server_with_client.c
+++ b/
src/util/test_server_with_client.c
@@
-87,16
+87,13
@@
recv_cb (void *cls,
case 2:
ok++;
GNUNET_SCHEDULER_add_delayed (sched,
case 2:
ok++;
GNUNET_SCHEDULER_add_delayed (sched,
- GNUNET_YES,
- GNUNET_SCHEDULER_PRIORITY_KEEP,
- GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 50),
&send_done, argclient);
break;
case 4:
ok++;
GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 50),
&send_done, argclient);
break;
case 4:
ok++;
- GNUNET_CLIENT_disconnect (client);
+ GNUNET_CLIENT_disconnect (client
, GNUNET_YES
);
GNUNET_SERVER_receive_done (argclient, GNUNET_OK);
break;
default:
GNUNET_SERVER_receive_done (argclient, GNUNET_OK);
break;
default:
@@
-106,6
+103,16
@@
recv_cb (void *cls,
}
}
+static void
+clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ GNUNET_SERVER_destroy (server);
+ server = NULL;
+ GNUNET_CONFIGURATION_destroy (cfg);
+ cfg = NULL;
+}
+
+
/**
* Functions with this signature are called whenever a client
* is disconnected on the network level.
/**
* Functions with this signature are called whenever a client
* is disconnected on the network level.
@@
-116,10
+123,12
@@
recv_cb (void *cls,
static void
notify_disconnect (void *cls, struct GNUNET_SERVER_Client *client)
{
static void
notify_disconnect (void *cls, struct GNUNET_SERVER_Client *client)
{
+ if (client == NULL)
+ return;
GNUNET_assert (ok == 5);
ok = 0;
GNUNET_assert (ok == 5);
ok = 0;
- GNUNET_SCHEDULER_
shutdown (sched);
-
GNUNET_CONFIGURATION_destroy (cfg
);
+ GNUNET_SCHEDULER_
add_now (sched,
+
&clean_up, NULL
);
}
}
@@
-151,7
+160,13
@@
static void
task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct sockaddr_in sa;
task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct sockaddr_in sa;
+ struct sockaddr * sap[2];
+ socklen_t slens[2];
+ sap[0] = (struct sockaddr*) &sa;
+ slens[0] = sizeof (sa);
+ sap[1] = NULL;
+ slens[1] = 0;
sched = tc->sched;
memset (&sa, 0, sizeof (sa));
#if HAVE_SOCKADDR_IN_SIN_LEN
sched = tc->sched;
memset (&sa, 0, sizeof (sa));
#if HAVE_SOCKADDR_IN_SIN_LEN
@@
-162,8
+177,8
@@
task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
server = GNUNET_SERVER_create (tc->sched,
NULL,
NULL,
server = GNUNET_SERVER_create (tc->sched,
NULL,
NULL,
-
(const struct sockaddr *) &sa
,
-
sizeof (sa)
,
+
sap
,
+
slens
,
1024,
GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 250),
1024,
GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 250),