[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r16859 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r16859 - gnunet/src/transport |
Date: |
Thu, 15 Sep 2011 12:04:40 +0200 |
Author: wachs
Date: 2011-09-15 12:04:40 +0200 (Thu, 15 Sep 2011)
New Revision: 16859
Modified:
gnunet/src/transport/plugin_transport_http_client.c
gnunet/src/transport/plugin_transport_http_new.c
gnunet/src/transport/plugin_transport_http_server.c
Log:
pre-launch commit
Modified: gnunet/src/transport/plugin_transport_http_client.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_client.c 2011-09-15 09:31:18 UTC
(rev 16858)
+++ gnunet/src/transport/plugin_transport_http_client.c 2011-09-15 10:04:40 UTC
(rev 16859)
@@ -58,39 +58,6 @@
#endif
int
-client_disconnect (struct Session *s)
-{
- int res = GNUNET_OK;
- CURLMcode mret;
-
-#if DEBUG_HTTP
- GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, s->plugin->name,
- "Deleting outbound session peer `%s'\n",
- GNUNET_i2s (&s->target));
-#endif
-
- mret = curl_multi_remove_handle (s->plugin->client_mh, s->client_put);
- if (mret != CURLM_OK)
- {
- curl_easy_cleanup (s->client_put);
- res = GNUNET_SYSERR;
- GNUNET_break (0);
- }
- curl_easy_cleanup (s->client_put);
-
- mret = curl_multi_remove_handle (s->plugin->client_mh, s->client_get);
- if (mret != CURLM_OK)
- {
- curl_easy_cleanup (s->client_get);
- res = GNUNET_SYSERR;
- GNUNET_break (0);
- }
- curl_easy_cleanup (s->client_get);
-
- return res;
-}
-
-int
client_send (struct Session *s, const char *msgbuf, size_t msgbuf_size)
{
return GNUNET_OK;
@@ -102,7 +69,7 @@
* @param tc gnunet scheduler task context
*/
static void
-client_perform (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+client_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
/**
* Function setting up file descriptors and scheduling task to run
@@ -111,7 +78,7 @@
* @return GNUNET_SYSERR for hard failure, GNUNET_OK for ok
*/
static int
-client_schedule_next_perform (struct Plugin *plugin)
+client_schedule (struct Plugin *plugin)
{
fd_set rs;
fd_set ws;
@@ -165,7 +132,7 @@
timeout,
grs,
gws,
- &client_perform,
+ &client_run,
plugin);
GNUNET_NETWORK_fdset_destroy (gws);
GNUNET_NETWORK_fdset_destroy (grs);
@@ -179,7 +146,7 @@
* @param tc gnunet scheduler task context
*/
static void
-client_perform (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+client_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct Plugin *plugin = cls;
static unsigned int handles_last_run;
@@ -203,10 +170,54 @@
handles_last_run = running;
}
while (mret == CURLM_CALL_MULTI_PERFORM);
- client_schedule_next_perform (plugin);
+ client_schedule (plugin);
}
int
+client_disconnect (struct Session *s)
+{
+ int res = GNUNET_OK;
+ CURLMcode mret;
+ struct Plugin *plugin = s->plugin;
+
+#if DEBUG_HTTP
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, plugin->name,
+ "Deleting outbound session peer `%s'\n",
+ GNUNET_i2s (&s->target));
+#endif
+
+ mret = curl_multi_remove_handle (plugin->client_mh, s->client_put);
+ if (mret != CURLM_OK)
+ {
+ curl_easy_cleanup (s->client_put);
+ res = GNUNET_SYSERR;
+ GNUNET_break (0);
+ }
+ curl_easy_cleanup (s->client_put);
+
+ mret = curl_multi_remove_handle (plugin->client_mh, s->client_get);
+ if (mret != CURLM_OK)
+ {
+ curl_easy_cleanup (s->client_get);
+ res = GNUNET_SYSERR;
+ GNUNET_break (0);
+ }
+ curl_easy_cleanup (s->client_get);
+
+ /* Re-schedule since handles have changed */
+ if (plugin->client_perform_task!= GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (plugin->client_perform_task);
+ plugin->client_perform_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+
+ plugin->client_perform_task = GNUNET_SCHEDULER_add_now(client_run, plugin);
+
+ return res;
+}
+
+
+int
client_connect (struct Session *s)
{
int res = GNUNET_OK;
@@ -311,7 +322,7 @@
}
/* Perform connect */
- s->plugin->client_perform_task = GNUNET_SCHEDULER_add_now (client_perform,
s->plugin);
+ s->plugin->client_perform_task = GNUNET_SCHEDULER_add_now (client_run,
s->plugin);
return res;
}
Modified: gnunet/src/transport/plugin_transport_http_new.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_new.c 2011-09-15 09:31:18 UTC
(rev 16858)
+++ gnunet/src/transport/plugin_transport_http_new.c 2011-09-15 10:04:40 UTC
(rev 16859)
@@ -421,6 +421,19 @@
return s;
}
+void
+notify_session_end (void *cls,
+ const struct GNUNET_PeerIdentity *
+ peer, struct Session * s)
+{
+ struct Plugin *plugin = cls;
+
+ plugin->env->session_end (NULL, peer, s);
+ GNUNET_CONTAINER_DLL_remove (plugin->head, plugin->tail, s);
+ delete_session (s);
+}
+
+
/**
* Function that can be used by the transport service to transmit
* a message using the plugin. Note that in the case of a
Modified: gnunet/src/transport/plugin_transport_http_server.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_server.c 2011-09-15 09:31:18 UTC
(rev 16858)
+++ gnunet/src/transport/plugin_transport_http_server.c 2011-09-15 10:04:40 UTC
(rev 16859)
@@ -256,7 +256,7 @@
* @return gnunet task identifier
*/
static GNUNET_SCHEDULER_TaskIdentifier
-server_schedule_daemon (struct Plugin *plugin, struct MHD_Daemon
*daemon_handle);
+server_schedule (struct Plugin *plugin, struct MHD_Daemon *daemon_handle);
/**
* Call MHD IPv4 to process pending requests and then go back
@@ -265,7 +265,7 @@
* @param tc task context
*/
static void
-http_server_daemon_v4_run (void *cls,
+server_v4_run (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct Plugin *plugin = cls;
@@ -277,7 +277,7 @@
return;
GNUNET_assert (MHD_YES == MHD_run (plugin->server_v4));
- plugin->server_v4_task = server_schedule_daemon (plugin, plugin->server_v4);
+ plugin->server_v4_task = server_schedule (plugin, plugin->server_v4);
}
@@ -288,7 +288,7 @@
* @param tc task context
*/
static void
-http_server_daemon_v6_run (void *cls,
+server_v6_run (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct Plugin *plugin = cls;
@@ -300,7 +300,7 @@
return;
GNUNET_assert (MHD_YES == MHD_run (plugin->server_v6));
- plugin->server_v6_task = server_schedule_daemon (plugin, plugin->server_v6);
+ plugin->server_v6_task = server_schedule (plugin, plugin->server_v6);
}
/**
@@ -311,7 +311,7 @@
* @return gnunet task identifier
*/
static GNUNET_SCHEDULER_TaskIdentifier
-server_schedule_daemon (struct Plugin *plugin, struct MHD_Daemon
*daemon_handle)
+server_schedule (struct Plugin *plugin, struct MHD_Daemon *daemon_handle)
{
GNUNET_SCHEDULER_TaskIdentifier ret;
fd_set rs;
@@ -353,7 +353,7 @@
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
GNUNET_SCHEDULER_NO_TASK, tv, wrs, wws,
- &http_server_daemon_v4_run, plugin);
+ &server_v4_run, plugin);
}
if (daemon_handle == plugin->server_v6)
{
@@ -366,7 +366,7 @@
ret =
GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
GNUNET_SCHEDULER_NO_TASK, tv, wrs, wws,
- &http_server_daemon_v6_run, plugin);
+ &server_v6_run, plugin);
}
GNUNET_NETWORK_fdset_destroy (wrs);
GNUNET_NETWORK_fdset_destroy (wws);
@@ -468,9 +468,9 @@
}
if (plugin->server_v4 != NULL)
- plugin->server_v4_task = server_schedule_daemon (plugin,
plugin->server_v4);
+ plugin->server_v4_task = server_schedule (plugin, plugin->server_v4);
if (plugin->server_v6 != NULL)
- plugin->server_v6_task = server_schedule_daemon (plugin,
plugin->server_v6);
+ plugin->server_v6_task = server_schedule (plugin, plugin->server_v6);
#if DEBUG_HTTP
GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r16859 - gnunet/src/transport,
gnunet <=