to_string.c 816 Bytes
#include <string.h>
#include <stdio.h>

#include "http/response.h"
#include "http/header.h"

size_t
httpResponseToString(HttpResponse response, char * string)
{
	int    i;
	size_t size = httpResponseSizeGet(response);
	char   status[4];

	snprintf(status, 4, "%d", response->status);

	strcpy(string, response->version);
	string += strlen(string);

	*string++ = ' ';

	strcpy(string, status);
	string += strlen(string);

	*string++ = ' ';

	strcpy(string, response->reason);
	string += strlen(string);

	*string++ = '\r';
	*string++ = '\n';

	for (i=0; i<response->nheader; i++) {
		string += httpHeaderToString(response->header[i], string);
		*string++ = '\r';
		*string++ = '\n';
	}

	*string++ = '\r';
	*string++ = '\n';

	memcpy(string, response->body, response->nbody);

	return size;
}

// vim: set ts=4 sw=4: