server_s.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _KLONE_SERVER_S_H_
00012 #define _KLONE_SERVER_S_H_
00013 #include <stdlib.h>
00014 #include <klone/ppc.h>
00015 #include <klone/backend.h>
00016 #include <klone/klog.h>
00017 #include <klone/timer.h>
00018 #include <klone_conf.h>
00019 #include <sys/types.h>
00020 #ifdef HAVE_SYS_SELECT
00021 #include <sys/select.h>
00022 #endif
00023 #include <u/libu.h>
00024 #include "child.h"
00025
00026 enum { SERVER_MAX_CHILD_COUNT = 1024 };
00027
00028 struct server_s
00029 {
00030 u_config_t *config;
00031 ppc_t *ppc;
00032 backends_t bes;
00033 klog_t *klog;
00034 talarm_t *al_klog_flush;
00035 children_t *children;
00036 fd_set rdfds, wrfds, exfds;
00037 const char *chroot;
00038 int uid, gid;
00039 int hfd;
00040 size_t nbackend;
00041 size_t nchild;
00042 size_t max_child;
00043
00044 int stop;
00045 int model;
00046 int klog_flush;
00047 int reap_children;
00048 int allow_root;
00049 int blind_chroot;
00050 };
00051
00052 int server_get_backend_by_id(server_t *s, int id, backend_t **pbe);
00053 int server_spawn_child(server_t *s, backend_t *be);
00054 int server_cb_klog_flush(talarm_t *a, void *arg);
00055
00056 #endif