You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.7 KiB
108 lines
2.7 KiB
/**
|
|
* \file
|
|
*
|
|
* \author Georg Hopp
|
|
*
|
|
* \copyright
|
|
* Copyright (C) 2012 Georg Hopp
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
#include <sys/types.h>
|
|
|
|
#include "class.h"
|
|
#include "interface/class.h"
|
|
|
|
#include "http/response.h"
|
|
#include "http/message.h"
|
|
#include "http/header.h"
|
|
|
|
|
|
#define RESP_DATA "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" \
|
|
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n" \
|
|
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" \
|
|
"<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">" \
|
|
"<head>" \
|
|
"<title>200 - OK</title>" \
|
|
"<script type=\"text/javascript\" src=\"/jquery/\"></script>" \
|
|
"<script>" \
|
|
"$(document).ready(function() {" \
|
|
"$(\"a\").click(function() {" \
|
|
"alert(\"Hello world!\");" \
|
|
"});" \
|
|
"});" \
|
|
"</script>" \
|
|
"</head>" \
|
|
"<body>" \
|
|
"<h1>Testpage</h1>" \
|
|
"<img src=\"/image/\" />" \
|
|
"<hr />%02d" \
|
|
"<hr /><a href=\"#\">Link</a>" \
|
|
"</body>" \
|
|
"</html>"
|
|
|
|
|
|
HttpResponse
|
|
httpResponseMe(int value)
|
|
{
|
|
char buffer[200];
|
|
HttpResponse response;
|
|
HttpMessage message;
|
|
size_t nbuf;
|
|
|
|
response = new(HttpResponse, "HTTP/1.1", 200, "OK");
|
|
message = (HttpMessage)response;
|
|
|
|
httpHeaderAdd(&(message->header),
|
|
new(HttpHeader,
|
|
"Content-Type",
|
|
sizeof("Content-Type")-1,
|
|
"text/html",
|
|
sizeof("text/html")-1));
|
|
httpHeaderAdd(&(message->header),
|
|
new(HttpHeader,
|
|
"Set-Cookie",
|
|
sizeof("Set-Cookie")-1,
|
|
"name=\"Georg Hopp\"",
|
|
sizeof("name=\"Georg Hopp\"")-1));
|
|
httpHeaderAdd(&(message->header),
|
|
new(HttpHeader,
|
|
"Set-Cookie",
|
|
sizeof("Set-Cookie")-1,
|
|
"profession=\"coder\"",
|
|
sizeof("profession=\"coder\"")-1));
|
|
|
|
message->type = HTTP_MESSAGE_BUFFERED;
|
|
message->nbody = sizeof(RESP_DATA)-1-2;
|
|
message->body = malloc(sizeof(RESP_DATA)-2);
|
|
sprintf(message->body, RESP_DATA, value);
|
|
|
|
nbuf = sprintf(buffer, "%d", message->nbody);
|
|
|
|
httpHeaderAdd(&(message->header),
|
|
new(HttpHeader,
|
|
"Content-Length",
|
|
sizeof("Content-Length")-1,
|
|
buffer,
|
|
nbuf));
|
|
|
|
return response;
|
|
}
|
|
|
|
// vim: set ts=4 sw=4:
|