Hello all,

I am using *MHD daemon server *in order to *send incrementally large
strings containing xml data*.

The size of the sent data chuck(from curls) is equal with the sum of the
received data chucks
(received data size in MHD daemon server  == sum of all upload_data_size
for a specific connection).

The problem is that *the string in which i append incrementally the data
chunks as they arrive   is always bigger than the data it has been
sent/received. *

I do not understand where from comes this additional data and why my p
ostXMLData variable gets always larger.


My code looks like this:

static postXMLData = "";

static int AnswerToConnection (void *cls, struct MHD_Connection
*connection,
const char *url, const char *method, const char *version,
const char *upload_data, size_t *upload_data_size, void **con_cls)
{
 static int i;

// the first call - initialize data structures
if (*con_cls == NULL)
{
*con_cls = &i;

return MHD_YES;
}

// next calls - receive data incrementally
if (*upload_data_size != 0)
{
          xmlDataString.append(upload_data);

(*upload_data_size) = 0;

return MHD_YES;
}

// last call -  upload_data_size = 0 - processed received data
if (*upload_data_size == 0)
{
FILE *f; f=fopen("test_data_output_2.txt", "w"); fprintf(f, "%s", p
ostXMLData .c_str()); fclose(f);
}

  int ret = pProcessRequest->SendPage(connection, ANSWER_PAGE);
  return ret;
}

Reply via email to