|
Server 0.0.1
HTTP/REST server implementation
|
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: