Browse Source

a taste of ajax

master
Georg Hopp 14 years ago
parent
commit
4b5bcf89c0
  1. 3
      include/http/response.h
  2. 3
      src/Makefile.am
  3. 42
      src/http/response/me.c
  4. 6
      src/http/worker/process.c
  5. 4
      src/server/write.c

3
include/http/response.h

@ -43,7 +43,8 @@ HttpResponse httpResponse304(
const char *, size_t,
const char *, size_t);
HttpResponse httpResponse404();
HttpResponse httpResponseMe(int);
HttpResponse httpResponseMe();
HttpResponse httpResponseRandval(int);
HttpResponse httpResponseAsset(
const char *,
const char *, size_t,

3
src/Makefile.am

@ -27,7 +27,8 @@ RESP = http/response.c \
http/response/304.c \
http/response/404.c \
http/response/asset.c \
http/response/me.c
http/response/me.c \
http/response/randval.c
PARSER = http/parser.c \
http/parser/parse.c \
http/parser/new_message.c \

42
src/http/response/me.c

@ -39,27 +39,47 @@
" \"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>" \
"<title>My own little Web-App</title>" \
"<style type=\"text/css\">" \
"div#randval {" \
"width: 120px;" \
"height: 30px;" \
"left: 200px;" \
"top: 100px;" \
"position: fixed;" \
"overflow: none;" \
"background-color: white;" \
"border: 1px solid black;" \
"}" \
"div.hide#randval {" \
"top: -50px;" \
"}" \
"</style>" \
"<script type=\"text/javascript\" src=\"/jquery/\"></script>" \
"<script>" \
"$(document).ready(function() {" \
"$(\"a\").click(function() {" \
"alert(\"Hello world!\");" \
"$(\"#randval\").load(\"/randval/\");" \
"$(\"#randval\").removeClass(\"hide\");" \
"});" \
"$(\"#randval\").click(function() {" \
"$(\"#randval\").addClass(\"hide\");" \
"});" \
"});" \
"</script>" \
"</head>" \
"<body>" \
"<h1>Testpage</h1>" \
"<img src=\"/image/\" />" \
"<hr />%02d" \
"<hr /><a href=\"#\">Link</a>" \
"<div id=\"randval\" class=\"hide\"></div>" \
"<div id=\"main\">" \
"<h1>Testpage</h1>" \
"<img src=\"/image/\" />" \
"<hr /><a href=\"#\">Link</a>" \
"</div>" \
"</body>" \
"</html>"
HttpResponse
httpResponseMe(int value)
httpResponseMe()
{
char buffer[200];
HttpResponse response;
@ -89,9 +109,9 @@ httpResponseMe(int value)
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);
message->nbody = sizeof(RESP_DATA)-1;
message->body = malloc(sizeof(RESP_DATA)-1);
memcpy(message->body, RESP_DATA, sizeof(RESP_DATA)-1);
nbuf = sprintf(buffer, "%d", message->nbody);

6
src/http/worker/process.c

@ -55,7 +55,11 @@ httpWorkerProcess(HttpWorker this, int fd)
if (0 == strcmp("GET", request->method)) {
if (0 == strcmp("/me/", request->uri)) {
response = (HttpMessage)httpResponseMe(*(this->val));
response = (HttpMessage)httpResponseMe();
}
if (0 == strcmp("/randval/", request->uri)) {
response = (HttpMessage)httpResponseRandval(*(this->val));
}
if (0 == strcmp("/image/", request->uri)) {

4
src/server/write.c

@ -24,7 +24,7 @@
#include "interface/logger.h"
#include "interface/stream_writer.h"
void serverCloseConn(Server, unsigned int);
void serverCloseConn(Server, unsigned int);
ssize_t
serverWrite(Server this, unsigned int i)
@ -36,7 +36,7 @@ serverWrite(Server this, unsigned int i)
loggerLog(
this->logger,
LOGGER_INFO,
"initialization error: NULL reader");
"initialization error: NULL worker");
return -1;
}

Loading…
Cancel
Save