X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fgns%2Fgnunet-gns-proxy.c;h=3af571eba90a2e7ceb7bf18ca3a5be1d580c8b25;hb=ecfab268bb34efb1305bf5b7894db47cd916a6a7;hp=c336848ce8a9e242e1a6702c366852dbb644dda7;hpb=9f68c9e7d383061abbc81d1590abf25cde2305fe;p=oweals%2Fgnunet.git diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c index c336848ce..3af571eba 100644 --- a/src/gns/gnunet-gns-proxy.c +++ b/src/gns/gnunet-gns-proxy.c @@ -621,7 +621,7 @@ struct Socks5Request /** * The port the proxy is running on (default 7777) */ -static unsigned long port = GNUNET_GNS_PROXY_PORT; +static unsigned long long port = GNUNET_GNS_PROXY_PORT; /** * The CA file (pem) to use for the proxy CA @@ -786,6 +786,8 @@ cleanup_s5r (struct Socks5Request *s5r) /* ************************* HTTP handling with cURL *********************** */ +static void +curl_download_prepare (); /** * Callback for MHD response generation. This function is called from @@ -824,6 +826,11 @@ mhd_content_cb (void *cls, { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Pausing MHD download, no data available\n"); + if (NULL != s5r->curl) + { + curl_easy_pause (s5r->curl, CURLPAUSE_CONT); + curl_download_prepare (); + } return 0; /* more data later */ } if ( (0 == bytes_to_copy) && @@ -833,6 +840,8 @@ mhd_content_cb (void *cls, "Completed MHD download\n"); return MHD_CONTENT_READER_END_OF_STREAM; } + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Writing %lu/%lu bytes\n", bytes_to_copy, s5r->io_len); GNUNET_memcpy (buf, s5r->io_buf, bytes_to_copy); memmove (s5r->io_buf, &s5r->io_buf[bytes_to_copy], @@ -865,7 +874,7 @@ check_ssl_certificate (struct Socks5Request *s5r) const char *name; s5r->ssl_checked = GNUNET_YES; - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Checking SSL certificate\n"); if (CURLE_OK != curl_easy_getinfo (s5r->curl, @@ -1249,7 +1258,8 @@ curl_download_cb (void *ptr, size_t size, size_t nmemb, void* ctx) if (sizeof (s5r->io_buf) - s5r->io_len < total) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Pausing CURL download, not enough space\n"); + "Pausing CURL download, not enough space %lu %lu %lu\n", sizeof (s5r->io_buf), + s5r->io_len, total); return CURL_WRITEFUNC_PAUSE; /* not enough space */ } GNUNET_memcpy (&s5r->io_buf[s5r->io_len], @@ -1833,7 +1843,7 @@ mhd_completed_cb (void *cls, for (header = s5r->header_head; header != NULL; header = s5r->header_head) { GNUNET_CONTAINER_DLL_remove (s5r->header_head, - s5r->header_head, + s5r->header_tail, header); GNUNET_free (header->type); GNUNET_free (header->value); @@ -2414,6 +2424,8 @@ do_write (void *cls) if (len <= 0) { /* write error: connection closed, shutdown, etc.; just clean up */ + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Write Error\n"); cleanup_s5r (s5r); return; } @@ -3108,7 +3120,7 @@ run_cont () return; } GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Proxy listens on port %lu\n", + "Proxy listens on port %llu\n", port); /* start MHD daemon for HTTP */ @@ -3261,13 +3273,20 @@ run (void *cls, int main (int argc, char *const *argv) { - static const struct GNUNET_GETOPT_CommandLineOption options[] = { - {'p', "port", NULL, - gettext_noop ("listen on specified port (default: 7777)"), 1, - &GNUNET_GETOPT_set_ulong, &port}, - {'a', "authority", NULL, - gettext_noop ("pem file to use as CA"), 1, - &GNUNET_GETOPT_set_string, &cafile_opt}, + struct GNUNET_GETOPT_CommandLineOption options[] = { + + GNUNET_GETOPT_option_ulong ('p', + "port", + NULL, + gettext_noop ("listen on specified port (default: 7777)"), + &port), + + GNUNET_GETOPT_option_string ('a', + "authority", + NULL, + gettext_noop ("pem file to use as CA"), + &cafile_opt), + GNUNET_GETOPT_OPTION_END }; static const char* page =