[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r11590 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r11590 - gnunet/src/transport |
Date: |
Tue, 1 Jun 2010 14:24:30 +0200 |
Author: wachs
Date: 2010-06-01 14:24:30 +0200 (Tue, 01 Jun 2010)
New Revision: 11590
Modified:
gnunet/src/transport/test_plugin_transport_http.c
Log:
Modified: gnunet/src/transport/test_plugin_transport_http.c
===================================================================
--- gnunet/src/transport/test_plugin_transport_http.c 2010-05-31 22:17:44 UTC
(rev 11589)
+++ gnunet/src/transport/test_plugin_transport_http.c 2010-06-01 12:24:30 UTC
(rev 11590)
@@ -177,7 +177,15 @@
*/
static int sent;
+CURL *curl_handle;
+
/**
+ * cURL Multihandle
+ */
+static CURLM *multi_handle;
+
+
+/**
* Shutdown testcase
*/
static void
@@ -265,8 +273,68 @@
return GNUNET_TIME_UNIT_ZERO;
}
+/**
+ * Message to send using http
+ */
+struct HTTP_Message
+{
+ char *buf;
+ size_t pos;
+ size_t size;
+ size_t len;
+};
+ int done;
+static size_t
+putBuffer (void *stream, size_t size, size_t nmemb, void *ptr)
+{
+ unsigned int len;
+ struct HTTP_Message * cbc = ptr;
+
+ len = cbc->len;
+
+ if (( cbc->pos == len) && (len < (size * nmemb)))
+ return 0;
+ memcpy(stream, cbc->buf, len);
+ cbc->pos = len;
+ return len;
+}
+
+static size_t copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx)
+{
+ struct HTTP_Message *cbc = ctx;
+
+ if (cbc->pos + size * nmemb > cbc->size)
+ return 0; /* overflow */
+ memcpy (&cbc->buf[cbc->pos], ptr, size * nmemb);
+ cbc->pos += size * nmemb;
+ return size * nmemb;
+}
+
/**
+ * function to send data to server
+ */
+static int send_data(struct HTTP_Message *msg, char * url)
+{
+ struct HTTP_Message cbc;
+
+
+ curl_easy_setopt(curl_handle, CURLOPT_URL, url);
+ curl_easy_setopt(curl_handle, CURLOPT_PUT, 1L);
+ curl_easy_setopt (curl_handle, CURLOPT_WRITEFUNCTION, ©Buffer);
+ curl_easy_setopt (curl_handle, CURLOPT_WRITEDATA, &cbc);
+ curl_easy_setopt (curl_handle, CURLOPT_READFUNCTION, &putBuffer);
+ curl_easy_setopt (curl_handle, CURLOPT_READDATA, &cbc);
+ curl_easy_setopt(curl_handle, CURLOPT_INFILESIZE_LARGE, (curl_off_t)
msg->len);
+ //curl_easy_setopt(curl_handle, CURLOPT_TIMEOUT, (timeout.value / 1000 ));
+ //curl_easy_setopt(curl_handle, CURLOPT_CONNECTTIMEOUT,
HTTP_CONNECT_TIMEOUT);
+
+ curl_multi_add_handle(multi_handle, curl_handle);
+
+ return GNUNET_OK;
+}
+
+/**
* Network format for IPv4 addresses.
*/
struct IPv4HttpAddress
@@ -422,6 +490,7 @@
const char * addr_str;
unsigned int count_str_addr;
unsigned int suggest_res;
+ unsigned int res;
fail_pretty_printer = GNUNET_YES;
fail_notify_address = GNUNET_YES;
@@ -524,6 +593,17 @@
suggest_res = api->check_address (NULL,&failing_addr,sizeof (struct
IPv4HttpAddress));
GNUNET_assert (GNUNET_SYSERR == suggest_res);
+ /* test sending to client */
+ multi_handle = curl_multi_init();
+
+
+ /*building messages */
+ struct HTTP_Message msg;
+
+
+ res = send_data (&msg, "http://localhost:12389/");
+
+
/* testing finished, shutting down */
if ((fail_notify_address == GNUNET_NO) && (fail_pretty_printer == GNUNET_NO)
&& (fail_addr_to_str == GNUNET_NO) )
fail = 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r11590 - gnunet/src/transport,
gnunet <=