Commit 7f688412eac190e43f86501a6b95fd22a88a858d

Authored by Georg Hopp
1 parent 8298740d

some code cleanups...no changes in the logic

  1 +2012-02-20 21:36:55 +0100 Georg Hopp
  2 +
  3 + * some code cleanups...no changes in the logic (HEAD, master)
  4 +
1 2012-02-20 18:08:23 +0100 Georg Hopp 5 2012-02-20 18:08:23 +0100 Georg Hopp
2 6
3 - * move sdbm implementation in one file. (HEAD, master) 7 + * move sdbm implementation in one file.
4 8
5 2012-02-20 17:16:44 +0100 Georg Hopp 9 2012-02-20 17:16:44 +0100 Georg Hopp
6 10
1 -#ifndef __HASH_H__  
2 -#define __HASH_H__  
3 -  
4 -unsigned long sdbm(const unsigned char *);  
5 -  
6 -#endif // __HASH_H__  
7 -  
8 -// vim: set ts=4 sw=4:  
@@ -63,7 +63,6 @@ CLASS(Server) { @@ -63,7 +63,6 @@ CLASS(Server) {
63 }; 63 };
64 64
65 void serverRun(Server this); 65 void serverRun(Server this);
66 -void serverCloseConn(Server this, unsigned int handle);  
67 66
68 #endif // __SERVER_H__ 67 #endif // __SERVER_H__
69 68
1 /** 1 /**
2 * \file 2 * \file
  3 + * Functions to handle varios signals send to the application.
3 * 4 *
4 * \author Georg Hopp 5 * \author Georg Hopp
5 * 6 *
@@ -20,33 +21,11 @@ @@ -20,33 +21,11 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 22 */
22 23
23 -#ifndef __HTTP_MESSAGE_HELPER_C__  
24 -#define __HTTP_MESSAGE_HELPER_C__ 24 +#ifndef __UTILS_HASH_H__
  25 +#define __UTILS_HASH_H__
25 26
26 -#include <stdlib.h> 27 +unsigned long sdbm(const unsigned char *);
27 28
28 -#include "class.h"  
29 -#include "interface/class.h"  
30 -  
31 -  
32 -static  
33 -inline  
34 -void  
35 -_free(void ** data)  
36 -{  
37 - if (NULL != *data) {  
38 - free(*data);  
39 - }  
40 -}  
41 -  
42 -static  
43 -inline  
44 -void  
45 -tDelete(void * node)  
46 -{  
47 - delete(&node);  
48 -}  
49 -  
50 -#endif // __HTTP_MESSAGE_HELPER_C__ 29 +#endif // __UTILS_HASH_H__
51 30
52 // vim: set ts=4 sw=4: 31 // vim: set ts=4 sw=4:
  1 +/**
  2 + * \file
  3 + *
  4 + * \author Georg Hopp
  5 + *
  6 + * \copyright
  7 + * Copyright (C) 2012 Georg Hopp
  8 + *
  9 + * This program is free software: you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation, either version 3 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program. If not, see <http://www.gnu.org/licenses/>.
  21 + */
  22 +
  23 +#ifndef __UTILS_MEMORY_H__
  24 +#define __UTILS_MEMORY_H__
  25 +
  26 +void ffree(void **);
  27 +
  28 +#endif // __UTILS_MEMORY_H__
@@ -21,13 +21,13 @@ @@ -21,13 +21,13 @@
21 * along with this program. If not, see <http://www.gnu.org/licenses/>. 21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 */ 22 */
23 23
24 -#ifndef __SIGNAL_HANDLING_H__  
25 -#define __SIGNAL_HANDLING_H__ 24 +#ifndef __UTILS_SIGNAL_HANDLING_H__
  25 +#define __UTILS_SIGNAL_HANDLING_H__
26 26
27 extern volatile int doShutdown; 27 extern volatile int doShutdown;
28 28
29 void terminate(int signum); 29 void terminate(int signum);
30 void init_signals(void); 30 void init_signals(void);
31 31
32 -#endif // __SIGNAL_HANDLING_H__ 32 +#endif // __UTILS_SIGNAL_HANDLING_H__
33 33
@@ -7,7 +7,8 @@ IFACE = interface/class.c interface/stream_reader.c interface/logger.c \ @@ -7,7 +7,8 @@ IFACE = interface/class.c interface/stream_reader.c interface/logger.c \
7 CLASS = class.c interface.c 7 CLASS = class.c interface.c
8 RB = ringbuffer.c ringbuffer/rb_read.c 8 RB = ringbuffer.c ringbuffer/rb_read.c
9 SOCKET = socket.c socket/accept.c socket/connect.c socket/listen.c 9 SOCKET = socket.c socket/accept.c socket/connect.c socket/listen.c
10 -SERVER = server.c server/run.c server/close_conn.c 10 +SERVER = server.c server/run.c server/close_conn.c server/poll.c \
  11 + server/handle_accept.c server/read.c
