curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r);
curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb);
curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r);
+ {
+ const char *us;
+ long upload_size;
+
+ us = MHD_lookup_connection_value (con,
+ MHD_HEADER_KIND,
+ MHD_HTTP_HEADER_CONTENT_LENGTH);
+ if ( (1 == sscanf (us,
+ "%ld",
+ &upload_size)) &&
+ (upload_size >= 0) )
+ {
+ curl_easy_setopt (s5r->curl,
+ CURLOPT_INFILESIZE,
+ upload_size);
+ }
+ }
}
else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_POST))
{
curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r);
curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb);
curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r);
+ {
+ const char *us;
+ long upload_size;
+
+ us = MHD_lookup_connection_value (con,
+ MHD_HEADER_KIND,
+ MHD_HTTP_HEADER_CONTENT_LENGTH);
+ if ( (1 == sscanf (us,
+ "%ld",
+ &upload_size)) &&
+ (upload_size >= 0) )
+ {
+ curl_easy_setopt (s5r->curl,
+ CURLOPT_INFILESIZE,
+ upload_size);
+ }
+ }
}
else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_HEAD))
{
clh);
GNUNET_free (clh);
}
-
GNUNET_free (gc);
}
const struct GNUNET_GNSRECORD_Data *rd)
{
struct ClientLookupHandle *clh = cls;
- struct GNUNET_MQ_Envelope *env;
+ struct GnsClient *gc = clh->gc;
+ struct GNUNET_MQ_Envelope *env;
struct LookupResultMessage *rmsg;
size_t len;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Sending LOOKUP_RESULT message with %u results\n",
(unsigned int) rd_count);
-
- len = GNUNET_GNSRECORD_records_get_size (rd_count, rd);
+ len = GNUNET_GNSRECORD_records_get_size (rd_count,
+ rd);
env = GNUNET_MQ_msg_extra (rmsg,
len,
GNUNET_MESSAGE_TYPE_GNS_LOOKUP_RESULT);
rmsg->id = clh->request_id;
rmsg->rd_count = htonl (rd_count);
- GNUNET_GNSRECORD_records_serialize (rd_count, rd, len,
+ GNUNET_GNSRECORD_records_serialize (rd_count,
+ rd,
+ len,
(char*) &rmsg[1]);
- GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq(clh->gc->client),
+ GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (gc->client),
env);
- GNUNET_CONTAINER_DLL_remove (clh->gc->clh_head,
- clh->gc->clh_tail,
+ GNUNET_CONTAINER_DLL_remove (gc->clh_head,
+ gc->clh_tail,
clh);
GNUNET_free (clh);
GNUNET_STATISTICS_update (statistics,
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received LOOKUP `%s' message\n",
name);
-
clh = GNUNET_new (struct ClientLookupHandle);
GNUNET_CONTAINER_DLL_insert (gc->clh_head,
gc->clh_tail,