aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_http.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/plugin_transport_http.h')
-rw-r--r--src/transport/plugin_transport_http.h63
1 files changed, 56 insertions, 7 deletions
diff --git a/src/transport/plugin_transport_http.h b/src/transport/plugin_transport_http.h
index be8f93d..986d7d7 100644
--- a/src/transport/plugin_transport_http.h
+++ b/src/transport/plugin_transport_http.h
@@ -45,7 +45,7 @@
#define DEBUG_HTTP GNUNET_EXTRA_LOGGING
#define VERBOSE_SERVER GNUNET_EXTRA_LOGGING
#define VERBOSE_CLIENT GNUNET_EXTRA_LOGGING
-#define VERBOSE_CURL GNUNET_EXTRA_LOGGING
+#define VERBOSE_CURL GNUNET_NO
#if BUILD_HTTPS
#define LIBGNUNET_PLUGIN_TRANSPORT_INIT libgnunet_plugin_transport_https_init
@@ -160,6 +160,16 @@ struct Plugin
int max_connections;
/**
+ * Number of outbound sessions
+ */
+ unsigned int outbound_sessions;
+
+ /**
+ * Number of inbound sessions
+ */
+ unsigned int inbound_sessions;
+
+ /**
* Plugin HTTPS SSL/TLS options
* ----------------------------
*/
@@ -216,6 +226,11 @@ struct Plugin
GNUNET_SCHEDULER_TaskIdentifier server_v4_task;
/**
+ * The IPv4 server is scheduled to run asap
+ */
+ int server_v4_immediately;
+
+ /**
* MHD IPv6 daemon
*/
struct MHD_Daemon *server_v6;
@@ -226,6 +241,12 @@ struct Plugin
GNUNET_SCHEDULER_TaskIdentifier server_v6_task;
/**
+ * The IPv6 server is scheduled to run asap
+ */
+
+ int server_v6_immediately;
+
+ /**
* IPv4 server socket to bind to
*/
struct sockaddr_in *server_addr_v4;
@@ -295,6 +316,24 @@ struct IPv6HttpAddress
};
GNUNET_NETWORK_STRUCT_END
+
+struct ServerConnection
+{
+ /* _RECV or _SEND */
+ int direction;
+
+ /* Should this connection get disconnected? GNUNET_YES/NO */
+ int disconnect;
+
+ /* The session this server connection belongs to */
+ struct Session *session;
+
+ /* The MHD connection */
+ struct MHD_Connection *mhd_conn;
+};
+
+
+
/**
* Session handle for connections.
*/
@@ -390,6 +429,11 @@ struct Session
GNUNET_SCHEDULER_TaskIdentifier recv_wakeup_task;
/**
+ * Session timeout task
+ */
+ GNUNET_SCHEDULER_TaskIdentifier timeout_task;
+
+ /**
* Is client send handle paused since there are no data to send?
* GNUNET_YES/NO
*/
@@ -402,12 +446,12 @@ struct Session
/**
* Client send handle
*/
- void *server_recv;
+ struct ServerConnection *server_recv;
/**
* Client send handle
*/
- void *server_send;
+ struct ServerConnection *server_send;
};
/**
@@ -453,13 +497,18 @@ struct HTTP_Message
void *transmit_cont_cls;
};
+struct Session *
+create_session (struct Plugin *plugin, const struct GNUNET_PeerIdentity *target,
+ const void *addr, size_t addrlen);
+
+int
+exist_session (struct Plugin *plugin, struct Session *s);
+
void
delete_session (struct Session *s);
-struct Session *
-create_session (struct Plugin *plugin, const struct GNUNET_PeerIdentity *target,
- const void *addr, size_t addrlen,
- GNUNET_TRANSPORT_TransmitContinuation cont, void *cont_cls);
+int
+exist_session (struct Plugin *plugin, struct Session *s);
struct GNUNET_TIME_Relative
http_plugin_receive (void *cls, const struct GNUNET_PeerIdentity *peer,