diff options
author | Jorge Arellano Cid <jcid@dillo.org> | 2009-11-01 16:31:36 -0300 |
---|---|---|
committer | Jorge Arellano Cid <jcid@dillo.org> | 2009-11-01 16:31:36 -0300 |
commit | 43ca1bf65c9cfb6d1814ad5f9bad6021ff2361b3 (patch) | |
tree | 412607671f7a3e5a094d536782fd80cf73bf9e3f /dpid/dpid.h | |
parent | 20a2702304a931304caf63823ac6a9184f40bd7d (diff) |
Switch the DPI framework from Unix sockets to Internet sockets
Initially meant for MINIX, but in the process several bugs were fixed,
the code restructured, added more error handling and improved in general.
In the future we may go back to UDS, but the cleanup gains will remain.
Diffstat (limited to 'dpid/dpid.h')
-rw-r--r-- | dpid/dpid.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/dpid/dpid.h b/dpid/dpid.h index 5c5aa3f8..7302356b 100644 --- a/dpid/dpid.h +++ b/dpid/dpid.h @@ -6,9 +6,10 @@ #define DPID_H #include <sys/socket.h> -#include <sys/select.h> /* for fd_set */ +#include <sys/select.h> /* for fd_set */ #include <sys/un.h> -#include <signal.h> /* for sig_atomic_t */ +#include <signal.h> /* for sig_atomic_t */ +#include <netinet/in.h> /* for ntohl, IPPORT_USERRESERVED and stuff */ #include "d_size.h" @@ -16,21 +17,22 @@ #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; }; @@ -62,9 +64,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); @@ -82,11 +82,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); @@ -98,12 +98,12 @@ 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 |