diff options
Diffstat (limited to 'src/socket.c')
-rw-r--r-- | src/socket.c | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/src/socket.c b/src/socket.c index fab8182..cb8d8e3 100644 --- a/src/socket.c +++ b/src/socket.c @@ -61,7 +61,7 @@ spif_socket_new(void) self = SPIF_ALLOC(socket); if (!spif_socket_init(self)) { SPIF_DEALLOC(self); - self = SPIF_NULL_TYPE(socket); + self = (spif_socket_t) NULL; } return self; } @@ -74,7 +74,7 @@ spif_socket_new_from_urls(spif_url_t surl, spif_url_t durl) self = SPIF_ALLOC(socket); if (!spif_socket_init_from_urls(self, surl, durl)) { SPIF_DEALLOC(self); - self = SPIF_NULL_TYPE(socket); + self = (spif_socket_t) NULL; } return self; } @@ -89,11 +89,11 @@ spif_socket_init(spif_socket_t self) self->fam = AF_INET; self->type = SOCK_STREAM; self->proto = 0; - self->addr = SPIF_NULL_TYPE(sockaddr); + self->addr = (spif_sockaddr_t) NULL; self->len = 0; self->flags = 0; - self->local_url = SPIF_NULL_TYPE(url); - self->remote_url = SPIF_NULL_TYPE(url); + self->local_url = (spif_url_t) NULL; + self->remote_url = (spif_url_t) NULL; return TRUE; } @@ -107,18 +107,18 @@ spif_socket_init_from_urls(spif_socket_t self, spif_url_t surl, spif_url_t durl) self->fam = AF_INET; self->type = SOCK_STREAM; self->proto = 0; - self->addr = SPIF_NULL_TYPE(sockaddr); + self->addr = (spif_sockaddr_t) NULL; self->len = 0; self->flags = 0; if (!SPIF_URL_ISNULL(surl)) { self->local_url = spif_url_dup(surl); } else { - self->local_url = SPIF_NULL_TYPE(url); + self->local_url = (spif_url_t) NULL; } if (!SPIF_URL_ISNULL(durl)) { self->remote_url = spif_url_dup(durl); } else { - self->remote_url = SPIF_NULL_TYPE(url); + self->remote_url = (spif_url_t) NULL; } return TRUE; } @@ -133,19 +133,19 @@ spif_socket_done(spif_socket_t self) self->fam = AF_INET; self->type = SOCK_STREAM; self->proto = 0; - if (self->addr != SPIF_NULL_TYPE(sockaddr)) { + if (self->addr != (spif_sockaddr_t) NULL) { SPIF_DEALLOC(self->addr); - self->addr = SPIF_NULL_TYPE(sockaddr); + self->addr = (spif_sockaddr_t) NULL; } self->len = 0; self->flags = 0; if (!SPIF_URL_ISNULL(self->local_url)) { spif_url_del(self->local_url); - self->local_url = SPIF_NULL_TYPE(url); + self->local_url = (spif_url_t) NULL; } if (!SPIF_URL_ISNULL(self->remote_url)) { spif_url_del(self->remote_url); - self->remote_url = SPIF_NULL_TYPE(url); + self->remote_url = (spif_url_t) NULL; } return TRUE; } @@ -170,9 +170,9 @@ spif_socket_show(spif_socket_t self, spif_charptr_t name, spif_str_t buff, size_ } memset(tmp, ' ', indent); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_socket_t) %s: %10p {\n", - name, SPIF_CAST(ptr) self); + name, (spif_ptr_t) self); if (SPIF_STR_ISNULL(buff)) { buff = spif_str_new_from_ptr(tmp); } else { @@ -181,32 +181,32 @@ spif_socket_show(spif_socket_t self, spif_charptr_t name, spif_str_t buff, size_ indent += 2; memset(tmp, ' ', indent); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "(spif_sockfd_t) fd: %d\n", self->fd); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_sockfd_t) fd: %d\n", self->fd); spif_str_append_from_ptr(buff, tmp); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "(spif_sockfamily_t) fam: %d\n", (int) self->fam); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_sockfamily_t) fam: %d\n", (int) self->fam); spif_str_append_from_ptr(buff, tmp); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "(spif_socktype_t) type: %d\n", (int) self->type); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_socktype_t) type: %d\n", (int) self->type); spif_str_append_from_ptr(buff, tmp); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "(spif_sockproto_t) proto: %d\n", (int) self->proto); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_sockproto_t) proto: %d\n", (int) self->proto); spif_str_append_from_ptr(buff, tmp); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "(spif_sockaddr_t) addr: %10p\n", SPIF_CAST(ptr) self->addr); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_sockaddr_t) addr: %10p\n", (spif_ptr_t) self->addr); spif_str_append_from_ptr(buff, tmp); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "(spif_sockaddr_len_t) len: %lu\n", (unsigned long) self->len); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_sockaddr_len_t) len: %lu\n", (unsigned long) self->len); spif_str_append_from_ptr(buff, tmp); - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "(spif_uint32_t) flags: 0x%08x\n", (unsigned) self->flags); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "(spif_uint32_t) flags: 0x%08x\n", (unsigned) self->flags); spif_str_append_from_ptr(buff, tmp); spif_url_show(self->local_url, SPIF_CHARPTR("local_url"), buff, indent); spif_url_show(self->remote_url, SPIF_CHARPTR("remote_url"), buff, indent); indent -= 2; - snprintf(SPIF_CHARPTR_C(tmp) + indent, sizeof(tmp) - indent, "}\n"); + snprintf((char *) tmp + indent, sizeof(tmp) - indent, "}\n"); spif_str_append_from_ptr(buff, tmp); return buff; @@ -223,7 +223,7 @@ spif_socket_dup(spif_socket_t self) { spif_socket_t tmp; - ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), SPIF_NULL_TYPE(socket)); + ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), (spif_socket_t) NULL); tmp = spif_socket_new(); if (self->fd >= 0) { tmp->fd = dup(self->fd); @@ -232,8 +232,8 @@ spif_socket_dup(spif_socket_t self) tmp->type = self->type; tmp->proto = self->proto; tmp->len = self->len; - if (self->addr != SPIF_NULL_TYPE(sockaddr)) { - tmp->addr = SPIF_CAST(sockaddr) MALLOC(tmp->len); + if (self->addr != (spif_sockaddr_t) NULL) { + tmp->addr = (spif_sockaddr_t) MALLOC(tmp->len); memcpy(tmp->addr, self->addr, tmp->len); } tmp->flags = self->flags; @@ -249,7 +249,7 @@ spif_socket_dup(spif_socket_t self) spif_classname_t spif_socket_type(spif_socket_t self) { - ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), SPIF_NULL_TYPE(classname)); + ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), (spif_classname_t) NULL); return SPIF_OBJ_CLASSNAME(self); } @@ -266,11 +266,11 @@ spif_socket_open(spif_socket_t self) if (SPIF_SOCKET_FLAGS_IS_SET(self, SPIF_SOCKET_FLAGS_FAMILY_INET)) { self->fam = AF_INET; if (!SPIF_URL_ISNULL(self->remote_url)) { - self->addr = SPIF_CAST(sockaddr) spif_url_get_ipaddr(self->remote_url); + self->addr = (spif_sockaddr_t) spif_url_get_ipaddr(self->remote_url); } else { - self->addr = SPIF_NULL_TYPE(sockaddr); + self->addr = (spif_sockaddr_t) NULL; } - if (self->addr == SPIF_NULL_TYPE(sockaddr)) { + if (self->addr == (spif_sockaddr_t) NULL) { self->len = 0; } else { self->len = SPIF_SIZEOF_TYPE(ipsockaddr); @@ -278,11 +278,11 @@ spif_socket_open(spif_socket_t self) } else if (SPIF_SOCKET_FLAGS_IS_SET(self, SPIF_SOCKET_FLAGS_FAMILY_UNIX)) { self->fam = AF_UNIX; if (!SPIF_URL_ISNULL(self->remote_url)) { - self->addr = SPIF_CAST(sockaddr) spif_url_get_unixaddr(self->remote_url); + self->addr = (spif_sockaddr_t) spif_url_get_unixaddr(self->remote_url); } else { - self->addr = SPIF_NULL_TYPE(sockaddr); + self->addr = (spif_sockaddr_t) NULL; } - if (self->addr == SPIF_NULL_TYPE(sockaddr)) { + if (self->addr == (spif_sockaddr_t) NULL) { self->len = 0; } else { self->len = SPIF_SIZEOF_TYPE(unixsockaddr); @@ -306,7 +306,7 @@ spif_socket_open(spif_socket_t self) ASSERT_NOTREACHED_RVAL(FALSE); } - self->fd = SPIF_CAST(sockfd) socket(self->fam, self->type, self->proto); + self->fd = (spif_sockfd_t) socket(self->fam, self->type, self->proto); if (self->fd < 0) { libast_print_error("Unable to create socket(%d, %d, %d) -- %s\n", (int) self->fam, (int) self->type, (int) self->proto, strerror(errno)); @@ -321,7 +321,7 @@ spif_socket_open(spif_socket_t self) addr = spif_url_get_ipaddr(self->local_url); D_OBJ(("Binding to port %d\n", ntohs(addr->sin_port))); - if (bind(self->fd, SPIF_CAST(sockaddr) addr, SPIF_SIZEOF_TYPE(ipsockaddr))) { + if (bind(self->fd, (spif_sockaddr_t) addr, SPIF_SIZEOF_TYPE(ipsockaddr))) { libast_print_error("Unable to bind socket %d to %s -- %s\n", (int) self->fd, SPIF_STR_STR(self->local_url), strerror(errno)); FREE(addr); @@ -333,7 +333,7 @@ spif_socket_open(spif_socket_t self) addr = spif_url_get_unixaddr(self->local_url); - if (bind(self->fd, SPIF_CAST(sockaddr) addr, SPIF_SIZEOF_TYPE(unixsockaddr))) { + if (bind(self->fd, (spif_sockaddr_t) addr, SPIF_SIZEOF_TYPE(unixsockaddr))) { libast_print_error("Unable to bind socket %d to %s -- %s\n", (int) self->fd, SPIF_STR_STR(self->local_url), strerror(errno)); FREE(addr); @@ -425,7 +425,7 @@ spif_socket_accept(spif_socket_t self) int newfd; spif_socket_t tmp; - ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), SPIF_NULL_TYPE(socket)); + ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), (spif_socket_t) NULL); addr = SPIF_ALLOC(sockaddr); len = SPIF_SIZEOF_TYPE(sockaddr); @@ -435,7 +435,7 @@ spif_socket_accept(spif_socket_t self) if (newfd < 0) { libast_print_error("Unable to accept() connection on %d -- %s\n", self->fd, strerror(errno)); - return SPIF_NULL_TYPE(socket); + return (spif_socket_t) NULL; } /* We got one. Create and return a new socket object for the accepted connection. */ @@ -443,9 +443,9 @@ spif_socket_accept(spif_socket_t self) tmp->fd = newfd; SPIF_SOCKET_FLAGS_CLEAR(tmp, (SPIF_SOCKET_FLAGS_LISTEN | SPIF_SOCKET_FLAGS_HAVE_INPUT | SPIF_SOCKET_FLAGS_CAN_OUTPUT)); if (SPIF_SOCKET_FLAGS_IS_SET(self, SPIF_SOCKET_FLAGS_FAMILY_INET)) { - tmp->remote_url = spif_url_new_from_ipaddr(SPIF_CAST(ipsockaddr) addr); + tmp->remote_url = spif_url_new_from_ipaddr((spif_ipsockaddr_t) addr); } else if (SPIF_SOCKET_FLAGS_IS_SET(self, SPIF_SOCKET_FLAGS_FAMILY_UNIX)) { - tmp->remote_url = spif_url_new_from_unixaddr(SPIF_CAST(unixsockaddr) addr); + tmp->remote_url = spif_url_new_from_unixaddr((spif_unixsockaddr_t) addr); } SPIF_DEALLOC(addr); if (SPIF_SOCKET_FLAGS_IS_SET(self, SPIF_SOCKET_FLAGS_NBIO)) { @@ -518,7 +518,7 @@ spif_socket_recv(spif_socket_t self) { spif_str_t new_str; - ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), SPIF_NULL_TYPE(str)); + ASSERT_RVAL(!SPIF_SOCKET_ISNULL(self), (spif_str_t) NULL); new_str = spif_str_new_from_fd(self->fd); return new_str; } @@ -625,7 +625,7 @@ spif_url_new_from_ipaddr(spif_ipsockaddr_t ipaddr) self = SPIF_ALLOC(url); if (!spif_url_init_from_ipaddr(self, ipaddr)) { SPIF_DEALLOC(self); - self = SPIF_NULL_TYPE(url); + self = (spif_url_t) NULL; } return self; } @@ -639,18 +639,18 @@ spif_url_init_from_ipaddr(spif_url_t self, spif_ipsockaddr_t ipaddr) ASSERT_RVAL(!SPIF_URL_ISNULL(self), FALSE); spif_str_init(SPIF_STR(self)); spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(url)); - self->proto = SPIF_NULL_TYPE(str); - self->user = SPIF_NULL_TYPE(str); - self->passwd = SPIF_NULL_TYPE(str); - self->path = SPIF_NULL_TYPE(str); - self->query = SPIF_NULL_TYPE(str); + self->proto = (spif_str_t) NULL; + self->user = (spif_str_t) NULL; + self->passwd = (spif_str_t) NULL; + self->path = (spif_str_t) NULL; + self->query = (spif_str_t) NULL; /* Try up to 3 times to resolve the hostname. */ h_errno = 0; tries = 0; do { tries++; - hinfo = gethostbyaddr(SPIF_CONST_CAST_C(char *) &(ipaddr->sin_addr), sizeof(ipaddr->sin_addr), AF_INET); + hinfo = gethostbyaddr((const char *) &(ipaddr->sin_addr), sizeof(ipaddr->sin_addr), AF_INET); } while ((tries <= 3) && (hinfo == NULL) && (h_errno == TRY_AGAIN)); if (hinfo == NULL || hinfo->h_name == NULL) { spif_charptr_t buff; @@ -673,7 +673,7 @@ spif_url_new_from_unixaddr(spif_unixsockaddr_t unixaddr) self = SPIF_ALLOC(url); if (!spif_url_init_from_unixaddr(self, unixaddr)) { SPIF_DEALLOC(self); - self = SPIF_NULL_TYPE(url); + self = (spif_url_t) NULL; } return self; } @@ -684,17 +684,17 @@ spif_url_init_from_unixaddr(spif_url_t self, spif_unixsockaddr_t unixaddr) ASSERT_RVAL(!SPIF_URL_ISNULL(self), FALSE); spif_str_init(SPIF_STR(self)); spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(url)); - self->proto = SPIF_NULL_TYPE(str); - self->user = SPIF_NULL_TYPE(str); - self->passwd = SPIF_NULL_TYPE(str); - self->host = SPIF_NULL_TYPE(str); - self->port = SPIF_NULL_TYPE(str); - self->query = SPIF_NULL_TYPE(str); + self->proto = (spif_str_t) NULL; + self->user = (spif_str_t) NULL; + self->passwd = (spif_str_t) NULL; + self->host = (spif_str_t) NULL; + self->port = (spif_str_t) NULL; + self->query = (spif_str_t) NULL; if (unixaddr->sun_path != NULL) { self->path = spif_str_new_from_ptr(SPIF_CHARPTR(unixaddr->sun_path)); } else { - self->path = SPIF_NULL_TYPE(str); + self->path = (spif_str_t) NULL; } return TRUE; } @@ -707,27 +707,27 @@ spif_url_get_ipaddr(spif_url_t self) spif_ipsockaddr_t addr; spif_str_t hostname; - ASSERT_RVAL(!SPIF_URL_ISNULL(self), SPIF_NULL_TYPE(ipsockaddr)); + ASSERT_RVAL(!SPIF_URL_ISNULL(self), (spif_ipsockaddr_t) NULL); /* We need a hostname of some type to connect to. */ hostname = SPIF_STR(spif_url_get_host(self)); - REQUIRE_RVAL(!SPIF_STR_ISNULL(hostname), SPIF_NULL_TYPE(ipsockaddr)); + REQUIRE_RVAL(!SPIF_STR_ISNULL(hostname), (spif_ipsockaddr_t) NULL); /* Try up to 3 times to resolve the hostname. */ h_errno = 0; tries = 0; do { tries++; - hinfo = gethostbyname(SPIF_CHARPTR_C(SPIF_STR_STR(hostname))); + hinfo = gethostbyname((char *) SPIF_STR_STR(hostname)); } while ((tries <= 3) && (hinfo == NULL) && (h_errno == TRY_AGAIN)); if (hinfo == NULL) { libast_print_error("Unable to resolve hostname \"%s\" -- %s\n", SPIF_STR_STR(hostname), hstrerror(h_errno)); - return SPIF_NULL_TYPE(ipsockaddr); + return (spif_ipsockaddr_t) NULL; } if (hinfo->h_addr_list == NULL) { libast_print_error("Invalid address list returned by gethostbyname()\n"); - return SPIF_NULL_TYPE(ipsockaddr); + return (spif_ipsockaddr_t) NULL; } /* Grab the host IP address and port number, both in network byte order. */ @@ -745,13 +745,13 @@ spif_url_get_unixaddr(spif_url_t self) { spif_unixsockaddr_t addr; - ASSERT_RVAL(!SPIF_URL_ISNULL(self), SPIF_NULL_TYPE(unixsockaddr)); + ASSERT_RVAL(!SPIF_URL_ISNULL(self), (spif_unixsockaddr_t) NULL); /* No address to look up, just a file path. */ addr = SPIF_ALLOC(unixsockaddr); addr->sun_family = AF_UNIX; addr->sun_path[0] = 0; - strncat(addr->sun_path, SPIF_CHARPTR_C(SPIF_STR_STR(spif_url_get_path(self))), sizeof(addr->sun_path) - 1); + strncat(addr->sun_path, (char *) SPIF_STR_STR(spif_url_get_path(self)), sizeof(addr->sun_path) - 1); return addr; } @@ -760,15 +760,15 @@ spif_url_get_portnum(spif_url_t self) { spif_str_t port_str; - ASSERT_RVAL(!SPIF_URL_ISNULL(self), SPIF_NULL_TYPE(sockport)); + ASSERT_RVAL(!SPIF_URL_ISNULL(self), (spif_sockport_t) NULL); /* Return the integer form of the port number for a URL */ port_str = spif_url_get_port(self); if (!SPIF_STR_ISNULL(port_str)) { - return SPIF_CAST(sockport) spif_str_to_num(port_str, 10); + return (spif_sockport_t) spif_str_to_num(port_str, 10); } - return SPIF_CAST(sockport) 0; + return (spif_sockport_t) 0; } static spif_bool_t @@ -810,12 +810,12 @@ spif_socket_get_proto(spif_socket_t self) } else { /* IP socket. See if they gave us a protocol name. */ SPIF_SOCKET_FLAGS_SET(self, SPIF_SOCKET_FLAGS_FAMILY_INET); - proto = getprotobyname(SPIF_CHARPTR_C(SPIF_STR_STR(proto_str))); + proto = getprotobyname((char *) SPIF_STR_STR(proto_str)); if (proto == NULL) { /* If it's not a protocol, it's probably a service. */ - serv = getservbyname(SPIF_CHARPTR_C(SPIF_STR_STR(proto_str)), "tcp"); + serv = getservbyname((char *) SPIF_STR_STR(proto_str), "tcp"); if (serv == NULL) { - serv = getservbyname(SPIF_CHARPTR_C(SPIF_STR_STR(proto_str)), "udp"); + serv = getservbyname((char *) SPIF_STR_STR(proto_str), "udp"); } if (serv != NULL) { /* If we found one, get the protocol info too. */ |