Commit f366c0b86550e9f790b26b6115af63625b4e1e21
1 parent
b4b1c4f1
add testserver and did some fixes not shown by my incomplete tests
Showing
14 changed files
with
123 additions
and
13 deletions
| 1 | +2012-01-18 07:52:07 +0100 Georg Hopp | ||
| 2 | + | ||
| 3 | + * add testserver and did some fixes not shown by my incomplete tests (HEAD, master) | ||
| 4 | + | ||
| 5 | +2012-01-17 15:40:07 +0100 Georg Hopp | ||
| 6 | + | ||
| 7 | + * more notes | ||
| 8 | + | ||
| 9 | +2012-01-17 15:04:33 +0100 Georg Hopp | ||
| 10 | + | ||
| 11 | + * add some thought | ||
| 12 | + | ||
| 13 | +2012-01-17 14:49:49 +0100 Georg Hopp | ||
| 14 | + | ||
| 15 | + * changed from select(UNIX) to poll(POSIX) | ||
| 16 | + | ||
| 17 | +2012-01-16 18:39:01 +0100 Georg Hopp | ||
| 18 | + | ||
| 19 | + * work on server_run | ||
| 20 | + | ||
| 21 | +2012-01-16 17:05:57 +0100 Georg Hopp | ||
| 22 | + | ||
| 23 | + * move test under docs dir | ||
| 24 | + | ||
| 25 | +2012-01-16 17:05:08 +0100 Georg Hopp | ||
| 26 | + | ||
| 27 | + * simply copy signal handling code from gameserver project | ||
| 28 | + | ||
| 29 | +2012-01-16 16:04:11 +0100 Georg Hopp | ||
| 30 | + | ||
| 31 | + * more work on socket handling stuff... @TODO think about renaming it to connection as it only handles TCP sockets | ||
| 32 | + | ||
| 33 | +2012-01-16 13:48:05 +0100 Georg Hopp | ||
| 34 | + | ||
| 35 | + * add info text about file handle passing and ported more stuff from my old server structure | ||
| 36 | + | ||
| 37 | +2012-01-16 08:05:15 +0100 Georg Hopp | ||
| 38 | + | ||
| 39 | + * reflect changes in configure.ac | ||
| 40 | + | ||
| 41 | +2012-01-13 22:46:45 +0100 Georg Hopp | ||
| 42 | + | ||
| 43 | + * add daemonize code from other project. (Might be integrated in a future class but i am not sure right now | ||
| 44 | + | ||
| 45 | +2012-01-13 22:16:17 +0100 Georg Hopp | ||
| 46 | + | ||
| 47 | + * logger now works and has some basic testing | ||
| 48 | + | ||
| 49 | +2012-01-13 22:15:03 +0100 Georg Hopp | ||
| 50 | + | ||
| 51 | + * change cclass so that the internal structure is no longer visible by the rest of the code | ||
| 52 | + | ||
| 53 | +2012-01-13 16:06:02 +0100 Georg Hopp | ||
| 54 | + | ||
| 55 | + * some fixes on first logger tests | ||
| 56 | + | ||
| 57 | +2012-01-13 15:54:22 +0100 Georg Hopp | ||
| 58 | + | ||
| 59 | + * initial checkin | ||
| 60 | + |
| @@ -10,7 +10,15 @@ | @@ -10,7 +10,15 @@ | ||
| 10 | 10 | ||
| 11 | #define POLL_FD_NSIZE 1024 | 11 | #define POLL_FD_NSIZE 1024 |
| 12 | #define POLL_FD_SIZE (sizeof(struct pollfd) * POLL_FD_NSIZE) | 12 | #define POLL_FD_SIZE (sizeof(struct pollfd) * POLL_FD_NSIZE) |
| 13 | -#define POLL_FD_MOVE(idx) (sizeof(struct pollfd) * (POLL_FD_NSIZE-(idx)+1)) | 13 | + |
| 14 | +#define MOVE_SIZE(size,idx) ((size) * (POLL_FD_NSIZE-((idx)+1))) | ||
| 15 | +#define CLEAR_CONN(server,idx) \ | ||
| 16 | + memmove(&(((server)->fds)[(idx)]), \ | ||
| 17 | + &(((server)->fds)[(idx)+1]), \ | ||
| 18 | + MOVE_SIZE(sizeof(((server)->fds)[0]),(idx))); \ | ||
| 19 | + memmove(&(((server)->conns)[(idx)]), \ | ||
| 20 | + &(((server)->conns)[(idx)+1]), \ | ||
| 21 | + MOVE_SIZE(sizeof(((server)->conns)[0]),(idx))) | ||
| 14 | 22 | ||
| 15 | 23 | ||
| 16 | typedef void (*server_read_hook)(const char *); | 24 | typedef void (*server_read_hook)(const char *); |
src/Makefile.am
0 → 100644
| 1 | +ACLOCAL_AMFLAGS = -I m4 | ||
| 2 | + | ||
| 3 | +CCLASS = cclass.c | ||
| 4 | +SOCKET = socket.c socket/accept.c socket/connect.c socket/listen.c | ||
| 5 | +SERVER = server.c server/run.c server/close_conn.c | ||
| 6 | + | ||
| 7 | +bin_PROGRAMS = testserver | ||
| 8 | + | ||
| 9 | +testserver_SOURCES = testserver.c $(CCLASS) $(SOCKET) $(SERVER) signalHandling.c logger.c | ||
| 10 | +testserver_CFLAGS = -Wall -I ../include |
| 1 | -#include "server.h" | 1 | +#include <string.h> |
| 2 | 2 | ||
| 3 | +#include "server.h" | ||
| 3 | 4 | ||
| 4 | void | 5 | void |
| 5 | server_close_conn(SERVER this, unsigned int i) | 6 | server_close_conn(SERVER this, unsigned int i) |
| 6 | { | 7 | { |
| 7 | - memmove(&((this->fds)[i]), &((this->fds)[i+1]), POLL_FD_MOVE(i+1)); | ||
| 8 | - this->nfds--; | ||
| 9 | delete(&((this->conns)[i].sock)); | 8 | delete(&((this->conns)[i].sock)); |
| 9 | + CLEAR_CONN(this, i); | ||
| 10 | + this->nfds--; | ||
| 10 | } | 11 | } |
| 11 | 12 | ||
| 12 | // vim: set ts=4 sw=4: | 13 | // vim: set ts=4 sw=4: |
src/testserver.c
0 → 100644
| 1 | +#include <stdio.h> | ||
| 2 | +#include <socket.h> | ||
| 3 | + | ||
| 4 | +#include "server.h" | ||
| 5 | +#include "signalHandling.h" | ||
| 6 | + | ||
| 7 | +static void | ||
| 8 | +read_hook(const char * _buffer) | ||
| 9 | +{ | ||
| 10 | + printf("%s\n", _buffer); | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +int | ||
| 14 | +main() | ||
| 15 | +{ | ||
| 16 | + LOGGER logger = new(LOGGER, NULL); | ||
| 17 | + SERVER server = new(SERVER, logger, 11212, SOMAXCONN); | ||
| 18 | + | ||
| 19 | + server->read_hook = read_hook; | ||
| 20 | + | ||
| 21 | + init_signals(); | ||
| 22 | + server_run(server); | ||
| 23 | + | ||
| 24 | + delete(&server); | ||
| 25 | + delete(&logger); | ||
| 26 | + | ||
| 27 | + return 0; | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +// vim: set ts=4 sw=4: |
| @@ -7,10 +7,10 @@ check_PROGRAMS = cclassTest loggerTest socketTest serverTest | @@ -7,10 +7,10 @@ check_PROGRAMS = cclassTest loggerTest socketTest serverTest | ||
| 7 | COMMON = runtest.c ../src/cclass.c | 7 | COMMON = runtest.c ../src/cclass.c |
| 8 | CCLASS = $(COMMON) mock/class.c | 8 | CCLASS = $(COMMON) mock/class.c |
| 9 | LOGGER = $(COMMON) ../src/logger.c | 9 | LOGGER = $(COMMON) ../src/logger.c |
| 10 | -SOCKET = $(LOGGER) ../src/socket.c ../src/socket_listen.c \ | ||
| 11 | - ../src/socket_accept.c ../src/socket_connect.c | ||
| 12 | -SERVER = $(SOCKET) ../src/server.c ../src/server_run.c \ | ||
| 13 | - ../src/server_close_conn.c ../src/signalHandling.c | 10 | +SOCKET = $(LOGGER) ../src/socket.c ../src/socket/listen.c \ |
| 11 | + ../src/socket/accept.c ../src/socket/connect.c | ||
| 12 | +SERVER = $(SOCKET) ../src/server.c ../src/server/run.c \ | ||
| 13 | + ../src/server/close_conn.c ../src/signalHandling.c | ||
| 14 | 14 | ||
| 15 | cclassTest_SOURCES = $(CCLASS) cclassTest.c | 15 | cclassTest_SOURCES = $(CCLASS) cclassTest.c |
| 16 | cclassTest_CFLAGS = -Wall -ggdb -O0 -finline-functions -I ../include -I .. -I . | 16 | cclassTest_CFLAGS = -Wall -ggdb -O0 -finline-functions -I ../include -I .. -I . |
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
| 3 | #include <unistd.h> | 3 | #include <unistd.h> |
| 4 | #include <signal.h> | 4 | #include <signal.h> |
| 5 | +#include <socket.h> | ||
| 5 | 6 | ||
| 6 | #include "runtest.h" | 7 | #include "runtest.h" |
| 7 | #include "logger.h" | 8 | #include "logger.h" |
| @@ -10,7 +11,7 @@ | @@ -10,7 +11,7 @@ | ||
| 10 | #include "signalHandling.h" | 11 | #include "signalHandling.h" |
| 11 | 12 | ||
| 12 | 13 | ||
| 13 | -#define TEST_PORT 11218 | 14 | +#define TEST_PORT 11212 |
| 14 | #define TEST_DATA "test" | 15 | #define TEST_DATA "test" |
| 15 | 16 | ||
| 16 | 17 | ||
| @@ -46,7 +47,7 @@ __setUp() | @@ -46,7 +47,7 @@ __setUp() | ||
| 46 | logger = new(LOGGER, NULL); | 47 | logger = new(LOGGER, NULL); |
| 47 | logger_add(logger, logfnct_mock); | 48 | logger_add(logger, logfnct_mock); |
| 48 | 49 | ||
| 49 | - server = new(SERVER, logger, TEST_PORT); | 50 | + server = new(SERVER, logger, TEST_PORT, SOMAXCONN); |
| 50 | 51 | ||
| 51 | ASSERT_INSTANCE_OF(SERVER, server); | 52 | ASSERT_INSTANCE_OF(SERVER, server); |
| 52 | ASSERT_INSTANCE_OF(LOGGER, server->logger); | 53 | ASSERT_INSTANCE_OF(LOGGER, server->logger); |
Please
register
or
login
to post a comment