#include <gnutls/crypto.h>
#include <time.h>
+#define HAVE_MHD_NO_LISTEN_SOCKET MHD_VERSION >= 0x00091401
+
#define GNUNET_GNS_PROXY_PORT 7777
#define MHD_MAX_CONNECTIONS 300
#define MAX_HTTP_URI_LENGTH 2048
"CURL: Got %d. %d free in buffer\n",
total, buf_space);
+ if (BUF_WAIT_FOR_CURL != ctask->buf_status)
+ return CURL_WRITEFUNC_PAUSE;
+
if (total > (buf_space - CURL_BUF_PADDING))
{
if (ctask->buf_status == BUF_WAIT_FOR_CURL)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Shutdown requested while trying to download\n");
- //TODO cleanup
- return;
+ //TODO cleanup
+ return;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Ready to dl\n");
if (NULL == ctask->curl)
continue;
- if (memcmp (msg->easy_handle, ctask->curl, sizeof (CURL)) != 0)
- continue;
-
- if (ctask->buf_status != BUF_WAIT_FOR_CURL)
+ if (0 != memcmp (msg->easy_handle, ctask->curl, sizeof (CURL)))
continue;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
ctask->buffer_read_ptr = ctask->buffer;
ctask->buffer_write_ptr = ctask->buffer;
ctask->pp_task = GNUNET_SCHEDULER_NO_TASK;
- ctask->port = HTTP_PORT;
+ if (ctask->mhd->is_ssl)
+ ctask->port = HTTPS_PORT;
+ else
+ ctask->port = HTTP_PORT;
MHD_get_connection_values (con,
MHD_HEADER_KIND,
domain);
hd->daemon = MHD_start_daemon (MHD_USE_DEBUG
| MHD_USE_SSL
-#if MHD_USE_NO_LISTEN_SOCKET
+#if HAVE_MHD_NO_LISTEN_SOCKET
| MHD_USE_NO_LISTEN_SOCKET,
+ 0,
+#else
+ , 4444, //Dummy
#endif
- , 4444,
&accept_cb, NULL,
&create_response, hd,
-#ifndef MHD_USE_NO_LISTEN_SOCKET
+#if !HAVE_MHD_NO_LISTEN_SOCKET
MHD_OPTION_LISTEN_SOCKET, GNUNET_NETWORK_get_fd (mhd_unix_socket),
#endif
MHD_OPTION_CONNECTION_LIMIT,
{
struct sockaddr_in sa;
struct MhdHttpList *hd;
- struct sockaddr_un mhd_unix_sock_addr;
- size_t len;
- char* proxy_sockfile;
char* cafile_cfg = NULL;
char* cafile;
+#if !HAVE_MHD_NO_LISTEN_SOCKET
+ size_t len;
+ char* proxy_sockfile;
+ struct sockaddr_un mhd_unix_sock_addr;
+#endif
curl_multi = curl_multi_init ();
mhd_httpd_head = NULL;
mhd_httpd_tail = NULL;
total_mhd_connections = 0;
-
+#ifndef HAVE_MHD_NO_LISTEN_SOCKET
if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns-proxy",
"PROXY_UNIXPATH",
&proxy_sockfile))
return;
}
-#ifndef MHD_USE_NO_LISTEN_SOCKET
mhd_unix_socket = GNUNET_NETWORK_socket_create (AF_UNIX,
SOCK_STREAM,
0);
hd->is_ssl = GNUNET_NO;
strcpy (hd->domain, "");
httpd = MHD_start_daemon (MHD_USE_DEBUG
-#if MHD_USE_NO_LISTEN_SOCKET
+#if HAVE_MHD_NO_LISTEN_SOCKET
| MHD_USE_NO_LISTEN_SOCKET,
-#endif
+ 0,
+#else
, 4444, //Dummy port
+#endif
&accept_cb, NULL,
&create_response, hd,
-#ifndef MHD_USE_NO_LISTEN_SOCKET
+#if !HAVE_MHD_NO_LISTEN_SOCKET
MHD_OPTION_LISTEN_SOCKET, GNUNET_NETWORK_get_fd (mhd_unix_socket),
#endif
MHD_OPTION_CONNECTION_LIMIT, MHD_MAX_CONNECTIONS,