gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r21786 - in gnunet/src: gns include


From: gnunet
Subject: [GNUnet-SVN] r21786 - in gnunet/src: gns include
Date: Wed, 6 Jun 2012 16:07:30 +0200

Author: schanzen
Date: 2012-06-06 16:07:30 +0200 (Wed, 06 Jun 2012)
New Revision: 21786

Modified:
   gnunet/src/gns/gnunet-gns-proxy.c
   gnunet/src/include/gnunet_gns_service.h
Log:
-leho, proxy ssl

Modified: gnunet/src/gns/gnunet-gns-proxy.c
===================================================================
--- gnunet/src/gns/gnunet-gns-proxy.c   2012-06-06 13:53:41 UTC (rev 21785)
+++ gnunet/src/gns/gnunet-gns-proxy.c   2012-06-06 14:07:30 UTC (rev 21786)
@@ -131,6 +131,9 @@
   /* Optional header replacements for curl (LEHO) */
   struct curl_slist *headers;
 
+  /* Optional resolver replacements for curl (LEHO) */
+  struct curl_slist *resolver;
+
   /* The URL to fetch */
   char url[2048];
 
@@ -880,6 +883,10 @@
   int i;
   CURLcode ret;
   CURLMcode mret;
+  struct hostent *phost;
+  char *ssl_ip;
+  char resolvename[512];
+  char curlurl[512];
 
   ctask->headers = NULL;
 
@@ -912,6 +919,19 @@
 
   }
 
+  if (ctask->mhd->is_ssl)
+  {
+    phost = (struct hostent*)gethostbyname (ctask->host);
+    ssl_ip = inet_ntoa(*((struct in_addr*)(phost->h_addr)));
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "SSL target server: %s\n", ssl_ip);
+    sprintf (resolvename, "%s:%d:%s", ctask->leho, HTTPS_PORT, ssl_ip);
+    ctask->resolver = curl_slist_append ( ctask->resolver, resolvename);
+    curl_easy_setopt (ctask->curl, CURLOPT_RESOLVE, ctask->resolver);
+    sprintf (curlurl, "https://%s%s";, ctask->leho, ctask->url);
+    curl_easy_setopt (ctask->curl, CURLOPT_URL, curlurl);
+  }
+
   if (CURLM_OK != (mret=curl_multi_add_handle (curl_multi, ctask->curl)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -1001,6 +1021,9 @@
   char curlurl[512];
   int ret = MHD_YES;
 
+  struct hostent *phost;
+  char *ssl_ip;
+
   struct ProxyCurlTask *ctask;
   
   if (0 != strcmp (meth, "GET"))
@@ -1058,9 +1081,10 @@
   curl_easy_setopt (ctask->curl, CURLOPT_FOLLOWLOCATION, 1);
   curl_easy_setopt (ctask->curl, CURLOPT_MAXREDIRS, 4);
   /* no need to abort if the above failed */
-  sprintf (curlurl, "http://%s%s";, host, url);
+  if (GNUNET_NO == ctask->mhd->is_ssl)
+    sprintf (curlurl, "http://%s%s";, host, url);
   strcpy (ctask->host, host);
-  strcpy (ctask->url, curlurl);
+  strcpy (ctask->url, url);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Adding new curl task for %s\n", curlurl);
   

Modified: gnunet/src/include/gnunet_gns_service.h
===================================================================
--- gnunet/src/include/gnunet_gns_service.h     2012-06-06 13:53:41 UTC (rev 
21785)
+++ gnunet/src/include/gnunet_gns_service.h     2012-06-06 14:07:30 UTC (rev 
21786)
@@ -79,7 +79,8 @@
   /* GNS specific */
   GNUNET_GNS_RECORD_PKEY = GNUNET_NAMESTORE_TYPE_PKEY,
   GNUNET_GNS_RECORD_PSEU = GNUNET_NAMESTORE_TYPE_PSEU,
-  GNUNET_GNS_RECORD_ANY  = GNUNET_NAMESTORE_TYPE_ANY
+  GNUNET_GNS_RECORD_ANY  = GNUNET_NAMESTORE_TYPE_ANY,
+  GNUNET_GNS_RECORD_LEHO = GNUNET_NAMESTORE_TYPE_LEHO
 };
 
 /**




reply via email to

[Prev in Thread] Current Thread [Next in Thread]