diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2010-08-20 23:24:19 +0200 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2010-08-20 23:24:19 +0200 |
commit | f5c598b518d1f906148534d015f50075d3e8242d (patch) | |
tree | 21dd70add5b366c3dd80641b77f6b18e0baa009e /dpid/dpid.h | |
parent | e98d02a01ffeb18ede86af025e51ae1ec011c75a (diff) | |
parent | 5f0fc0e48b8cbee7e1795935da0abff6627fd498 (diff) |
merge
Diffstat (limited to 'dpid/dpid.h')
-rw-r--r-- | dpid/dpid.h | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/dpid/dpid.h b/dpid/dpid.h index 74686087..8ef67dd5 100644 --- a/dpid/dpid.h +++ b/dpid/dpid.h @@ -5,42 +5,38 @@ #ifndef DPID_H #define DPID_H -#include <assert.h> -#include <signal.h> -#include <fcntl.h> -#include <sys/stat.h> -#include <stdlib.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/wait.h> -#include <unistd.h> -#include <string.h> #include <sys/socket.h> -#include <sys/time.h> +#include <sys/select.h> /* for fd_set */ #include <sys/un.h> -#include <errno.h> +#include <signal.h> /* for sig_atomic_t */ +#include <netinet/in.h> /* for ntohl, IPPORT_USERRESERVED and stuff */ #include "d_size.h" +/* FreeBSD 6.4 doesn't have it */ +#ifndef IPPORT_USERRESERVED + #define IPPORT_USERRESERVED 5000 +#endif #define PATH_LEN 50 #define CMDLEN 20 #define MSGLEN 50 +#define DPID_BASE_PORT (IPPORT_USERRESERVED + 20) + /*! \TODO: Should read this from dillorc */ #define SRS_NAME "dpid.srs" char *srs_name; -/*! dpid service request socket */ -int srs; +/*! dpid's service request socket file descriptor */ +int srs_fd; /*! plugin state information */ struct dp { char *id; char *path; - char *sockpath; - int socket; - struct sockaddr_un sa; + int sock_fd; + int port; pid_t pid; int filter; }; @@ -72,9 +68,7 @@ extern volatile sig_atomic_t caught_sigchld; void rm_dpi_sockets(struct dp *dpi_attr_list, int numdpis); -int rm_inactive_dpi_sockets(struct dp *dpi_attr_list, int numdpis); - -void cleanup(char *socket_dir); +void cleanup(); void free_dpi_attr(struct dp *dpi_attr); @@ -92,11 +86,11 @@ int register_all(struct dp **attlist); int fill_services_list(struct dp *attlist, int numdpis, Dlist **services_list); -int init_srs_socket(char *sockdir); +int init_ids_srs_socket(); -int init_dpi_socket(struct dp *dpi_attr, char *sockdir); +int init_dpi_socket(struct dp *dpi_attr); -int init_all_dpi_sockets(struct dp *dpi_attr_list, char *sockdir); +int init_all_dpi_sockets(struct dp *dpi_attr_list); void dpi_sigchld(int sig); @@ -104,16 +98,18 @@ void handle_sigchld(void); void est_dpi_sigchld(void); +void est_dpi_terminator(void); + void stop_active_dpis(struct dp *dpi_attr_list, int numdpis); void ignore_dpi_sockets(struct dp *dpi_attr_list, int numdpis); -int register_all_cmd(char *sockdir); +int register_all_cmd(); char *get_message(int sock, char *dpi_tag); int service_match(const struct service *A, const char *B); -void send_sockpath(int sock, char * dpi_tag, struct dp *dpi_attr_list); +void send_sockport(int sock_fd, char * dpi_tag, struct dp *dpi_attr_list); #endif |