aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Schanzenbach <mschanzenbach@posteo.de>2012-06-06 14:07:30 +0000
committerMartin Schanzenbach <mschanzenbach@posteo.de>2012-06-06 14:07:30 +0000
commit983df8eafd4a10a2f5053264806cbcdeb96f0dd4 (patch)
tree2087092529693c3191b7671032262e05eb8d4889 /src
parentb6d376f9b300b042ab9b65ff9a9cfbe5be8bcfbf (diff)
downloadgnunet-983df8eafd4a10a2f5053264806cbcdeb96f0dd4.tar.gz
gnunet-983df8eafd4a10a2f5053264806cbcdeb96f0dd4.zip
-leho, proxy ssl
Diffstat (limited to 'src')
-rw-r--r--src/gns/gnunet-gns-proxy.c28
-rw-r--r--src/include/gnunet_gns_service.h3
2 files changed, 28 insertions, 3 deletions
diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c
index 10a81b073..3c6943687 100644
--- a/src/gns/gnunet-gns-proxy.c
+++ b/src/gns/gnunet-gns-proxy.c
@@ -131,6 +131,9 @@ struct ProxyCurlTask
131 /* Optional header replacements for curl (LEHO) */ 131 /* Optional header replacements for curl (LEHO) */
132 struct curl_slist *headers; 132 struct curl_slist *headers;
133 133
134 /* Optional resolver replacements for curl (LEHO) */
135 struct curl_slist *resolver;
136
134 /* The URL to fetch */ 137 /* The URL to fetch */
135 char url[2048]; 138 char url[2048];
136 139
@@ -880,6 +883,10 @@ process_leho_lookup (void *cls,
880 int i; 883 int i;
881 CURLcode ret; 884 CURLcode ret;
882 CURLMcode mret; 885 CURLMcode mret;
886 struct hostent *phost;
887 char *ssl_ip;
888 char resolvename[512];
889 char curlurl[512];
883 890
884 ctask->headers = NULL; 891 ctask->headers = NULL;
885 892
@@ -912,6 +919,19 @@ process_leho_lookup (void *cls,
912 919
913 } 920 }
914 921
922 if (ctask->mhd->is_ssl)
923 {
924 phost = (struct hostent*)gethostbyname (ctask->host);
925 ssl_ip = inet_ntoa(*((struct in_addr*)(phost->h_addr)));
926 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
927 "SSL target server: %s\n", ssl_ip);
928 sprintf (resolvename, "%s:%d:%s", ctask->leho, HTTPS_PORT, ssl_ip);
929 ctask->resolver = curl_slist_append ( ctask->resolver, resolvename);
930 curl_easy_setopt (ctask->curl, CURLOPT_RESOLVE, ctask->resolver);
931 sprintf (curlurl, "https://%s%s", ctask->leho, ctask->url);
932 curl_easy_setopt (ctask->curl, CURLOPT_URL, curlurl);
933 }
934
915 if (CURLM_OK != (mret=curl_multi_add_handle (curl_multi, ctask->curl))) 935 if (CURLM_OK != (mret=curl_multi_add_handle (curl_multi, ctask->curl)))
916 { 936 {
917 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 937 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -1001,6 +1021,9 @@ create_response (void *cls,
1001 char curlurl[512]; 1021 char curlurl[512];
1002 int ret = MHD_YES; 1022 int ret = MHD_YES;
1003 1023
1024 struct hostent *phost;
1025 char *ssl_ip;
1026
1004 struct ProxyCurlTask *ctask; 1027 struct ProxyCurlTask *ctask;
1005 1028
1006 if (0 != strcmp (meth, "GET")) 1029 if (0 != strcmp (meth, "GET"))
@@ -1058,9 +1081,10 @@ create_response (void *cls,
1058 curl_easy_setopt (ctask->curl, CURLOPT_FOLLOWLOCATION, 1); 1081 curl_easy_setopt (ctask->curl, CURLOPT_FOLLOWLOCATION, 1);
1059 curl_easy_setopt (ctask->curl, CURLOPT_MAXREDIRS, 4); 1082 curl_easy_setopt (ctask->curl, CURLOPT_MAXREDIRS, 4);
1060 /* no need to abort if the above failed */ 1083 /* no need to abort if the above failed */
1061 sprintf (curlurl, "http://%s%s", host, url); 1084 if (GNUNET_NO == ctask->mhd->is_ssl)
1085 sprintf (curlurl, "http://%s%s", host, url);
1062 strcpy (ctask->host, host); 1086 strcpy (ctask->host, host);
1063 strcpy (ctask->url, curlurl); 1087 strcpy (ctask->url, url);
1064 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1088 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1065 "Adding new curl task for %s\n", curlurl); 1089 "Adding new curl task for %s\n", curlurl);
1066 1090
diff --git a/src/include/gnunet_gns_service.h b/src/include/gnunet_gns_service.h
index 4e040f777..64dbcd25a 100644
--- a/src/include/gnunet_gns_service.h
+++ b/src/include/gnunet_gns_service.h
@@ -79,7 +79,8 @@ enum GNUNET_GNS_RecordType
79 /* GNS specific */ 79 /* GNS specific */
80 GNUNET_GNS_RECORD_PKEY = GNUNET_NAMESTORE_TYPE_PKEY, 80 GNUNET_GNS_RECORD_PKEY = GNUNET_NAMESTORE_TYPE_PKEY,
81 GNUNET_GNS_RECORD_PSEU = GNUNET_NAMESTORE_TYPE_PSEU, 81 GNUNET_GNS_RECORD_PSEU = GNUNET_NAMESTORE_TYPE_PSEU,
82 GNUNET_GNS_RECORD_ANY = GNUNET_NAMESTORE_TYPE_ANY 82 GNUNET_GNS_RECORD_ANY = GNUNET_NAMESTORE_TYPE_ANY,
83 GNUNET_GNS_RECORD_LEHO = GNUNET_NAMESTORE_TYPE_LEHO
83}; 84};
84 85
85/** 86/**