11 LOGGER = logger.c logger/stderr.c logger/syslog.c 12 LOGGER = logger.c logger/stderr.c logger/syslog.c
12 CB = cbuf.c cbuf/read.c cbuf/write.c \ 13 CB = cbuf.c cbuf/read.c cbuf/write.c \
13 cbuf/get_line.c cbuf/set_data.c cbuf/get_data.c \ 14 cbuf/get_line.c cbuf/set_data.c cbuf/get_data.c \
@@ -31,6 +32,7 @@ HEADER = http/header.c http/header/get.c http/header/add.c \ @@ -31,6 +32,7 @@ HEADER = http/header.c http/header/get.c http/header/add.c \
31 PARSER = http/request/parser.c http/request/parser/get_header.c \ 32 PARSER = http/request/parser.c http/request/parser/get_header.c \
32 http/request/parser/parse.c http/request/parser/get_request_line.c \ 33 http/request/parser/parse.c http/request/parser/get_request_line.c \
33 http/request/parser/get_body.c 34 http/request/parser/get_body.c
  35 +UTILS = utils/hash.c utils/memory.c utils/daemonize.c utils/signalHandling.c
34 36
35 37
36 AM_CFLAGS = -Wall -I ../include/ 38 AM_CFLAGS = -Wall -I ../include/
@@ -40,6 +42,6 @@ bin_PROGRAMS = testserver @@ -40,6 +42,6 @@ bin_PROGRAMS = testserver
40 testserver_SOURCES = testserver.c \ 42 testserver_SOURCES = testserver.c \
41 $(IFACE) $(CLASS) $(SOCKET) $(SERVER) $(LOGGER) $(MSG) $(REQ) \ 43 $(IFACE) $(CLASS) $(SOCKET) $(SERVER) $(LOGGER) $(MSG) $(REQ) \
42 $(WRITER) $(RESP) $(HEADER) $(PARSER) $(WORKER) $(CB) \ 44 $(WRITER) $(RESP) $(HEADER) $(PARSER) $(WORKER) $(CB) \
43 - signalHandling.c daemonize.c hash.c 45 + $(UTILS)
44 testserver_CFLAGS = -Wall -I ../include/ 46 testserver_CFLAGS = -Wall -I ../include/
45 testserver_LDFLAGS = -lrt 47 testserver_LDFLAGS = -lrt
@@ -24,12 +24,12 @@ @@ -24,12 +24,12 @@
24 #include <stdlib.h> 24 #include <stdlib.h>
25 #include <string.h> 25 #include <string.h>
26 26
27 -#include "hash.h"  
28 #include "class.h" 27 #include "class.h"
29 #include "interface/class.h" 28 #include "interface/class.h"
30 -  
31 #include "http/header.h" 29 #include "http/header.h"
32 30
  31 +#include "utils/hash.h"
  32 +
