[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r21703 - gnunet/src/gns
From: |
gnunet |
Subject: |
[GNUnet-SVN] r21703 - gnunet/src/gns |
Date: |
Fri, 1 Jun 2012 17:15:03 +0200 |
Author: schanzen
Date: 2012-06-01 17:15:03 +0200 (Fri, 01 Jun 2012)
New Revision: 21703
Modified:
gnunet/src/gns/gnunet-gns-proxy.c
Log:
-fixes, socks done
Modified: gnunet/src/gns/gnunet-gns-proxy.c
===================================================================
--- gnunet/src/gns/gnunet-gns-proxy.c 2012-06-01 15:02:11 UTC (rev 21702)
+++ gnunet/src/gns/gnunet-gns-proxy.c 2012-06-01 15:15:03 UTC (rev 21703)
@@ -121,7 +121,7 @@
if ((NULL != tc->read_ready) &&
(GNUNET_NETWORK_fdset_isset (tc->write_ready, s5r->remote_sock)) &&
- (len = GNUNET_NETWORK_socket_send (s5r->remote_sock, &s5r->rbuf,
+ (len = GNUNET_NETWORK_socket_send (s5r->remote_sock, s5r->rbuf,
s5r->rbuf_len)))
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -161,14 +161,14 @@
do_write (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct Socks5Request *s5r = cls;
- unsigned int len = s5r->wbuf_len;
+ unsigned int len;
s5r->wtask = GNUNET_SCHEDULER_NO_TASK;
if ((NULL != tc->read_ready) &&
(GNUNET_NETWORK_fdset_isset (tc->write_ready, s5r->sock)) &&
- (len = GNUNET_NETWORK_socket_send (s5r->sock, &s5r->wbuf,
- len)))
+ (len = GNUNET_NETWORK_socket_send (s5r->sock, s5r->wbuf,
+ s5r->wbuf_len)))
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Successfully sent %d bytes to socket\n",
@@ -191,7 +191,8 @@
return;
}
- if (s5r->state == SOCKS5_DATA_TRANSFER)
+ if ((s5r->state == SOCKS5_DATA_TRANSFER) &&
+ (s5r->fwdrtask == GNUNET_SCHEDULER_NO_TASK))
s5r->fwdrtask =
GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
s5r->remote_sock,
@@ -212,16 +213,9 @@
s5r->fwdrtask = GNUNET_SCHEDULER_NO_TASK;
- GNUNET_assert (NULL != tc->write_ready);
- GNUNET_assert (GNUNET_NETWORK_fdset_isset (tc->read_ready,
s5r->remote_sock));
-
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Read reason %d\n",
- tc->reason);
-
if ((NULL != tc->write_ready) &&
(GNUNET_NETWORK_fdset_isset (tc->read_ready, s5r->remote_sock)) &&
- (s5r->wbuf_len = GNUNET_NETWORK_socket_recv (s5r->remote_sock,
&s5r->wbuf,
+ (s5r->wbuf_len = GNUNET_NETWORK_socket_recv (s5r->remote_sock, s5r->wbuf,
sizeof (s5r->wbuf))))
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -235,10 +229,13 @@
"0 bytes received from remote... graceful shutdown!\n");
if (s5r->fwdwtask != GNUNET_SCHEDULER_NO_TASK)
GNUNET_SCHEDULER_cancel (s5r->fwdwtask);
- s5r->fwdwtask = GNUNET_SCHEDULER_NO_TASK;
+ if (s5r->rtask != GNUNET_SCHEDULER_NO_TASK)
+ GNUNET_SCHEDULER_cancel (s5r->rtask);
GNUNET_NETWORK_socket_close (s5r->remote_sock);
s5r->remote_sock = NULL;
+ GNUNET_NETWORK_socket_close (s5r->sock);
+ GNUNET_free(s5r);
return;
}
@@ -278,7 +275,7 @@
if ((NULL != tc->write_ready) &&
(GNUNET_NETWORK_fdset_isset (tc->read_ready, s5r->sock)) &&
- (s5r->rbuf_len = GNUNET_NETWORK_socket_recv (s5r->sock, &s5r->rbuf,
+ (s5r->rbuf_len = GNUNET_NETWORK_socket_recv (s5r->sock, s5r->rbuf,
sizeof (s5r->rbuf))))
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -287,8 +284,11 @@
}
else
{
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "read");
- //Really!?!?!?
+ if (s5r->rbuf_len != 0)
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "read");
+ else
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "client disco!\n");
+
if (s5r->fwdrtask != GNUNET_SCHEDULER_NO_TASK)
GNUNET_SCHEDULER_cancel (s5r->fwdrtask);
if (s5r->wtask != GNUNET_SCHEDULER_NO_TASK)
@@ -334,7 +334,8 @@
"Processing SOCKS5 request\n");
c_req = (struct socks5_client_request*)&s5r->rbuf;
s_resp = (struct socks5_server_response*)&s5r->wbuf;
- s5r->wbuf_len = sizeof (struct socks5_server_response);
+ //Only 10byte for ipv4 response!
+ s5r->wbuf_len = 10;//sizeof (struct socks5_server_response);
GNUNET_assert (c_req->addr_type == 3);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21703 - gnunet/src/gns,
gnunet <=