diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2010-06-15 12:36:06 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2010-06-15 12:36:06 +0000 |
commit | b12cbf5add53687cdd9415e86285b0f9ff0d96c2 (patch) | |
tree | 8f2e388a5489924ff8c4c78c9705ed9f59fff484 | |
parent | c1bfa4795695fce608b2a67892af70b104fcf959 (diff) | |
download | gnunet-b12cbf5add53687cdd9415e86285b0f9ff0d96c2.tar.gz gnunet-b12cbf5add53687cdd9415e86285b0f9ff0d96c2.zip |
-rw-r--r-- | src/transport/plugin_transport_http.c | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/src/transport/plugin_transport_http.c b/src/transport/plugin_transport_http.c index e7cf7ea88..a1fe426b3 100644 --- a/src/transport/plugin_transport_http.c +++ b/src/transport/plugin_transport_http.c | |||
@@ -178,16 +178,6 @@ struct Session | |||
178 | struct GNUNET_PeerIdentity sender; | 178 | struct GNUNET_PeerIdentity sender; |
179 | 179 | ||
180 | /** | 180 | /** |
181 | * Sender's url | ||
182 | */ | ||
183 | char * url; | ||
184 | |||
185 | /** | ||
186 | * Sender's ip address to distinguish between incoming connections | ||
187 | */ | ||
188 | char * ip; | ||
189 | |||
190 | /** | ||
191 | * Sender's ip address to distinguish between incoming connections | 181 | * Sender's ip address to distinguish between incoming connections |
192 | */ | 182 | */ |
193 | struct sockaddr_in * addr_inbound; | 183 | struct sockaddr_in * addr_inbound; |
@@ -378,33 +368,17 @@ static struct Session * find_session_by_curlhandle( CURL* handle ) | |||
378 | */ | 368 | */ |
379 | static struct Session * create_session (struct sockaddr_in *addr_in, struct sockaddr_in *addr_out, const struct GNUNET_PeerIdentity *peer) | 369 | static struct Session * create_session (struct sockaddr_in *addr_in, struct sockaddr_in *addr_out, const struct GNUNET_PeerIdentity *peer) |
380 | { | 370 | { |
381 | struct sockaddr_in *addrin; | ||
382 | struct sockaddr_in6 *addrin6; | ||
383 | struct Session * ses = GNUNET_malloc ( sizeof( struct Session) ); | 371 | struct Session * ses = GNUNET_malloc ( sizeof( struct Session) ); |
384 | 372 | ||
385 | ses->addr_inbound = GNUNET_malloc ( sizeof (struct sockaddr_in) ); | 373 | ses->addr_inbound = GNUNET_malloc ( sizeof (struct sockaddr_in) ); |
386 | ses->addr_outbound = GNUNET_malloc ( sizeof (struct sockaddr_in) ); | 374 | ses->addr_outbound = GNUNET_malloc ( sizeof (struct sockaddr_in) ); |
387 | |||
388 | ses->next = NULL; | 375 | ses->next = NULL; |
389 | ses->plugin = plugin; | 376 | ses->plugin = plugin; |
390 | if (NULL != addr_in) | 377 | if ((NULL != addr_in) && (( AF_INET == addr_in->sin_family) || ( AF_INET6 == addr_in->sin_family))) |
391 | { | 378 | { |
392 | |||
393 | memcpy(ses->addr_inbound, addr_in, sizeof (struct sockaddr_in)); | 379 | memcpy(ses->addr_inbound, addr_in, sizeof (struct sockaddr_in)); |
394 | if ( AF_INET == addr_in->sin_family) | ||
395 | { | ||
396 | ses->ip = GNUNET_malloc (INET_ADDRSTRLEN); | ||
397 | addrin = addr_in; | ||
398 | inet_ntop(addrin->sin_family,&(addrin->sin_addr),ses->ip,INET_ADDRSTRLEN); | ||
399 | } | ||
400 | if ( AF_INET6 == addr_in->sin_family) | ||
401 | { | ||
402 | ses->ip = GNUNET_malloc (INET6_ADDRSTRLEN); | ||
403 | addrin6 = (struct sockaddr_in6 *) addr_in; | ||
404 | inet_ntop(addrin6->sin6_family, &(addrin6->sin6_addr) ,ses->ip,INET6_ADDRSTRLEN); | ||
405 | } | ||
406 | } | 380 | } |
407 | if (NULL != addr_out) | 381 | if ((NULL != addr_out) && (( AF_INET == addr_out->sin_family) || ( AF_INET6 == addr_out->sin_family))) |
408 | { | 382 | { |
409 | memcpy(ses->addr_outbound, addr_out, sizeof (struct sockaddr_in)); | 383 | memcpy(ses->addr_outbound, addr_out, sizeof (struct sockaddr_in)); |
410 | } | 384 | } |
@@ -562,15 +536,15 @@ accessHandlerCallback (void *cls, | |||
562 | } | 536 | } |
563 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"New Session `%s' inserted, count %u \n", address, plugin->session_count); | 537 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"New Session `%s' inserted, count %u \n", address, plugin->session_count); |
564 | } | 538 | } |
565 | /* Updating session */ | ||
566 | memcpy(cs->addr_inbound,addrin, sizeof(struct sockaddr_in)); | ||
567 | 539 | ||
568 | /* Set closure */ | 540 | /* Set closure */ |
569 | if (*httpSessionCache == NULL) | 541 | if (*httpSessionCache == NULL) |
570 | { | 542 | { |
571 | *httpSessionCache = cs; | 543 | *httpSessionCache = cs; |
544 | /* Updating session */ | ||
545 | memcpy(cs->addr_inbound,conn_info->client_addr, sizeof(struct sockaddr_in)); | ||
572 | } | 546 | } |
573 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"HTTP Daemon has new an incoming `%s' request from peer `%s' (`[%s]:%u')\n",method, GNUNET_i2s(&cs->sender),cs->ip,cs->addr_inbound->sin_port); | 547 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"HTTP Daemon has new an incoming `%s' request from peer `%s' (`[%s]:%u')\n",method, GNUNET_i2s(&cs->sender),address,cs->addr_inbound->sin_port); |
574 | } | 548 | } |
575 | else | 549 | else |
576 | { | 550 | { |
@@ -645,7 +619,8 @@ accessHandlerCallback (void *cls, | |||
645 | { | 619 | { |
646 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Recieved GNUnet message type %u size %u and payload %u \n",ntohs (gn_msg->type), ntohs (gn_msg->size), ntohs (gn_msg->size)-sizeof(struct GNUNET_MessageHeader)); | 620 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Recieved GNUnet message type %u size %u and payload %u \n",ntohs (gn_msg->type), ntohs (gn_msg->size), ntohs (gn_msg->size)-sizeof(struct GNUNET_MessageHeader)); |
647 | /* forwarding message to transport */ | 621 | /* forwarding message to transport */ |
648 | plugin->env->receive(plugin->env, &(cs->sender), gn_msg, 1, cs , cs->ip, strlen(cs->ip) ); | 622 | |
623 | //plugin->env->receive(plugin->env, &(cs->sender), gn_msg, 1, cs , cs->ip, strlen(cs->ip) ); | ||
649 | send_error_to_client = GNUNET_NO; | 624 | send_error_to_client = GNUNET_NO; |
650 | } | 625 | } |
651 | } | 626 | } |
@@ -1004,7 +979,7 @@ static void send_execute (void *cls, | |||
1004 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 979 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, |
1005 | _("%s failed for `%s' at %s:%d: `%s'\n"), | 980 | _("%s failed for `%s' at %s:%d: `%s'\n"), |
1006 | "curl_multi_perform", | 981 | "curl_multi_perform", |
1007 | cs->ip, | 982 | GNUNET_i2s(&cs->sender), |
1008 | __FILE__, | 983 | __FILE__, |
1009 | __LINE__, | 984 | __LINE__, |
1010 | curl_easy_strerror (msg->data.result)); | 985 | curl_easy_strerror (msg->data.result)); |
@@ -1579,7 +1554,6 @@ libgnunet_plugin_transport_http_done (void *cls) | |||
1579 | } | 1554 | } |
1580 | GNUNET_free (cs->pending_inbound_msg->buf); | 1555 | GNUNET_free (cs->pending_inbound_msg->buf); |
1581 | GNUNET_free (cs->pending_inbound_msg); | 1556 | GNUNET_free (cs->pending_inbound_msg); |
1582 | GNUNET_free (cs->ip); | ||
1583 | GNUNET_free_non_null (cs->addr_inbound); | 1557 | GNUNET_free_non_null (cs->addr_inbound); |
1584 | GNUNET_free_non_null (cs->addr_outbound); | 1558 | GNUNET_free_non_null (cs->addr_outbound); |
1585 | GNUNET_free (cs); | 1559 | GNUNET_free (cs); |