gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r12929 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r12929 - gnunet/src/transport
Date: Wed, 8 Sep 2010 18:30:28 +0200

Author: wachs
Date: 2010-09-08 18:30:28 +0200 (Wed, 08 Sep 2010)
New Revision: 12929

Modified:
   gnunet/src/transport/plugin_transport_http.c
Log:


Modified: gnunet/src/transport/plugin_transport_http.c
===================================================================
--- gnunet/src/transport/plugin_transport_http.c        2010-09-08 15:30:14 UTC 
(rev 12928)
+++ gnunet/src/transport/plugin_transport_http.c        2010-09-08 16:30:28 UTC 
(rev 12929)
@@ -1193,8 +1193,7 @@
 
   GNUNET_assert (MHD_YES == MHD_run (plugin->http_server_daemon_v4));
   plugin->http_server_task_v4 = http_server_daemon_prepare (plugin, 
plugin->http_server_daemon_v4);
-  return;
-}
+ }
 
 
 /**
@@ -1216,7 +1215,6 @@
 
   GNUNET_assert (MHD_YES == MHD_run (plugin->http_server_daemon_v6));
   plugin->http_server_task_v6 = http_server_daemon_prepare (plugin, 
plugin->http_server_daemon_v6);
-  return;
 }
 
 static size_t curl_get_header_cb( void *ptr, size_t size, size_t nmemb, void 
*stream)
@@ -1262,8 +1260,7 @@
     }
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Header: %s\n",ps,tmp);
   }
-  if (NULL != tmp)
-    GNUNET_free (tmp);
+  GNUNET_free_non_null (tmp);
 #endif
 
   return size * nmemb;
@@ -1324,9 +1321,9 @@
         tmp[len-2]= '\0';
     }
   }
-  if (NULL != tmp)
-    GNUNET_free (tmp);
 
+  GNUNET_free_non_null (tmp);
+
   return size * nmemb;
 }
 
@@ -1347,7 +1344,9 @@
   size_t len;
 
   if (ps->send_active == GNUNET_NO)
+  {
        return CURL_READFUNC_PAUSE;
+  }
 
   if ((ps->pending_msgs_tail == NULL) && (ps->send_active == GNUNET_YES))
   {
@@ -1589,6 +1588,8 @@
 
   GNUNET_assert(cls !=NULL);
 
+
+
   plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
@@ -1602,6 +1603,7 @@
       handles_last_run = running;
     }
   while (mret == CURLM_CALL_MULTI_PERFORM);
+
   curl_schedule(plugin);
 }
 
@@ -1632,6 +1634,7 @@
          GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task);
          plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
   }
+
   max = -1;
   FD_ZERO (&rs);
   FD_ZERO (&ws);
@@ -1662,7 +1665,7 @@
   plugin->http_curl_task = GNUNET_SCHEDULER_add_select (plugin->env->sched,
                                    GNUNET_SCHEDULER_PRIORITY_DEFAULT,
                                    GNUNET_SCHEDULER_NO_TASK,
-                                   GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_SECONDS, 0),
+                                                                   (to == -1) 
? GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) : 
GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, to),
                                    grs,
                                    gws,
                                    &curl_perform,
@@ -1732,16 +1735,12 @@
                          return GNUNET_SYSERR;
                        }
         }
-        if (curl_schedule (plugin) == GNUNET_SYSERR)
-        {
-#if DEBUG_CONNECTIONS
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: could not schedule 
curl task\n",ps);
-#endif
-               return GNUNET_SYSERR;
-        }
-#if DEBUG_CONNECTIONS
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: inbound not 
connected, initiating connection\n",ps);
-#endif
+               if (plugin->http_curl_task !=  GNUNET_SCHEDULER_NO_TASK)
+               {
+                 GNUNET_SCHEDULER_cancel(plugin->env->sched, 
plugin->http_curl_task);
+                 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
+               }
+               plugin->http_curl_task = GNUNET_SCHEDULER_add_now 
(plugin->env->sched, &curl_perform, plugin);
     }
 
     /* waiting for receive direction */
@@ -1767,6 +1766,12 @@
         if (CURLE_OK == curl_easy_pause(ps->send_endpoint,CURLPAUSE_CONT))
         {
                        ps->send_active=GNUNET_YES;
+                       if (plugin->http_curl_task !=  GNUNET_SCHEDULER_NO_TASK)
+                       {
+                         GNUNET_SCHEDULER_cancel(plugin->env->sched, 
plugin->http_curl_task);
+                         plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
+                       }
+                       plugin->http_curl_task = GNUNET_SCHEDULER_add_now 
(plugin->env->sched, &curl_perform, plugin);
                        return GNUNET_YES;
         }
         else
@@ -1823,8 +1828,12 @@
                        }
                }
     }
-    if (curl_schedule (plugin) == GNUNET_SYSERR)
-       return GNUNET_SYSERR;
+       if (plugin->http_curl_task !=  GNUNET_SCHEDULER_NO_TASK)
+       {
+         GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task);
+         plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
+       }
+       plugin->http_curl_task = GNUNET_SCHEDULER_add_now (plugin->env->sched, 
&curl_perform, plugin);
     return GNUNET_YES;
   }
   if (ps->direction == INBOUND)
@@ -2115,17 +2124,14 @@
   memcpy (msg->buf,msgbuf, msgbuf_size);
   GNUNET_CONTAINER_DLL_insert(ps->pending_msgs_head,ps->pending_msgs_tail,msg);
 
-  if (send_check_connections (plugin, ps) != GNUNET_SYSERR)
-  {
+  if (send_check_connections (plugin, ps) == GNUNET_SYSERR)
+         return GNUNET_SYSERR;
          if (force_address != GNUNET_YES)
                  pc->last_session = ps;
 
          if (pc->last_session==NULL)
                  pc->last_session = ps;
          return msg->size;
-  }
-  else
-         return GNUNET_SYSERR;
 }
 
 




reply via email to

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