diff options
Diffstat (limited to 'dpid')
-rw-r--r-- | dpid/Makefile.am | 2 | ||||
-rw-r--r-- | dpid/dpi.c | 1 | ||||
-rw-r--r-- | dpid/dpi.h | 9 | ||||
-rw-r--r-- | dpid/dpi_service.c | 113 | ||||
-rw-r--r-- | dpid/dpi_service.h | 20 | ||||
-rw-r--r-- | dpid/dpid.c | 54 | ||||
-rw-r--r-- | dpid/dpid.h | 14 | ||||
-rw-r--r-- | dpid/dpid_common.c | 2 | ||||
-rw-r--r-- | dpid/dpid_common.h | 3 | ||||
-rw-r--r-- | dpid/main.c | 12 | ||||
-rw-r--r-- | dpid/misc_new.c | 19 | ||||
-rw-r--r-- | dpid/misc_new.h | 2 |
12 files changed, 72 insertions, 179 deletions
diff --git a/dpid/Makefile.am b/dpid/Makefile.am index ecaaa411..e713d339 100644 --- a/dpid/Makefile.am +++ b/dpid/Makefile.am @@ -8,13 +8,11 @@ bin_SCRIPTS = dpidc dpid_SOURCES = \ dpi.h \ - dpi_service.h \ dpi_socket_dir.h \ dpid.h \ dpid_common.h \ misc_new.h \ dpi.c \ - dpi_service.c \ dpi_socket_dir.c \ dpid.c \ dpid_common.c \ @@ -22,6 +22,7 @@ */ #include <errno.h> +#include <stdlib.h> /* for exit */ #include "dpid_common.h" #include "dpi.h" #include "misc_new.h" @@ -7,13 +7,8 @@ #ifndef DPI_H #define DPI_H -#include <config.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <stdlib.h> -#include <string.h> +#include <unistd.h> /* for socklen_t */ +#include <sys/socket.h> /* for socklen_t and AF_LOCAL */ /* Check the Unix98 goodie */ #ifndef socklen_t diff --git a/dpid/dpi_service.c b/dpid/dpi_service.c deleted file mode 100644 index 47a42366..00000000 --- a/dpid/dpi_service.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - Copyright (C) 2003 Ferdi Franceschini <ferdif@optusnet.com.au> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/*! \file - * \todo - * This module should be removed because its original functions - * have been removed or modified. - * Put these functions in dpid.c - */ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> -#include "dpid_common.h" -#include "dpid.h" -#include "../dpip/dpip.h" - -#ifdef TEST -#include "testdat.h" -#endif - -/* exported functions */ -char *get_dpi_dir(char *dpidrc); - - -/*! Get dpi directory path from dpidrc - * \Return - * dpi directory on success, NULL on failure - * \Important - * The dpi_dir definition in dpidrc must have no leading white space. - */ -char *get_dpi_dir(char *dpidrc) -{ - FILE *In; - int len; - char *rcline = NULL, *value = NULL, *p; - - if ((In = fopen(dpidrc, "r")) == NULL) { - ERRMSG("dpi_dir", "fopen", errno); - MSG_ERR(" - %s\n", dpidrc); - return (NULL); - } - - while ((rcline = dGetline(In)) != NULL) { - if (strncmp(rcline, "dpi_dir", 7) == 0) - break; - dFree(rcline); - } - fclose(In); - - if (!rcline) { - ERRMSG("dpi_dir", "Failed to find a dpi_dir entry in dpidrc", 0); - MSG_ERR("Put your dillo plugins path in %s\n", dpidrc); - MSG_ERR("eg. dpi_dir=/usr/local/lib/dillo/dpi "); - MSG_ERR("with no leading spaces.\n"); - value = NULL; - } else { - len = (int) strlen(rcline); - if (len && rcline[len - 1] == '\n') - rcline[len - 1] = 0; - - if ((p = strchr(rcline, '='))) { - while (*++p == ' '); - value = dStrdup(p); - } else { - ERRMSG("dpi_dir", "strchr", 0); - MSG_ERR(" - '=' not found in %s\n", rcline); - value = NULL; - } - } - - dFree(rcline); - return (value); -} - -/*! Send the list of available dpi IDs to a client - * \Return - * 1 on success, -1 on failure. - * -static int send_service_list(int sock, struct dp *dpi_attr_list, int srv_num) -{ - int i; - char *buf; - ssize_t wlen = 0; - - for (i = 0; i < srv_num && wlen != -1; i++) { - d_cmd = a_Dpip_build_cmd("cmd=%s msg=%s", - "send_data", dpi_attr_list[i].id); - wlen = write(sock, d_cmd, strlen(d_cmd)); - dFree(d_cmd); - } - if (wlen == -1) { - ERRMSG("send_service_list", "write", errno); - return (-1); - } - return (1); -} - */ diff --git a/dpid/dpi_service.h b/dpid/dpi_service.h deleted file mode 100644 index af7679b3..00000000 --- a/dpid/dpi_service.h +++ /dev/null @@ -1,20 +0,0 @@ -/*! \file - * \todo - * This module should be removed because its original functions - * have been removed or modified. - * Put these functions in dpid.c - */ - -#ifndef DPI_SERVICE_H -#define DPI_SERVICE_H - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include "dpid.h" - -char *get_dpi_dir(char *dpidrc); - -int send_service_list(int sock, struct dp *dpi_attr_list, int srv_num); - -#endif diff --git a/dpid/dpid.c b/dpid/dpid.c index a21dcf9f..45324730 100644 --- a/dpid/dpid.c +++ b/dpid/dpid.c @@ -19,6 +19,9 @@ * Main functions to set-up dpi information and to initialise sockets */ #include <errno.h> +#include <stdlib.h> /* for exit */ +#include <fcntl.h> /* for F_SETFD, F_GETFD, FD_CLOEXEC */ + #include <sys/stat.h> #include <sys/wait.h> #include <unistd.h> @@ -26,7 +29,6 @@ #include "dpid.h" #include "dpi.h" #include "dpi_socket_dir.h" -#include "dpi_service.h" #include "misc_new.h" #include "../dpip/dpip.h" @@ -215,6 +217,56 @@ enum file_type get_file_type(char *file_name) } } +/*! Get dpi directory path from dpidrc + * \Return + * dpi directory on success, NULL on failure + * \Important + * The dpi_dir definition in dpidrc must have no leading white space. + */ +char *get_dpi_dir(char *dpidrc) +{ + FILE *In; + int len; + char *rcline = NULL, *value = NULL, *p; + + if ((In = fopen(dpidrc, "r")) == NULL) { + ERRMSG("dpi_dir", "fopen", errno); + MSG_ERR(" - %s\n", dpidrc); + return (NULL); + } + + while ((rcline = dGetline(In)) != NULL) { + if (strncmp(rcline, "dpi_dir", 7) == 0) + break; + dFree(rcline); + } + fclose(In); + + if (!rcline) { + ERRMSG("dpi_dir", "Failed to find a dpi_dir entry in dpidrc", 0); + MSG_ERR("Put your dillo plugins path in %s\n", dpidrc); + MSG_ERR("eg. dpi_dir=/usr/local/lib/dillo/dpi "); + MSG_ERR("with no leading spaces.\n"); + value = NULL; + } else { + len = (int) strlen(rcline); + if (len && rcline[len - 1] == '\n') + rcline[len - 1] = 0; + + if ((p = strchr(rcline, '='))) { + while (*++p == ' '); + value = dStrdup(p); + } else { + ERRMSG("dpi_dir", "strchr", 0); + MSG_ERR(" - '=' not found in %s\n", rcline); + value = NULL; + } + } + + dFree(rcline); + return (value); +} + /*! Scans a service directory in dpi_dir and fills dpi_attr * \Note * Caller must allocate memory for dpi_attr. diff --git a/dpid/dpid.h b/dpid/dpid.h index 74686087..5c5aa3f8 100644 --- a/dpid/dpid.h +++ b/dpid/dpid.h @@ -5,20 +5,10 @@ #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 "d_size.h" diff --git a/dpid/dpid_common.c b/dpid/dpid_common.c index 5b32daad..cb4ef436 100644 --- a/dpid/dpid_common.c +++ b/dpid/dpid_common.c @@ -9,8 +9,8 @@ * (at your option) any later version. */ +#include <errno.h> #include <stdio.h> -#include <string.h> #include <unistd.h> #include "dpid_common.h" diff --git a/dpid/dpid_common.h b/dpid/dpid_common.h index 4311a8a8..5a792b04 100644 --- a/dpid/dpid_common.h +++ b/dpid/dpid_common.h @@ -9,9 +9,6 @@ * the next patch */ -#include <stdio.h> -#include <errno.h> -#include <sys/types.h> #include <dirent.h> #include "../dlib/dlib.h" diff --git a/dpid/main.c b/dpid/main.c index 8dc6848a..83c23f9f 100644 --- a/dpid/main.c +++ b/dpid/main.c @@ -15,12 +15,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include <errno.h> -#include <unistd.h> -#include <limits.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <assert.h> +#include <errno.h> /* for ckd_write */ +#include <unistd.h> /* for ckd_write */ +#include <stdlib.h> /* for exit */ +#include <assert.h> /* for assert */ +#include <sys/stat.h> /* for umask */ + #include "dpid_common.h" #include "dpid.h" #include "dpi.h" diff --git a/dpid/misc_new.c b/dpid/misc_new.c index 83f990ac..35bc77ae 100644 --- a/dpid/misc_new.c +++ b/dpid/misc_new.c @@ -9,20 +9,15 @@ * (at your option) any later version. */ -#include <stdio.h> -#include <time.h> -#include <stdlib.h> -#include <string.h> +#include <errno.h> /* errno, err-codes */ #include <unistd.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <errno.h> -#include <fcntl.h> -#include "d_size.h" -#include "misc_new.h" -#include "dpid_common.h" +#include <time.h> +#include <sys/stat.h> /* stat */ +#include <stdlib.h> /* rand, srand */ -#include "misc_new.h" /* for function prototypes */ +#include "../dlib/dlib.h" +#include "dpid_common.h" +#include "misc_new.h" /* for function prototypes */ /* diff --git a/dpid/misc_new.h b/dpid/misc_new.h index e2bf6e9a..248b2895 100644 --- a/dpid/misc_new.h +++ b/dpid/misc_new.h @@ -1,8 +1,6 @@ #ifndef MISC_NEW_H #define MISC_NEW_H -#include "../dlib/dlib.h" - int a_Misc_close_fd(int fd); Dstr *a_Misc_rdtag(int socket); |