wip
[oweals/gnunet.git] / src / transport / plugin_transport_http.c
index 8d6801ce72fb5df1e2f8f4223c53978e3582edbc..b349727229af6325596336a85f358b17ea706ddc 100644 (file)
@@ -512,18 +512,18 @@ static void http_server_daemon_v6_run (void *cls, const struct GNUNET_SCHEDULER_
 
 /**
  * Function setting up curl handle and selecting message to send
+ *
  * @param plugin plugin
- * @param ses session to send data to
- * @param con connection
- * @return bytes sent to peer
+ * @param ps session
+ * @return GNUNET_SYSERR on failure, GNUNET_NO if connecting, GNUNET_YES if ok
  */
 static int send_check_connections (struct Plugin *plugin, struct Session *ps);
 
 /**
  * Function setting up file descriptors and scheduling task to run
- * @param cls closure
- * @param ses session to send data to
- * @param
+ *
+ * @param  plugin plugin as closure
+ * @return GNUNET_SYSERR for hard failure, GNUNET_OK for ok
  */
 static int curl_schedule (struct Plugin *plugin);
 
@@ -996,9 +996,9 @@ mhd_access_cb (void *cls,
   struct Plugin *plugin = cls;
   struct MHD_Response *response;
   const union MHD_ConnectionInfo * conn_info;
-
-  struct sockaddr_in  *addrin;
-  struct sockaddr_in6 *addrin6;
+  const struct sockaddr *client_addr;
+  const struct sockaddr_in  *addrin;
+  const struct sockaddr_in6 *addrin6;
 
   char address[INET6_ADDRSTRLEN+14];
   struct GNUNET_PeerIdentity pi_in;
@@ -1077,9 +1077,11 @@ mhd_access_cb (void *cls,
 
     conn_info = MHD_get_connection_info(mhd_connection, MHD_CONNECTION_INFO_CLIENT_ADDRESS );
     /* Incoming IPv4 connection */
-    if ( AF_INET == conn_info->client_addr->sin_family)
+    /* cast required for legacy MHD API < 0.9.6 */
+    client_addr = (const struct sockaddr *) conn_info->client_addr;
+    if ( AF_INET == client_addr->sa_family)
     {
-      addrin = conn_info->client_addr;
+      addrin = (const struct sockaddr_in*) client_addr;
       inet_ntop(addrin->sin_family, &(addrin->sin_addr),address,INET_ADDRSTRLEN);
       memcpy(&ipv4addr.ipv4_addr,&(addrin->sin_addr),sizeof(struct in_addr));
       ipv4addr.u_port = addrin->sin_port;
@@ -1087,9 +1089,9 @@ mhd_access_cb (void *cls,
       addr_len = sizeof(struct IPv4HttpAddress);
     }
     /* Incoming IPv6 connection */
-    if ( AF_INET6 == conn_info->client_addr->sin_family)
+    if ( AF_INET6 == client_addr->sa_family)
     {
-      addrin6 = (struct sockaddr_in6 *) conn_info->client_addr;
+      addrin6 = (const struct sockaddr_in6 *) client_addr;
       inet_ntop(addrin6->sin6_family, &(addrin6->sin6_addr),address,INET6_ADDRSTRLEN);
       memcpy(&ipv6addr.ipv6_addr,&(addrin6->sin6_addr),sizeof(struct in6_addr));
       ipv6addr.u6_port = addrin6->sin6_port;
@@ -1818,7 +1820,7 @@ static void curl_perform (void *cls,
 /**
  * Function setting up file descriptors and scheduling task to run
  *
- * @param plugin plugin as closure
+ * @param  plugin plugin as closure
  * @return GNUNET_SYSERR for hard failure, GNUNET_OK for ok
  */
 static int curl_schedule(struct Plugin *plugin)
@@ -2358,27 +2360,27 @@ http_plugin_send (void *cls,
        //return GNUNET_SYSERR;
   }
 
-       /* create msg */
-       msg = GNUNET_malloc (sizeof (struct HTTP_Message) + msgbuf_size);
-       msg->next = NULL;
-       msg->size = msgbuf_size;
-       msg->pos = 0;
-       msg->buf = (char *) &msg[1];
-       msg->transmit_cont = cont;
-       msg->transmit_cont_cls = cont_cls;
-       memcpy (msg->buf,msgbuf, msgbuf_size);
-
-       GNUNET_CONTAINER_DLL_insert(ps->pending_msgs_head,ps->pending_msgs_tail,msg);
-       ps->queue_length_cur += msgbuf_size;
-
-       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;
+  /* create msg */
+  msg = GNUNET_malloc (sizeof (struct HTTP_Message) + msgbuf_size);
+  msg->next = NULL;
+  msg->size = msgbuf_size;
+  msg->pos = 0;
+  msg->buf = (char *) &msg[1];
+  msg->transmit_cont = cont;
+  msg->transmit_cont_cls = cont_cls;
+  memcpy (msg->buf,msgbuf, msgbuf_size);  
+  GNUNET_CONTAINER_DLL_insert (ps->pending_msgs_head,
+                              ps->pending_msgs_tail,
+                              msg);
+  ps->queue_length_cur += msgbuf_size;
+  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;
 }