aboutsummaryrefslogtreecommitdiff
path: root/src/IO
diff options
context:
space:
mode:
authorJorge Arellano Cid <jcid@dillo.org>2009-11-01 16:31:59 -0300
committerJorge Arellano Cid <jcid@dillo.org>2009-11-01 16:31:59 -0300
commitdf2f261ccb261447576b98b9e466f06daf33115d (patch)
treefbb802b7b019c806bea8e6d9b4c7dc12f6ede53d /src/IO
parent29ea3975335bad3fa72afe8c1724d1d00355c396 (diff)
Removed the write/fwrite mix in dpip. Introduced a_Dpip_dsh_trywrite()
Several cleanups and more error handling sprinkled all over too.
Diffstat (limited to 'src/IO')
-rw-r--r--src/IO/dpi.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/IO/dpi.c b/src/IO/dpi.c
index 6adc0148..a5e873bd 100644
--- a/src/IO/dpi.c
+++ b/src/IO/dpi.c
@@ -423,6 +423,19 @@ static int Dpi_read_comm_keys(int *port)
}
/*
+ * Return a socket file descriptor
+ */
+static int Dpi_make_socket_fd()
+{
+ int fd, ret = -1;
+
+ if ((fd = socket(AF_INET, SOCK_STREAM, 0)) != -1) {
+ ret = fd;
+ }
+ return ret;
+}
+
+/*
* Make a connection test for a IDS.
* Return: 1 OK, -1 Not working.
*/
@@ -439,7 +452,7 @@ static int Dpi_check_dpid_ids()
if (Dpi_read_comm_keys(&dpid_port) != -1) {
sin.sin_port = htons(dpid_port);
- if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
+ if ((sock_fd = Dpi_make_socket_fd()) == -1) {
MSG("Dpi_check_dpid_ids: sock_fd=%d %s\n", sock_fd, dStrerror(errno));
} else if (connect(sock_fd, (struct sockaddr *)&sin, sin_sz) == -1) {
MSG("Dpi_check_dpid_ids: %s\n", dStrerror(errno));
@@ -538,7 +551,7 @@ int Dpi_get_server_port(const char *server_name)
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
sin.sin_port = htons(dpid_port);
- if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1 ||
+ if ((sock_fd = Dpi_make_socket_fd()) == -1 ||
connect(sock_fd, (struct sockaddr *)&sin, sin_sz) == -1) {
MSG("Dpi_get_server_port: %s\n", dStrerror(errno));
} else {
@@ -613,7 +626,7 @@ static int Dpi_connect_socket(const char *server_name, int retry)
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
sin.sin_port = htons(dpi_port);
- if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
+ if ((sock_fd = Dpi_make_socket_fd()) == -1) {
perror("[dpi::socket]");
} else if (connect(sock_fd, (void*)&sin, sizeof(sin)) == -1) {
err = errno;