diff --git a/.doc/html/annotated.html b/.doc/html/annotated.html new file mode 100644 index 0000000..13e743c --- /dev/null +++ b/.doc/html/annotated.html @@ -0,0 +1,38 @@ + +
+| tAppConfig | |
| tClient | |
| tHttpHeader | |
| tHttpHeaderLine | |
| tHttpRequest | |
| tRequestLine | |
| tServer |
1.5.8
+
+
diff --git a/.doc/html/appConfig_8h-source.html b/.doc/html/appConfig_8h-source.html
new file mode 100644
index 0000000..bc39763
--- /dev/null
+++ b/.doc/html/appConfig_8h-source.html
@@ -0,0 +1,56 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/appConfig_8h.html b/.doc/html/appConfig_8h.html
new file mode 100644
index 0000000..6b62bd8
--- /dev/null
+++ b/.doc/html/appConfig_8h.html
@@ -0,0 +1,248 @@
+
+
++Go to the source code of this file.
Data Structures | |
| struct | tAppConfig |
Defines | |
| #define | MAXPENDING 10 |
| #define | MAXCLIENTS 1000 |
| #define | READBUFSIZE 2048 |
| #define | DEFAULTPORT 8801 |
| #define | DEFAULTPATH "logfiles" |
| #define | LOGNAMEPATTERN "log-%Y-%m-%d_%Hh" |
| #define | MAX(x, y) ((x) > (y) ? (x) : (y)) |
| #define | MIN(x, y) ((x) < (y) ? (x) : (y)) |
Functions | |
| int | handleCmdLine (tAppConfig *config, int argc, char *argv[]) |
| #define DEFAULTPATH "logfiles" | +
+ +
Definition at line 8 of file appConfig.h.
+ +| #define DEFAULTPORT 8801 | +
+ +
Definition at line 7 of file appConfig.h.
+ +| #define LOGNAMEPATTERN "log-%Y-%m-%d_%Hh" | +
+ +
Definition at line 9 of file appConfig.h.
+ +| #define MAX | +( | +x, | |||
| + | + | y | ++ | ) | +((x) > (y) ? (x) : (y)) | +
+ +
Definition at line 12 of file appConfig.h.
+ +| #define MAXCLIENTS 1000 | +
+ +
Definition at line 5 of file appConfig.h.
+ +| #define MAXPENDING 10 | +
+ +
Definition at line 4 of file appConfig.h.
+ +| #define MIN | +( | +x, | |||
| + | + | y | ++ | ) | +((x) < (y) ? (x) : (y)) | +
+ +
Definition at line 15 of file appConfig.h.
+ +| #define READBUFSIZE 2048 | +
+ +
Definition at line 6 of file appConfig.h.
+ ++
| int handleCmdLine | +( | +tAppConfig * | +config, | +|
| + | + | int | +argc, | +|
| + | + | char * | +argv[] | + |
| + | ) | ++ |
+ +
Definition at line 10 of file handleCmdLine.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/classes.html b/.doc/html/classes.html
new file mode 100644
index 0000000..dc9e8f6
--- /dev/null
+++ b/.doc/html/classes.html
@@ -0,0 +1,33 @@
+
+
++
| tClient | tHttpHeaderLine | tRequestLine | tServer | |
| tAppConfig | tHttpHeader | tHttpRequest |
+
1.5.8
+
+
diff --git a/.doc/html/clientClose_8c-source.html b/.doc/html/clientClose_8c-source.html
new file mode 100644
index 0000000..3f5c57a
--- /dev/null
+++ b/.doc/html/clientClose_8c-source.html
@@ -0,0 +1,66 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/clientClose_8c.html b/.doc/html/clientClose_8c.html
new file mode 100644
index 0000000..5d49537
--- /dev/null
+++ b/.doc/html/clientClose_8c.html
@@ -0,0 +1,68 @@
+
+
+#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <string.h>#include <expat.h>#include "../../include/client.h"#include "../../include/monitor.h"#include "../../include/httpRequest.h"+Go to the source code of this file.
Functions | |
| void | clientClose (tClient *client) |
| void clientClose | +( | +tClient * | +client | +) | ++ |
+ +
Definition at line 12 of file clientClose.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/clientRead_8c-source.html b/.doc/html/clientRead_8c-source.html
new file mode 100644
index 0000000..eefadd1
--- /dev/null
+++ b/.doc/html/clientRead_8c-source.html
@@ -0,0 +1,219 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/clientRead_8c.html b/.doc/html/clientRead_8c.html
new file mode 100644
index 0000000..940ee4e
--- /dev/null
+++ b/.doc/html/clientRead_8c.html
@@ -0,0 +1,263 @@
+
+
+#include <unistd.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include "../../include/client.h"#include "../../include/monitor.h"+Go to the source code of this file.
Defines | |
| #define | GET_MULTIPLIER(size) (((size) - 1) / READBUFSIZE + 1) |
| #define | EOB(client, addr) ((addr) -(client)->readBuffer >= (client)->readPos) |
| #define | REMAINING(client, addr) ((client)->readPos - ((addr) - (client)->readBuffer)) |
Functions | |
| int | clientRead (tClient *client) |
| char * | clientConsumeLine (tClient *client, const char *delim, unsigned int *len) |
| char * | clientGetLine (tClient *client, const char *delim, unsigned int *len) |
| char * | clientRemoveLine (tClient *client, const char *delim, unsigned int *len) |
| #define EOB | +( | +client, | |||
| + | + | addr | ++ | ) | +((addr) -(client)->readBuffer >= (client)->readPos) | +
+ +
Definition at line 100 of file clientRead.c.
+ +| #define GET_MULTIPLIER | +( | +size | ++ | ) | +(((size) - 1) / READBUFSIZE + 1) | +
+ +
Definition at line 9 of file clientRead.c.
+ +| #define REMAINING | +( | +client, | |||
| + | + | addr | ++ | ) | +((client)->readPos - ((addr) - (client)->readBuffer)) | +
+ +
Definition at line 101 of file clientRead.c.
+ ++
| char* clientConsumeLine | +( | +tClient * | +client, | +|
| + | + | const char * | +delim, | +|
| + | + | unsigned int * | +len | + |
| + | ) | ++ |
+ +
Definition at line 133 of file clientRead.c.
+ +| char* clientGetLine | +( | +tClient * | +client, | +|
| + | + | const char * | +delim, | +|
| + | + | unsigned int * | +len | + |
| + | ) | ++ |
+ +
Definition at line 151 of file clientRead.c.
+ +| int clientRead | +( | +tClient * | +client | +) | ++ |
+ +
Definition at line 53 of file clientRead.c.
+ +| char* clientRemoveLine | +( | +tClient * | +client, | +|
| + | + | const char * | +delim, | +|
| + | + | unsigned int * | +len | + |
| + | ) | ++ |
+ +
Definition at line 164 of file clientRead.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/client_8h-source.html b/.doc/html/client_8h-source.html
new file mode 100644
index 0000000..0db4b70
--- /dev/null
+++ b/.doc/html/client_8h-source.html
@@ -0,0 +1,67 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/client_8h.html b/.doc/html/client_8h.html
new file mode 100644
index 0000000..ee99150
--- /dev/null
+++ b/.doc/html/client_8h.html
@@ -0,0 +1,287 @@
+
+
+#include <stdio.h>#include <expat.h>#include "httpRequest.h"+Go to the source code of this file.
Data Structures | |
| struct | tClient |
Defines | |
| #define | READBUFSIZE 2048 |
| #define | CLIENTMULTMAX 512U |
| #define | READ_ERR_LONGLINE -2 |
| #define | READ_ERR_MEMORY -3 |
Functions | |
| void | clientClose (tClient *client) |
| int | clientRead (tClient *client) |
| int | clientWrite (tClient *client) |
| char * | clientGetLine (tClient *, const char *, unsigned int *) |
| char * | clientRemoveLine (tClient *, const char *, unsigned int *) |
Variables | |
| int | verbose |
+
| void clientClose | +( | +tClient * | +client | +) | ++ |
+ +
Definition at line 12 of file clientClose.c.
+ +| char* clientGetLine | +( | +tClient * | +, | +|
| + | + | const char * | +, | +|
| + | + | unsigned int * | ++ | |
| + | ) | ++ |
+ +
Definition at line 151 of file clientRead.c.
+ +| int clientRead | +( | +tClient * | +client | +) | ++ |
+ +
Definition at line 53 of file clientRead.c.
+ +| char* clientRemoveLine | +( | +tClient * | +, | +|
| + | + | const char * | +, | +|
| + | + | unsigned int * | ++ | |
| + | ) | ++ |
+ +
Definition at line 164 of file clientRead.c.
+ +| int clientWrite | +( | +tClient * | +client | +) | ++ |
+ +
+
| int verbose | +
+ +
+
1.5.8
+
+
diff --git a/.doc/html/daemonize_8c-source.html b/.doc/html/daemonize_8c-source.html
new file mode 100644
index 0000000..6b6af5a
--- /dev/null
+++ b/.doc/html/daemonize_8c-source.html
@@ -0,0 +1,50 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/daemonize_8c.html b/.doc/html/daemonize_8c.html
new file mode 100644
index 0000000..38520bb
--- /dev/null
+++ b/.doc/html/daemonize_8c.html
@@ -0,0 +1,63 @@
+
+
+#include <stdio.h>#include <unistd.h>#include <stdlib.h>+Go to the source code of this file.
Functions | |
| void | daemonize (void) |
| void daemonize | +( | +void | ++ | ) | ++ |
+ +
Definition at line 6 of file daemonize.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/daemonize_8h-source.html b/.doc/html/daemonize_8h-source.html
new file mode 100644
index 0000000..585fb2b
--- /dev/null
+++ b/.doc/html/daemonize_8h-source.html
@@ -0,0 +1,33 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/daemonize_8h.html b/.doc/html/daemonize_8h.html
new file mode 100644
index 0000000..7bb8c50
--- /dev/null
+++ b/.doc/html/daemonize_8h.html
@@ -0,0 +1,60 @@
+
+
++Go to the source code of this file.
Functions | |
| void | daemonize (void) |
| void daemonize | +( | +void | ++ | ) | ++ |
+ +
Definition at line 6 of file daemonize.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/doxygen.css b/.doc/html/doxygen.css
new file mode 100644
index 0000000..3767dc9
--- /dev/null
+++ b/.doc/html/doxygen.css
@@ -0,0 +1,441 @@
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+ text-align: center;
+ font-size: 150%;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ font-size: 100%;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+div.qindex, div.navtab{
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #153788;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #1b77c5;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #6666cc;
+ color: #ffffff;
+ border: 1px double #9295C2;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+}
+
+a.codeRef {
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+.fragment {
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+pre.fragment {
+ border: 1px solid #CCCCCC;
+ background-color: #f5f5f5;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background: white;
+ color: black;
+ margin-right: 20px;
+ margin-left: 20px;
+}
+
+td.indexkey {
+ background-color: #e8eef2;
+ font-weight: bold;
+ border: 1px solid #CCCCCC;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+}
+
+td.indexvalue {
+ background-color: #e8eef2;
+ border: 1px solid #CCCCCC;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #f0f0f0;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+/* @end */
+
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #84b0c7;
+}
+
+th.dirtab {
+ background: #e8eef2;
+ font-weight: bold;
+}
+
+hr {
+ height: 0;
+ border: none;
+ border-top: 1px solid #666;
+}
+
+/* @group Member Descriptions */
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #FAFAFA;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #ccc;
+}
+
+.memTemplParams {
+ color: #606060;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #606060;
+ font-weight: normal;
+ margin-left: 3px;
+}
+
+.memnav {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.memitem {
+ padding: 0;
+}
+
+.memname {
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+.memproto, .memdoc {
+ border: 1px solid #84b0c7;
+}
+
+.memproto {
+ padding: 0;
+ background-color: #d5e1e8;
+ font-weight: bold;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ -moz-border-radius-topleft: 8px;
+ -moz-border-radius-topright: 8px;
+}
+
+.memdoc {
+ padding: 2px 5px;
+ background-color: #eef3f5;
+ border-top-width: 0;
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+ -moz-border-radius-bottomleft: 8px;
+ -moz-border-radius-bottomright: 8px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+ font-family: sans-serif;
+ margin: 0.5em;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+ font-size: 9pt;
+ font-weight: bold;
+}
+
+.directory h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice. Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+ height: 61px;
+ background-repeat: no-repeat;
+ background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+ display: none;
+}
+*/
+
+.directory > h3 {
+ margin-top: 0;
+}
+
+.directory p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory div {
+ display: none;
+ margin: 0px;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+ font-size: 100%;
+ font-weight: bold;
+}
+
+.directory-alt h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory-alt > h3 {
+ margin-top: 0;
+}
+
+.directory-alt p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory-alt div {
+ display: none;
+ margin: 0px;
+}
+
+.directory-alt img {
+ vertical-align: -30%;
+}
+
+/* @end */
+
+address {
+ font-style: normal;
+ color: #333;
+}
diff --git a/.doc/html/doxygen.png b/.doc/html/doxygen.png
new file mode 100644
index 0000000..f0a274b
Binary files /dev/null and b/.doc/html/doxygen.png differ
diff --git a/.doc/html/files.html b/.doc/html/files.html
new file mode 100644
index 0000000..c83c98d
--- /dev/null
+++ b/.doc/html/files.html
@@ -0,0 +1,54 @@
+
+
+| include/appConfig.h [code] | |
| include/client.h [code] | |
| include/daemonize.h [code] | |
| include/httpRequest.h [code] | |
| include/logRotate.h [code] | |
| include/monitor.h [code] | |
| include/server.h [code] | |
| include/signalHandling.h [code] | |
| include/socket.h [code] | |
| include/writeBuffer.h [code] | |
| reader/commonReader/clientClose.c [code] | |
| reader/commonReader/clientRead.c [code] | |
| reader/commonReader/writeBuffer.c [code] | |
| reader/httpReader/httpRequest.c [code] | |
| server/serverInit.c [code] | |
| server/serverRun.c [code] | |
| server/serverShutdown.c [code] | |
| system/daemonize.c [code] | |
| system/handleCmdLine.c [code] | |
| system/logRotate.c [code] | |
| system/monitor.c [code] | |
| system/signalHandling.c [code] | |
| system/socket.c [code] |
1.5.8
+
+
diff --git a/.doc/html/ftv2blank.png b/.doc/html/ftv2blank.png
new file mode 100644
index 0000000..493c3c0
Binary files /dev/null and b/.doc/html/ftv2blank.png differ
diff --git a/.doc/html/ftv2doc.png b/.doc/html/ftv2doc.png
new file mode 100644
index 0000000..f72999f
Binary files /dev/null and b/.doc/html/ftv2doc.png differ
diff --git a/.doc/html/ftv2folderclosed.png b/.doc/html/ftv2folderclosed.png
new file mode 100644
index 0000000..d6d0634
Binary files /dev/null and b/.doc/html/ftv2folderclosed.png differ
diff --git a/.doc/html/ftv2folderopen.png b/.doc/html/ftv2folderopen.png
new file mode 100644
index 0000000..bbe2c91
Binary files /dev/null and b/.doc/html/ftv2folderopen.png differ
diff --git a/.doc/html/ftv2lastnode.png b/.doc/html/ftv2lastnode.png
new file mode 100644
index 0000000..e7b9ba9
Binary files /dev/null and b/.doc/html/ftv2lastnode.png differ
diff --git a/.doc/html/ftv2link.png b/.doc/html/ftv2link.png
new file mode 100644
index 0000000..14f3fed
Binary files /dev/null and b/.doc/html/ftv2link.png differ
diff --git a/.doc/html/ftv2mlastnode.png b/.doc/html/ftv2mlastnode.png
new file mode 100644
index 0000000..09ceb6a
Binary files /dev/null and b/.doc/html/ftv2mlastnode.png differ
diff --git a/.doc/html/ftv2mnode.png b/.doc/html/ftv2mnode.png
new file mode 100644
index 0000000..3254c05
Binary files /dev/null and b/.doc/html/ftv2mnode.png differ
diff --git a/.doc/html/ftv2node.png b/.doc/html/ftv2node.png
new file mode 100644
index 0000000..c9f06a5
Binary files /dev/null and b/.doc/html/ftv2node.png differ
diff --git a/.doc/html/ftv2plastnode.png b/.doc/html/ftv2plastnode.png
new file mode 100644
index 0000000..0b07e00
Binary files /dev/null and b/.doc/html/ftv2plastnode.png differ
diff --git a/.doc/html/ftv2pnode.png b/.doc/html/ftv2pnode.png
new file mode 100644
index 0000000..2001b79
Binary files /dev/null and b/.doc/html/ftv2pnode.png differ
diff --git a/.doc/html/ftv2vertline.png b/.doc/html/ftv2vertline.png
new file mode 100644
index 0000000..b330f3a
Binary files /dev/null and b/.doc/html/ftv2vertline.png differ
diff --git a/.doc/html/functions.html b/.doc/html/functions.html
new file mode 100644
index 0000000..0eb6d1b
--- /dev/null
+++ b/.doc/html/functions.html
@@ -0,0 +1,148 @@
+
+
++
1.5.8
+
+
diff --git a/.doc/html/functions_vars.html b/.doc/html/functions_vars.html
new file mode 100644
index 0000000..e2d3029
--- /dev/null
+++ b/.doc/html/functions_vars.html
@@ -0,0 +1,148 @@
+
+
++
1.5.8
+
+
diff --git a/.doc/html/globals.html b/.doc/html/globals.html
new file mode 100644
index 0000000..c47d7e8
--- /dev/null
+++ b/.doc/html/globals.html
@@ -0,0 +1,247 @@
+
+
++
1.5.8
+
+
diff --git a/.doc/html/globals_defs.html b/.doc/html/globals_defs.html
new file mode 100644
index 0000000..5d01819
--- /dev/null
+++ b/.doc/html/globals_defs.html
@@ -0,0 +1,133 @@
+
+
++
1.5.8
+
+
diff --git a/.doc/html/globals_func.html b/.doc/html/globals_func.html
new file mode 100644
index 0000000..0aca2bd
--- /dev/null
+++ b/.doc/html/globals_func.html
@@ -0,0 +1,164 @@
+
+
++
1.5.8
+
+
diff --git a/.doc/html/globals_vars.html b/.doc/html/globals_vars.html
new file mode 100644
index 0000000..2c1a057
--- /dev/null
+++ b/.doc/html/globals_vars.html
@@ -0,0 +1,55 @@
+
+
++
1.5.8
+
+
diff --git a/.doc/html/handleCmdLine_8c-source.html b/.doc/html/handleCmdLine_8c-source.html
new file mode 100644
index 0000000..d45aaab
--- /dev/null
+++ b/.doc/html/handleCmdLine_8c-source.html
@@ -0,0 +1,97 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/handleCmdLine_8c.html b/.doc/html/handleCmdLine_8c.html
new file mode 100644
index 0000000..69e9ac7
--- /dev/null
+++ b/.doc/html/handleCmdLine_8c.html
@@ -0,0 +1,80 @@
+
+
+#include <unistd.h>#include <stdlib.h>#include <string.h>#include <stdio.h>#include "../include/appConfig.h"+Go to the source code of this file.
Functions | |
| int | handleCmdLine (tAppConfig *config, int argc, char *argv[]) |
| int handleCmdLine | +( | +tAppConfig * | +config, | +|
| + | + | int | +argc, | +|
| + | + | char * | +argv[] | + |
| + | ) | ++ |
+ +
Definition at line 10 of file handleCmdLine.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/httpRequest_8c-source.html b/.doc/html/httpRequest_8c-source.html
new file mode 100644
index 0000000..30e723a
--- /dev/null
+++ b/.doc/html/httpRequest_8c-source.html
@@ -0,0 +1,282 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/httpRequest_8c.html b/.doc/html/httpRequest_8c.html
new file mode 100644
index 0000000..5795992
--- /dev/null
+++ b/.doc/html/httpRequest_8c.html
@@ -0,0 +1,347 @@
+
+
+#include <string.h>#include <stdlib.h>#include <stdio.h>#include <ctype.h>#include "../../include/appConfig.h"#include "../../include/httpRequest.h"#include "../../include/client.h"+Go to the source code of this file.
Defines | |
| #define | SPACE 0x20 |
Functions | |
| int | httpHeaderGetLine (tHttpHeader *header, char **buffer, unsigned int *readPos) |
| void | httpHeaderParseRequestLine (tHttpHeader *header, const char *line, unsigned int len) |
| int | httpHeaderIsComplete (tHttpHeader *header) |
| unsigned char | httpHeaderIsStarted (tHttpHeader *header) |
| int | httpHeaderGet (char **buffer, unsigned int *readPos, tHttpHeader *request) |
| int | getHttpRequest (char **buffer, unsigned int *readPos, tHttpRequest *request) |
| void | freeHttpHeader (tHttpHeader *header) |
| void | freeHttpRequest (tHttpRequest *request) |
Variables | |
| char | httpRequest [8][8] |
| #define SPACE 0x20 | +
+ +
Definition at line 10 of file httpRequest.c.
+ ++
| void freeHttpHeader | +( | +tHttpHeader * | +header | +) | ++ |
+ +
Definition at line 187 of file httpRequest.c.
+ +| void freeHttpRequest | +( | +tHttpRequest * | +request | +) | ++ |
+ +
Definition at line 217 of file httpRequest.c.
+ +| int getHttpRequest | +( | +char ** | +buffer, | +|
| + | + | unsigned int * | +readPos, | +|
| + | + | tHttpRequest * | +request | + |
| + | ) | ++ |
+ +
Definition at line 162 of file httpRequest.c.
+ +| int httpHeaderGet | +( | +char ** | +buffer, | +|
| + | + | unsigned int * | +readPos, | +|
| + | + | tHttpHeader * | +request | + |
| + | ) | ++ |
+ +
Definition at line 85 of file httpRequest.c.
+ +| int httpHeaderGetLine | +( | +tHttpHeader * | +header, | +|
| + | + | char ** | +buffer, | +|
| + | + | unsigned int * | +readPos | + |
| + | ) | ++ |
+ +
Definition at line 41 of file httpRequest.c.
+ +| int httpHeaderIsComplete | +( | +tHttpHeader * | +header | +) | ++ |
+ +
Definition at line 52 of file httpRequest.c.
+ +| unsigned char httpHeaderIsStarted | +( | +tHttpHeader * | +header | +) | ++ |
+ +
Definition at line 62 of file httpRequest.c.
+ +| void httpHeaderParseRequestLine | +( | +tHttpHeader * | +header, | +|
| + | + | const char * | +line, | +|
| + | + | unsigned int | +len | + |
| + | ) | ++ |
+ +
Definition at line 47 of file httpRequest.c.
+ ++
| char httpRequest[8][8] | +
+Initial value:
{
+ "OPTIONS",
+ "GET",
+ "HEAD",
+ "POST",
+ "PUT",
+ "DELETE",
+ "TRACE",
+ "CONNECT"
+}
+Definition at line 13 of file httpRequest.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/httpRequest_8h-source.html b/.doc/html/httpRequest_8h-source.html
new file mode 100644
index 0000000..8a22fd3
--- /dev/null
+++ b/.doc/html/httpRequest_8h-source.html
@@ -0,0 +1,77 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/httpRequest_8h.html b/.doc/html/httpRequest_8h.html
new file mode 100644
index 0000000..c34b6c6
--- /dev/null
+++ b/.doc/html/httpRequest_8h.html
@@ -0,0 +1,433 @@
+
+
++Go to the source code of this file.
Data Structures | |
| struct | tRequestLine |
| struct | tHttpHeaderLine |
| struct | tHttpHeader |
| struct | tHttpRequest |
Defines | |
| #define | HTTP_REQ_OPTIONS 0 |
| #define | HTTP_REQ_GET 1 |
| #define | HTTP_REQ_HEAD 2 |
| #define | HTTP_REQ_POST 3 |
| #define | HTTP_REQ_PUT 4 |
| #define | HTTP_REQ_DELETE 5 |
| #define | HTTP_REQ_TRACE 6 |
| #define | HTTP_REQ_CONNECT 7 |
Functions | |
| int | getHttpRequest (char **, unsigned int *, tHttpRequest *) |
| void | freeHttpRequest (tHttpRequest *) |
| void | freeHttpHeader (tHttpHeader *) |
| unsigned char | httpHeaderIsStarted (tHttpHeader *) |
| int | httpHeaderIsComplete (tHttpHeader *) |
| int | httpHeaderGet (char **, unsigned int *, tHttpHeader *) |
| void | httpHeaderParseRequestLine (tHttpHeader *, const char *, unsigned int) |
Variables | |
| char | httpRequest [8][8] |
| #define HTTP_REQ_CONNECT 7 | +
+ +
Definition at line 11 of file httpRequest.h.
+ +| #define HTTP_REQ_DELETE 5 | +
+ +
Definition at line 9 of file httpRequest.h.
+ +| #define HTTP_REQ_GET 1 | +
+ +
Definition at line 5 of file httpRequest.h.
+ +| #define HTTP_REQ_HEAD 2 | +
+ +
Definition at line 6 of file httpRequest.h.
+ +| #define HTTP_REQ_OPTIONS 0 | +
+ +
Definition at line 4 of file httpRequest.h.
+ +| #define HTTP_REQ_POST 3 | +
+ +
Definition at line 7 of file httpRequest.h.
+ +| #define HTTP_REQ_PUT 4 | +
+ +
Definition at line 8 of file httpRequest.h.
+ +| #define HTTP_REQ_TRACE 6 | +
+ +
Definition at line 10 of file httpRequest.h.
+ ++
| void freeHttpHeader | +( | +tHttpHeader * | ++ | ) | ++ |
+ +
Definition at line 187 of file httpRequest.c.
+ +| void freeHttpRequest | +( | +tHttpRequest * | ++ | ) | ++ |
+ +
Definition at line 217 of file httpRequest.c.
+ +| int getHttpRequest | +( | +char ** | +, | +|
| + | + | unsigned int * | +, | +|
| + | + | tHttpRequest * | ++ | |
| + | ) | ++ |
+ +
Definition at line 162 of file httpRequest.c.
+ +| int httpHeaderGet | +( | +char ** | +, | +|
| + | + | unsigned int * | +, | +|
| + | + | tHttpHeader * | ++ | |
| + | ) | ++ |
+ +
Definition at line 85 of file httpRequest.c.
+ +| int httpHeaderIsComplete | +( | +tHttpHeader * | ++ | ) | ++ |
+ +
Definition at line 52 of file httpRequest.c.
+ +| unsigned char httpHeaderIsStarted | +( | +tHttpHeader * | ++ | ) | ++ |
+ +
Definition at line 62 of file httpRequest.c.
+ +| void httpHeaderParseRequestLine | +( | +tHttpHeader * | +, | +|
| + | + | const char * | +, | +|
| + | + | unsigned | +int | + |
| + | ) | ++ |
+ +
Definition at line 47 of file httpRequest.c.
+ ++
| char httpRequest[8][8] | +
+ +
Definition at line 13 of file httpRequest.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/index.html b/.doc/html/index.html
new file mode 100644
index 0000000..94cf50f
--- /dev/null
+++ b/.doc/html/index.html
@@ -0,0 +1,11 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/logRotate_8c.html b/.doc/html/logRotate_8c.html
new file mode 100644
index 0000000..ea51ff0
--- /dev/null
+++ b/.doc/html/logRotate_8c.html
@@ -0,0 +1,105 @@
+
+
+#include <sys/select.h>#include <time.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <syslog.h>#include <errno.h>#include "../include/monitor.h"+Go to the source code of this file.
Functions | |
| void | logRotate (FILE **handle, char *path, char *pattern) |
Variables | |
| int | verbose |
| void logRotate | +( | +FILE ** | +handle, | +|
| + | + | char * | +path, | +|
| + | + | char * | +pattern | + |
| + | ) | ++ |
+ +
Definition at line 17 of file logRotate.c.
+ ++
| int verbose | +
+ +
+
1.5.8
+
+
diff --git a/.doc/html/logRotate_8h-source.html b/.doc/html/logRotate_8h-source.html
new file mode 100644
index 0000000..abd2816
--- /dev/null
+++ b/.doc/html/logRotate_8h-source.html
@@ -0,0 +1,33 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/logRotate_8h.html b/.doc/html/logRotate_8h.html
new file mode 100644
index 0000000..ffdd3de
--- /dev/null
+++ b/.doc/html/logRotate_8h.html
@@ -0,0 +1,75 @@
+
+
++Go to the source code of this file.
Functions | |
| void | logRotate (FILE **handle, char *logPath, char *logNamePattern) |
| void logRotate | +( | +FILE ** | +handle, | +|
| + | + | char * | +logPath, | +|
| + | + | char * | +logNamePattern | + |
| + | ) | ++ |
+ +
Definition at line 17 of file logRotate.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/main.html b/.doc/html/main.html
new file mode 100644
index 0000000..2461a0e
--- /dev/null
+++ b/.doc/html/main.html
@@ -0,0 +1,25 @@
+
+
++
1.5.8
+
+
diff --git a/.doc/html/monitor_8c-source.html b/.doc/html/monitor_8c-source.html
new file mode 100644
index 0000000..b474244
--- /dev/null
+++ b/.doc/html/monitor_8c-source.html
@@ -0,0 +1,114 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/monitor_8c.html b/.doc/html/monitor_8c.html
new file mode 100644
index 0000000..a95d9a0
--- /dev/null
+++ b/.doc/html/monitor_8c.html
@@ -0,0 +1,221 @@
+
+
+#include <stdlib.h>#include <sys/wait.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <signal.h>#include <stdarg.h>#include "../include/signalHandling.h"#include "../include/monitor.h"+Go to the source code of this file.
Defines | |
| #define | MONITORCMD "/usr/bin/monitor" |
| #define | MONITORTYPE "test" |
| #define | MONITORNAME "virtualitemlogreceiver" |
Functions | |
| int | monitor (unsigned int sev, const char *pattern, const char *message) |
| int | syslogMonitor (unsigned int logLvl, unsigned int sev, const char *pattern, const char *message,...) |
Variables | |
| const char | severity [][10] |
| #define MONITORCMD "/usr/bin/monitor" | +
| #define MONITORNAME "virtualitemlogreceiver" | +
+
| int monitor | +( | +unsigned int | +sev, | +|
| + | + | const char * | +pattern, | +|
| + | + | const char * | +message | + |
| + | ) | ++ |
| int syslogMonitor | +( | +unsigned int | +logLvl, | +|
| + | + | unsigned int | +sev, | +|
| + | + | const char * | +pattern, | +|
| + | + | const char * | +message, | +|
| + | + | + | ... | + |
| + | ) | ++ |
+
| const char severity[][10] | +
+
1.5.8
+
+
diff --git a/.doc/html/monitor_8h-source.html b/.doc/html/monitor_8h-source.html
new file mode 100644
index 0000000..e11e822
--- /dev/null
+++ b/.doc/html/monitor_8h-source.html
@@ -0,0 +1,41 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/monitor_8h.html b/.doc/html/monitor_8h.html
new file mode 100644
index 0000000..234d2cc
--- /dev/null
+++ b/.doc/html/monitor_8h.html
@@ -0,0 +1,203 @@
+
+
+#include <syslog.h>+Go to the source code of this file.
Defines | |
| #define | MON_INFO 0 |
| #define | MON_WARNING 1 |
| #define | MON_CRITICAL 2 |
| #define | MON_FAILURE 3 |
Functions | |
| int | monitor (unsigned int sev, const char *pattern, const char *message) |
| int | syslogMonitor (unsigned int logLvl, unsigned int sev, const char *pattern, const char *message,...) __attribute__((format(printf |
+
| int monitor | +( | +unsigned int | +sev, | +|
| + | + | const char * | +pattern, | +|
| + | + | const char * | +message | + |
| + | ) | ++ |
| int syslogMonitor | +( | +unsigned int | +logLvl, | +|
| + | + | unsigned int | +sev, | +|
| + | + | const char * | +pattern, | +|
| + | + | const char * | +message, | +|
| + | + | + | ... | + |
| + | ) | ++ |
+ +
+
1.5.8
+
+
diff --git a/.doc/html/serverInit_8c-source.html b/.doc/html/serverInit_8c-source.html
new file mode 100644
index 0000000..5c2664b
--- /dev/null
+++ b/.doc/html/serverInit_8c-source.html
@@ -0,0 +1,67 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/serverInit_8c.html b/.doc/html/serverInit_8c.html
new file mode 100644
index 0000000..ace0bc7
--- /dev/null
+++ b/.doc/html/serverInit_8c.html
@@ -0,0 +1,94 @@
+
+
+#include <sys/select.h>#include <string.h>#include <stdlib.h>#include "../include/server.h"#include "../include/socket.h"#include "../include/monitor.h"#include "../include/logRotate.h"+Go to the source code of this file.
Functions | |
| void | serverInit (tServer *server, unsigned int port, unsigned int pending, const char *logPath, const char *namePat) |
| void serverInit | +( | +tServer * | +server, | +|
| + | + | unsigned int | +port, | +|
| + | + | unsigned int | +pending, | +|
| + | + | const char * | +logPath, | +|
| + | + | const char * | +namePat | + |
| + | ) | ++ |
+ +
Definition at line 11 of file serverInit.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/serverRun_8c-source.html b/.doc/html/serverRun_8c-source.html
new file mode 100644
index 0000000..4f30160
--- /dev/null
+++ b/.doc/html/serverRun_8c-source.html
@@ -0,0 +1,265 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/serverRun_8c.html b/.doc/html/serverRun_8c.html
new file mode 100644
index 0000000..c503ab7
--- /dev/null
+++ b/.doc/html/serverRun_8c.html
@@ -0,0 +1,188 @@
+
+
+#include <sys/select.h>#include <string.h>#include <stdlib.h>#include <errno.h>#include <unistd.h>#include <expat.h>#include "../include/appConfig.h"#include "../include/server.h"#include "../include/client.h"#include "../include/socket.h"#include "../include/monitor.h"#include "../include/logRotate.h"#include "../include/signalHandling.h"#include "../include/httpRequest.h"+Go to the source code of this file.
Defines | |
| #define | RESPONSE " 200 OK\r\nServer: xmlrpc\r\nStatus: 200\r\nContent-Length: 10\r\nContent-Type: text/plain\r\n\r\n0123456789" |
Functions | |
| void XMLCALL | start (void *data, const char *el, const char **attr) |
| void XMLCALL | end (void *data, const char *el) |
| void | serverRun (tServer *server) |
Variables | |
| int | Depth |
| #define RESPONSE " 200 OK\r\nServer: xmlrpc\r\nStatus: 200\r\nContent-Length: 10\r\nContent-Type: text/plain\r\n\r\n0123456789" | +
+ +
Definition at line 18 of file serverRun.c.
+ ++
| void XMLCALL end | +( | +void * | +data, | +|
| + | + | const char * | +el | + |
| + | ) | ++ |
+ +
Definition at line 40 of file serverRun.c.
+ +| void serverRun | +( | +tServer * | +server | +) | ++ |
+ +
Definition at line 50 of file serverRun.c.
+ +| void XMLCALL start | +( | +void * | +data, | +|
| + | + | const char * | +el, | +|
| + | + | const char ** | +attr | + |
| + | ) | ++ |
+ +
Definition at line 23 of file serverRun.c.
+ ++
| int Depth | +
+ +
Definition at line 20 of file serverRun.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/serverShutdown_8c-source.html b/.doc/html/serverShutdown_8c-source.html
new file mode 100644
index 0000000..d8fd8c6
--- /dev/null
+++ b/.doc/html/serverShutdown_8c-source.html
@@ -0,0 +1,62 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/serverShutdown_8c.html b/.doc/html/serverShutdown_8c.html
new file mode 100644
index 0000000..d744d04
--- /dev/null
+++ b/.doc/html/serverShutdown_8c.html
@@ -0,0 +1,70 @@
+
+
+#include <stdio.h>#include <sys/select.h>#include <sys/socket.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#include "../include/server.h"#include "../include/monitor.h"#include "../include/writeBuffer.h"+Go to the source code of this file.
Functions | |
| void | serverShutdown (tServer *server) |
| void serverShutdown | +( | +tServer * | +server | +) | ++ |
+ +
Definition at line 15 of file serverShutdown.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/server_8h-source.html b/.doc/html/server_8h-source.html
new file mode 100644
index 0000000..2b0089f
--- /dev/null
+++ b/.doc/html/server_8h-source.html
@@ -0,0 +1,56 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/server_8h.html b/.doc/html/server_8h.html
new file mode 100644
index 0000000..8c22885
--- /dev/null
+++ b/.doc/html/server_8h.html
@@ -0,0 +1,141 @@
+
+
+#include <stdio.h>#include <sys/select.h>#include "client.h"+Go to the source code of this file.
Data Structures | |
| struct | tServer |
Functions | |
| void | serverShutdown (tServer *server) |
| void | serverInit (tServer *server, unsigned int port, unsigned int pending, const char *logPath, const char *namePat) |
| void | serverRun (tServer *server) |
| void serverInit | +( | +tServer * | +server, | +|
| + | + | unsigned int | +port, | +|
| + | + | unsigned int | +pending, | +|
| + | + | const char * | +logPath, | +|
| + | + | const char * | +namePat | + |
| + | ) | ++ |
+ +
Definition at line 11 of file serverInit.c.
+ +| void serverRun | +( | +tServer * | +server | +) | ++ |
+ +
Definition at line 50 of file serverRun.c.
+ +| void serverShutdown | +( | +tServer * | +server | +) | ++ |
+ +
Definition at line 15 of file serverShutdown.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/signalHandling_8c-source.html b/.doc/html/signalHandling_8c-source.html
new file mode 100644
index 0000000..39501d6
--- /dev/null
+++ b/.doc/html/signalHandling_8c-source.html
@@ -0,0 +1,53 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/signalHandling_8c.html b/.doc/html/signalHandling_8c.html
new file mode 100644
index 0000000..731b7e9
--- /dev/null
+++ b/.doc/html/signalHandling_8c.html
@@ -0,0 +1,107 @@
+
+
+#include <signal.h>#include "../include/monitor.h"+Go to the source code of this file.
Functions | |
| void | terminate (int signum) |
| void | init_signals (void) |
Variables | |
| volatile int | doShutdown |
| void init_signals | +( | +void | ++ | ) | ++ |
+ +
Definition at line 15 of file signalHandling.c.
+ +| void terminate | +( | +int | +signum | +) | ++ |
+ +
Definition at line 7 of file signalHandling.c.
+ ++
| volatile int doShutdown | +
+ +
Definition at line 5 of file signalHandling.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/signalHandling_8h-source.html b/.doc/html/signalHandling_8h-source.html
new file mode 100644
index 0000000..0201d81
--- /dev/null
+++ b/.doc/html/signalHandling_8h-source.html
@@ -0,0 +1,37 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/signalHandling_8h.html b/.doc/html/signalHandling_8h.html
new file mode 100644
index 0000000..de41f93
--- /dev/null
+++ b/.doc/html/signalHandling_8h.html
@@ -0,0 +1,105 @@
+
+
++Go to the source code of this file.
Functions | |
| void | terminate (int signum) |
| void | init_signals (void) |
Variables | |
| volatile int | doShutdown |
| void init_signals | +( | +void | ++ | ) | ++ |
+ +
Definition at line 15 of file signalHandling.c.
+ +| void terminate | +( | +int | +signum | +) | ++ |
+ +
Definition at line 7 of file signalHandling.c.
+ ++
| volatile int doShutdown | +
+ +
Definition at line 5 of file signalHandling.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/socket_8c-source.html b/.doc/html/socket_8c-source.html
new file mode 100644
index 0000000..ff038d9
--- /dev/null
+++ b/.doc/html/socket_8c-source.html
@@ -0,0 +1,102 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/socket_8c.html b/.doc/html/socket_8c.html
new file mode 100644
index 0000000..b08529a
--- /dev/null
+++ b/.doc/html/socket_8c.html
@@ -0,0 +1,130 @@
+
+
+#include <stdio.h>#include <sys/socket.h>#include <arpa/inet.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <syslog.h>#include "../include/monitor.h"+Go to the source code of this file.
Functions | |
| int | initServerSocket (in_port_t port, int backlog) |
| int | acceptConnection (int servSock, char remoteAddr[16]) |
Variables | |
| int | verbose |
| int acceptConnection | +( | +int | +servSock, | +|
| + | + | char | +remoteAddr[16] | + |
| + | ) | ++ |
| int initServerSocket | +( | +in_port_t | +port, | +|
| + | + | int | +backlog | + |
| + | ) | ++ |
+
| int verbose | +
+ +
+
1.5.8
+
+
diff --git a/.doc/html/socket_8h-source.html b/.doc/html/socket_8h-source.html
new file mode 100644
index 0000000..d93eccb
--- /dev/null
+++ b/.doc/html/socket_8h-source.html
@@ -0,0 +1,36 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/socket_8h.html b/.doc/html/socket_8h.html
new file mode 100644
index 0000000..0abfed9
--- /dev/null
+++ b/.doc/html/socket_8h.html
@@ -0,0 +1,103 @@
+
+
+#include <arpa/inet.h>+Go to the source code of this file.
Functions | |
| int | initServerSocket (in_port_t port, int backlog) |
| int | acceptConnection (int servSock, char remoteAddr[16]) |
| int acceptConnection | +( | +int | +servSock, | +|
| + | + | char | +remoteAddr[16] | + |
| + | ) | ++ |
| int initServerSocket | +( | +in_port_t | +port, | +|
| + | + | int | +backlog | + |
| + | ) | ++ |
+
1.5.8
+
+
diff --git a/.doc/html/structtAppConfig.html b/.doc/html/structtAppConfig.html
new file mode 100644
index 0000000..4e542d2
--- /dev/null
+++ b/.doc/html/structtAppConfig.html
@@ -0,0 +1,155 @@
+
+
+#include <appConfig.h>
++
Data Fields | |
| unsigned char | verbose |
| unsigned char | doDaemon |
| unsigned int | maxPending |
| unsigned int | port |
| char | logPath [513] |
| char | namePat [513] |
Definition at line 17 of file appConfig.h.
+| unsigned char tAppConfig::doDaemon | +
+ +
Definition at line 19 of file appConfig.h.
+ +| char tAppConfig::logPath[513] | +
+ +
Definition at line 22 of file appConfig.h.
+ +| unsigned int tAppConfig::maxPending | +
+ +
Definition at line 20 of file appConfig.h.
+ +| char tAppConfig::namePat[513] | +
+ +
Definition at line 23 of file appConfig.h.
+ +| unsigned int tAppConfig::port | +
+ +
Definition at line 21 of file appConfig.h.
+ +| unsigned char tAppConfig::verbose | +
+ +
Definition at line 18 of file appConfig.h.
+ ++
1.5.8
+
+
diff --git a/.doc/html/structtClient.html b/.doc/html/structtClient.html
new file mode 100644
index 0000000..c558d91
--- /dev/null
+++ b/.doc/html/structtClient.html
@@ -0,0 +1,231 @@
+
+
+#include <client.h>
++
Data Fields | |
| int | socket |
| char * | readBuffer |
| char * | writeBuffer |
| unsigned int | readPos |
| unsigned int | writePos |
| unsigned int | readBufMult |
| char | remoteAddr [16] |
| tHttpHeader | httpHeader |
| unsigned int | bodyLenRemaining |
| XML_Parser | parser |
Definition at line 18 of file client.h.
+| unsigned int tClient::bodyLenRemaining | +
| tHttpHeader tClient::httpHeader | +
| XML_Parser tClient::parser | +
| char* tClient::readBuffer | +
| unsigned int tClient::readBufMult | +
| unsigned int tClient::readPos | +
| char tClient::remoteAddr[16] | +
| int tClient::socket | +
| char* tClient::writeBuffer | +
| unsigned int tClient::writePos | +
+
1.5.8
+
+
diff --git a/.doc/html/structtHttpHeader.html b/.doc/html/structtHttpHeader.html
new file mode 100644
index 0000000..89e4857
--- /dev/null
+++ b/.doc/html/structtHttpHeader.html
@@ -0,0 +1,117 @@
+
+
+#include <httpRequest.h>
++
Data Fields | |
| tRequestLine | req |
| tHttpHeaderLine * | headers |
| unsigned int | headersCount |
| unsigned char | bodyLength |
Definition at line 27 of file httpRequest.h.
+| unsigned char tHttpHeader::bodyLength | +
+ +
Definition at line 32 of file httpRequest.h.
+ +| tHttpHeaderLine* tHttpHeader::headers | +
+ +
Definition at line 29 of file httpRequest.h.
+ +| unsigned int tHttpHeader::headersCount | +
+ +
Definition at line 30 of file httpRequest.h.
+ +| tRequestLine tHttpHeader::req | +
+ +
Definition at line 28 of file httpRequest.h.
+ ++
1.5.8
+
+
diff --git a/.doc/html/structtHttpHeaderLine.html b/.doc/html/structtHttpHeaderLine.html
new file mode 100644
index 0000000..ead9bf7
--- /dev/null
+++ b/.doc/html/structtHttpHeaderLine.html
@@ -0,0 +1,79 @@
+
+
+#include <httpRequest.h>
++
Data Fields | |
| char * | key |
| char * | value |
Definition at line 22 of file httpRequest.h.
+| char* tHttpHeaderLine::key | +
+ +
Definition at line 23 of file httpRequest.h.
+ +| char* tHttpHeaderLine::value | +
+ +
Definition at line 24 of file httpRequest.h.
+ ++
1.5.8
+
+
diff --git a/.doc/html/structtHttpRequest.html b/.doc/html/structtHttpRequest.html
new file mode 100644
index 0000000..5473f72
--- /dev/null
+++ b/.doc/html/structtHttpRequest.html
@@ -0,0 +1,98 @@
+
+
+#include <httpRequest.h>
++
Data Fields | |
| tHttpHeader | header |
| unsigned int | length |
| char * | body |
Definition at line 35 of file httpRequest.h.
+| char* tHttpRequest::body | +
+ +
Definition at line 38 of file httpRequest.h.
+ +| tHttpHeader tHttpRequest::header | +
+ +
Definition at line 36 of file httpRequest.h.
+ +| unsigned int tHttpRequest::length | +
+ +
Definition at line 37 of file httpRequest.h.
+ ++
1.5.8
+
+
diff --git a/.doc/html/structtRequestLine.html b/.doc/html/structtRequestLine.html
new file mode 100644
index 0000000..485c32b
--- /dev/null
+++ b/.doc/html/structtRequestLine.html
@@ -0,0 +1,98 @@
+
+
+#include <httpRequest.h>
++
Data Fields | |
| char * | method |
| char * | requestUri |
| char * | httpVersion |
Definition at line 16 of file httpRequest.h.
+| char* tRequestLine::httpVersion | +
+ +
Definition at line 19 of file httpRequest.h.
+ +| char* tRequestLine::method | +
+ +
Definition at line 17 of file httpRequest.h.
+ +| char* tRequestLine::requestUri | +
+ +
Definition at line 18 of file httpRequest.h.
+ ++
1.5.8
+
+
diff --git a/.doc/html/structtServer.html b/.doc/html/structtServer.html
new file mode 100644
index 0000000..fbd142b
--- /dev/null
+++ b/.doc/html/structtServer.html
@@ -0,0 +1,174 @@
+
+
+#include <server.h>
++
Data Fields | |
| int | servSock |
| tClient | clients [FD_SETSIZE] |
| unsigned int | maxFd |
| fd_set | socks |
| char | logPath [512] |
| char | namePat [512] |
| FILE * | wHandle |
Definition at line 9 of file server.h.
+| tClient tServer::clients[FD_SETSIZE] | +
| char tServer::logPath[512] | +
| unsigned int tServer::maxFd | +
| char tServer::namePat[512] | +
| int tServer::servSock | +
| fd_set tServer::socks | +
| FILE* tServer::wHandle | +
+
1.5.8
+
+
diff --git a/.doc/html/tab_b.gif b/.doc/html/tab_b.gif
new file mode 100644
index 0000000..0d62348
Binary files /dev/null and b/.doc/html/tab_b.gif differ
diff --git a/.doc/html/tab_l.gif b/.doc/html/tab_l.gif
new file mode 100644
index 0000000..9b1e633
Binary files /dev/null and b/.doc/html/tab_l.gif differ
diff --git a/.doc/html/tab_r.gif b/.doc/html/tab_r.gif
new file mode 100644
index 0000000..ce9dd9f
Binary files /dev/null and b/.doc/html/tab_r.gif differ
diff --git a/.doc/html/tabs.css b/.doc/html/tabs.css
new file mode 100644
index 0000000..ab02c62
--- /dev/null
+++ b/.doc/html/tabs.css
@@ -0,0 +1,105 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+ float : left;
+ width : 100%;
+ background : url("tab_b.gif") repeat-x bottom;
+ margin-bottom : 4px;
+}
+
+DIV.tabs UL
+{
+ margin : 0px;
+ padding-left : 10px;
+ list-style : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+ display : inline;
+ margin : 0px;
+ padding : 0px;
+}
+
+DIV.tabs FORM
+{
+ float : right;
+}
+
+DIV.tabs A
+{
+ float : left;
+ background : url("tab_r.gif") no-repeat right top;
+ border-bottom : 1px solid #84B0C7;
+ font-size : 80%;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+DIV.tabs A:hover
+{
+ background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+ color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+ float : left;
+ display : block;
+ background : url("tab_l.gif") no-repeat left top;
+ padding : 5px 9px;
+ white-space : nowrap;
+}
+
+DIV.tabs INPUT
+{
+ float : right;
+ display : inline;
+ font-size : 1em;
+}
+
+DIV.tabs TD
+{
+ font-size : 80%;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+ background-position: 0% -150px;
+}
+
+DIV.tabs LI.current A
+{
+ background-position: 100% -150px;
+ border-width : 0px;
+}
+
+DIV.tabs LI.current SPAN
+{
+ background-position: 0% -150px;
+ padding-bottom : 6px;
+}
+
+DIV.navpath
+{
+ background : none;
+ border : none;
+ border-bottom : 1px solid #84B0C7;
+ text-align : center;
+ margin : 2px;
+ padding : 2px;
+}
diff --git a/.doc/html/tree.html b/.doc/html/tree.html
new file mode 100644
index 0000000..d6b7110
--- /dev/null
+++ b/.doc/html/tree.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ ![]()
![]()
reader/commonReader/clientClose.c
![]()
![]()
reader/commonReader/clientRead.c
![]()
![]()
reader/commonReader/writeBuffer.c
1.5.8
+
+
diff --git a/.doc/html/writeBuffer_8c.html b/.doc/html/writeBuffer_8c.html
new file mode 100644
index 0000000..4ee6827
--- /dev/null
+++ b/.doc/html/writeBuffer_8c.html
@@ -0,0 +1,77 @@
+
+
+#include <stdio.h>#include <string.h>+Go to the source code of this file.
Functions | |
| int | writeBuffer (char **buffer, unsigned int *readPos, FILE *wHandle) |
| int writeBuffer | +( | +char ** | +buffer, | +|
| + | + | unsigned int * | +readPos, | +|
| + | + | FILE * | +wHandle | + |
| + | ) | ++ |
+ +
Definition at line 6 of file writeBuffer.c.
+ ++
1.5.8
+
+
diff --git a/.doc/html/writeBuffer_8h-source.html b/.doc/html/writeBuffer_8h-source.html
new file mode 100644
index 0000000..e209cb4
--- /dev/null
+++ b/.doc/html/writeBuffer_8h-source.html
@@ -0,0 +1,35 @@
+
+
+
1.5.8
+
+
diff --git a/.doc/html/writeBuffer_8h.html b/.doc/html/writeBuffer_8h.html
new file mode 100644
index 0000000..001c67f
--- /dev/null
+++ b/.doc/html/writeBuffer_8h.html
@@ -0,0 +1,76 @@
+
+
+#include <stdio.h>+Go to the source code of this file.
Functions | |
| int | writeBuffer (char **buffer, unsigned int *readPos, FILE *wHandle) |
| int writeBuffer | +( | +char ** | +buffer, | +|
| + | + | unsigned int * | +readPos, | +|
| + | + | FILE * | +wHandle | + |
| + | ) | ++ |
+ +
Definition at line 6 of file writeBuffer.c.
+ ++
1.5.8
+
+
diff --git a/.doc/latex/FreeSans.ttf b/.doc/latex/FreeSans.ttf
new file mode 100644
index 0000000..b550b90
Binary files /dev/null and b/.doc/latex/FreeSans.ttf differ
diff --git a/.doc/latex/Makefile b/.doc/latex/Makefile
new file mode 100644
index 0000000..8b7c89a
--- /dev/null
+++ b/.doc/latex/Makefile
@@ -0,0 +1,19 @@
+all: clean refman.pdf
+
+pdf: refman.pdf
+
+refman.pdf: refman.tex
+ pdflatex refman.tex
+ makeindex refman.idx
+ pdflatex refman.tex
+ latex_count=5 ; \
+ while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+ do \
+ echo "Rerunning latex...." ;\
+ pdflatex refman.tex ;\
+ latex_count=`expr $$latex_count - 1` ;\
+ done
+
+
+clean:
+ rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf
diff --git a/.doc/latex/annotated.tex b/.doc/latex/annotated.tex
new file mode 100644
index 0000000..d28cefb
--- /dev/null
+++ b/.doc/latex/annotated.tex
@@ -0,0 +1,10 @@
+\section{Data Structures}
+Here are the data structures with brief descriptions:\begin{CompactList}
+\item\contentsline{section}{\hyperlink{structtAppConfig}{tAppConfig} }{\pageref{structtAppConfig}}{}
+\item\contentsline{section}{\hyperlink{structtClient}{tClient} }{\pageref{structtClient}}{}
+\item\contentsline{section}{\hyperlink{structtHttpHeader}{tHttpHeader} }{\pageref{structtHttpHeader}}{}
+\item\contentsline{section}{\hyperlink{structtHttpHeaderLine}{tHttpHeaderLine} }{\pageref{structtHttpHeaderLine}}{}
+\item\contentsline{section}{\hyperlink{structtHttpRequest}{tHttpRequest} }{\pageref{structtHttpRequest}}{}
+\item\contentsline{section}{\hyperlink{structtRequestLine}{tRequestLine} }{\pageref{structtRequestLine}}{}
+\item\contentsline{section}{\hyperlink{structtServer}{tServer} }{\pageref{structtServer}}{}
+\end{CompactList}
diff --git a/.doc/latex/appConfig_8h.tex b/.doc/latex/appConfig_8h.tex
new file mode 100644
index 0000000..4cf6a6e
--- /dev/null
+++ b/.doc/latex/appConfig_8h.tex
@@ -0,0 +1,121 @@
+\hypertarget{appConfig_8h}{
+\section{include/appConfig.h File Reference}
+\label{appConfig_8h}\index{include/appConfig.h@{include/appConfig.h}}
+}
+\subsection*{Data Structures}
+\begin{CompactItemize}
+\item
+struct \hyperlink{structtAppConfig}{tAppConfig}
+\end{CompactItemize}
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{appConfig_8h_f77ed3e65a7b1a9341603d152a1404df}{MAXPENDING}~10
+\item
+\#define \hyperlink{appConfig_8h_ce5c08f66edfc6ae44edaeef6b6101b6}{MAXCLIENTS}~1000
+\item
+\#define \hyperlink{appConfig_8h_a0534241791f23ec8098503582406166}{READBUFSIZE}~2048
+\item
+\#define \hyperlink{appConfig_8h_3db4dba8d56385b62759b89c98cae447}{DEFAULTPORT}~8801
+\item
+\#define \hyperlink{appConfig_8h_0672e2d34f3bbe2f6cdad6f307b9d1cf}{DEFAULTPATH}~\char`\"{}logfiles\char`\"{}
+\item
+\#define \hyperlink{appConfig_8h_9a98b2d0f973e357020c1274ec5b56c0}{LOGNAMEPATTERN}~\char`\"{}log-\%Y-\%m-\%d\_\-\%Hh\char`\"{}
+\item
+\#define \hyperlink{appConfig_8h_acc3ee1a7f283f8ef65cea31f4436a95}{MAX}(x, y)~((x) $>$ (y) ? (x) : (y))
+\item
+\#define \hyperlink{appConfig_8h_74e75242132eaabbc1c512488a135926}{MIN}(x, y)~((x) $<$ (y) ? (x) : (y))
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{appConfig_8h_3755d793d10d6e5793ed5086a0b22964}{handleCmdLine} (\hyperlink{structtAppConfig}{tAppConfig} $\ast$config, int argc, char $\ast$argv\mbox{[}$\,$\mbox{]})
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{appConfig_8h_0672e2d34f3bbe2f6cdad6f307b9d1cf}{
+\index{appConfig.h@{appConfig.h}!DEFAULTPATH@{DEFAULTPATH}}
+\index{DEFAULTPATH@{DEFAULTPATH}!appConfig.h@{appConfig.h}}
+\subsubsection[{DEFAULTPATH}]{\setlength{\rightskip}{0pt plus 5cm}\#define DEFAULTPATH~\char`\"{}logfiles\char`\"{}}}
+\label{appConfig_8h_0672e2d34f3bbe2f6cdad6f307b9d1cf}
+
+
+
+
+Definition at line 8 of file appConfig.h.\hypertarget{appConfig_8h_3db4dba8d56385b62759b89c98cae447}{
+\index{appConfig.h@{appConfig.h}!DEFAULTPORT@{DEFAULTPORT}}
+\index{DEFAULTPORT@{DEFAULTPORT}!appConfig.h@{appConfig.h}}
+\subsubsection[{DEFAULTPORT}]{\setlength{\rightskip}{0pt plus 5cm}\#define DEFAULTPORT~8801}}
+\label{appConfig_8h_3db4dba8d56385b62759b89c98cae447}
+
+
+
+
+Definition at line 7 of file appConfig.h.\hypertarget{appConfig_8h_9a98b2d0f973e357020c1274ec5b56c0}{
+\index{appConfig.h@{appConfig.h}!LOGNAMEPATTERN@{LOGNAMEPATTERN}}
+\index{LOGNAMEPATTERN@{LOGNAMEPATTERN}!appConfig.h@{appConfig.h}}
+\subsubsection[{LOGNAMEPATTERN}]{\setlength{\rightskip}{0pt plus 5cm}\#define LOGNAMEPATTERN~\char`\"{}log-\%Y-\%m-\%d\_\-\%Hh\char`\"{}}}
+\label{appConfig_8h_9a98b2d0f973e357020c1274ec5b56c0}
+
+
+
+
+Definition at line 9 of file appConfig.h.\hypertarget{appConfig_8h_acc3ee1a7f283f8ef65cea31f4436a95}{
+\index{appConfig.h@{appConfig.h}!MAX@{MAX}}
+\index{MAX@{MAX}!appConfig.h@{appConfig.h}}
+\subsubsection[{MAX}]{\setlength{\rightskip}{0pt plus 5cm}\#define MAX(x, \/ y)~((x) $>$ (y) ? (x) : (y))}}
+\label{appConfig_8h_acc3ee1a7f283f8ef65cea31f4436a95}
+
+
+
+
+Definition at line 12 of file appConfig.h.\hypertarget{appConfig_8h_ce5c08f66edfc6ae44edaeef6b6101b6}{
+\index{appConfig.h@{appConfig.h}!MAXCLIENTS@{MAXCLIENTS}}
+\index{MAXCLIENTS@{MAXCLIENTS}!appConfig.h@{appConfig.h}}
+\subsubsection[{MAXCLIENTS}]{\setlength{\rightskip}{0pt plus 5cm}\#define MAXCLIENTS~1000}}
+\label{appConfig_8h_ce5c08f66edfc6ae44edaeef6b6101b6}
+
+
+
+
+Definition at line 5 of file appConfig.h.\hypertarget{appConfig_8h_f77ed3e65a7b1a9341603d152a1404df}{
+\index{appConfig.h@{appConfig.h}!MAXPENDING@{MAXPENDING}}
+\index{MAXPENDING@{MAXPENDING}!appConfig.h@{appConfig.h}}
+\subsubsection[{MAXPENDING}]{\setlength{\rightskip}{0pt plus 5cm}\#define MAXPENDING~10}}
+\label{appConfig_8h_f77ed3e65a7b1a9341603d152a1404df}
+
+
+
+
+Definition at line 4 of file appConfig.h.\hypertarget{appConfig_8h_74e75242132eaabbc1c512488a135926}{
+\index{appConfig.h@{appConfig.h}!MIN@{MIN}}
+\index{MIN@{MIN}!appConfig.h@{appConfig.h}}
+\subsubsection[{MIN}]{\setlength{\rightskip}{0pt plus 5cm}\#define MIN(x, \/ y)~((x) $<$ (y) ? (x) : (y))}}
+\label{appConfig_8h_74e75242132eaabbc1c512488a135926}
+
+
+
+
+Definition at line 15 of file appConfig.h.\hypertarget{appConfig_8h_a0534241791f23ec8098503582406166}{
+\index{appConfig.h@{appConfig.h}!READBUFSIZE@{READBUFSIZE}}
+\index{READBUFSIZE@{READBUFSIZE}!appConfig.h@{appConfig.h}}
+\subsubsection[{READBUFSIZE}]{\setlength{\rightskip}{0pt plus 5cm}\#define READBUFSIZE~2048}}
+\label{appConfig_8h_a0534241791f23ec8098503582406166}
+
+
+
+
+Definition at line 6 of file appConfig.h.
+
+\subsection{Function Documentation}
+\hypertarget{appConfig_8h_3755d793d10d6e5793ed5086a0b22964}{
+\index{appConfig.h@{appConfig.h}!handleCmdLine@{handleCmdLine}}
+\index{handleCmdLine@{handleCmdLine}!appConfig.h@{appConfig.h}}
+\subsubsection[{handleCmdLine}]{\setlength{\rightskip}{0pt plus 5cm}int handleCmdLine ({\bf tAppConfig} $\ast$ {\em config}, \/ int {\em argc}, \/ char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]})}}
+\label{appConfig_8h_3755d793d10d6e5793ed5086a0b22964}
+
+
+
+
+Definition at line 10 of file handleCmdLine.c.
\ No newline at end of file
diff --git a/.doc/latex/clientClose_8c.tex b/.doc/latex/clientClose_8c.tex
new file mode 100644
index 0000000..c958b3c
--- /dev/null
+++ b/.doc/latex/clientClose_8c.tex
@@ -0,0 +1,30 @@
+\hypertarget{clientClose_8c}{
+\section{reader/commonReader/clientClose.c File Reference}
+\label{clientClose_8c}\index{reader/commonReader/clientClose.c@{reader/commonReader/clientClose.c}}
+}
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$sys/socket.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$expat.h$>$}\par
+{\tt \#include \char`\"{}../../include/client.h\char`\"{}}\par
+{\tt \#include \char`\"{}../../include/monitor.h\char`\"{}}\par
+{\tt \#include \char`\"{}../../include/httpRequest.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{clientClose_8c_a9dad65338aa78062b23a924ae1d2b59}{clientClose} (\hyperlink{structtClient}{tClient} $\ast$client)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{clientClose_8c_a9dad65338aa78062b23a924ae1d2b59}{
+\index{clientClose.c@{clientClose.c}!clientClose@{clientClose}}
+\index{clientClose@{clientClose}!clientClose.c@{clientClose.c}}
+\subsubsection[{clientClose}]{\setlength{\rightskip}{0pt plus 5cm}void clientClose ({\bf tClient} $\ast$ {\em client})}}
+\label{clientClose_8c_a9dad65338aa78062b23a924ae1d2b59}
+
+
+
+
+Definition at line 12 of file clientClose.c.
\ No newline at end of file
diff --git a/.doc/latex/clientRead_8c.tex b/.doc/latex/clientRead_8c.tex
new file mode 100644
index 0000000..3e19505
--- /dev/null
+++ b/.doc/latex/clientRead_8c.tex
@@ -0,0 +1,100 @@
+\hypertarget{clientRead_8c}{
+\section{reader/commonReader/clientRead.c File Reference}
+\label{clientRead_8c}\index{reader/commonReader/clientRead.c@{reader/commonReader/clientRead.c}}
+}
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$errno.h$>$}\par
+{\tt \#include \char`\"{}../../include/client.h\char`\"{}}\par
+{\tt \#include \char`\"{}../../include/monitor.h\char`\"{}}\par
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{clientRead_8c_3baabeba3e06eb1b8761363a58f8391b}{GET\_\-MULTIPLIER}(size)~(((size) - 1) / READBUFSIZE + 1)
+\item
+\#define \hyperlink{clientRead_8c_47d745b24a58d0152c7b43db75387a79}{EOB}(client, addr)~((addr) -(client) $\rightarrow$ readBuffer $>$= (client) $\rightarrow$ readPos)
+\item
+\#define \hyperlink{clientRead_8c_b6f9cfea308c9f485d4b00b60fd2f6cd}{REMAINING}(client, addr)~((client) $\rightarrow$ readPos - ((addr) - (client) $\rightarrow$ readBuffer))
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{clientRead_8c_6504ff36553f8008b9ee1d52aa977740}{clientRead} (\hyperlink{structtClient}{tClient} $\ast$client)
+\item
+char $\ast$ \hyperlink{clientRead_8c_8363f6facea09bd36e288a51c983aed2}{clientConsumeLine} (\hyperlink{structtClient}{tClient} $\ast$client, const char $\ast$delim, unsigned int $\ast$len)
+\item
+char $\ast$ \hyperlink{clientRead_8c_fbcefe4f20179c643fdff8007235325c}{clientGetLine} (\hyperlink{structtClient}{tClient} $\ast$client, const char $\ast$delim, unsigned int $\ast$len)
+\item
+char $\ast$ \hyperlink{clientRead_8c_8cbd479139f4645f07ae0b7c18202fef}{clientRemoveLine} (\hyperlink{structtClient}{tClient} $\ast$client, const char $\ast$delim, unsigned int $\ast$len)
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{clientRead_8c_47d745b24a58d0152c7b43db75387a79}{
+\index{clientRead.c@{clientRead.c}!EOB@{EOB}}
+\index{EOB@{EOB}!clientRead.c@{clientRead.c}}
+\subsubsection[{EOB}]{\setlength{\rightskip}{0pt plus 5cm}\#define EOB(client, \/ addr)~((addr) -(client) $\rightarrow$ readBuffer $>$= (client) $\rightarrow$ readPos)}}
+\label{clientRead_8c_47d745b24a58d0152c7b43db75387a79}
+
+
+
+
+Definition at line 100 of file clientRead.c.\hypertarget{clientRead_8c_3baabeba3e06eb1b8761363a58f8391b}{
+\index{clientRead.c@{clientRead.c}!GET\_\-MULTIPLIER@{GET\_\-MULTIPLIER}}
+\index{GET\_\-MULTIPLIER@{GET\_\-MULTIPLIER}!clientRead.c@{clientRead.c}}
+\subsubsection[{GET\_\-MULTIPLIER}]{\setlength{\rightskip}{0pt plus 5cm}\#define GET\_\-MULTIPLIER(size)~(((size) - 1) / READBUFSIZE + 1)}}
+\label{clientRead_8c_3baabeba3e06eb1b8761363a58f8391b}
+
+
+
+
+Definition at line 9 of file clientRead.c.\hypertarget{clientRead_8c_b6f9cfea308c9f485d4b00b60fd2f6cd}{
+\index{clientRead.c@{clientRead.c}!REMAINING@{REMAINING}}
+\index{REMAINING@{REMAINING}!clientRead.c@{clientRead.c}}
+\subsubsection[{REMAINING}]{\setlength{\rightskip}{0pt plus 5cm}\#define REMAINING(client, \/ addr)~((client) $\rightarrow$ readPos - ((addr) - (client) $\rightarrow$ readBuffer))}}
+\label{clientRead_8c_b6f9cfea308c9f485d4b00b60fd2f6cd}
+
+
+
+
+Definition at line 101 of file clientRead.c.
+
+\subsection{Function Documentation}
+\hypertarget{clientRead_8c_8363f6facea09bd36e288a51c983aed2}{
+\index{clientRead.c@{clientRead.c}!clientConsumeLine@{clientConsumeLine}}
+\index{clientConsumeLine@{clientConsumeLine}!clientRead.c@{clientRead.c}}
+\subsubsection[{clientConsumeLine}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ clientConsumeLine ({\bf tClient} $\ast$ {\em client}, \/ const char $\ast$ {\em delim}, \/ unsigned int $\ast$ {\em len})}}
+\label{clientRead_8c_8363f6facea09bd36e288a51c983aed2}
+
+
+
+
+Definition at line 133 of file clientRead.c.\hypertarget{clientRead_8c_fbcefe4f20179c643fdff8007235325c}{
+\index{clientRead.c@{clientRead.c}!clientGetLine@{clientGetLine}}
+\index{clientGetLine@{clientGetLine}!clientRead.c@{clientRead.c}}
+\subsubsection[{clientGetLine}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ clientGetLine ({\bf tClient} $\ast$ {\em client}, \/ const char $\ast$ {\em delim}, \/ unsigned int $\ast$ {\em len})}}
+\label{clientRead_8c_fbcefe4f20179c643fdff8007235325c}
+
+
+
+
+Definition at line 151 of file clientRead.c.\hypertarget{clientRead_8c_6504ff36553f8008b9ee1d52aa977740}{
+\index{clientRead.c@{clientRead.c}!clientRead@{clientRead}}
+\index{clientRead@{clientRead}!clientRead.c@{clientRead.c}}
+\subsubsection[{clientRead}]{\setlength{\rightskip}{0pt plus 5cm}int clientRead ({\bf tClient} $\ast$ {\em client})}}
+\label{clientRead_8c_6504ff36553f8008b9ee1d52aa977740}
+
+
+
+
+Definition at line 53 of file clientRead.c.\hypertarget{clientRead_8c_8cbd479139f4645f07ae0b7c18202fef}{
+\index{clientRead.c@{clientRead.c}!clientRemoveLine@{clientRemoveLine}}
+\index{clientRemoveLine@{clientRemoveLine}!clientRead.c@{clientRead.c}}
+\subsubsection[{clientRemoveLine}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ clientRemoveLine ({\bf tClient} $\ast$ {\em client}, \/ const char $\ast$ {\em delim}, \/ unsigned int $\ast$ {\em len})}}
+\label{clientRead_8c_8cbd479139f4645f07ae0b7c18202fef}
+
+
+
+
+Definition at line 164 of file clientRead.c.
\ No newline at end of file
diff --git a/.doc/latex/client_8h.tex b/.doc/latex/client_8h.tex
new file mode 100644
index 0000000..7aaaa79
--- /dev/null
+++ b/.doc/latex/client_8h.tex
@@ -0,0 +1,136 @@
+\hypertarget{client_8h}{
+\section{include/client.h File Reference}
+\label{client_8h}\index{include/client.h@{include/client.h}}
+}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$expat.h$>$}\par
+{\tt \#include \char`\"{}httpRequest.h\char`\"{}}\par
+\subsection*{Data Structures}
+\begin{CompactItemize}
+\item
+struct \hyperlink{structtClient}{tClient}
+\end{CompactItemize}
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{client_8h_a0534241791f23ec8098503582406166}{READBUFSIZE}~2048
+\item
+\#define \hyperlink{client_8h_eefa2efc8515c7f8334de344e8a07fbf}{CLIENTMULTMAX}~512U
+\item
+\#define \hyperlink{client_8h_f150df8f008146f177d67862d2569834}{READ\_\-ERR\_\-LONGLINE}~-2
+\item
+\#define \hyperlink{client_8h_4f090ce41ed48b83e309d8fce71db4ab}{READ\_\-ERR\_\-MEMORY}~-3
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{client_8h_a9dad65338aa78062b23a924ae1d2b59}{clientClose} (\hyperlink{structtClient}{tClient} $\ast$client)
+\item
+int \hyperlink{client_8h_6504ff36553f8008b9ee1d52aa977740}{clientRead} (\hyperlink{structtClient}{tClient} $\ast$client)
+\item
+int \hyperlink{client_8h_ab1a321bfd432ac9ec8818ad3eb6e591}{clientWrite} (\hyperlink{structtClient}{tClient} $\ast$client)
+\item
+char $\ast$ \hyperlink{client_8h_9741eb2a0853766868828c722e67c068}{clientGetLine} (\hyperlink{structtClient}{tClient} $\ast$, const char $\ast$, unsigned int $\ast$)
+\item
+char $\ast$ \hyperlink{client_8h_a920588f9122184bad211ae912d1dbc4}{clientRemoveLine} (\hyperlink{structtClient}{tClient} $\ast$, const char $\ast$, unsigned int $\ast$)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+int \hyperlink{client_8h_0b2caeb4b6f130be43e5a2f0267dd453}{verbose}
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{client_8h_eefa2efc8515c7f8334de344e8a07fbf}{
+\index{client.h@{client.h}!CLIENTMULTMAX@{CLIENTMULTMAX}}
+\index{CLIENTMULTMAX@{CLIENTMULTMAX}!client.h@{client.h}}
+\subsubsection[{CLIENTMULTMAX}]{\setlength{\rightskip}{0pt plus 5cm}\#define CLIENTMULTMAX~512U}}
+\label{client_8h_eefa2efc8515c7f8334de344e8a07fbf}
+
+
+
+
+Definition at line 11 of file client.h.\hypertarget{client_8h_f150df8f008146f177d67862d2569834}{
+\index{client.h@{client.h}!READ\_\-ERR\_\-LONGLINE@{READ\_\-ERR\_\-LONGLINE}}
+\index{READ\_\-ERR\_\-LONGLINE@{READ\_\-ERR\_\-LONGLINE}!client.h@{client.h}}
+\subsubsection[{READ\_\-ERR\_\-LONGLINE}]{\setlength{\rightskip}{0pt plus 5cm}\#define READ\_\-ERR\_\-LONGLINE~-2}}
+\label{client_8h_f150df8f008146f177d67862d2569834}
+
+
+
+
+Definition at line 13 of file client.h.\hypertarget{client_8h_4f090ce41ed48b83e309d8fce71db4ab}{
+\index{client.h@{client.h}!READ\_\-ERR\_\-MEMORY@{READ\_\-ERR\_\-MEMORY}}
+\index{READ\_\-ERR\_\-MEMORY@{READ\_\-ERR\_\-MEMORY}!client.h@{client.h}}
+\subsubsection[{READ\_\-ERR\_\-MEMORY}]{\setlength{\rightskip}{0pt plus 5cm}\#define READ\_\-ERR\_\-MEMORY~-3}}
+\label{client_8h_4f090ce41ed48b83e309d8fce71db4ab}
+
+
+
+
+Definition at line 14 of file client.h.\hypertarget{client_8h_a0534241791f23ec8098503582406166}{
+\index{client.h@{client.h}!READBUFSIZE@{READBUFSIZE}}
+\index{READBUFSIZE@{READBUFSIZE}!client.h@{client.h}}
+\subsubsection[{READBUFSIZE}]{\setlength{\rightskip}{0pt plus 5cm}\#define READBUFSIZE~2048}}
+\label{client_8h_a0534241791f23ec8098503582406166}
+
+
+
+
+Definition at line 10 of file client.h.
+
+\subsection{Function Documentation}
+\hypertarget{client_8h_a9dad65338aa78062b23a924ae1d2b59}{
+\index{client.h@{client.h}!clientClose@{clientClose}}
+\index{clientClose@{clientClose}!client.h@{client.h}}
+\subsubsection[{clientClose}]{\setlength{\rightskip}{0pt plus 5cm}void clientClose ({\bf tClient} $\ast$ {\em client})}}
+\label{client_8h_a9dad65338aa78062b23a924ae1d2b59}
+
+
+
+
+Definition at line 12 of file clientClose.c.\hypertarget{client_8h_9741eb2a0853766868828c722e67c068}{
+\index{client.h@{client.h}!clientGetLine@{clientGetLine}}
+\index{clientGetLine@{clientGetLine}!client.h@{client.h}}
+\subsubsection[{clientGetLine}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ clientGetLine ({\bf tClient} $\ast$, \/ const char $\ast$, \/ unsigned int $\ast$)}}
+\label{client_8h_9741eb2a0853766868828c722e67c068}
+
+
+
+
+Definition at line 151 of file clientRead.c.\hypertarget{client_8h_6504ff36553f8008b9ee1d52aa977740}{
+\index{client.h@{client.h}!clientRead@{clientRead}}
+\index{clientRead@{clientRead}!client.h@{client.h}}
+\subsubsection[{clientRead}]{\setlength{\rightskip}{0pt plus 5cm}int clientRead ({\bf tClient} $\ast$ {\em client})}}
+\label{client_8h_6504ff36553f8008b9ee1d52aa977740}
+
+
+
+
+Definition at line 53 of file clientRead.c.\hypertarget{client_8h_a920588f9122184bad211ae912d1dbc4}{
+\index{client.h@{client.h}!clientRemoveLine@{clientRemoveLine}}
+\index{clientRemoveLine@{clientRemoveLine}!client.h@{client.h}}
+\subsubsection[{clientRemoveLine}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ clientRemoveLine ({\bf tClient} $\ast$, \/ const char $\ast$, \/ unsigned int $\ast$)}}
+\label{client_8h_a920588f9122184bad211ae912d1dbc4}
+
+
+
+
+Definition at line 164 of file clientRead.c.\hypertarget{client_8h_ab1a321bfd432ac9ec8818ad3eb6e591}{
+\index{client.h@{client.h}!clientWrite@{clientWrite}}
+\index{clientWrite@{clientWrite}!client.h@{client.h}}
+\subsubsection[{clientWrite}]{\setlength{\rightskip}{0pt plus 5cm}int clientWrite ({\bf tClient} $\ast$ {\em client})}}
+\label{client_8h_ab1a321bfd432ac9ec8818ad3eb6e591}
+
+
+
+
+\subsection{Variable Documentation}
+\hypertarget{client_8h_0b2caeb4b6f130be43e5a2f0267dd453}{
+\index{client.h@{client.h}!verbose@{verbose}}
+\index{verbose@{verbose}!client.h@{client.h}}
+\subsubsection[{verbose}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf verbose}}}
+\label{client_8h_0b2caeb4b6f130be43e5a2f0267dd453}
+
+
diff --git a/.doc/latex/daemonize_8c.tex b/.doc/latex/daemonize_8c.tex
new file mode 100644
index 0000000..3b19060
--- /dev/null
+++ b/.doc/latex/daemonize_8c.tex
@@ -0,0 +1,25 @@
+\hypertarget{daemonize_8c}{
+\section{system/daemonize.c File Reference}
+\label{daemonize_8c}\index{system/daemonize.c@{system/daemonize.c}}
+}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{daemonize_8c_29b0af1da2432bcc90721c0b62f4e660}{daemonize} (void)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{daemonize_8c_29b0af1da2432bcc90721c0b62f4e660}{
+\index{daemonize.c@{daemonize.c}!daemonize@{daemonize}}
+\index{daemonize@{daemonize}!daemonize.c@{daemonize.c}}
+\subsubsection[{daemonize}]{\setlength{\rightskip}{0pt plus 5cm}void daemonize (void)}}
+\label{daemonize_8c_29b0af1da2432bcc90721c0b62f4e660}
+
+
+
+
+Definition at line 6 of file daemonize.c.
\ No newline at end of file
diff --git a/.doc/latex/daemonize_8h.tex b/.doc/latex/daemonize_8h.tex
new file mode 100644
index 0000000..1ccc468
--- /dev/null
+++ b/.doc/latex/daemonize_8h.tex
@@ -0,0 +1,22 @@
+\hypertarget{daemonize_8h}{
+\section{include/daemonize.h File Reference}
+\label{daemonize_8h}\index{include/daemonize.h@{include/daemonize.h}}
+}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{daemonize_8h_29b0af1da2432bcc90721c0b62f4e660}{daemonize} (void)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{daemonize_8h_29b0af1da2432bcc90721c0b62f4e660}{
+\index{daemonize.h@{daemonize.h}!daemonize@{daemonize}}
+\index{daemonize@{daemonize}!daemonize.h@{daemonize.h}}
+\subsubsection[{daemonize}]{\setlength{\rightskip}{0pt plus 5cm}void daemonize (void)}}
+\label{daemonize_8h_29b0af1da2432bcc90721c0b62f4e660}
+
+
+
+
+Definition at line 6 of file daemonize.c.
\ No newline at end of file
diff --git a/.doc/latex/doxygen.sty b/.doc/latex/doxygen.sty
new file mode 100644
index 0000000..3d57f54
--- /dev/null
+++ b/.doc/latex/doxygen.sty
@@ -0,0 +1,86 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+\RequirePackage{calc}
+\RequirePackage{array}
+\pagestyle{fancyplain}
+\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
+\lhead[\fancyplain{}{\bfseries\thepage}]
+ {\fancyplain{}{\bfseries\rightmark}}
+\rhead[\fancyplain{}{\bfseries\leftmark}]
+ {\fancyplain{}{\bfseries\thepage}}
+\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Sun Oct 10 01:24:35 2010 for xmlrpc by Doxygen }]{}
+\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Sun Oct 10 01:24:35 2010 for xmlrpc by Doxygen }}
+\cfoot{}
+\newenvironment{Code}
+{\footnotesize}
+{\normalsize}
+\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
+\newenvironment{DocInclude}
+{\footnotesize}
+{\normalsize}
+\newenvironment{VerbInclude}
+{\footnotesize}
+{\normalsize}
+\newenvironment{Image}
+{\begin{figure}[H]}
+{\end{figure}}
+\newenvironment{ImageNoCaption}{}{}
+\newenvironment{CompactList}
+{\begin{list}{}{
+ \setlength{\leftmargin}{0.5cm}
+ \setlength{\itemsep}{0pt}
+ \setlength{\parsep}{0pt}
+ \setlength{\topsep}{0pt}
+ \renewcommand{\makelabel}{\hfill}}}
+{\end{list}}
+\newenvironment{CompactItemize}
+{
+ \begin{itemize}
+ \setlength{\itemsep}{-3pt}
+ \setlength{\parsep}{0pt}
+ \setlength{\topsep}{0pt}
+ \setlength{\partopsep}{0pt}
+}
+{\end{itemize}}
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
+\newlength{\tmplength}
+\newenvironment{TabularC}[1]
+{
+\setlength{\tmplength}
+ {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
+ \par\begin{tabular*}{\linewidth}
+ {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
+}
+{\end{tabular*}\par}
+\newcommand{\entrylabel}[1]{
+ {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}}
+\newenvironment{Desc}
+{\begin{list}{}
+ {
+ \settowidth{\labelwidth}{40pt}
+ \setlength{\leftmargin}{\labelwidth}
+ \setlength{\parsep}{0pt}
+ \setlength{\itemsep}{-4pt}
+ \renewcommand{\makelabel}{\entrylabel}
+ }
+}
+{\end{list}}
+\newenvironment{Indent}
+ {\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
+ \item[]\ignorespaces}
+ {\unskip\end{list}}
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{0.2cm}
+\addtocounter{secnumdepth}{1}
+\sloppy
+\usepackage[T1]{fontenc}
+\makeatletter
+\renewcommand{\paragraph}{\@startsection{paragraph}{4}{0ex}%
+ {-3.25ex plus -1ex minus -0.2ex}%
+ {1.5ex plus 0.2ex}%
+ {\normalfont\normalsize\bfseries}}
+\makeatother
+\stepcounter{secnumdepth}
+\stepcounter{tocdepth}
diff --git a/.doc/latex/files.tex b/.doc/latex/files.tex
new file mode 100644
index 0000000..5c94cd2
--- /dev/null
+++ b/.doc/latex/files.tex
@@ -0,0 +1,26 @@
+\section{File List}
+Here is a list of all files with brief descriptions:\begin{CompactList}
+\item\contentsline{section}{include/\hyperlink{appConfig_8h}{appConfig.h} }{\pageref{appConfig_8h}}{}
+\item\contentsline{section}{include/\hyperlink{client_8h}{client.h} }{\pageref{client_8h}}{}
+\item\contentsline{section}{include/\hyperlink{daemonize_8h}{daemonize.h} }{\pageref{daemonize_8h}}{}
+\item\contentsline{section}{include/\hyperlink{httpRequest_8h}{httpRequest.h} }{\pageref{httpRequest_8h}}{}
+\item\contentsline{section}{include/\hyperlink{logRotate_8h}{logRotate.h} }{\pageref{logRotate_8h}}{}
+\item\contentsline{section}{include/\hyperlink{monitor_8h}{monitor.h} }{\pageref{monitor_8h}}{}
+\item\contentsline{section}{include/\hyperlink{server_8h}{server.h} }{\pageref{server_8h}}{}
+\item\contentsline{section}{include/\hyperlink{signalHandling_8h}{signalHandling.h} }{\pageref{signalHandling_8h}}{}
+\item\contentsline{section}{include/\hyperlink{socket_8h}{socket.h} }{\pageref{socket_8h}}{}
+\item\contentsline{section}{include/\hyperlink{writeBuffer_8h}{writeBuffer.h} }{\pageref{writeBuffer_8h}}{}
+\item\contentsline{section}{reader/commonReader/\hyperlink{clientClose_8c}{clientClose.c} }{\pageref{clientClose_8c}}{}
+\item\contentsline{section}{reader/commonReader/\hyperlink{clientRead_8c}{clientRead.c} }{\pageref{clientRead_8c}}{}
+\item\contentsline{section}{reader/commonReader/\hyperlink{writeBuffer_8c}{writeBuffer.c} }{\pageref{writeBuffer_8c}}{}
+\item\contentsline{section}{reader/httpReader/\hyperlink{httpRequest_8c}{httpRequest.c} }{\pageref{httpRequest_8c}}{}
+\item\contentsline{section}{server/\hyperlink{serverInit_8c}{serverInit.c} }{\pageref{serverInit_8c}}{}
+\item\contentsline{section}{server/\hyperlink{serverRun_8c}{serverRun.c} }{\pageref{serverRun_8c}}{}
+\item\contentsline{section}{server/\hyperlink{serverShutdown_8c}{serverShutdown.c} }{\pageref{serverShutdown_8c}}{}
+\item\contentsline{section}{system/\hyperlink{daemonize_8c}{daemonize.c} }{\pageref{daemonize_8c}}{}
+\item\contentsline{section}{system/\hyperlink{handleCmdLine_8c}{handleCmdLine.c} }{\pageref{handleCmdLine_8c}}{}
+\item\contentsline{section}{system/\hyperlink{logRotate_8c}{logRotate.c} }{\pageref{logRotate_8c}}{}
+\item\contentsline{section}{system/\hyperlink{monitor_8c}{monitor.c} }{\pageref{monitor_8c}}{}
+\item\contentsline{section}{system/\hyperlink{signalHandling_8c}{signalHandling.c} }{\pageref{signalHandling_8c}}{}
+\item\contentsline{section}{system/\hyperlink{socket_8c}{socket.c} }{\pageref{socket_8c}}{}
+\end{CompactList}
diff --git a/.doc/latex/handleCmdLine_8c.tex b/.doc/latex/handleCmdLine_8c.tex
new file mode 100644
index 0000000..7ba1ac6
--- /dev/null
+++ b/.doc/latex/handleCmdLine_8c.tex
@@ -0,0 +1,27 @@
+\hypertarget{handleCmdLine_8c}{
+\section{system/handleCmdLine.c File Reference}
+\label{handleCmdLine_8c}\index{system/handleCmdLine.c@{system/handleCmdLine.c}}
+}
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include \char`\"{}../include/appConfig.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{handleCmdLine_8c_3755d793d10d6e5793ed5086a0b22964}{handleCmdLine} (\hyperlink{structtAppConfig}{tAppConfig} $\ast$config, int argc, char $\ast$argv\mbox{[}$\,$\mbox{]})
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{handleCmdLine_8c_3755d793d10d6e5793ed5086a0b22964}{
+\index{handleCmdLine.c@{handleCmdLine.c}!handleCmdLine@{handleCmdLine}}
+\index{handleCmdLine@{handleCmdLine}!handleCmdLine.c@{handleCmdLine.c}}
+\subsubsection[{handleCmdLine}]{\setlength{\rightskip}{0pt plus 5cm}int handleCmdLine ({\bf tAppConfig} $\ast$ {\em config}, \/ int {\em argc}, \/ char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]})}}
+\label{handleCmdLine_8c_3755d793d10d6e5793ed5086a0b22964}
+
+
+
+
+Definition at line 10 of file handleCmdLine.c.
\ No newline at end of file
diff --git a/.doc/latex/httpRequest_8c.tex b/.doc/latex/httpRequest_8c.tex
new file mode 100644
index 0000000..b4f552c
--- /dev/null
+++ b/.doc/latex/httpRequest_8c.tex
@@ -0,0 +1,154 @@
+\hypertarget{httpRequest_8c}{
+\section{reader/httpReader/httpRequest.c File Reference}
+\label{httpRequest_8c}\index{reader/httpReader/httpRequest.c@{reader/httpReader/httpRequest.c}}
+}
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$ctype.h$>$}\par
+{\tt \#include \char`\"{}../../include/appConfig.h\char`\"{}}\par
+{\tt \#include \char`\"{}../../include/httpRequest.h\char`\"{}}\par
+{\tt \#include \char`\"{}../../include/client.h\char`\"{}}\par
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{httpRequest_8c_5ff6e798033f03e74730e99f01936f84}{SPACE}~0x20
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{httpRequest_8c_c96f6dae9ced89eb2ae8ac556918e367}{httpHeaderGetLine} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$header, char $\ast$$\ast$buffer, unsigned int $\ast$readPos)
+\item
+void \hyperlink{httpRequest_8c_e18ae9e899c3c951308bb2ec4bd810f5}{httpHeaderParseRequestLine} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$header, const char $\ast$line, unsigned int len)
+\item
+int \hyperlink{httpRequest_8c_d5d9232083e5890588d5e1840341a48b}{httpHeaderIsComplete} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$header)
+\item
+unsigned char \hyperlink{httpRequest_8c_29982601e2121cd75800202f5716c7f5}{httpHeaderIsStarted} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$header)
+\item
+int \hyperlink{httpRequest_8c_fd4f839160f6d97ad28e05ee1ce81188}{httpHeaderGet} (char $\ast$$\ast$buffer, unsigned int $\ast$readPos, \hyperlink{structtHttpHeader}{tHttpHeader} $\ast$request)
+\item
+int \hyperlink{httpRequest_8c_9a6b00ad980ca9a2c5023ec1a802106b}{getHttpRequest} (char $\ast$$\ast$buffer, unsigned int $\ast$readPos, \hyperlink{structtHttpRequest}{tHttpRequest} $\ast$request)
+\item
+void \hyperlink{httpRequest_8c_86d86da69aefe2067f750c80e626de7c}{freeHttpHeader} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$header)
+\item
+void \hyperlink{httpRequest_8c_d1d9e65b1761d1d5f809314b4b05e772}{freeHttpRequest} (\hyperlink{structtHttpRequest}{tHttpRequest} $\ast$request)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+char \hyperlink{httpRequest_8c_e7110ef069c94769a78296dc38ab86ca}{httpRequest} \mbox{[}8\mbox{]}\mbox{[}8\mbox{]}
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{httpRequest_8c_5ff6e798033f03e74730e99f01936f84}{
+\index{httpRequest.c@{httpRequest.c}!SPACE@{SPACE}}
+\index{SPACE@{SPACE}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{SPACE}]{\setlength{\rightskip}{0pt plus 5cm}\#define SPACE~0x20}}
+\label{httpRequest_8c_5ff6e798033f03e74730e99f01936f84}
+
+
+
+
+Definition at line 10 of file httpRequest.c.
+
+\subsection{Function Documentation}
+\hypertarget{httpRequest_8c_86d86da69aefe2067f750c80e626de7c}{
+\index{httpRequest.c@{httpRequest.c}!freeHttpHeader@{freeHttpHeader}}
+\index{freeHttpHeader@{freeHttpHeader}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{freeHttpHeader}]{\setlength{\rightskip}{0pt plus 5cm}void freeHttpHeader ({\bf tHttpHeader} $\ast$ {\em header})}}
+\label{httpRequest_8c_86d86da69aefe2067f750c80e626de7c}
+
+
+
+
+Definition at line 187 of file httpRequest.c.\hypertarget{httpRequest_8c_d1d9e65b1761d1d5f809314b4b05e772}{
+\index{httpRequest.c@{httpRequest.c}!freeHttpRequest@{freeHttpRequest}}
+\index{freeHttpRequest@{freeHttpRequest}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{freeHttpRequest}]{\setlength{\rightskip}{0pt plus 5cm}void freeHttpRequest ({\bf tHttpRequest} $\ast$ {\em request})}}
+\label{httpRequest_8c_d1d9e65b1761d1d5f809314b4b05e772}
+
+
+
+
+Definition at line 217 of file httpRequest.c.\hypertarget{httpRequest_8c_9a6b00ad980ca9a2c5023ec1a802106b}{
+\index{httpRequest.c@{httpRequest.c}!getHttpRequest@{getHttpRequest}}
+\index{getHttpRequest@{getHttpRequest}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{getHttpRequest}]{\setlength{\rightskip}{0pt plus 5cm}int getHttpRequest (char $\ast$$\ast$ {\em buffer}, \/ unsigned int $\ast$ {\em readPos}, \/ {\bf tHttpRequest} $\ast$ {\em request})}}
+\label{httpRequest_8c_9a6b00ad980ca9a2c5023ec1a802106b}
+
+
+
+
+Definition at line 162 of file httpRequest.c.\hypertarget{httpRequest_8c_fd4f839160f6d97ad28e05ee1ce81188}{
+\index{httpRequest.c@{httpRequest.c}!httpHeaderGet@{httpHeaderGet}}
+\index{httpHeaderGet@{httpHeaderGet}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{httpHeaderGet}]{\setlength{\rightskip}{0pt plus 5cm}int httpHeaderGet (char $\ast$$\ast$ {\em buffer}, \/ unsigned int $\ast$ {\em readPos}, \/ {\bf tHttpHeader} $\ast$ {\em request})}}
+\label{httpRequest_8c_fd4f839160f6d97ad28e05ee1ce81188}
+
+
+
+
+Definition at line 85 of file httpRequest.c.\hypertarget{httpRequest_8c_c96f6dae9ced89eb2ae8ac556918e367}{
+\index{httpRequest.c@{httpRequest.c}!httpHeaderGetLine@{httpHeaderGetLine}}
+\index{httpHeaderGetLine@{httpHeaderGetLine}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{httpHeaderGetLine}]{\setlength{\rightskip}{0pt plus 5cm}int httpHeaderGetLine ({\bf tHttpHeader} $\ast$ {\em header}, \/ char $\ast$$\ast$ {\em buffer}, \/ unsigned int $\ast$ {\em readPos})}}
+\label{httpRequest_8c_c96f6dae9ced89eb2ae8ac556918e367}
+
+
+
+
+Definition at line 41 of file httpRequest.c.\hypertarget{httpRequest_8c_d5d9232083e5890588d5e1840341a48b}{
+\index{httpRequest.c@{httpRequest.c}!httpHeaderIsComplete@{httpHeaderIsComplete}}
+\index{httpHeaderIsComplete@{httpHeaderIsComplete}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{httpHeaderIsComplete}]{\setlength{\rightskip}{0pt plus 5cm}int httpHeaderIsComplete ({\bf tHttpHeader} $\ast$ {\em header})}}
+\label{httpRequest_8c_d5d9232083e5890588d5e1840341a48b}
+
+
+
+
+Definition at line 52 of file httpRequest.c.\hypertarget{httpRequest_8c_29982601e2121cd75800202f5716c7f5}{
+\index{httpRequest.c@{httpRequest.c}!httpHeaderIsStarted@{httpHeaderIsStarted}}
+\index{httpHeaderIsStarted@{httpHeaderIsStarted}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{httpHeaderIsStarted}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char httpHeaderIsStarted ({\bf tHttpHeader} $\ast$ {\em header})}}
+\label{httpRequest_8c_29982601e2121cd75800202f5716c7f5}
+
+
+
+
+Definition at line 62 of file httpRequest.c.\hypertarget{httpRequest_8c_e18ae9e899c3c951308bb2ec4bd810f5}{
+\index{httpRequest.c@{httpRequest.c}!httpHeaderParseRequestLine@{httpHeaderParseRequestLine}}
+\index{httpHeaderParseRequestLine@{httpHeaderParseRequestLine}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{httpHeaderParseRequestLine}]{\setlength{\rightskip}{0pt plus 5cm}void httpHeaderParseRequestLine ({\bf tHttpHeader} $\ast$ {\em header}, \/ const char $\ast$ {\em line}, \/ unsigned int {\em len})}}
+\label{httpRequest_8c_e18ae9e899c3c951308bb2ec4bd810f5}
+
+
+
+
+Definition at line 47 of file httpRequest.c.
+
+\subsection{Variable Documentation}
+\hypertarget{httpRequest_8c_e7110ef069c94769a78296dc38ab86ca}{
+\index{httpRequest.c@{httpRequest.c}!httpRequest@{httpRequest}}
+\index{httpRequest@{httpRequest}!httpRequest.c@{httpRequest.c}}
+\subsubsection[{httpRequest}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf httpRequest}\mbox{[}8\mbox{]}\mbox{[}8\mbox{]}}}
+\label{httpRequest_8c_e7110ef069c94769a78296dc38ab86ca}
+
+
+\textbf{Initial value:}
+
+\begin{Code}\begin{verbatim} {
+ "OPTIONS",
+ "GET",
+ "HEAD",
+ "POST",
+ "PUT",
+ "DELETE",
+ "TRACE",
+ "CONNECT"
+}
+\end{verbatim}
+\end{Code}
+
+
+Definition at line 13 of file httpRequest.c.
\ No newline at end of file
diff --git a/.doc/latex/httpRequest_8h.tex b/.doc/latex/httpRequest_8h.tex
new file mode 100644
index 0000000..09bcc8b
--- /dev/null
+++ b/.doc/latex/httpRequest_8h.tex
@@ -0,0 +1,210 @@
+\hypertarget{httpRequest_8h}{
+\section{include/httpRequest.h File Reference}
+\label{httpRequest_8h}\index{include/httpRequest.h@{include/httpRequest.h}}
+}
+\subsection*{Data Structures}
+\begin{CompactItemize}
+\item
+struct \hyperlink{structtRequestLine}{tRequestLine}
+\item
+struct \hyperlink{structtHttpHeaderLine}{tHttpHeaderLine}
+\item
+struct \hyperlink{structtHttpHeader}{tHttpHeader}
+\item
+struct \hyperlink{structtHttpRequest}{tHttpRequest}
+\end{CompactItemize}
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{httpRequest_8h_bcd1460716fe0d7d7bbfab4d8df7431b}{HTTP\_\-REQ\_\-OPTIONS}~0
+\item
+\#define \hyperlink{httpRequest_8h_783bb94ef6eee3041b08244fcf43304f}{HTTP\_\-REQ\_\-GET}~1
+\item
+\#define \hyperlink{httpRequest_8h_99dd5b1289103eee62ebd66082f03e98}{HTTP\_\-REQ\_\-HEAD}~2
+\item
+\#define \hyperlink{httpRequest_8h_b113eaf10da1f4291202f81bea630f5b}{HTTP\_\-REQ\_\-POST}~3
+\item
+\#define \hyperlink{httpRequest_8h_af09691edc99a286c60427e1f390d7bd}{HTTP\_\-REQ\_\-PUT}~4
+\item
+\#define \hyperlink{httpRequest_8h_2894c25df3d2e54885cc414aa9731811}{HTTP\_\-REQ\_\-DELETE}~5
+\item
+\#define \hyperlink{httpRequest_8h_21cd537dafe8cd458fbb1eeb1208f4a8}{HTTP\_\-REQ\_\-TRACE}~6
+\item
+\#define \hyperlink{httpRequest_8h_5e49980e0d7d4080e2cececd00796981}{HTTP\_\-REQ\_\-CONNECT}~7
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{httpRequest_8h_59d765731e7d39f5583ef175950becb1}{getHttpRequest} (char $\ast$$\ast$, unsigned int $\ast$, \hyperlink{structtHttpRequest}{tHttpRequest} $\ast$)
+\item
+void \hyperlink{httpRequest_8h_1bba1865657c64c0e1971a45ee6117ab}{freeHttpRequest} (\hyperlink{structtHttpRequest}{tHttpRequest} $\ast$)
+\item
+void \hyperlink{httpRequest_8h_b55d3458cc9e50ef2a22731d910c6385}{freeHttpHeader} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$)
+\item
+unsigned char \hyperlink{httpRequest_8h_99eb3b2c1e06ee773fd3bb7da7e98ece}{httpHeaderIsStarted} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$)
+\item
+int \hyperlink{httpRequest_8h_91e1c62216e1370b68a87ffc8b120f0d}{httpHeaderIsComplete} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$)
+\item
+int \hyperlink{httpRequest_8h_07afde622816238d4424591269f5616a}{httpHeaderGet} (char $\ast$$\ast$, unsigned int $\ast$, \hyperlink{structtHttpHeader}{tHttpHeader} $\ast$)
+\item
+void \hyperlink{httpRequest_8h_b7ea84417c64cc894ef20f3fad58832f}{httpHeaderParseRequestLine} (\hyperlink{structtHttpHeader}{tHttpHeader} $\ast$, const char $\ast$, unsigned int)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+char \hyperlink{httpRequest_8h_e7110ef069c94769a78296dc38ab86ca}{httpRequest} \mbox{[}8\mbox{]}\mbox{[}8\mbox{]}
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{httpRequest_8h_5e49980e0d7d4080e2cececd00796981}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-CONNECT@{HTTP\_\-REQ\_\-CONNECT}}
+\index{HTTP\_\-REQ\_\-CONNECT@{HTTP\_\-REQ\_\-CONNECT}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-CONNECT}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-CONNECT~7}}
+\label{httpRequest_8h_5e49980e0d7d4080e2cececd00796981}
+
+
+
+
+Definition at line 11 of file httpRequest.h.\hypertarget{httpRequest_8h_2894c25df3d2e54885cc414aa9731811}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-DELETE@{HTTP\_\-REQ\_\-DELETE}}
+\index{HTTP\_\-REQ\_\-DELETE@{HTTP\_\-REQ\_\-DELETE}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-DELETE}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-DELETE~5}}
+\label{httpRequest_8h_2894c25df3d2e54885cc414aa9731811}
+
+
+
+
+Definition at line 9 of file httpRequest.h.\hypertarget{httpRequest_8h_783bb94ef6eee3041b08244fcf43304f}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-GET@{HTTP\_\-REQ\_\-GET}}
+\index{HTTP\_\-REQ\_\-GET@{HTTP\_\-REQ\_\-GET}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-GET}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-GET~1}}
+\label{httpRequest_8h_783bb94ef6eee3041b08244fcf43304f}
+
+
+
+
+Definition at line 5 of file httpRequest.h.\hypertarget{httpRequest_8h_99dd5b1289103eee62ebd66082f03e98}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-HEAD@{HTTP\_\-REQ\_\-HEAD}}
+\index{HTTP\_\-REQ\_\-HEAD@{HTTP\_\-REQ\_\-HEAD}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-HEAD}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-HEAD~2}}
+\label{httpRequest_8h_99dd5b1289103eee62ebd66082f03e98}
+
+
+
+
+Definition at line 6 of file httpRequest.h.\hypertarget{httpRequest_8h_bcd1460716fe0d7d7bbfab4d8df7431b}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-OPTIONS@{HTTP\_\-REQ\_\-OPTIONS}}
+\index{HTTP\_\-REQ\_\-OPTIONS@{HTTP\_\-REQ\_\-OPTIONS}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-OPTIONS}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-OPTIONS~0}}
+\label{httpRequest_8h_bcd1460716fe0d7d7bbfab4d8df7431b}
+
+
+
+
+Definition at line 4 of file httpRequest.h.\hypertarget{httpRequest_8h_b113eaf10da1f4291202f81bea630f5b}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-POST@{HTTP\_\-REQ\_\-POST}}
+\index{HTTP\_\-REQ\_\-POST@{HTTP\_\-REQ\_\-POST}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-POST}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-POST~3}}
+\label{httpRequest_8h_b113eaf10da1f4291202f81bea630f5b}
+
+
+
+
+Definition at line 7 of file httpRequest.h.\hypertarget{httpRequest_8h_af09691edc99a286c60427e1f390d7bd}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-PUT@{HTTP\_\-REQ\_\-PUT}}
+\index{HTTP\_\-REQ\_\-PUT@{HTTP\_\-REQ\_\-PUT}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-PUT}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-PUT~4}}
+\label{httpRequest_8h_af09691edc99a286c60427e1f390d7bd}
+
+
+
+
+Definition at line 8 of file httpRequest.h.\hypertarget{httpRequest_8h_21cd537dafe8cd458fbb1eeb1208f4a8}{
+\index{httpRequest.h@{httpRequest.h}!HTTP\_\-REQ\_\-TRACE@{HTTP\_\-REQ\_\-TRACE}}
+\index{HTTP\_\-REQ\_\-TRACE@{HTTP\_\-REQ\_\-TRACE}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{HTTP\_\-REQ\_\-TRACE}]{\setlength{\rightskip}{0pt plus 5cm}\#define HTTP\_\-REQ\_\-TRACE~6}}
+\label{httpRequest_8h_21cd537dafe8cd458fbb1eeb1208f4a8}
+
+
+
+
+Definition at line 10 of file httpRequest.h.
+
+\subsection{Function Documentation}
+\hypertarget{httpRequest_8h_b55d3458cc9e50ef2a22731d910c6385}{
+\index{httpRequest.h@{httpRequest.h}!freeHttpHeader@{freeHttpHeader}}
+\index{freeHttpHeader@{freeHttpHeader}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{freeHttpHeader}]{\setlength{\rightskip}{0pt plus 5cm}void freeHttpHeader ({\bf tHttpHeader} $\ast$)}}
+\label{httpRequest_8h_b55d3458cc9e50ef2a22731d910c6385}
+
+
+
+
+Definition at line 187 of file httpRequest.c.\hypertarget{httpRequest_8h_1bba1865657c64c0e1971a45ee6117ab}{
+\index{httpRequest.h@{httpRequest.h}!freeHttpRequest@{freeHttpRequest}}
+\index{freeHttpRequest@{freeHttpRequest}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{freeHttpRequest}]{\setlength{\rightskip}{0pt plus 5cm}void freeHttpRequest ({\bf tHttpRequest} $\ast$)}}
+\label{httpRequest_8h_1bba1865657c64c0e1971a45ee6117ab}
+
+
+
+
+Definition at line 217 of file httpRequest.c.\hypertarget{httpRequest_8h_59d765731e7d39f5583ef175950becb1}{
+\index{httpRequest.h@{httpRequest.h}!getHttpRequest@{getHttpRequest}}
+\index{getHttpRequest@{getHttpRequest}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{getHttpRequest}]{\setlength{\rightskip}{0pt plus 5cm}int getHttpRequest (char $\ast$$\ast$, \/ unsigned int $\ast$, \/ {\bf tHttpRequest} $\ast$)}}
+\label{httpRequest_8h_59d765731e7d39f5583ef175950becb1}
+
+
+
+
+Definition at line 162 of file httpRequest.c.\hypertarget{httpRequest_8h_07afde622816238d4424591269f5616a}{
+\index{httpRequest.h@{httpRequest.h}!httpHeaderGet@{httpHeaderGet}}
+\index{httpHeaderGet@{httpHeaderGet}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{httpHeaderGet}]{\setlength{\rightskip}{0pt plus 5cm}int httpHeaderGet (char $\ast$$\ast$, \/ unsigned int $\ast$, \/ {\bf tHttpHeader} $\ast$)}}
+\label{httpRequest_8h_07afde622816238d4424591269f5616a}
+
+
+
+
+Definition at line 85 of file httpRequest.c.\hypertarget{httpRequest_8h_91e1c62216e1370b68a87ffc8b120f0d}{
+\index{httpRequest.h@{httpRequest.h}!httpHeaderIsComplete@{httpHeaderIsComplete}}
+\index{httpHeaderIsComplete@{httpHeaderIsComplete}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{httpHeaderIsComplete}]{\setlength{\rightskip}{0pt plus 5cm}int httpHeaderIsComplete ({\bf tHttpHeader} $\ast$)}}
+\label{httpRequest_8h_91e1c62216e1370b68a87ffc8b120f0d}
+
+
+
+
+Definition at line 52 of file httpRequest.c.\hypertarget{httpRequest_8h_99eb3b2c1e06ee773fd3bb7da7e98ece}{
+\index{httpRequest.h@{httpRequest.h}!httpHeaderIsStarted@{httpHeaderIsStarted}}
+\index{httpHeaderIsStarted@{httpHeaderIsStarted}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{httpHeaderIsStarted}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char httpHeaderIsStarted ({\bf tHttpHeader} $\ast$)}}
+\label{httpRequest_8h_99eb3b2c1e06ee773fd3bb7da7e98ece}
+
+
+
+
+Definition at line 62 of file httpRequest.c.\hypertarget{httpRequest_8h_b7ea84417c64cc894ef20f3fad58832f}{
+\index{httpRequest.h@{httpRequest.h}!httpHeaderParseRequestLine@{httpHeaderParseRequestLine}}
+\index{httpHeaderParseRequestLine@{httpHeaderParseRequestLine}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{httpHeaderParseRequestLine}]{\setlength{\rightskip}{0pt plus 5cm}void httpHeaderParseRequestLine ({\bf tHttpHeader} $\ast$, \/ const char $\ast$, \/ unsigned {\em int})}}
+\label{httpRequest_8h_b7ea84417c64cc894ef20f3fad58832f}
+
+
+
+
+Definition at line 47 of file httpRequest.c.
+
+\subsection{Variable Documentation}
+\hypertarget{httpRequest_8h_e7110ef069c94769a78296dc38ab86ca}{
+\index{httpRequest.h@{httpRequest.h}!httpRequest@{httpRequest}}
+\index{httpRequest@{httpRequest}!httpRequest.h@{httpRequest.h}}
+\subsubsection[{httpRequest}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf httpRequest}\mbox{[}8\mbox{]}\mbox{[}8\mbox{]}}}
+\label{httpRequest_8h_e7110ef069c94769a78296dc38ab86ca}
+
+
+
+
+Definition at line 13 of file httpRequest.c.
\ No newline at end of file
diff --git a/.doc/latex/logRotate_8c.tex b/.doc/latex/logRotate_8c.tex
new file mode 100644
index 0000000..c079d3d
--- /dev/null
+++ b/.doc/latex/logRotate_8c.tex
@@ -0,0 +1,47 @@
+\hypertarget{logRotate_8c}{
+\section{system/logRotate.c File Reference}
+\label{logRotate_8c}\index{system/logRotate.c@{system/logRotate.c}}
+}
+{\tt \#include $<$sys/select.h$>$}\par
+{\tt \#include $<$time.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$sys/types.h$>$}\par
+{\tt \#include $<$sys/wait.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$syslog.h$>$}\par
+{\tt \#include $<$errno.h$>$}\par
+{\tt \#include \char`\"{}../include/monitor.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{logRotate_8c_70a3ebded819019c99ad001f29e082de}{logRotate} (FILE $\ast$$\ast$handle, char $\ast$path, char $\ast$pattern)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+int \hyperlink{logRotate_8c_0b2caeb4b6f130be43e5a2f0267dd453}{verbose}
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{logRotate_8c_70a3ebded819019c99ad001f29e082de}{
+\index{logRotate.c@{logRotate.c}!logRotate@{logRotate}}
+\index{logRotate@{logRotate}!logRotate.c@{logRotate.c}}
+\subsubsection[{logRotate}]{\setlength{\rightskip}{0pt plus 5cm}void logRotate (FILE $\ast$$\ast$ {\em handle}, \/ char $\ast$ {\em path}, \/ char $\ast$ {\em pattern})}}
+\label{logRotate_8c_70a3ebded819019c99ad001f29e082de}
+
+
+
+
+Definition at line 17 of file logRotate.c.
+
+\subsection{Variable Documentation}
+\hypertarget{logRotate_8c_0b2caeb4b6f130be43e5a2f0267dd453}{
+\index{logRotate.c@{logRotate.c}!verbose@{verbose}}
+\index{verbose@{verbose}!logRotate.c@{logRotate.c}}
+\subsubsection[{verbose}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf verbose}}}
+\label{logRotate_8c_0b2caeb4b6f130be43e5a2f0267dd453}
+
+
diff --git a/.doc/latex/logRotate_8h.tex b/.doc/latex/logRotate_8h.tex
new file mode 100644
index 0000000..be8ecd7
--- /dev/null
+++ b/.doc/latex/logRotate_8h.tex
@@ -0,0 +1,22 @@
+\hypertarget{logRotate_8h}{
+\section{include/logRotate.h File Reference}
+\label{logRotate_8h}\index{include/logRotate.h@{include/logRotate.h}}
+}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{logRotate_8h_82df920a9975d5484d681c6f9009da38}{logRotate} (FILE $\ast$$\ast$handle, char $\ast$logPath, char $\ast$logNamePattern)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{logRotate_8h_82df920a9975d5484d681c6f9009da38}{
+\index{logRotate.h@{logRotate.h}!logRotate@{logRotate}}
+\index{logRotate@{logRotate}!logRotate.h@{logRotate.h}}
+\subsubsection[{logRotate}]{\setlength{\rightskip}{0pt plus 5cm}void logRotate (FILE $\ast$$\ast$ {\em handle}, \/ char $\ast$ {\em logPath}, \/ char $\ast$ {\em logNamePattern})}}
+\label{logRotate_8h_82df920a9975d5484d681c6f9009da38}
+
+
+
+
+Definition at line 17 of file logRotate.c.
\ No newline at end of file
diff --git a/.doc/latex/monitor_8c.tex b/.doc/latex/monitor_8c.tex
new file mode 100644
index 0000000..96486f0
--- /dev/null
+++ b/.doc/latex/monitor_8c.tex
@@ -0,0 +1,108 @@
+\hypertarget{monitor_8c}{
+\section{system/monitor.c File Reference}
+\label{monitor_8c}\index{system/monitor.c@{system/monitor.c}}
+}
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$sys/wait.h$>$}\par
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$errno.h$>$}\par
+{\tt \#include $<$signal.h$>$}\par
+{\tt \#include $<$stdarg.h$>$}\par
+{\tt \#include \char`\"{}../include/signalHandling.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/monitor.h\char`\"{}}\par
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{monitor_8c_d2e5f556fda8453832fa6b5f7c92bc85}{MONITORCMD}~\char`\"{}/usr/bin/monitor\char`\"{}
+\item
+\#define \hyperlink{monitor_8c_630eb7604f0fe1161c6165cec5200b3d}{MONITORTYPE}~\char`\"{}test\char`\"{}
+\item
+\#define \hyperlink{monitor_8c_d79291fa6d09c30b5ad1c10c8a5d647f}{MONITORNAME}~\char`\"{}virtualitemlogreceiver\char`\"{}
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{monitor_8c_afab1757e8c3bc9c5143490b256cb684}{monitor} (unsigned int sev, const char $\ast$pattern, const char $\ast$message)
+\item
+int \hyperlink{monitor_8c_13e7bf0022db0d9f5dd6aeb82ec69999}{syslogMonitor} (unsigned int logLvl, unsigned int sev, const char $\ast$pattern, const char $\ast$message,...)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+const char \hyperlink{monitor_8c_8142dc3c72610140dfcacc52de5881fd}{severity} \mbox{[}$\,$\mbox{]}\mbox{[}10\mbox{]}
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{monitor_8c_d2e5f556fda8453832fa6b5f7c92bc85}{
+\index{monitor.c@{monitor.c}!MONITORCMD@{MONITORCMD}}
+\index{MONITORCMD@{MONITORCMD}!monitor.c@{monitor.c}}
+\subsubsection[{MONITORCMD}]{\setlength{\rightskip}{0pt plus 5cm}\#define MONITORCMD~\char`\"{}/usr/bin/monitor\char`\"{}}}
+\label{monitor_8c_d2e5f556fda8453832fa6b5f7c92bc85}
+
+
+
+
+Definition at line 13 of file monitor.c.\hypertarget{monitor_8c_d79291fa6d09c30b5ad1c10c8a5d647f}{
+\index{monitor.c@{monitor.c}!MONITORNAME@{MONITORNAME}}
+\index{MONITORNAME@{MONITORNAME}!monitor.c@{monitor.c}}
+\subsubsection[{MONITORNAME}]{\setlength{\rightskip}{0pt plus 5cm}\#define MONITORNAME~\char`\"{}virtualitemlogreceiver\char`\"{}}}
+\label{monitor_8c_d79291fa6d09c30b5ad1c10c8a5d647f}
+
+
+
+
+Definition at line 15 of file monitor.c.\hypertarget{monitor_8c_630eb7604f0fe1161c6165cec5200b3d}{
+\index{monitor.c@{monitor.c}!MONITORTYPE@{MONITORTYPE}}
+\index{MONITORTYPE@{MONITORTYPE}!monitor.c@{monitor.c}}
+\subsubsection[{MONITORTYPE}]{\setlength{\rightskip}{0pt plus 5cm}\#define MONITORTYPE~\char`\"{}test\char`\"{}}}
+\label{monitor_8c_630eb7604f0fe1161c6165cec5200b3d}
+
+
+
+
+Definition at line 14 of file monitor.c.
+
+\subsection{Function Documentation}
+\hypertarget{monitor_8c_afab1757e8c3bc9c5143490b256cb684}{
+\index{monitor.c@{monitor.c}!monitor@{monitor}}
+\index{monitor@{monitor}!monitor.c@{monitor.c}}
+\subsubsection[{monitor}]{\setlength{\rightskip}{0pt plus 5cm}int monitor (unsigned int {\em sev}, \/ const char $\ast$ {\em pattern}, \/ const char $\ast$ {\em message})}}
+\label{monitor_8c_afab1757e8c3bc9c5143490b256cb684}
+
+
+
+
+Definition at line 26 of file monitor.c.\hypertarget{monitor_8c_13e7bf0022db0d9f5dd6aeb82ec69999}{
+\index{monitor.c@{monitor.c}!syslogMonitor@{syslogMonitor}}
+\index{syslogMonitor@{syslogMonitor}!monitor.c@{monitor.c}}
+\subsubsection[{syslogMonitor}]{\setlength{\rightskip}{0pt plus 5cm}int syslogMonitor (unsigned int {\em logLvl}, \/ unsigned int {\em sev}, \/ const char $\ast$ {\em pattern}, \/ const char $\ast$ {\em message}, \/ {\em ...})}}
+\label{monitor_8c_13e7bf0022db0d9f5dd6aeb82ec69999}
+
+
+
+
+Definition at line 66 of file monitor.c.
+
+\subsection{Variable Documentation}
+\hypertarget{monitor_8c_8142dc3c72610140dfcacc52de5881fd}{
+\index{monitor.c@{monitor.c}!severity@{severity}}
+\index{severity@{severity}!monitor.c@{monitor.c}}
+\subsubsection[{severity}]{\setlength{\rightskip}{0pt plus 5cm}const char {\bf severity}\mbox{[}$\,$\mbox{]}\mbox{[}10\mbox{]}}}
+\label{monitor_8c_8142dc3c72610140dfcacc52de5881fd}
+
+
+\textbf{Initial value:}
+
+\begin{Code}\begin{verbatim} {
+ "info",
+ "warning",
+ "critical",
+ "failure"
+}
+\end{verbatim}
+\end{Code}
+
+
+Definition at line 17 of file monitor.c.
\ No newline at end of file
diff --git a/.doc/latex/monitor_8h.tex b/.doc/latex/monitor_8h.tex
new file mode 100644
index 0000000..8f13930
--- /dev/null
+++ b/.doc/latex/monitor_8h.tex
@@ -0,0 +1,81 @@
+\hypertarget{monitor_8h}{
+\section{include/monitor.h File Reference}
+\label{monitor_8h}\index{include/monitor.h@{include/monitor.h}}
+}
+{\tt \#include $<$syslog.h$>$}\par
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{monitor_8h_d702c7f3311c0b76ee05d7efd27c87b2}{MON\_\-INFO}~0
+\item
+\#define \hyperlink{monitor_8h_8eabf82310c059cc80dceaa533a74182}{MON\_\-WARNING}~1
+\item
+\#define \hyperlink{monitor_8h_b11b9abcce9ac28426ff81c206e28fc8}{MON\_\-CRITICAL}~2
+\item
+\#define \hyperlink{monitor_8h_c41f84ee1d999369a9496a2c49c4181c}{MON\_\-FAILURE}~3
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{monitor_8h_afab1757e8c3bc9c5143490b256cb684}{monitor} (unsigned int sev, const char $\ast$pattern, const char $\ast$message)
+\item
+int \hyperlink{monitor_8h_5d332cf84a9d6dd9c77382a74960cccf}{syslogMonitor} (unsigned int logLvl, unsigned int sev, const char $\ast$pattern, const char $\ast$message,...) \_\-\_\-attribute\_\-\_\-((format(printf
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{monitor_8h_b11b9abcce9ac28426ff81c206e28fc8}{
+\index{monitor.h@{monitor.h}!MON\_\-CRITICAL@{MON\_\-CRITICAL}}
+\index{MON\_\-CRITICAL@{MON\_\-CRITICAL}!monitor.h@{monitor.h}}
+\subsubsection[{MON\_\-CRITICAL}]{\setlength{\rightskip}{0pt plus 5cm}\#define MON\_\-CRITICAL~2}}
+\label{monitor_8h_b11b9abcce9ac28426ff81c206e28fc8}
+
+
+
+
+Definition at line 8 of file monitor.h.\hypertarget{monitor_8h_c41f84ee1d999369a9496a2c49c4181c}{
+\index{monitor.h@{monitor.h}!MON\_\-FAILURE@{MON\_\-FAILURE}}
+\index{MON\_\-FAILURE@{MON\_\-FAILURE}!monitor.h@{monitor.h}}
+\subsubsection[{MON\_\-FAILURE}]{\setlength{\rightskip}{0pt plus 5cm}\#define MON\_\-FAILURE~3}}
+\label{monitor_8h_c41f84ee1d999369a9496a2c49c4181c}
+
+
+
+
+Definition at line 9 of file monitor.h.\hypertarget{monitor_8h_d702c7f3311c0b76ee05d7efd27c87b2}{
+\index{monitor.h@{monitor.h}!MON\_\-INFO@{MON\_\-INFO}}
+\index{MON\_\-INFO@{MON\_\-INFO}!monitor.h@{monitor.h}}
+\subsubsection[{MON\_\-INFO}]{\setlength{\rightskip}{0pt plus 5cm}\#define MON\_\-INFO~0}}
+\label{monitor_8h_d702c7f3311c0b76ee05d7efd27c87b2}
+
+
+
+
+Definition at line 6 of file monitor.h.\hypertarget{monitor_8h_8eabf82310c059cc80dceaa533a74182}{
+\index{monitor.h@{monitor.h}!MON\_\-WARNING@{MON\_\-WARNING}}
+\index{MON\_\-WARNING@{MON\_\-WARNING}!monitor.h@{monitor.h}}
+\subsubsection[{MON\_\-WARNING}]{\setlength{\rightskip}{0pt plus 5cm}\#define MON\_\-WARNING~1}}
+\label{monitor_8h_8eabf82310c059cc80dceaa533a74182}
+
+
+
+
+Definition at line 7 of file monitor.h.
+
+\subsection{Function Documentation}
+\hypertarget{monitor_8h_afab1757e8c3bc9c5143490b256cb684}{
+\index{monitor.h@{monitor.h}!monitor@{monitor}}
+\index{monitor@{monitor}!monitor.h@{monitor.h}}
+\subsubsection[{monitor}]{\setlength{\rightskip}{0pt plus 5cm}int monitor (unsigned int {\em sev}, \/ const char $\ast$ {\em pattern}, \/ const char $\ast$ {\em message})}}
+\label{monitor_8h_afab1757e8c3bc9c5143490b256cb684}
+
+
+
+
+Definition at line 26 of file monitor.c.\hypertarget{monitor_8h_5d332cf84a9d6dd9c77382a74960cccf}{
+\index{monitor.h@{monitor.h}!syslogMonitor@{syslogMonitor}}
+\index{syslogMonitor@{syslogMonitor}!monitor.h@{monitor.h}}
+\subsubsection[{syslogMonitor}]{\setlength{\rightskip}{0pt plus 5cm}int syslogMonitor (unsigned int {\em logLvl}, \/ unsigned int {\em sev}, \/ const char $\ast$ {\em pattern}, \/ const char $\ast$ {\em message}, \/ {\em ...})}}
+\label{monitor_8h_5d332cf84a9d6dd9c77382a74960cccf}
+
+
diff --git a/.doc/latex/refman.tex b/.doc/latex/refman.tex
new file mode 100644
index 0000000..0b0f019
--- /dev/null
+++ b/.doc/latex/refman.tex
@@ -0,0 +1,86 @@
+\documentclass[a4paper]{book}
+\usepackage{a4wide}
+\usepackage{makeidx}
+\usepackage{fancyhdr}
+\usepackage{graphicx}
+\usepackage{multicol}
+\usepackage{float}
+\usepackage{textcomp}
+\usepackage{alltt}
+\usepackage{times}
+\usepackage{ifpdf}
+\ifpdf
+\usepackage[pdftex,
+ pagebackref=true,
+ colorlinks=true,
+ linkcolor=blue,
+ unicode
+ ]{hyperref}
+\else
+\usepackage[ps2pdf,
+ pagebackref=true,
+ colorlinks=true,
+ linkcolor=blue,
+ unicode
+ ]{hyperref}
+\usepackage{pspicture}
+\fi
+\usepackage[utf8]{inputenc}
+\usepackage{doxygen}
+\makeindex
+\setcounter{tocdepth}{3}
+\renewcommand{\footrulewidth}{0.4pt}
+\begin{document}
+\begin{titlepage}
+\vspace*{7cm}
+\begin{center}
+{\Large xmlrpc \\[1ex]\large 0.0.1 }\\
+\vspace*{1cm}
+{\large Generated by Doxygen 1.5.8}\\
+\vspace*{0.5cm}
+{\small Sun Oct 10 01:24:35 2010}\\
+\end{center}
+\end{titlepage}
+\clearemptydoublepage
+\pagenumbering{roman}
+\tableofcontents
+\clearemptydoublepage
+\pagenumbering{arabic}
+\chapter{Data Structure Index}
+\input{annotated}
+\chapter{File Index}
+\input{files}
+\chapter{Data Structure Documentation}
+\input{structtAppConfig}
+\include{structtClient}
+\include{structtHttpHeader}
+\include{structtHttpHeaderLine}
+\include{structtHttpRequest}
+\include{structtRequestLine}
+\include{structtServer}
+\chapter{File Documentation}
+\input{appConfig_8h}
+\include{client_8h}
+\include{daemonize_8h}
+\include{httpRequest_8h}
+\include{logRotate_8h}
+\include{monitor_8h}
+\include{server_8h}
+\include{signalHandling_8h}
+\include{socket_8h}
+\include{writeBuffer_8h}
+\include{clientClose_8c}
+\include{clientRead_8c}
+\include{writeBuffer_8c}
+\include{httpRequest_8c}
+\include{serverInit_8c}
+\include{serverRun_8c}
+\include{serverShutdown_8c}
+\include{daemonize_8c}
+\include{handleCmdLine_8c}
+\include{logRotate_8c}
+\include{monitor_8c}
+\include{signalHandling_8c}
+\include{socket_8c}
+\printindex
+\end{document}
diff --git a/.doc/latex/serverInit_8c.tex b/.doc/latex/serverInit_8c.tex
new file mode 100644
index 0000000..ee3d9ef
--- /dev/null
+++ b/.doc/latex/serverInit_8c.tex
@@ -0,0 +1,29 @@
+\hypertarget{serverInit_8c}{
+\section{server/serverInit.c File Reference}
+\label{serverInit_8c}\index{server/serverInit.c@{server/serverInit.c}}
+}
+{\tt \#include $<$sys/select.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include \char`\"{}../include/server.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/socket.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/monitor.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/logRotate.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{serverInit_8c_68050069ed3a2e05cb02440090c89a1f}{serverInit} (\hyperlink{structtServer}{tServer} $\ast$server, unsigned int port, unsigned int pending, const char $\ast$logPath, const char $\ast$namePat)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{serverInit_8c_68050069ed3a2e05cb02440090c89a1f}{
+\index{serverInit.c@{serverInit.c}!serverInit@{serverInit}}
+\index{serverInit@{serverInit}!serverInit.c@{serverInit.c}}
+\subsubsection[{serverInit}]{\setlength{\rightskip}{0pt plus 5cm}void serverInit ({\bf tServer} $\ast$ {\em server}, \/ unsigned int {\em port}, \/ unsigned int {\em pending}, \/ const char $\ast$ {\em logPath}, \/ const char $\ast$ {\em namePat})}}
+\label{serverInit_8c_68050069ed3a2e05cb02440090c89a1f}
+
+
+
+
+Definition at line 11 of file serverInit.c.
\ No newline at end of file
diff --git a/.doc/latex/serverRun_8c.tex b/.doc/latex/serverRun_8c.tex
new file mode 100644
index 0000000..9a9bf4d
--- /dev/null
+++ b/.doc/latex/serverRun_8c.tex
@@ -0,0 +1,92 @@
+\hypertarget{serverRun_8c}{
+\section{server/serverRun.c File Reference}
+\label{serverRun_8c}\index{server/serverRun.c@{server/serverRun.c}}
+}
+{\tt \#include $<$sys/select.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$errno.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$expat.h$>$}\par
+{\tt \#include \char`\"{}../include/appConfig.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/server.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/client.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/socket.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/monitor.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/logRotate.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/signalHandling.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/httpRequest.h\char`\"{}}\par
+\subsection*{Defines}
+\begin{CompactItemize}
+\item
+\#define \hyperlink{serverRun_8c_98a2366f9ef44f0d3eee7d33981bbe8a}{RESPONSE}~\char`\"{} 200 OK$\backslash$r$\backslash$nServer: xmlrpc$\backslash$r$\backslash$nStatus: 200$\backslash$r$\backslash$nContent-Length: 10$\backslash$r$\backslash$nContent-Type: text/plain$\backslash$r$\backslash$n$\backslash$r$\backslash$n0123456789\char`\"{}
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void XMLCALL \hyperlink{serverRun_8c_73425567b97c64e9af77c626e0069f67}{start} (void $\ast$data, const char $\ast$el, const char $\ast$$\ast$attr)
+\item
+void XMLCALL \hyperlink{serverRun_8c_1e60190f250d3f699f3671c759e6fe36}{end} (void $\ast$data, const char $\ast$el)
+\item
+void \hyperlink{serverRun_8c_208ea34b5a69f6ff0d48ed85c9a6f9eb}{serverRun} (\hyperlink{structtServer}{tServer} $\ast$server)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+int \hyperlink{serverRun_8c_c66dbe0e082fd3cc29bc1572a4dccc09}{Depth}
+\end{CompactItemize}
+
+
+\subsection{Define Documentation}
+\hypertarget{serverRun_8c_98a2366f9ef44f0d3eee7d33981bbe8a}{
+\index{serverRun.c@{serverRun.c}!RESPONSE@{RESPONSE}}
+\index{RESPONSE@{RESPONSE}!serverRun.c@{serverRun.c}}
+\subsubsection[{RESPONSE}]{\setlength{\rightskip}{0pt plus 5cm}\#define RESPONSE~\char`\"{} 200 OK$\backslash$r$\backslash$nServer: xmlrpc$\backslash$r$\backslash$nStatus: 200$\backslash$r$\backslash$nContent-Length: 10$\backslash$r$\backslash$nContent-Type: text/plain$\backslash$r$\backslash$n$\backslash$r$\backslash$n0123456789\char`\"{}}}
+\label{serverRun_8c_98a2366f9ef44f0d3eee7d33981bbe8a}
+
+
+
+
+Definition at line 18 of file serverRun.c.
+
+\subsection{Function Documentation}
+\hypertarget{serverRun_8c_1e60190f250d3f699f3671c759e6fe36}{
+\index{serverRun.c@{serverRun.c}!end@{end}}
+\index{end@{end}!serverRun.c@{serverRun.c}}
+\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}void XMLCALL end (void $\ast$ {\em data}, \/ const char $\ast$ {\em el})}}
+\label{serverRun_8c_1e60190f250d3f699f3671c759e6fe36}
+
+
+
+
+Definition at line 40 of file serverRun.c.\hypertarget{serverRun_8c_208ea34b5a69f6ff0d48ed85c9a6f9eb}{
+\index{serverRun.c@{serverRun.c}!serverRun@{serverRun}}
+\index{serverRun@{serverRun}!serverRun.c@{serverRun.c}}
+\subsubsection[{serverRun}]{\setlength{\rightskip}{0pt plus 5cm}void serverRun ({\bf tServer} $\ast$ {\em server})}}
+\label{serverRun_8c_208ea34b5a69f6ff0d48ed85c9a6f9eb}
+
+
+
+
+Definition at line 50 of file serverRun.c.\hypertarget{serverRun_8c_73425567b97c64e9af77c626e0069f67}{
+\index{serverRun.c@{serverRun.c}!start@{start}}
+\index{start@{start}!serverRun.c@{serverRun.c}}
+\subsubsection[{start}]{\setlength{\rightskip}{0pt plus 5cm}void XMLCALL start (void $\ast$ {\em data}, \/ const char $\ast$ {\em el}, \/ const char $\ast$$\ast$ {\em attr})}}
+\label{serverRun_8c_73425567b97c64e9af77c626e0069f67}
+
+
+
+
+Definition at line 23 of file serverRun.c.
+
+\subsection{Variable Documentation}
+\hypertarget{serverRun_8c_c66dbe0e082fd3cc29bc1572a4dccc09}{
+\index{serverRun.c@{serverRun.c}!Depth@{Depth}}
+\index{Depth@{Depth}!serverRun.c@{serverRun.c}}
+\subsubsection[{Depth}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf Depth}}}
+\label{serverRun_8c_c66dbe0e082fd3cc29bc1572a4dccc09}
+
+
+
+
+Definition at line 20 of file serverRun.c.
\ No newline at end of file
diff --git a/.doc/latex/serverShutdown_8c.tex b/.doc/latex/serverShutdown_8c.tex
new file mode 100644
index 0000000..81322aa
--- /dev/null
+++ b/.doc/latex/serverShutdown_8c.tex
@@ -0,0 +1,32 @@
+\hypertarget{serverShutdown_8c}{
+\section{server/serverShutdown.c File Reference}
+\label{serverShutdown_8c}\index{server/serverShutdown.c@{server/serverShutdown.c}}
+}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$sys/select.h$>$}\par
+{\tt \#include $<$sys/socket.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$errno.h$>$}\par
+{\tt \#include \char`\"{}../include/server.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/monitor.h\char`\"{}}\par
+{\tt \#include \char`\"{}../include/writeBuffer.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{serverShutdown_8c_50decfdd3550b2490a1b9448a313cbf9}{serverShutdown} (\hyperlink{structtServer}{tServer} $\ast$server)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{serverShutdown_8c_50decfdd3550b2490a1b9448a313cbf9}{
+\index{serverShutdown.c@{serverShutdown.c}!serverShutdown@{serverShutdown}}
+\index{serverShutdown@{serverShutdown}!serverShutdown.c@{serverShutdown.c}}
+\subsubsection[{serverShutdown}]{\setlength{\rightskip}{0pt plus 5cm}void serverShutdown ({\bf tServer} $\ast$ {\em server})}}
+\label{serverShutdown_8c_50decfdd3550b2490a1b9448a313cbf9}
+
+
+
+
+Definition at line 15 of file serverShutdown.c.
\ No newline at end of file
diff --git a/.doc/latex/server_8h.tex b/.doc/latex/server_8h.tex
new file mode 100644
index 0000000..29b49cd
--- /dev/null
+++ b/.doc/latex/server_8h.tex
@@ -0,0 +1,52 @@
+\hypertarget{server_8h}{
+\section{include/server.h File Reference}
+\label{server_8h}\index{include/server.h@{include/server.h}}
+}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$sys/select.h$>$}\par
+{\tt \#include \char`\"{}client.h\char`\"{}}\par
+\subsection*{Data Structures}
+\begin{CompactItemize}
+\item
+struct \hyperlink{structtServer}{tServer}
+\end{CompactItemize}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{server_8h_50decfdd3550b2490a1b9448a313cbf9}{serverShutdown} (\hyperlink{structtServer}{tServer} $\ast$server)
+\item
+void \hyperlink{server_8h_68050069ed3a2e05cb02440090c89a1f}{serverInit} (\hyperlink{structtServer}{tServer} $\ast$server, unsigned int port, unsigned int pending, const char $\ast$logPath, const char $\ast$namePat)
+\item
+void \hyperlink{server_8h_208ea34b5a69f6ff0d48ed85c9a6f9eb}{serverRun} (\hyperlink{structtServer}{tServer} $\ast$server)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{server_8h_68050069ed3a2e05cb02440090c89a1f}{
+\index{server.h@{server.h}!serverInit@{serverInit}}
+\index{serverInit@{serverInit}!server.h@{server.h}}
+\subsubsection[{serverInit}]{\setlength{\rightskip}{0pt plus 5cm}void serverInit ({\bf tServer} $\ast$ {\em server}, \/ unsigned int {\em port}, \/ unsigned int {\em pending}, \/ const char $\ast$ {\em logPath}, \/ const char $\ast$ {\em namePat})}}
+\label{server_8h_68050069ed3a2e05cb02440090c89a1f}
+
+
+
+
+Definition at line 11 of file serverInit.c.\hypertarget{server_8h_208ea34b5a69f6ff0d48ed85c9a6f9eb}{
+\index{server.h@{server.h}!serverRun@{serverRun}}
+\index{serverRun@{serverRun}!server.h@{server.h}}
+\subsubsection[{serverRun}]{\setlength{\rightskip}{0pt plus 5cm}void serverRun ({\bf tServer} $\ast$ {\em server})}}
+\label{server_8h_208ea34b5a69f6ff0d48ed85c9a6f9eb}
+
+
+
+
+Definition at line 50 of file serverRun.c.\hypertarget{server_8h_50decfdd3550b2490a1b9448a313cbf9}{
+\index{server.h@{server.h}!serverShutdown@{serverShutdown}}
+\index{serverShutdown@{serverShutdown}!server.h@{server.h}}
+\subsubsection[{serverShutdown}]{\setlength{\rightskip}{0pt plus 5cm}void serverShutdown ({\bf tServer} $\ast$ {\em server})}}
+\label{server_8h_50decfdd3550b2490a1b9448a313cbf9}
+
+
+
+
+Definition at line 15 of file serverShutdown.c.
\ No newline at end of file
diff --git a/.doc/latex/signalHandling_8c.tex b/.doc/latex/signalHandling_8c.tex
new file mode 100644
index 0000000..f14af11
--- /dev/null
+++ b/.doc/latex/signalHandling_8c.tex
@@ -0,0 +1,52 @@
+\hypertarget{signalHandling_8c}{
+\section{system/signalHandling.c File Reference}
+\label{signalHandling_8c}\index{system/signalHandling.c@{system/signalHandling.c}}
+}
+{\tt \#include $<$signal.h$>$}\par
+{\tt \#include \char`\"{}../include/monitor.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{signalHandling_8c_64612b9588ed0fb05d70680db02b3630}{terminate} (int signum)
+\item
+void \hyperlink{signalHandling_8c_1de31bdef82f181f8045b94ae0933916}{init\_\-signals} (void)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+volatile int \hyperlink{signalHandling_8c_960e985a396acaabb1bbed4f15668ade}{doShutdown}
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{signalHandling_8c_1de31bdef82f181f8045b94ae0933916}{
+\index{signalHandling.c@{signalHandling.c}!init\_\-signals@{init\_\-signals}}
+\index{init\_\-signals@{init\_\-signals}!signalHandling.c@{signalHandling.c}}
+\subsubsection[{init\_\-signals}]{\setlength{\rightskip}{0pt plus 5cm}void init\_\-signals (void)}}
+\label{signalHandling_8c_1de31bdef82f181f8045b94ae0933916}
+
+
+
+
+Definition at line 15 of file signalHandling.c.\hypertarget{signalHandling_8c_64612b9588ed0fb05d70680db02b3630}{
+\index{signalHandling.c@{signalHandling.c}!terminate@{terminate}}
+\index{terminate@{terminate}!signalHandling.c@{signalHandling.c}}
+\subsubsection[{terminate}]{\setlength{\rightskip}{0pt plus 5cm}void terminate (int {\em signum})}}
+\label{signalHandling_8c_64612b9588ed0fb05d70680db02b3630}
+
+
+
+
+Definition at line 7 of file signalHandling.c.
+
+\subsection{Variable Documentation}
+\hypertarget{signalHandling_8c_960e985a396acaabb1bbed4f15668ade}{
+\index{signalHandling.c@{signalHandling.c}!doShutdown@{doShutdown}}
+\index{doShutdown@{doShutdown}!signalHandling.c@{signalHandling.c}}
+\subsubsection[{doShutdown}]{\setlength{\rightskip}{0pt plus 5cm}volatile int {\bf doShutdown}}}
+\label{signalHandling_8c_960e985a396acaabb1bbed4f15668ade}
+
+
+
+
+Definition at line 5 of file signalHandling.c.
\ No newline at end of file
diff --git a/.doc/latex/signalHandling_8h.tex b/.doc/latex/signalHandling_8h.tex
new file mode 100644
index 0000000..764074b
--- /dev/null
+++ b/.doc/latex/signalHandling_8h.tex
@@ -0,0 +1,50 @@
+\hypertarget{signalHandling_8h}{
+\section{include/signalHandling.h File Reference}
+\label{signalHandling_8h}\index{include/signalHandling.h@{include/signalHandling.h}}
+}
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+void \hyperlink{signalHandling_8h_64612b9588ed0fb05d70680db02b3630}{terminate} (int signum)
+\item
+void \hyperlink{signalHandling_8h_1de31bdef82f181f8045b94ae0933916}{init\_\-signals} (void)
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+volatile int \hyperlink{signalHandling_8h_960e985a396acaabb1bbed4f15668ade}{doShutdown}
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{signalHandling_8h_1de31bdef82f181f8045b94ae0933916}{
+\index{signalHandling.h@{signalHandling.h}!init\_\-signals@{init\_\-signals}}
+\index{init\_\-signals@{init\_\-signals}!signalHandling.h@{signalHandling.h}}
+\subsubsection[{init\_\-signals}]{\setlength{\rightskip}{0pt plus 5cm}void init\_\-signals (void)}}
+\label{signalHandling_8h_1de31bdef82f181f8045b94ae0933916}
+
+
+
+
+Definition at line 15 of file signalHandling.c.\hypertarget{signalHandling_8h_64612b9588ed0fb05d70680db02b3630}{
+\index{signalHandling.h@{signalHandling.h}!terminate@{terminate}}
+\index{terminate@{terminate}!signalHandling.h@{signalHandling.h}}
+\subsubsection[{terminate}]{\setlength{\rightskip}{0pt plus 5cm}void terminate (int {\em signum})}}
+\label{signalHandling_8h_64612b9588ed0fb05d70680db02b3630}
+
+
+
+
+Definition at line 7 of file signalHandling.c.
+
+\subsection{Variable Documentation}
+\hypertarget{signalHandling_8h_960e985a396acaabb1bbed4f15668ade}{
+\index{signalHandling.h@{signalHandling.h}!doShutdown@{doShutdown}}
+\index{doShutdown@{doShutdown}!signalHandling.h@{signalHandling.h}}
+\subsubsection[{doShutdown}]{\setlength{\rightskip}{0pt plus 5cm}volatile int {\bf doShutdown}}}
+\label{signalHandling_8h_960e985a396acaabb1bbed4f15668ade}
+
+
+
+
+Definition at line 5 of file signalHandling.c.
\ No newline at end of file
diff --git a/.doc/latex/socket_8c.tex b/.doc/latex/socket_8c.tex
new file mode 100644
index 0000000..788e9f5
--- /dev/null
+++ b/.doc/latex/socket_8c.tex
@@ -0,0 +1,56 @@
+\hypertarget{socket_8c}{
+\section{system/socket.c File Reference}
+\label{socket_8c}\index{system/socket.c@{system/socket.c}}
+}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$sys/socket.h$>$}\par
+{\tt \#include $<$arpa/inet.h$>$}\par
+{\tt \#include $<$stdlib.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+{\tt \#include $<$unistd.h$>$}\par
+{\tt \#include $<$errno.h$>$}\par
+{\tt \#include $<$syslog.h$>$}\par
+{\tt \#include \char`\"{}../include/monitor.h\char`\"{}}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{socket_8c_44dc8ffaedb1d6f7d4663f5cecaf4e70}{initServerSocket} (in\_\-port\_\-t port, int backlog)
+\item
+int \hyperlink{socket_8c_f09ba488c48f40f8d1f133a4441deb25}{acceptConnection} (int servSock, char remoteAddr\mbox{[}16\mbox{]})
+\end{CompactItemize}
+\subsection*{Variables}
+\begin{CompactItemize}
+\item
+int \hyperlink{socket_8c_0b2caeb4b6f130be43e5a2f0267dd453}{verbose}
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{socket_8c_f09ba488c48f40f8d1f133a4441deb25}{
+\index{socket.c@{socket.c}!acceptConnection@{acceptConnection}}
+\index{acceptConnection@{acceptConnection}!socket.c@{socket.c}}
+\subsubsection[{acceptConnection}]{\setlength{\rightskip}{0pt plus 5cm}int acceptConnection (int {\em servSock}, \/ char {\em remoteAddr}\mbox{[}16\mbox{]})}}
+\label{socket_8c_f09ba488c48f40f8d1f133a4441deb25}
+
+
+
+
+Definition at line 53 of file socket.c.\hypertarget{socket_8c_44dc8ffaedb1d6f7d4663f5cecaf4e70}{
+\index{socket.c@{socket.c}!initServerSocket@{initServerSocket}}
+\index{initServerSocket@{initServerSocket}!socket.c@{socket.c}}
+\subsubsection[{initServerSocket}]{\setlength{\rightskip}{0pt plus 5cm}int initServerSocket (in\_\-port\_\-t {\em port}, \/ int {\em backlog})}}
+\label{socket_8c_44dc8ffaedb1d6f7d4663f5cecaf4e70}
+
+
+
+
+Definition at line 15 of file socket.c.
+
+\subsection{Variable Documentation}
+\hypertarget{socket_8c_0b2caeb4b6f130be43e5a2f0267dd453}{
+\index{socket.c@{socket.c}!verbose@{verbose}}
+\index{verbose@{verbose}!socket.c@{socket.c}}
+\subsubsection[{verbose}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf verbose}}}
+\label{socket_8c_0b2caeb4b6f130be43e5a2f0267dd453}
+
+
diff --git a/.doc/latex/socket_8h.tex b/.doc/latex/socket_8h.tex
new file mode 100644
index 0000000..e37dffd
--- /dev/null
+++ b/.doc/latex/socket_8h.tex
@@ -0,0 +1,34 @@
+\hypertarget{socket_8h}{
+\section{include/socket.h File Reference}
+\label{socket_8h}\index{include/socket.h@{include/socket.h}}
+}
+{\tt \#include $<$arpa/inet.h$>$}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{socket_8h_44dc8ffaedb1d6f7d4663f5cecaf4e70}{initServerSocket} (in\_\-port\_\-t port, int backlog)
+\item
+int \hyperlink{socket_8h_f09ba488c48f40f8d1f133a4441deb25}{acceptConnection} (int servSock, char remoteAddr\mbox{[}16\mbox{]})
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{socket_8h_f09ba488c48f40f8d1f133a4441deb25}{
+\index{socket.h@{socket.h}!acceptConnection@{acceptConnection}}
+\index{acceptConnection@{acceptConnection}!socket.h@{socket.h}}
+\subsubsection[{acceptConnection}]{\setlength{\rightskip}{0pt plus 5cm}int acceptConnection (int {\em servSock}, \/ char {\em remoteAddr}\mbox{[}16\mbox{]})}}
+\label{socket_8h_f09ba488c48f40f8d1f133a4441deb25}
+
+
+
+
+Definition at line 53 of file socket.c.\hypertarget{socket_8h_44dc8ffaedb1d6f7d4663f5cecaf4e70}{
+\index{socket.h@{socket.h}!initServerSocket@{initServerSocket}}
+\index{initServerSocket@{initServerSocket}!socket.h@{socket.h}}
+\subsubsection[{initServerSocket}]{\setlength{\rightskip}{0pt plus 5cm}int initServerSocket (in\_\-port\_\-t {\em port}, \/ int {\em backlog})}}
+\label{socket_8h_44dc8ffaedb1d6f7d4663f5cecaf4e70}
+
+
+
+
+Definition at line 15 of file socket.c.
\ No newline at end of file
diff --git a/.doc/latex/structtAppConfig.tex b/.doc/latex/structtAppConfig.tex
new file mode 100644
index 0000000..a51ff7e
--- /dev/null
+++ b/.doc/latex/structtAppConfig.tex
@@ -0,0 +1,88 @@
+\hypertarget{structtAppConfig}{
+\section{tAppConfig Struct Reference}
+\label{structtAppConfig}\index{tAppConfig@{tAppConfig}}
+}
+{\tt \#include $<$appConfig.h$>$}
+
+\subsection*{Data Fields}
+\begin{CompactItemize}
+\item
+unsigned char \hyperlink{structtAppConfig_9a20fbb501c68675f88764f1dcb42684}{verbose}
+\item
+unsigned char \hyperlink{structtAppConfig_d5d5f9bd2f4f0dd2cd259e50c4d149bf}{doDaemon}
+\item
+unsigned int \hyperlink{structtAppConfig_1bef5de806f77de1c307062e9fa84e4f}{maxPending}
+\item
+unsigned int \hyperlink{structtAppConfig_3e4960a8eb8e1eac506bd651453faecc}{port}
+\item
+char \hyperlink{structtAppConfig_1b87fb5e17055c70a233387374d8342e}{logPath} \mbox{[}513\mbox{]}
+\item
+char \hyperlink{structtAppConfig_58b889074da91d9de3ef14aa34f97795}{namePat} \mbox{[}513\mbox{]}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 17 of file appConfig.h.
+
+\subsection{Field Documentation}
+\hypertarget{structtAppConfig_d5d5f9bd2f4f0dd2cd259e50c4d149bf}{
+\index{tAppConfig@{tAppConfig}!doDaemon@{doDaemon}}
+\index{doDaemon@{doDaemon}!tAppConfig@{tAppConfig}}
+\subsubsection[{doDaemon}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char {\bf tAppConfig::doDaemon}}}
+\label{structtAppConfig_d5d5f9bd2f4f0dd2cd259e50c4d149bf}
+
+
+
+
+Definition at line 19 of file appConfig.h.\hypertarget{structtAppConfig_1b87fb5e17055c70a233387374d8342e}{
+\index{tAppConfig@{tAppConfig}!logPath@{logPath}}
+\index{logPath@{logPath}!tAppConfig@{tAppConfig}}
+\subsubsection[{logPath}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf tAppConfig::logPath}\mbox{[}513\mbox{]}}}
+\label{structtAppConfig_1b87fb5e17055c70a233387374d8342e}
+
+
+
+
+Definition at line 22 of file appConfig.h.\hypertarget{structtAppConfig_1bef5de806f77de1c307062e9fa84e4f}{
+\index{tAppConfig@{tAppConfig}!maxPending@{maxPending}}
+\index{maxPending@{maxPending}!tAppConfig@{tAppConfig}}
+\subsubsection[{maxPending}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tAppConfig::maxPending}}}
+\label{structtAppConfig_1bef5de806f77de1c307062e9fa84e4f}
+
+
+
+
+Definition at line 20 of file appConfig.h.\hypertarget{structtAppConfig_58b889074da91d9de3ef14aa34f97795}{
+\index{tAppConfig@{tAppConfig}!namePat@{namePat}}
+\index{namePat@{namePat}!tAppConfig@{tAppConfig}}
+\subsubsection[{namePat}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf tAppConfig::namePat}\mbox{[}513\mbox{]}}}
+\label{structtAppConfig_58b889074da91d9de3ef14aa34f97795}
+
+
+
+
+Definition at line 23 of file appConfig.h.\hypertarget{structtAppConfig_3e4960a8eb8e1eac506bd651453faecc}{
+\index{tAppConfig@{tAppConfig}!port@{port}}
+\index{port@{port}!tAppConfig@{tAppConfig}}
+\subsubsection[{port}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tAppConfig::port}}}
+\label{structtAppConfig_3e4960a8eb8e1eac506bd651453faecc}
+
+
+
+
+Definition at line 21 of file appConfig.h.\hypertarget{structtAppConfig_9a20fbb501c68675f88764f1dcb42684}{
+\index{tAppConfig@{tAppConfig}!verbose@{verbose}}
+\index{verbose@{verbose}!tAppConfig@{tAppConfig}}
+\subsubsection[{verbose}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char {\bf tAppConfig::verbose}}}
+\label{structtAppConfig_9a20fbb501c68675f88764f1dcb42684}
+
+
+
+
+Definition at line 18 of file appConfig.h.
+
+The documentation for this struct was generated from the following file:\begin{CompactItemize}
+\item
+include/\hyperlink{appConfig_8h}{appConfig.h}\end{CompactItemize}
diff --git a/.doc/latex/structtClient.tex b/.doc/latex/structtClient.tex
new file mode 100644
index 0000000..20110b3
--- /dev/null
+++ b/.doc/latex/structtClient.tex
@@ -0,0 +1,132 @@
+\hypertarget{structtClient}{
+\section{tClient Struct Reference}
+\label{structtClient}\index{tClient@{tClient}}
+}
+{\tt \#include $<$client.h$>$}
+
+\subsection*{Data Fields}
+\begin{CompactItemize}
+\item
+int \hyperlink{structtClient_fdcb6fae6d4162315adc430dc34e3df0}{socket}
+\item
+char $\ast$ \hyperlink{structtClient_70a954f8e1e6df925d78b34b9f2f162a}{readBuffer}
+\item
+char $\ast$ \hyperlink{structtClient_99d73b0cba75199cb16952751fdcc52d}{writeBuffer}
+\item
+unsigned int \hyperlink{structtClient_0948ef13430298f28cb48199119136c1}{readPos}
+\item
+unsigned int \hyperlink{structtClient_97da33ce83548b5900f11e29d5cec8d1}{writePos}
+\item
+unsigned int \hyperlink{structtClient_c55c66265d03aec3d760a0ed54b08a1f}{readBufMult}
+\item
+char \hyperlink{structtClient_e23a04145b9c0cc1262721432a43c947}{remoteAddr} \mbox{[}16\mbox{]}
+\item
+\hyperlink{structtHttpHeader}{tHttpHeader} \hyperlink{structtClient_33623f89815acd8a2822a1f04cafe844}{httpHeader}
+\item
+unsigned int \hyperlink{structtClient_00e4a47041701700d5d9e418773b01a1}{bodyLenRemaining}
+\item
+XML\_\-Parser \hyperlink{structtClient_b8f8ab3f31d6cf8fd4b3b527ef9c0107}{parser}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 18 of file client.h.
+
+\subsection{Field Documentation}
+\hypertarget{structtClient_00e4a47041701700d5d9e418773b01a1}{
+\index{tClient@{tClient}!bodyLenRemaining@{bodyLenRemaining}}
+\index{bodyLenRemaining@{bodyLenRemaining}!tClient@{tClient}}
+\subsubsection[{bodyLenRemaining}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tClient::bodyLenRemaining}}}
+\label{structtClient_00e4a47041701700d5d9e418773b01a1}
+
+
+
+
+Definition at line 28 of file client.h.\hypertarget{structtClient_33623f89815acd8a2822a1f04cafe844}{
+\index{tClient@{tClient}!httpHeader@{httpHeader}}
+\index{httpHeader@{httpHeader}!tClient@{tClient}}
+\subsubsection[{httpHeader}]{\setlength{\rightskip}{0pt plus 5cm}{\bf tHttpHeader} {\bf tClient::httpHeader}}}
+\label{structtClient_33623f89815acd8a2822a1f04cafe844}
+
+
+
+
+Definition at line 27 of file client.h.\hypertarget{structtClient_b8f8ab3f31d6cf8fd4b3b527ef9c0107}{
+\index{tClient@{tClient}!parser@{parser}}
+\index{parser@{parser}!tClient@{tClient}}
+\subsubsection[{parser}]{\setlength{\rightskip}{0pt plus 5cm}XML\_\-Parser {\bf tClient::parser}}}
+\label{structtClient_b8f8ab3f31d6cf8fd4b3b527ef9c0107}
+
+
+
+
+Definition at line 30 of file client.h.\hypertarget{structtClient_70a954f8e1e6df925d78b34b9f2f162a}{
+\index{tClient@{tClient}!readBuffer@{readBuffer}}
+\index{readBuffer@{readBuffer}!tClient@{tClient}}
+\subsubsection[{readBuffer}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tClient::readBuffer}}}
+\label{structtClient_70a954f8e1e6df925d78b34b9f2f162a}
+
+
+
+
+Definition at line 20 of file client.h.\hypertarget{structtClient_c55c66265d03aec3d760a0ed54b08a1f}{
+\index{tClient@{tClient}!readBufMult@{readBufMult}}
+\index{readBufMult@{readBufMult}!tClient@{tClient}}
+\subsubsection[{readBufMult}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tClient::readBufMult}}}
+\label{structtClient_c55c66265d03aec3d760a0ed54b08a1f}
+
+
+
+
+Definition at line 24 of file client.h.\hypertarget{structtClient_0948ef13430298f28cb48199119136c1}{
+\index{tClient@{tClient}!readPos@{readPos}}
+\index{readPos@{readPos}!tClient@{tClient}}
+\subsubsection[{readPos}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tClient::readPos}}}
+\label{structtClient_0948ef13430298f28cb48199119136c1}
+
+
+
+
+Definition at line 22 of file client.h.\hypertarget{structtClient_e23a04145b9c0cc1262721432a43c947}{
+\index{tClient@{tClient}!remoteAddr@{remoteAddr}}
+\index{remoteAddr@{remoteAddr}!tClient@{tClient}}
+\subsubsection[{remoteAddr}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf tClient::remoteAddr}\mbox{[}16\mbox{]}}}
+\label{structtClient_e23a04145b9c0cc1262721432a43c947}
+
+
+
+
+Definition at line 25 of file client.h.\hypertarget{structtClient_fdcb6fae6d4162315adc430dc34e3df0}{
+\index{tClient@{tClient}!socket@{socket}}
+\index{socket@{socket}!tClient@{tClient}}
+\subsubsection[{socket}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf tClient::socket}}}
+\label{structtClient_fdcb6fae6d4162315adc430dc34e3df0}
+
+
+
+
+Definition at line 19 of file client.h.\hypertarget{structtClient_99d73b0cba75199cb16952751fdcc52d}{
+\index{tClient@{tClient}!writeBuffer@{writeBuffer}}
+\index{writeBuffer@{writeBuffer}!tClient@{tClient}}
+\subsubsection[{writeBuffer}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tClient::writeBuffer}}}
+\label{structtClient_99d73b0cba75199cb16952751fdcc52d}
+
+
+
+
+Definition at line 21 of file client.h.\hypertarget{structtClient_97da33ce83548b5900f11e29d5cec8d1}{
+\index{tClient@{tClient}!writePos@{writePos}}
+\index{writePos@{writePos}!tClient@{tClient}}
+\subsubsection[{writePos}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tClient::writePos}}}
+\label{structtClient_97da33ce83548b5900f11e29d5cec8d1}
+
+
+
+
+Definition at line 23 of file client.h.
+
+The documentation for this struct was generated from the following file:\begin{CompactItemize}
+\item
+include/\hyperlink{client_8h}{client.h}\end{CompactItemize}
diff --git a/.doc/latex/structtHttpHeader.tex b/.doc/latex/structtHttpHeader.tex
new file mode 100644
index 0000000..39a0e19
--- /dev/null
+++ b/.doc/latex/structtHttpHeader.tex
@@ -0,0 +1,66 @@
+\hypertarget{structtHttpHeader}{
+\section{tHttpHeader Struct Reference}
+\label{structtHttpHeader}\index{tHttpHeader@{tHttpHeader}}
+}
+{\tt \#include $<$httpRequest.h$>$}
+
+\subsection*{Data Fields}
+\begin{CompactItemize}
+\item
+\hyperlink{structtRequestLine}{tRequestLine} \hyperlink{structtHttpHeader_d624a9ea5e703b2e8cd812415e28dfc7}{req}
+\item
+\hyperlink{structtHttpHeaderLine}{tHttpHeaderLine} $\ast$ \hyperlink{structtHttpHeader_e44e0aa6e7494921acad1a07eaaecb3d}{headers}
+\item
+unsigned int \hyperlink{structtHttpHeader_40e3a997c2da1c432caef805ff150e42}{headersCount}
+\item
+unsigned char \hyperlink{structtHttpHeader_4c362cb9ed28c3c0ee28371cb28c2460}{bodyLength}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 27 of file httpRequest.h.
+
+\subsection{Field Documentation}
+\hypertarget{structtHttpHeader_4c362cb9ed28c3c0ee28371cb28c2460}{
+\index{tHttpHeader@{tHttpHeader}!bodyLength@{bodyLength}}
+\index{bodyLength@{bodyLength}!tHttpHeader@{tHttpHeader}}
+\subsubsection[{bodyLength}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char {\bf tHttpHeader::bodyLength}}}
+\label{structtHttpHeader_4c362cb9ed28c3c0ee28371cb28c2460}
+
+
+
+
+Definition at line 32 of file httpRequest.h.\hypertarget{structtHttpHeader_e44e0aa6e7494921acad1a07eaaecb3d}{
+\index{tHttpHeader@{tHttpHeader}!headers@{headers}}
+\index{headers@{headers}!tHttpHeader@{tHttpHeader}}
+\subsubsection[{headers}]{\setlength{\rightskip}{0pt plus 5cm}{\bf tHttpHeaderLine}$\ast$ {\bf tHttpHeader::headers}}}
+\label{structtHttpHeader_e44e0aa6e7494921acad1a07eaaecb3d}
+
+
+
+
+Definition at line 29 of file httpRequest.h.\hypertarget{structtHttpHeader_40e3a997c2da1c432caef805ff150e42}{
+\index{tHttpHeader@{tHttpHeader}!headersCount@{headersCount}}
+\index{headersCount@{headersCount}!tHttpHeader@{tHttpHeader}}
+\subsubsection[{headersCount}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tHttpHeader::headersCount}}}
+\label{structtHttpHeader_40e3a997c2da1c432caef805ff150e42}
+
+
+
+
+Definition at line 30 of file httpRequest.h.\hypertarget{structtHttpHeader_d624a9ea5e703b2e8cd812415e28dfc7}{
+\index{tHttpHeader@{tHttpHeader}!req@{req}}
+\index{req@{req}!tHttpHeader@{tHttpHeader}}
+\subsubsection[{req}]{\setlength{\rightskip}{0pt plus 5cm}{\bf tRequestLine} {\bf tHttpHeader::req}}}
+\label{structtHttpHeader_d624a9ea5e703b2e8cd812415e28dfc7}
+
+
+
+
+Definition at line 28 of file httpRequest.h.
+
+The documentation for this struct was generated from the following file:\begin{CompactItemize}
+\item
+include/\hyperlink{httpRequest_8h}{httpRequest.h}\end{CompactItemize}
diff --git a/.doc/latex/structtHttpHeaderLine.tex b/.doc/latex/structtHttpHeaderLine.tex
new file mode 100644
index 0000000..578063c
--- /dev/null
+++ b/.doc/latex/structtHttpHeaderLine.tex
@@ -0,0 +1,44 @@
+\hypertarget{structtHttpHeaderLine}{
+\section{tHttpHeaderLine Struct Reference}
+\label{structtHttpHeaderLine}\index{tHttpHeaderLine@{tHttpHeaderLine}}
+}
+{\tt \#include $<$httpRequest.h$>$}
+
+\subsection*{Data Fields}
+\begin{CompactItemize}
+\item
+char $\ast$ \hyperlink{structtHttpHeaderLine_0b7fdfe2d665663b34ab17f843bdd362}{key}
+\item
+char $\ast$ \hyperlink{structtHttpHeaderLine_20a63b6ab6476fd27b5ec5438150dba9}{value}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 22 of file httpRequest.h.
+
+\subsection{Field Documentation}
+\hypertarget{structtHttpHeaderLine_0b7fdfe2d665663b34ab17f843bdd362}{
+\index{tHttpHeaderLine@{tHttpHeaderLine}!key@{key}}
+\index{key@{key}!tHttpHeaderLine@{tHttpHeaderLine}}
+\subsubsection[{key}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tHttpHeaderLine::key}}}
+\label{structtHttpHeaderLine_0b7fdfe2d665663b34ab17f843bdd362}
+
+
+
+
+Definition at line 23 of file httpRequest.h.\hypertarget{structtHttpHeaderLine_20a63b6ab6476fd27b5ec5438150dba9}{
+\index{tHttpHeaderLine@{tHttpHeaderLine}!value@{value}}
+\index{value@{value}!tHttpHeaderLine@{tHttpHeaderLine}}
+\subsubsection[{value}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tHttpHeaderLine::value}}}
+\label{structtHttpHeaderLine_20a63b6ab6476fd27b5ec5438150dba9}
+
+
+
+
+Definition at line 24 of file httpRequest.h.
+
+The documentation for this struct was generated from the following file:\begin{CompactItemize}
+\item
+include/\hyperlink{httpRequest_8h}{httpRequest.h}\end{CompactItemize}
diff --git a/.doc/latex/structtHttpRequest.tex b/.doc/latex/structtHttpRequest.tex
new file mode 100644
index 0000000..b36d822
--- /dev/null
+++ b/.doc/latex/structtHttpRequest.tex
@@ -0,0 +1,55 @@
+\hypertarget{structtHttpRequest}{
+\section{tHttpRequest Struct Reference}
+\label{structtHttpRequest}\index{tHttpRequest@{tHttpRequest}}
+}
+{\tt \#include $<$httpRequest.h$>$}
+
+\subsection*{Data Fields}
+\begin{CompactItemize}
+\item
+\hyperlink{structtHttpHeader}{tHttpHeader} \hyperlink{structtHttpRequest_9936369fb110812f1a4b7fc31a0dc755}{header}
+\item
+unsigned int \hyperlink{structtHttpRequest_208d984f6996b3b75579b9d7f9583231}{length}
+\item
+char $\ast$ \hyperlink{structtHttpRequest_3bafedaca9066375ffc720da29235ae2}{body}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 35 of file httpRequest.h.
+
+\subsection{Field Documentation}
+\hypertarget{structtHttpRequest_3bafedaca9066375ffc720da29235ae2}{
+\index{tHttpRequest@{tHttpRequest}!body@{body}}
+\index{body@{body}!tHttpRequest@{tHttpRequest}}
+\subsubsection[{body}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tHttpRequest::body}}}
+\label{structtHttpRequest_3bafedaca9066375ffc720da29235ae2}
+
+
+
+
+Definition at line 38 of file httpRequest.h.\hypertarget{structtHttpRequest_9936369fb110812f1a4b7fc31a0dc755}{
+\index{tHttpRequest@{tHttpRequest}!header@{header}}
+\index{header@{header}!tHttpRequest@{tHttpRequest}}
+\subsubsection[{header}]{\setlength{\rightskip}{0pt plus 5cm}{\bf tHttpHeader} {\bf tHttpRequest::header}}}
+\label{structtHttpRequest_9936369fb110812f1a4b7fc31a0dc755}
+
+
+
+
+Definition at line 36 of file httpRequest.h.\hypertarget{structtHttpRequest_208d984f6996b3b75579b9d7f9583231}{
+\index{tHttpRequest@{tHttpRequest}!length@{length}}
+\index{length@{length}!tHttpRequest@{tHttpRequest}}
+\subsubsection[{length}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tHttpRequest::length}}}
+\label{structtHttpRequest_208d984f6996b3b75579b9d7f9583231}
+
+
+
+
+Definition at line 37 of file httpRequest.h.
+
+The documentation for this struct was generated from the following file:\begin{CompactItemize}
+\item
+include/\hyperlink{httpRequest_8h}{httpRequest.h}\end{CompactItemize}
diff --git a/.doc/latex/structtRequestLine.tex b/.doc/latex/structtRequestLine.tex
new file mode 100644
index 0000000..3b4162e
--- /dev/null
+++ b/.doc/latex/structtRequestLine.tex
@@ -0,0 +1,55 @@
+\hypertarget{structtRequestLine}{
+\section{tRequestLine Struct Reference}
+\label{structtRequestLine}\index{tRequestLine@{tRequestLine}}
+}
+{\tt \#include $<$httpRequest.h$>$}
+
+\subsection*{Data Fields}
+\begin{CompactItemize}
+\item
+char $\ast$ \hyperlink{structtRequestLine_418658e78fa3e0e0e5fbd8f693104558}{method}
+\item
+char $\ast$ \hyperlink{structtRequestLine_5748787454dc1cc0dc06240e2890e025}{requestUri}
+\item
+char $\ast$ \hyperlink{structtRequestLine_9e9dad5c7e7851b4a5e5b8ab8837a72b}{httpVersion}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 16 of file httpRequest.h.
+
+\subsection{Field Documentation}
+\hypertarget{structtRequestLine_9e9dad5c7e7851b4a5e5b8ab8837a72b}{
+\index{tRequestLine@{tRequestLine}!httpVersion@{httpVersion}}
+\index{httpVersion@{httpVersion}!tRequestLine@{tRequestLine}}
+\subsubsection[{httpVersion}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tRequestLine::httpVersion}}}
+\label{structtRequestLine_9e9dad5c7e7851b4a5e5b8ab8837a72b}
+
+
+
+
+Definition at line 19 of file httpRequest.h.\hypertarget{structtRequestLine_418658e78fa3e0e0e5fbd8f693104558}{
+\index{tRequestLine@{tRequestLine}!method@{method}}
+\index{method@{method}!tRequestLine@{tRequestLine}}
+\subsubsection[{method}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tRequestLine::method}}}
+\label{structtRequestLine_418658e78fa3e0e0e5fbd8f693104558}
+
+
+
+
+Definition at line 17 of file httpRequest.h.\hypertarget{structtRequestLine_5748787454dc1cc0dc06240e2890e025}{
+\index{tRequestLine@{tRequestLine}!requestUri@{requestUri}}
+\index{requestUri@{requestUri}!tRequestLine@{tRequestLine}}
+\subsubsection[{requestUri}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf tRequestLine::requestUri}}}
+\label{structtRequestLine_5748787454dc1cc0dc06240e2890e025}
+
+
+
+
+Definition at line 18 of file httpRequest.h.
+
+The documentation for this struct was generated from the following file:\begin{CompactItemize}
+\item
+include/\hyperlink{httpRequest_8h}{httpRequest.h}\end{CompactItemize}
diff --git a/.doc/latex/structtServer.tex b/.doc/latex/structtServer.tex
new file mode 100644
index 0000000..4d61e98
--- /dev/null
+++ b/.doc/latex/structtServer.tex
@@ -0,0 +1,99 @@
+\hypertarget{structtServer}{
+\section{tServer Struct Reference}
+\label{structtServer}\index{tServer@{tServer}}
+}
+{\tt \#include $<$server.h$>$}
+
+\subsection*{Data Fields}
+\begin{CompactItemize}
+\item
+int \hyperlink{structtServer_0f35110b14ced93ae0c47173e37d707d}{servSock}
+\item
+\hyperlink{structtClient}{tClient} \hyperlink{structtServer_1c13c660dcf97444bdeee1f52bace303}{clients} \mbox{[}FD\_\-SETSIZE\mbox{]}
+\item
+unsigned int \hyperlink{structtServer_145a672dfaec08ce54c02dbc9f3b11ae}{maxFd}
+\item
+fd\_\-set \hyperlink{structtServer_f1e1c8e11bd347994ebc641bcac4c0fb}{socks}
+\item
+char \hyperlink{structtServer_17180f100090e101569a3a95934c38aa}{logPath} \mbox{[}512\mbox{]}
+\item
+char \hyperlink{structtServer_c932a28b0613bb0276c1ceb6b3fee454}{namePat} \mbox{[}512\mbox{]}
+\item
+FILE $\ast$ \hyperlink{structtServer_8fc3e5e54d17d86d21874d5987a080af}{wHandle}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 9 of file server.h.
+
+\subsection{Field Documentation}
+\hypertarget{structtServer_1c13c660dcf97444bdeee1f52bace303}{
+\index{tServer@{tServer}!clients@{clients}}
+\index{clients@{clients}!tServer@{tServer}}
+\subsubsection[{clients}]{\setlength{\rightskip}{0pt plus 5cm}{\bf tClient} {\bf tServer::clients}\mbox{[}FD\_\-SETSIZE\mbox{]}}}
+\label{structtServer_1c13c660dcf97444bdeee1f52bace303}
+
+
+
+
+Definition at line 11 of file server.h.\hypertarget{structtServer_17180f100090e101569a3a95934c38aa}{
+\index{tServer@{tServer}!logPath@{logPath}}
+\index{logPath@{logPath}!tServer@{tServer}}
+\subsubsection[{logPath}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf tServer::logPath}\mbox{[}512\mbox{]}}}
+\label{structtServer_17180f100090e101569a3a95934c38aa}
+
+
+
+
+Definition at line 14 of file server.h.\hypertarget{structtServer_145a672dfaec08ce54c02dbc9f3b11ae}{
+\index{tServer@{tServer}!maxFd@{maxFd}}
+\index{maxFd@{maxFd}!tServer@{tServer}}
+\subsubsection[{maxFd}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf tServer::maxFd}}}
+\label{structtServer_145a672dfaec08ce54c02dbc9f3b11ae}
+
+
+
+
+Definition at line 12 of file server.h.\hypertarget{structtServer_c932a28b0613bb0276c1ceb6b3fee454}{
+\index{tServer@{tServer}!namePat@{namePat}}
+\index{namePat@{namePat}!tServer@{tServer}}
+\subsubsection[{namePat}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf tServer::namePat}\mbox{[}512\mbox{]}}}
+\label{structtServer_c932a28b0613bb0276c1ceb6b3fee454}
+
+
+
+
+Definition at line 15 of file server.h.\hypertarget{structtServer_0f35110b14ced93ae0c47173e37d707d}{
+\index{tServer@{tServer}!servSock@{servSock}}
+\index{servSock@{servSock}!tServer@{tServer}}
+\subsubsection[{servSock}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf tServer::servSock}}}
+\label{structtServer_0f35110b14ced93ae0c47173e37d707d}
+
+
+
+
+Definition at line 10 of file server.h.\hypertarget{structtServer_f1e1c8e11bd347994ebc641bcac4c0fb}{
+\index{tServer@{tServer}!socks@{socks}}
+\index{socks@{socks}!tServer@{tServer}}
+\subsubsection[{socks}]{\setlength{\rightskip}{0pt plus 5cm}fd\_\-set {\bf tServer::socks}}}
+\label{structtServer_f1e1c8e11bd347994ebc641bcac4c0fb}
+
+
+
+
+Definition at line 13 of file server.h.\hypertarget{structtServer_8fc3e5e54d17d86d21874d5987a080af}{
+\index{tServer@{tServer}!wHandle@{wHandle}}
+\index{wHandle@{wHandle}!tServer@{tServer}}
+\subsubsection[{wHandle}]{\setlength{\rightskip}{0pt plus 5cm}FILE$\ast$ {\bf tServer::wHandle}}}
+\label{structtServer_8fc3e5e54d17d86d21874d5987a080af}
+
+
+
+
+Definition at line 16 of file server.h.
+
+The documentation for this struct was generated from the following file:\begin{CompactItemize}
+\item
+include/\hyperlink{server_8h}{server.h}\end{CompactItemize}
diff --git a/.doc/latex/writeBuffer_8c.tex b/.doc/latex/writeBuffer_8c.tex
new file mode 100644
index 0000000..7df457b
--- /dev/null
+++ b/.doc/latex/writeBuffer_8c.tex
@@ -0,0 +1,24 @@
+\hypertarget{writeBuffer_8c}{
+\section{reader/commonReader/writeBuffer.c File Reference}
+\label{writeBuffer_8c}\index{reader/commonReader/writeBuffer.c@{reader/commonReader/writeBuffer.c}}
+}
+{\tt \#include $<$stdio.h$>$}\par
+{\tt \#include $<$string.h$>$}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{writeBuffer_8c_a947cab623514e5a9c9700bca074b77e}{writeBuffer} (char $\ast$$\ast$buffer, unsigned int $\ast$readPos, FILE $\ast$wHandle)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{writeBuffer_8c_a947cab623514e5a9c9700bca074b77e}{
+\index{writeBuffer.c@{writeBuffer.c}!writeBuffer@{writeBuffer}}
+\index{writeBuffer@{writeBuffer}!writeBuffer.c@{writeBuffer.c}}
+\subsubsection[{writeBuffer}]{\setlength{\rightskip}{0pt plus 5cm}int writeBuffer (char $\ast$$\ast$ {\em buffer}, \/ unsigned int $\ast$ {\em readPos}, \/ FILE $\ast$ {\em wHandle})}}
+\label{writeBuffer_8c_a947cab623514e5a9c9700bca074b77e}
+
+
+
+
+Definition at line 6 of file writeBuffer.c.
\ No newline at end of file
diff --git a/.doc/latex/writeBuffer_8h.tex b/.doc/latex/writeBuffer_8h.tex
new file mode 100644
index 0000000..27f25a3
--- /dev/null
+++ b/.doc/latex/writeBuffer_8h.tex
@@ -0,0 +1,23 @@
+\hypertarget{writeBuffer_8h}{
+\section{include/writeBuffer.h File Reference}
+\label{writeBuffer_8h}\index{include/writeBuffer.h@{include/writeBuffer.h}}
+}
+{\tt \#include $<$stdio.h$>$}\par
+\subsection*{Functions}
+\begin{CompactItemize}
+\item
+int \hyperlink{writeBuffer_8h_a947cab623514e5a9c9700bca074b77e}{writeBuffer} (char $\ast$$\ast$buffer, unsigned int $\ast$readPos, FILE $\ast$wHandle)
+\end{CompactItemize}
+
+
+\subsection{Function Documentation}
+\hypertarget{writeBuffer_8h_a947cab623514e5a9c9700bca074b77e}{
+\index{writeBuffer.h@{writeBuffer.h}!writeBuffer@{writeBuffer}}
+\index{writeBuffer@{writeBuffer}!writeBuffer.h@{writeBuffer.h}}
+\subsubsection[{writeBuffer}]{\setlength{\rightskip}{0pt plus 5cm}int writeBuffer (char $\ast$$\ast$ {\em buffer}, \/ unsigned int $\ast$ {\em readPos}, \/ FILE $\ast$ {\em wHandle})}}
+\label{writeBuffer_8h_a947cab623514e5a9c9700bca074b77e}
+
+
+
+
+Definition at line 6 of file writeBuffer.c.
\ No newline at end of file
diff --git a/Doxyfile b/Doxyfile
new file mode 100644
index 0000000..4bb2fc8
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,1510 @@
+# Doxyfile 1.5.8
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = xmlrpc
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = 0.0.1
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = .doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
+# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
+# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene,
+# Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it parses.
+# With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
+# The format is ext=language, where ext is a file extension, and language is one of
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C
+
+EXTENSION_MAPPING =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command