[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r21886 - gnunet/src/gns
From: |
gnunet |
Subject: |
[GNUnet-SVN] r21886 - gnunet/src/gns |
Date: |
Mon, 11 Jun 2012 15:05:41 +0200 |
Author: schanzen
Date: 2012-06-11 15:05:41 +0200 (Mon, 11 Jun 2012)
New Revision: 21886
Modified:
gnunet/src/gns/gnunet-gns-proxy.c
Log:
-unix domain sockets
Modified: gnunet/src/gns/gnunet-gns-proxy.c
===================================================================
--- gnunet/src/gns/gnunet-gns-proxy.c 2012-06-11 12:37:38 UTC (rev 21885)
+++ gnunet/src/gns/gnunet-gns-proxy.c 2012-06-11 13:05:41 UTC (rev 21886)
@@ -36,6 +36,8 @@
#define GNUNET_GNS_PROXY_PORT 7777
+#define MHD_UNIX_SOCK_FILE "mhd_unix_sock.sock"
+
/* MHD/cURL defines */
#define BUF_WAIT_FOR_CURL 0
#define BUF_WAIT_FOR_MHD 1
@@ -268,6 +270,9 @@
/* The CA for SSL certificate generation */
static struct ProxyCA proxy_ca;
+/* UNIX domain socket for mhd */
+struct GNUNET_NETWORK_Handle *mhd_unix_socket;
+
/**
* Checks if name is in tld
*
@@ -1483,10 +1488,6 @@
}
-/*TODO this needs MHD API modification */
-static int http_port = 4444;
-
-
static long
get_file_size (const char* filename)
{
@@ -1728,16 +1729,19 @@
hd->is_ssl = GNUNET_YES;
strcpy (hd->domain, domain);
hd->proxy_cert = pgc;
- hd->daemon = MHD_start_daemon (MHD_USE_DEBUG | MHD_USE_SSL, http_port++,
- NULL, NULL,
- &create_response, hd,
- MHD_OPTION_CONNECTION_LIMIT, (unsigned int) 128,
- MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int) 16,
- MHD_OPTION_NOTIFY_COMPLETED,
- NULL, NULL,
- MHD_OPTION_HTTPS_MEM_KEY, pgc->key,
- MHD_OPTION_HTTPS_MEM_CERT, pgc->cert,
- MHD_OPTION_END);
+ hd->daemon = MHD_start_daemon (MHD_USE_DEBUG | MHD_USE_SSL, 4444,
+ NULL, NULL,
+ &create_response, hd,
+ MHD_OPTION_LISTEN_SOCKET, GNUNET_NETWORK_get_fd (mhd_unix_socket),
+ MHD_OPTION_CONNECTION_LIMIT, (unsigned int) 128,
+ MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int) 16,
+ MHD_OPTION_NOTIFY_COMPLETED,
+ NULL, NULL,
+ MHD_OPTION_HTTPS_MEM_KEY, pgc->key,
+ MHD_OPTION_HTTPS_MEM_CERT, pgc->cert,
+ MHD_OPTION_END);
+
+ GNUNET_assert (hd->daemon != NULL);
hd->httpd_task = GNUNET_SCHEDULER_NO_TASK;
GNUNET_CONTAINER_DLL_insert (mhd_httpd_head, mhd_httpd_tail, hd);
@@ -2228,6 +2232,8 @@
{
struct sockaddr_in sa;
struct MhdHttpList *hd;
+ struct sockaddr_un mhd_unix_sock_addr;
+ size_t len;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Loading CA\n");
@@ -2313,17 +2319,53 @@
mhd_httpd_head = NULL;
mhd_httpd_tail = NULL;
+ mhd_unix_socket = GNUNET_NETWORK_socket_create (AF_UNIX,
+ SOCK_STREAM,
+ 0);
+
+ if (NULL == mhd_unix_socket)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Unable to create unix domain socket!\n");
+ return;
+ }
+
+ mhd_unix_sock_addr.sun_family = AF_UNIX;
+ strcpy (mhd_unix_sock_addr.sun_path, MHD_UNIX_SOCK_FILE);
+ unlink (MHD_UNIX_SOCK_FILE);
+ len = strlen (MHD_UNIX_SOCK_FILE) + sizeof(AF_UNIX);
+
+ if (GNUNET_OK != GNUNET_NETWORK_socket_bind (mhd_unix_socket,
+ (struct sockaddr*)&mhd_unix_sock_addr,
+ len))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Unable to bind unix domain socket!\n");
+ return;
+ }
+
+ if (GNUNET_OK != GNUNET_NETWORK_socket_listen (mhd_unix_socket,
+ 1))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Unable to listen on unix domain socket!\n");
+ return;
+ }
+
hd = GNUNET_malloc (sizeof (struct MhdHttpList));
hd->is_ssl = GNUNET_NO;
strcpy (hd->domain, "");
- httpd = MHD_start_daemon (MHD_USE_DEBUG, http_port++,
- NULL, NULL,
- &create_response, hd,
- MHD_OPTION_CONNECTION_LIMIT, (unsigned int) 128,
- MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int)
16,
- MHD_OPTION_NOTIFY_COMPLETED,
- NULL, NULL,
- MHD_OPTION_END);
+ httpd = MHD_start_daemon (MHD_USE_DEBUG, 4444, //Dummy port
+ NULL, NULL,
+ &create_response, hd,
+ MHD_OPTION_LISTEN_SOCKET, GNUNET_NETWORK_get_fd (mhd_unix_socket),
+ MHD_OPTION_CONNECTION_LIMIT, (unsigned int) 128,
+ MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int) 16,
+ MHD_OPTION_NOTIFY_COMPLETED,
+ NULL, NULL,
+ MHD_OPTION_END);
+
+ GNUNET_assert (httpd != NULL);
hd->daemon = httpd;
hd->httpd_task = GNUNET_SCHEDULER_NO_TASK;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21886 - gnunet/src/gns,
gnunet <=