33 static 33 static
34 void 34 void
35 ctor(void * _this, va_list * params) { 35 ctor(void * _this, va_list * params) {
@@ -21,13 +21,12 @@ @@ -21,13 +21,12 @@
21 */ 21 */
22 22
23 #include <search.h> 23 #include <search.h>
24 -#include <stdlib.h>  
25 #include <stdio.h> 24 #include <stdio.h>
26 25
27 -#include "hash.h"  
28 #include "class.h" 26 #include "class.h"
29 #include "interface/class.h" 27 #include "interface/class.h"
30 #include "http/header.h" 28 #include "http/header.h"
  29 +#include "utils/hash.h"
31 30
32 static 31 static
33 inline 32 inline
@@ -25,8 +25,8 @@ @@ -25,8 +25,8 @@
25 #include <search.h> 25 #include <search.h>
26 #include <stdlib.h> 26 #include <stdlib.h>
27 27
28 -#include "hash.h"  
29 #include "http/header.h" 28 #include "http/header.h"
  29 +#include "utils/hash.h"
30 30
31 static 31 static
32 inline 32 inline
@@ -34,10 +34,18 @@ @@ -34,10 +34,18 @@
34 #include "interface/class.h" 34 #include "interface/class.h"
35 35
36 #include "http/message.h" 36 #include "http/message.h"
37 -#include "message/helper.c" 37 +#include "utils/memory.h"
38 38
39 39
40 static 40 static
  41 +inline
  42 +void
  43 +tDelete(void * node)
  44 +{
  45 + delete(&node);
  46 +}
  47 +
  48 +static
41 void 49 void
42 ctor(void * _this, va_list * params) 50 ctor(void * _this, va_list * params)
43 { 51 {
@@ -54,7 +62,7 @@ dtor(void * _this) @@ -54,7 +62,7 @@ dtor(void * _this)
54 { 62 {
55 HttpMessage this = _this; 63 HttpMessage this = _this;
56 64
57 - _free((void **)&(this->version)); 65 + ffree((void **)&(this->version));
58 66
59 /** 67 /**
60 * this is a GNU extension...anyway on most non 68 * this is a GNU extension...anyway on most non
@@ -65,7 +73,7 @@ dtor(void * _this) @@ -65,7 +73,7 @@ dtor(void * _this)
65 73
66 switch (this->type) { 74 switch (this->type) {
67 case HTTP_MESSAGE_BUFFERED: 75 case HTTP_MESSAGE_BUFFERED:
68 - _free((void **)&(this->body)); 76 + ffree((void **)&(this->body));
69 break; 77 break;
70 78
71 case HTTP_MESSAGE_PIPED: 79 case HTTP_MESSAGE_PIPED:
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 #include "interface/http_intro.h" 30 #include "interface/http_intro.h"
31 31
32 #include "http/request.h" 32 #include "http/request.h"
33 -#include "message/helper.c" 33 +#include "utils/memory.h"
34 34
35 35
36 static 36 static
@@ -43,8 +43,8 @@ dtor(void * _this) @@ -43,8 +43,8 @@ dtor(void * _this)
43 { 43 {
44 HttpRequest this = _this; 44 HttpRequest this = _this;
45 45
46 - _free((void **)&(this->uri));  
47 - _free((void **)&(this->method)); 46 + ffree((void **)&(this->uri));
  47 + ffree((void **)&(this->method));
48 48
49 PARENTCALL(_this, Class, dtor); 49 PARENTCALL(_this, Class, dtor);
50 } 50 }
@@ -20,10 +20,9 @@ @@ -20,10 +20,9 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -#include <unistd.h>  
24 -#include <stdio.h>  
25 #include <stdlib.h> 23 #include <stdlib.h>
26 #include <sys/types.h> 24 #include <sys/types.h>
  25 +#include <stdarg.h>
27 26
28 #include "class.h" 27 #include "class.h"
29 #include "interface/class.h" 28 #include "interface/class.h"
@@ -20,9 +20,7 @@ @@ -20,9 +20,7 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -#include <search.h>  
24 -#include <ctype.h>  
25 -#include <stdio.h> 23 +#include <string.h>
26 24
27 #include "class.h" 25 #include "class.h"
28 #include "interface/class.h" 26 #include "interface/class.h"
@@ -31,8 +29,8 @@ @@ -31,8 +29,8 @@
31 #include "http/request/parser.h" 29 #include "http/request/parser.h"
32 #include "ringbuffer.h" 30 #include "ringbuffer.h"
33 31
34 -ssize_t  
35 -httpRequestParserGetHeader(HttpRequestParser this, char * cr) 32 +void
  33 +httpRequestParserGetHeader(HttpMessage message, char * line)
36 { 34 {
37 HttpMessage message = (HttpMessage)this->cur_request; 35 HttpMessage message = (HttpMessage)this->cur_request;
38 char * value; 36 char * value;
@@ -53,7 +51,7 @@ httpRequestParserGetHeader(HttpRequestParser this, char * cr) @@ -53,7 +51,7 @@ httpRequestParserGetHeader(HttpRequestParser this, char * cr)
53 51
54 httpHeaderAdd(&(message->header), new(HttpHeader, name, value)); 52 httpHeaderAdd(&(message->header), new(HttpHeader, name, value));
55 53
56 - return 1; //* @TODO: return something useful here 54 + httpHeaderAdd(&(message->header), new(HttpHeader, name, value));
57 } 55 }
58 56
59 // vim: set ts=4 sw=4: 57 // vim: set ts=4 sw=4:
@@ -25,8 +25,7 @@ @@ -25,8 +25,7 @@
25 25
26 #include "http/message.h" 26 #include "http/message.h"
27 #include "http/request.h" 27 #include "http/request.h"
28 -#include "http/request/parser.h"  
29 -#include "ringbuffer.h" 28 +#include "http/message.h"
30 29
31 #define MAX(x,y) ((x) > (y) ? (x) : (y)) 30 #define MAX(x,y) ((x) > (y) ? (x) : (y))
32 #define MIN(x,y) ((x) < (y) ? (x) : (y)) 31 #define MIN(x,y) ((x) < (y) ? (x) : (y))
@@ -21,9 +21,6 @@ @@ -21,9 +21,6 @@
21 */ 21 */
22 22
23 #include <stdlib.h> 23 #include <stdlib.h>
24 -#include <string.h>  
25 -#include <unistd.h>  
26 -#include <ctype.h>  
27 24
28 #include "http/request.h" 25 #include "http/request.h"
29 #include "http/message.h" 26 #include "http/message.h"
@@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
31 #include "interface/http_intro.h" 31 #include "interface/http_intro.h"
32 32
33 #include "http/response.h" 33 #include "http/response.h"
34 -#include "message/helper.c" 34 +#include "utils/memory.h"
35 35
36 36
37 static 37 static
@@ -56,7 +56,7 @@ dtor(void * _this) @@ -56,7 +56,7 @@ dtor(void * _this)
56 { 56 {
57 HttpResponse this = _this; 57 HttpResponse this = _this;
58 58
59 - _free((void **)&(this->reason)); 59 + ffree((void **)&(this->reason));
60 60
61 PARENTCALL(_this, Class, dtor); 61 PARENTCALL(_this, Class, dtor);
62 } 62 }
@@ -20,8 +20,6 @@ @@ -20,8 +20,6 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -#include <stdlib.h>  
24 -#include <string.h>  
25 #include <stdio.h> 23 #include <stdio.h>
26 #include <time.h> 24 #include <time.h>
27 #include <sys/stat.h> 25 #include <sys/stat.h>
@@ -20,8 +20,6 @@ @@ -20,8 +20,6 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -#include <stdlib.h>  
24 -#include <string.h>  
25 #include <stdio.h> 23 #include <stdio.h>
26 #include <sys/stat.h> 24 #include <sys/stat.h>
27 #include <fcntl.h> 25 #include <fcntl.h>
@@ -20,8 +20,7 @@ @@ -20,8 +20,7 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -#include <stdlib.h>  
24 -#include <stdio.h> 23 +#include <stdarg.h>
25 24
26 #include "class.h" 25 #include "class.h"
27 #include "interface/class.h" 26 #include "interface/class.h"
@@ -20,13 +20,8 @@ @@ -20,13 +20,8 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -#include <stdio.h>  
24 #include <unistd.h> 23 #include <unistd.h>
25 -#include <stdlib.h>  
26 -#include <string.h>  
27 -#include <sys/types.h>  
28 #include <sys/stat.h> 24 #include <sys/stat.h>
29 -#include <fcntl.h>  
30 25
31 #include "class.h" 26 #include "class.h"
32 #include "interface/class.h" 27 #include "interface/class.h"
@@ -20,10 +20,6 @@ @@ -20,10 +20,6 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -#include <poll.h> /* for select system call and related */  
24 -#include <string.h> /* for memset and stuff */  
25 -#include <stdlib.h> /* for getopt */  
26 -#include <unistd.h>  
27 #include <fcntl.h> 23 #include <fcntl.h>
28 24
29 #include "class.h" 25 #include "class.h"
@@ -25,11 +25,10 @@ @@ -25,11 +25,10 @@
25 #include <stdlib.h> 25 #include <stdlib.h>
26 26
27 #include "http/worker.h" 27 #include "http/worker.h"
  28 +#include "server.h"
  29 +#include "interface/class.h"
  30 +#include "interface/logger.h"
28 31
29 -  
30 -#include "http/worker.h"  
31 -  
32 -static  
33 int 32 int
34 serverHandleAccept(Server this) 33 serverHandleAccept(Server this)
35 { 34 {
@@ -45,15 +44,6 @@ serverHandleAccept(Server this) @@ -45,15 +44,6 @@ serverHandleAccept(Server this)
45 // clone worker 44 // clone worker
46 (this->conns)[acc->handle].worker = clone(this->worker); 45 (this->conns)[acc->handle].worker = clone(this->worker);
47 46
48 - /**  
49 - * \todo  
50 - * set worker id---this would better be accomplished  
51 - * as a worker method.  
52 - * The same is true for server information stuff only  
53 - * that this should become an interface.  
54 - * At a second thought both has to be an interface.  
55 - */  
56 -  
57 (this->fds)[this->nfds].fd = acc->handle; 47 (this->fds)[this->nfds].fd = acc->handle;
58 (this->fds)[this->nfds].events = POLLIN; 48 (this->fds)[this->nfds].events = POLLIN;
59 this->nfds++; 49 this->nfds++;
@@ -23,10 +23,14 @@ @@ -23,10 +23,14 @@
23 #include <poll.h> 23 #include <poll.h>
24 #include <errno.h> 24 #include <errno.h>
25 25
  26 +#include "server.h"
  27 +#include "interface/logger.h"
  28 +
  29 +#include "utils/signalHandling.h"
  30 +
26 #define POLLFD(ptr) ((struct pollfd *)(ptr)) 31 #define POLLFD(ptr) ((struct pollfd *)(ptr))
27 #define SWAP(a, b) ((a)^=(b),(b)^=(a),(a)^=(b)) 32 #define SWAP(a, b) ((a)^=(b),(b)^=(a),(a)^=(b))
28 33
29 -static  
30 int 34 int
31 serverPoll(Server this) { 35 serverPoll(Server this) {
32 int events; 36 int events;
@@ -20,7 +20,10 @@ @@ -20,7 +20,10 @@
20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 */ 21 */
22 22
23 -static 23 +#include "server.h"
  24 +#include "interface/logger.h"
  25 +#include "interface/stream_reader.h"
  26 +
24 ssize_t 27 ssize_t
25 serverRead(Server this, unsigned int i) 28 serverRead(Server this, unsigned int i)
26 { 29 {
@@ -21,20 +21,18 @@ @@ -21,20 +21,18 @@
21 */ 21 */
22 22
23 #include "server.h" 23 #include "server.h"
24 -#include "socket.h"  
25 -#include "logger.h"  
26 -#include "signalHandling.h"  
27 -#include "interface/class.h"  
28 -#include "interface/stream_reader.h"  
29 #include "interface/stream_writer.h" 24 #include "interface/stream_writer.h"
30 #include "interface/logger.h" 25 #include "interface/logger.h"
31 26
  27 +#include "utils/signalHandling.h"
  28 +
32 #undef MAX 29 #undef MAX
33 #define MAX(x,y) ((x) > (y) ? (x) : (y)) 30 #define MAX(x,y) ((x) > (y) ? (x) : (y))
34 31
35 -#include "poll.c"  
36 -#include "handle_accept.c"  
37 -#include "read.c" 32 +int serverPoll(Server);
  33 +int serverHandleAccept(Server);
  34 +void serverCloseConn(Server, unsigned int);
  35 +ssize_t serverRead(Server, unsigned int);
38 36
39 void 37 void
40 serverRun(Server this) 38 serverRun(Server this)
@@ -31,10 +31,10 @@ @@ -31,10 +31,10 @@
31 #include "logger.h" 31 #include "logger.h"
32 #include "http/worker.h" 32 #include "http/worker.h"
33 33
34 -#include "signalHandling.h"  
35 -  
36 #include "interface/class.h" 34 #include "interface/class.h"
37 35
  36 +#include "utils/signalHandling.h"
  37 +
38 void daemonize(void); 38 void daemonize(void);
39 39
40 int 40 int
1 #include <ctype.h> 1 #include <ctype.h>
2 2
3 -#include "hash.h" 3 +#include "utils/hash.h"
4 4
5 /** 5 /**
6 * SDBM hashing algorithm: 6 * SDBM hashing algorithm:
  1 +#include <stdlib.h>
  2 +
  3 +#include "utils/memory.h"
  4 +
  5 +void
  6 +ffree(void ** data)
  7 +{
  8 + if (NULL != *data) {
  9 + free(*data);
  10 + *data = NULL;
  11 + }
  12 +}
  13 +
  14 +// vim: set ts=4 sw=4:
Please register or login to post a comment