diff --git a/src/Makefile.am b/src/Makefile.am
index 3f687a0..7830b46 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -58,7 +58,7 @@ AM_CFLAGS = -Wall -I ../include/
bin_PROGRAMS = taskrambler
-taskrambler_SOURCES = webgameserver.c \
+taskrambler_SOURCES = taskrambler.c \
$(IFACE) $(SOCKET) $(SERVER) $(LOGGER) $(MSG) $(REQ) \
$(WRITER) $(RESP) $(HEADER) $(PARSER) $(WORKER) $(CB) \
$(UTILS) $(MSGQ) $(SESSION) $(STREAM)
diff --git a/src/cbuf/skip_non_alpha.c b/src/cbuf/skip_non_alpha.c
index 0021d18..72ef3aa 100644
--- a/src/cbuf/skip_non_alpha.c
+++ b/src/cbuf/skip_non_alpha.c
@@ -27,7 +27,7 @@
void
cbufSkipNonAlpha(Cbuf this)
{
- while(0 > this->bused && isalpha(*cbufGetRead(this)))
+ while(0 < this->bused && !isalpha(*cbufGetRead(this)))
cbufIncRead(this, 1);
}
diff --git a/src/http/parser/body.c b/src/http/parser/body.c
index 8557217..6901c8d 100644
--- a/src/http/parser/body.c
+++ b/src/http/parser/body.c
@@ -28,7 +28,7 @@
#include "http/parser.h"
#include "cbuf.h"
-#define MAX(a,b) (((a) > (b))? (a) : (b))
+#define MIN(a,b) (((a) < (b))? (a) : (b))
size_t
httpParserBody(HttpParser this, const char * buf, size_t nbuf)
@@ -37,7 +37,7 @@ httpParserBody(HttpParser this, const char * buf, size_t nbuf)
HttpMessage current = this->current;
if (current->dbody < current->nbody) {
- len = MAX(current->nbody - current->dbody, nbuf);
+ len = MIN(current->nbody - current->dbody, nbuf);
memcpy(current->body, buf, len);
diff --git a/src/http/parser/parse.c b/src/http/parser/parse.c
index 72d9db7..9bef455 100644
--- a/src/http/parser/parse.c
+++ b/src/http/parser/parse.c
@@ -120,23 +120,24 @@ httpParserParse(void * _this, Stream st)
break;
case HTTP_MESSAGE_HEADERS_DONE:
- {
- cbufIncRead(
- this->buffer,
- httpParserBody(
- this,
- cbufGetRead(this->buffer),
- this->buffer->bused));
-
- if (cbufIsEmpty(this->buffer)) {
- cbufRelease(this->buffer);
- this->ourLock = FALSE;
- }
+ if (this->current->dbody == this->current->nbody) {
+ this->state = HTTP_MESSAGE_DONE;
+ break;
+ }
- if (this->current->dbody == this->current->nbody) {
- this->state = HTTP_MESSAGE_DONE;
- }
+ if (cbufIsEmpty(this->buffer)) {
+ cbufRelease(this->buffer);
+ this->ourLock = FALSE;
+ cont = 0;
+ break;
}
+
+ cbufIncRead(
+ this->buffer,
+ httpParserBody(
+ this,
+ cbufGetRead(this->buffer),
+ this->buffer->bused));
break;
case HTTP_MESSAGE_DONE:
diff --git a/src/webgameserver.c b/src/webgameserver.c
deleted file mode 100644
index 5125956..0000000
--- a/src/webgameserver.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * \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 .
- */
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "server.h"
-#include "logger.h"
-#include "http/worker.h"
-
-#include "interface/class.h"
-#include "interface/logger.h"
-
-#include "utils/signalHandling.h"
-
-#define DEFAULT_SECS 10
-//#define DEFAULT_USECS (1000000 / HZ * 2)
-//#define DEFAULT_SECS 1
-#define DEFAULT_USECS 0
-
-void nullhandler() {}
-
-void daemonize(void);
-
-int
-main()
-{
- pid_t pid;
- long psize = sysconf(_SC_PAGESIZE);
- int status;
- int shm;
- struct randval * value;
-
- struct rlimit limit = {RLIM_INFINITY, RLIM_INFINITY};
- setrlimit(RLIMIT_CPU, &limit);
-
- getrlimit(RLIMIT_NOFILE, &limit);
- limit.rlim_cur = limit.rlim_max;
- setrlimit(RLIMIT_NOFILE, &limit);
-
- init_signals();
-
- shm = shm_open("/fooshm", O_RDWR|O_CREAT, S_IRWXU);
- ftruncate(shm, psize);
-
- switch((pid = fork())) {
- case -1:
- break;
-
- case 0:
- {
- sigset_t block_these, pause_mask;
- struct sigaction s;
- struct itimerval interval;
-
- value = mmap (0, sizeof(struct randval), PROT_READ|PROT_WRITE,
- MAP_SHARED, shm, 0);
- value->timestamp = 0;
- value->value = 0;
-
- close(shm);
-
- // Block SIGALRM
- sigemptyset(&block_these);
- sigaddset(&block_these, SIGALRM);
- sigprocmask(SIG_BLOCK, &block_these, &pause_mask);
-
- // Set up handler for SIGALRM
- sigemptyset(&s.sa_mask);
- sigaddset(&s.sa_mask, SIGINT);
- s.sa_flags = 0;
- s.sa_handler = nullhandler;
- if (sigaction(SIGALRM, &s, NULL) < 0) {
- perror("sigaction SIGALRM");
- exit (1);
- }
-
- interval.it_value.tv_sec = DEFAULT_SECS;
- interval.it_value.tv_usec = DEFAULT_USECS;
- interval.it_interval.tv_sec = DEFAULT_SECS;
- interval.it_interval.tv_usec = DEFAULT_USECS;
-
- setitimer(ITIMER_REAL, &interval, NULL);
-
- // child
- while(!doShutdown) {
- value->timestamp = time(NULL);
- value->value = rand() % 100;
- sigsuspend(&pause_mask);
- }
-
- _exit(EXIT_SUCCESS);
- }
-
- default:
- {
- Logger logger;
- HttpWorker worker;
- Server server;
-
- value = mmap (0, sizeof(int), PROT_READ|PROT_WRITE,
- MAP_SHARED, shm, 0);
-
- shm_unlink("/fooshm");
- close(shm);
-
- logger = new(LoggerStderr, LOGGER_DEBUG);
- worker = new(HttpWorker, "testserver", value);
- server = new(Server, logger, worker, 11212, SOMAXCONN);
-
- //daemonize();
- if (NULL != server) {
- serverRun(server);
- }
- else {
- doShutdown = 1;
- kill(pid, SIGINT);
- }
-
- do {
- pid_t w;
-
- w = waitpid(pid, &status, 0);
-
- while (w == -1) {
- switch(errno) {
- case EINTR: w = waitpid(pid, &status, 0);
- break;
- case ECHILD: perror("no child");
- // DROP THROUGH
- default: w = 0;
- }
- }
-
- if (0 < w) {
- if (WIFEXITED(status)) {
- loggerLog(logger, LOGGER_INFO,
- "child exited, status=%d\n",
- WEXITSTATUS(status));
- } else if (WIFSIGNALED(status)) {
- loggerLog(logger, LOGGER_INFO,
- "killed by signal %d\n",
- WTERMSIG(status));
- } else if (WIFSTOPPED(status)) {
- loggerLog(logger, LOGGER_INFO,
- "stopped by signal %d\n",
- WSTOPSIG(status));
- } else if (WIFCONTINUED(status)) {
- loggerLog(logger, LOGGER_INFO, "continued\n");
- }
- }
- } while (!WIFEXITED(status) && !WIFSIGNALED(status));
-
- if (NULL != server) delete(server);
- if (NULL != worker) delete(worker);
- if (NULL != logger) delete(logger);
- }
-
- break;
- }
-
- return 0;
-}
-
-// vim: set ts=4 sw=4: