Server 0.0.1
HTTP/REST server implementation

src/http/response/randval.c

Go to the documentation of this file.
00001 
00023 #include <stdlib.h>
00024 #include <string.h>
00025 #include <stdio.h>
00026 #include <time.h>
00027 #include <sys/types.h>
00028 
00029 #include "class.h"
00030 
00031 #include "http/response.h"
00032 #include "http/message.h"
00033 #include "http/header.h"
00034 
00035 #include "utils/memory.h"
00036 #include "hash.h"
00037 
00038 #define RESP_DATA "{\"ctime\":%ld,\"vnext\":%ld,\"value\":\"%02d\"}"
00039 
00040 HttpResponse
00041 httpResponseRandval(time_t ctime, int value)
00042 {
00043         char         buffer[200];
00044         HttpResponse response;
00045         HttpMessage  message;
00046         size_t       nbuf;
00047         time_t       remaining;
00048 
00049         response = new(HttpResponse, "HTTP/1.1", 200, "OK");
00050         message  = (HttpMessage)response;
00051 
00052         hashAdd(message->header,
00053                         new(HttpHeader, CSTRA("Content-Type"), CSTRA("application/json")));
00054 
00055         message->type  = HTTP_MESSAGE_BUFFERED;
00056 
00057         remaining = 10 - (time(NULL) - ctime);
00058 
00059         nbuf = sprintf(buffer, RESP_DATA, ctime, remaining, value);
00060 
00061         message->nbody = nbuf;
00062         message->body  = malloc(nbuf);
00063         memcpy(message->body, buffer, nbuf);
00064 
00065         return response;
00066 }
00067 
00068 // vim: set ts=4 sw=4:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines