[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r12858 - gnunet/src/vpn
From: |
gnunet |
Subject: |
[GNUnet-SVN] r12858 - gnunet/src/vpn |
Date: |
Mon, 6 Sep 2010 11:25:41 +0200 |
Author: toelke
Date: 2010-09-06 11:25:41 +0200 (Mon, 06 Sep 2010)
New Revision: 12858
Modified:
gnunet/src/vpn/gnunet-daemon-vpn.c
gnunet/src/vpn/gnunet-service-dns.c
Log:
Get rid of the cls. Use a global.
Modified: gnunet/src/vpn/gnunet-daemon-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-daemon-vpn.c 2010-09-06 08:35:30 UTC (rev 12857)
+++ gnunet/src/vpn/gnunet-daemon-vpn.c 2010-09-06 09:25:41 UTC (rev 12858)
@@ -51,38 +51,38 @@
pid_t helper_pid;
};
+static struct vpn_cls mycls;
+
static void cleanup(void* cls, const struct GNUNET_SCHEDULER_TaskContext*
tskctx) {
- struct vpn_cls* mycls = (struct vpn_cls*) cls;
if (tskctx->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) {
- PLIBC_KILL(mycls->helper_pid, SIGTERM);
- GNUNET_OS_process_wait(mycls->helper_pid);
+ PLIBC_KILL(mycls.helper_pid, SIGTERM);
+ GNUNET_OS_process_wait(mycls.helper_pid);
}
}
static void helper_read(void* cls, const struct GNUNET_SCHEDULER_TaskContext*
tsdkctx);
-static void start_helper_and_schedule(struct vpn_cls* mycls) {
- mycls->helper_in = GNUNET_DISK_pipe(1);
- mycls->helper_out = GNUNET_DISK_pipe(1);
+static void start_helper_and_schedule() {
+ mycls.helper_in = GNUNET_DISK_pipe(1);
+ mycls.helper_out = GNUNET_DISK_pipe(1);
- mycls->helper_pid = GNUNET_OS_start_process(mycls->helper_in,
mycls->helper_out, "gnunet-helper-vpn", "gnunet-helper-vpn", NULL);
+ mycls.helper_pid = GNUNET_OS_start_process(mycls.helper_in,
mycls.helper_out, "gnunet-helper-vpn", "gnunet-helper-vpn", NULL);
- mycls->fh_from_helper = GNUNET_DISK_pipe_handle (mycls->helper_out,
GNUNET_DISK_PIPE_END_READ);
+ mycls.fh_from_helper = GNUNET_DISK_pipe_handle (mycls.helper_out,
GNUNET_DISK_PIPE_END_READ);
- GNUNET_DISK_pipe_close_end(mycls->helper_out,
GNUNET_DISK_PIPE_END_WRITE);
- GNUNET_DISK_pipe_close_end(mycls->helper_in, GNUNET_DISK_PIPE_END_READ);
+ GNUNET_DISK_pipe_close_end(mycls.helper_out,
GNUNET_DISK_PIPE_END_WRITE);
+ GNUNET_DISK_pipe_close_end(mycls.helper_in, GNUNET_DISK_PIPE_END_READ);
- GNUNET_SCHEDULER_add_read_file (mycls->sched,
GNUNET_TIME_UNIT_FOREVER_REL, mycls->fh_from_helper, &helper_read, mycls);
+ GNUNET_SCHEDULER_add_read_file (mycls.sched,
GNUNET_TIME_UNIT_FOREVER_REL, mycls.fh_from_helper, &helper_read, NULL);
}
static void restart_helper(void* cls, const struct
GNUNET_SCHEDULER_TaskContext* tskctx) {
// FIXME: Ratelimit this!
- struct vpn_cls* mycls = (struct vpn_cls*) cls;
// Kill the helper
- PLIBC_KILL(mycls->helper_pid, SIGKILL);
- GNUNET_OS_process_wait(mycls->helper_pid);
+ PLIBC_KILL(mycls.helper_pid, SIGKILL);
+ GNUNET_OS_process_wait(mycls.helper_pid);
// Restart the helper
start_helper_and_schedule(mycls);
@@ -90,22 +90,21 @@
}
static void helper_read(void* cls, const struct GNUNET_SCHEDULER_TaskContext*
tsdkctx) {
- struct vpn_cls* mycls = (struct vpn_cls*) cls;
char buf[65535];
if (tsdkctx->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)
return;
- int t = GNUNET_DISK_file_read(mycls->fh_from_helper, &buf, 65535);
+ int t = GNUNET_DISK_file_read(mycls.fh_from_helper, &buf, 65535);
if (t<=0) {
fprintf(stderr, "Read error for header: %m\n");
- GNUNET_SCHEDULER_add_now(mycls->sched, restart_helper, cls);
+ GNUNET_SCHEDULER_add_now(mycls.sched, restart_helper, cls);
return;
}
- /* FIXME */ GNUNET_SERVER_mst_receive(mycls->mst, NULL, buf, t, 0, 0);
+ /* FIXME */ GNUNET_SERVER_mst_receive(mycls.mst, NULL, buf, t, 0, 0);
- GNUNET_SCHEDULER_add_read_file (mycls->sched,
GNUNET_TIME_UNIT_FOREVER_REL, mycls->fh_from_helper, &helper_read, mycls);
+ GNUNET_SCHEDULER_add_read_file (mycls.sched,
GNUNET_TIME_UNIT_FOREVER_REL, mycls.fh_from_helper, &helper_read, NULL);
}
static void message_token(void *cls, void *client, const struct
GNUNET_MessageHeader *message) {
@@ -161,10 +160,8 @@
const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *cfg)
{
- struct vpn_cls* mycls = cls;
-
- mycls->sched = sched;
- mycls->mst = GNUNET_SERVER_mst_create(&message_token, mycls);
+ mycls.sched = sched;
+ mycls.mst = GNUNET_SERVER_mst_create(&message_token, NULL);
GNUNET_SCHEDULER_add_delayed(sched, GNUNET_TIME_UNIT_FOREVER_REL, &cleanup,
cls);
start_helper_and_schedule(mycls);
}
@@ -184,16 +181,12 @@
GNUNET_GETOPT_OPTION_END
};
- struct vpn_cls* cls = GNUNET_malloc(sizeof(struct vpn_cls));
-
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc,
argv,
"gnunet-daemon-vpn",
gettext_noop ("help text"),
- options, &run, cls)) ? ret : 1;
-
- GNUNET_free(cls); /* Make clang happy */
+ options, &run, NULL)) ? ret : 1;
}
/* end of gnunet-daemon-vpn.c */
Modified: gnunet/src/vpn/gnunet-service-dns.c
===================================================================
--- gnunet/src/vpn/gnunet-service-dns.c 2010-09-06 08:35:30 UTC (rev 12857)
+++ gnunet/src/vpn/gnunet-service-dns.c 2010-09-06 09:25:41 UTC (rev 12858)
@@ -36,6 +36,8 @@
unsigned short dnsoutport;
};
+static struct dns_cls mycls;
+
void hijack(unsigned short port) {
char port_s[6];
@@ -60,7 +62,7 @@
cleanup_task (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
- unhijack(((struct dns_cls*)cls)->dnsoutport);
+ unhijack(mycls.dnsoutport);
}
/**
@@ -79,19 +81,17 @@
{NULL, NULL, 0, 0}
};
- struct dns_cls* mycls = (struct dns_cls*)cls;
+ mycls.sched = sched;
- mycls->sched = sched;
+ mycls.dnsout = GNUNET_NETWORK_socket_create (AF_INET, SOCK_DGRAM, 0);
- mycls->dnsout = GNUNET_NETWORK_socket_create (AF_INET, SOCK_DGRAM, 0);
-
struct sockaddr_in * addr = alloca(sizeof(struct sockaddr_in));
memset(addr, 0, sizeof(struct sockaddr_in));
- int err = GNUNET_NETWORK_socket_bind (mycls->dnsout, (struct sockaddr*)addr,
sizeof(struct sockaddr_in));
- err = getsockname(GNUNET_NETWORK_get_fd(mycls->dnsout), addr, (unsigned
int[]){sizeof(struct sockaddr_in)});
+ int err = GNUNET_NETWORK_socket_bind (mycls.dnsout, (struct sockaddr*)addr,
sizeof(struct sockaddr_in));
+ err = getsockname(GNUNET_NETWORK_get_fd(mycls.dnsout), addr, (unsigned
int[]){sizeof(struct sockaddr_in)});
- mycls->dnsoutport = htons(addr->sin_port);
+ mycls.dnsoutport = htons(addr->sin_port);
hijack(htons(addr->sin_port));
@@ -112,14 +112,10 @@
int
main (int argc, char *const *argv)
{
- struct dns_cls* cls = GNUNET_malloc(sizeof(struct dns_cls));
-
return (GNUNET_OK ==
GNUNET_SERVICE_run (argc,
argv,
"gnunet-service-dns",
GNUNET_SERVICE_OPTION_NONE,
- &run, cls)) ? 0 : 1;
-
- GNUNET_free(cls); // Make clang happy
+ &run, NULL)) ? 0 : 1;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r12858 - gnunet/src/vpn,
gnunet <=