aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2010-06-01 15:20:13 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2010-06-01 15:20:13 +0000
commite00a39456f1b8ccef52bb42bd9771d445f2db3c6 (patch)
tree98ea8b7e09adead80371a172ff9ac802b36e3479 /src
parentf5ae5d5db80a3a6b88306cb21b95dec5e038e2da (diff)
downloadgnunet-e00a39456f1b8ccef52bb42bd9771d445f2db3c6.tar.gz
gnunet-e00a39456f1b8ccef52bb42bd9771d445f2db3c6.zip
Diffstat (limited to 'src')
-rw-r--r--src/transport/test_plugin_transport_http.c38
1 files changed, 28 insertions, 10 deletions
diff --git a/src/transport/test_plugin_transport_http.c b/src/transport/test_plugin_transport_http.c
index aba4183ef..d02c74e9a 100644
--- a/src/transport/test_plugin_transport_http.c
+++ b/src/transport/test_plugin_transport_http.c
@@ -168,6 +168,15 @@ struct HTTP_Transfer
168 */ 168 */
169 size_t data_size; 169 size_t data_size;
170 170
171 unsigned char buf[2048];
172
173 /**
174 * amount of bytes we recieved
175 */
176 size_t pos;
177
178 size_t size;
179
171}; 180};
172 181
173struct Plugin_Address * addr_head; 182struct Plugin_Address * addr_head;
@@ -353,25 +362,34 @@ putBuffer (void *stream, size_t size, size_t nmemb, void *ptr)
353 362
354static size_t copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx) 363static size_t copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx)
355{ 364{
356 struct HTTP_Message *cbc = ctx; 365 struct HTTP_Transfer * res = (struct HTTP_Transfer *) ctx;
366
367 res->data_size = size * nmemb;
357 368
358 if (cbc->pos + size * nmemb > cbc->size) 369 if (res->pos + size * nmemb > res->size)
359 return 0; /* overflow */ 370 return 0; /* overflow */
360 memcpy (&cbc->buf[cbc->pos], ptr, size * nmemb); 371 memcpy (&res->buf[res->pos], ptr, size * nmemb);
361 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Send completed. %s\n",cbc->buf); 372 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Send completed. %s\n",res->buf);
362 cbc->pos += size * nmemb; 373 res->pos += size * nmemb;
363 return size * nmemb; 374 return size * nmemb;
364} 375}
365 376
366static size_t header_function( void *ptr, size_t size, size_t nmemb, void *stream) 377static size_t header_function( void *ptr, size_t size, size_t nmemb, void *stream)
367{ 378{
379 struct HTTP_Transfer * res = (struct HTTP_Transfer *) stream;
368 char * tmp; 380 char * tmp;
369 unsigned int len = size * nmemb; 381 unsigned int len = size * nmemb;
382
370 tmp = GNUNET_malloc ( len+1 ); 383 tmp = GNUNET_malloc ( len+1 );
371 memcpy(tmp,ptr,len); 384 memcpy(tmp,ptr,len);
372 //if (tmp[len-1]!='\0') 385 if (tmp[len-2] == 13)
373 // tmp[len]= '\0'; 386 tmp[len-2]= '\0';
374 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Header: %u :`%s'\n",len,tmp); 387 if (0==strcmp (tmp,"HTTP/1.1 404 Not Found"))
388 {
389 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "404\n");
390 res->http_result_code=404;
391 }
392
375 GNUNET_free (tmp); 393 GNUNET_free (tmp);
376 return size * nmemb; 394 return size * nmemb;
377} 395}
@@ -526,7 +544,7 @@ static int send_data(struct HTTP_Message *msg, struct HTTP_Transfer * result, ch
526 curl_easy_setopt (curl_handle, CURLOPT_HEADERFUNCTION, &header_function); 544 curl_easy_setopt (curl_handle, CURLOPT_HEADERFUNCTION, &header_function);
527 curl_easy_setopt (curl_handle, CURLOPT_WRITEHEADER, result); 545 curl_easy_setopt (curl_handle, CURLOPT_WRITEHEADER, result);
528 curl_easy_setopt (curl_handle, CURLOPT_WRITEFUNCTION, &copyBuffer); 546 curl_easy_setopt (curl_handle, CURLOPT_WRITEFUNCTION, &copyBuffer);
529 curl_easy_setopt (curl_handle, CURLOPT_WRITEDATA, msg); 547 curl_easy_setopt (curl_handle, CURLOPT_WRITEDATA, result);
530 curl_easy_setopt (curl_handle, CURLOPT_READFUNCTION, &putBuffer); 548 curl_easy_setopt (curl_handle, CURLOPT_READFUNCTION, &putBuffer);
531 curl_easy_setopt (curl_handle, CURLOPT_READDATA, msg); 549 curl_easy_setopt (curl_handle, CURLOPT_READDATA, msg);
532 curl_easy_setopt(curl_handle, CURLOPT_INFILESIZE_LARGE, (curl_off_t) msg->len); 550 curl_easy_setopt(curl_handle, CURLOPT_INFILESIZE_LARGE, (curl_off_t) msg->len);
@@ -808,7 +826,7 @@ run (void *cls,
808 msg->size = 2048; 826 msg->size = 2048;
809 msg->pos = 0; 827 msg->pos = 0;
810 msg->buf = GNUNET_malloc (2048); 828 msg->buf = GNUNET_malloc (2048);
811 829 no_ident.size=2048;
812 830
813 res = send_data (msg, &no_ident, "http://localhost:12389/"); 831 res = send_data (msg, &no_ident, "http://localhost:12389/");
814 832