X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=server.h;fp=server.h;h=9cfba365b8494a1b3d9c5e34e6971bb11136fc36;hb=10b49f7af56977b8c27a26438b3cfb07ca63ae90;hp=0000000000000000000000000000000000000000;hpb=e712495ba0140dc6387211ea2a82a06bbcfd17e2;p=apps%2Fpfixtools.git diff --git a/server.h b/server.h new file mode 100644 index 0000000..9cfba36 --- /dev/null +++ b/server.h @@ -0,0 +1,62 @@ +/******************************************************************************/ +/* pfixtools: a collection of postfix related tools */ +/* ~~~~~~~~~ */ +/* ________________________________________________________________________ */ +/* */ +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ +/* */ +/* 1. Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* 2. Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ +/* 3. The names of its contributors may not be used to endorse or promote */ +/* products derived from this software without specific prior written */ +/* permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND */ +/* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */ +/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS */ +/* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR */ +/* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF */ +/* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS */ +/* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */ +/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) */ +/* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF */ +/* THE POSSIBILITY OF SUCH DAMAGE. */ +/******************************************************************************/ + +/* + * Copyright © 2008 Florent Bruneau + */ + +#ifndef PFIXTOOLS_SERVER_H +#define PFIXTOOLS_SERVER_H + +#include "buffer.h" + +typedef struct server_t server_t; + +typedef void *(*start_listener_t)(void); +typedef void (*delete_client_t)(void*); +typedef void *(*start_client_t)(void); +typedef int (*run_client_t)(server_t*, void*); + +struct server_t { + unsigned listener : 1; + int fd; + buffer_t ibuf; + buffer_t obuf; + void* data; + delete_client_t clear_data; +}; + +int start_server(int port, start_listener_t starter, delete_client_t deleter); + +int server_loop(start_client_t starter, delete_client_t deleter, + run_client_t runner, void* config); + +#endif