#endif
static int make_socket(sa_family_t family);
-static int connect_port(struct sockaddr_storage *addrp, in_port_t port, char *proto,
- struct sockaddr_storage *svaddr, int nonblock);
+static int connect_port(sockaddr_union *addrp, in_port_t port, char *proto,
+ sockaddr_union *svaddr, int nonblock);
/*
* Keep calling read() until we've read buflen's worth of data, or EOF,
/* return -1 on failure */
int
connect_portrange(
- struct sockaddr_storage *addrp,
+ sockaddr_union *addrp,
in_port_t first_port,
in_port_t last_port,
char * proto,
- struct sockaddr_storage *svaddr,
+ sockaddr_union *svaddr,
int nonblock)
{
int s;
/* return >0: this is the connected socket */
int
connect_port(
- struct sockaddr_storage *addrp,
+ sockaddr_union *addrp,
in_port_t port,
char * proto,
- struct sockaddr_storage *svaddr,
+ sockaddr_union *svaddr,
int nonblock)
{
int save_errno;
struct servent * servPort;
- socklen_t len;
- socklen_t socklen;
+ socklen_t_equiv len;
+ socklen_t_equiv socklen;
int s;
servPort = getservbyport((int)htons(port), proto);
return -1;
}
- if ((s = make_socket(addrp->ss_family)) == -1) return -2;
+ if ((s = make_socket(SU_GET_FAMILY(addrp))) == -1) return -2;
- SS_SET_PORT(addrp, port);
+ SU_SET_PORT(addrp, port);
socklen = SS_LEN(addrp);
if (bind(s, (struct sockaddr *)addrp, socklen) != 0) {
save_errno = errno;
int
bind_portrange(
int s,
- struct sockaddr_storage *addrp,
+ sockaddr_union *addrp,
in_port_t first_port,
in_port_t last_port,
char * proto)
{
in_port_t port;
in_port_t cnt;
- socklen_t socklen;
+ socklen_t_equiv socklen;
struct servent *servPort;
const in_port_t num_ports = (in_port_t)(last_port - first_port + 1);
int save_errno = EAGAIN;
for (cnt = 0; cnt < num_ports; cnt++) {
servPort = getservbyport((int)htons(port), proto);
if ((servPort == NULL) || strstr(servPort->s_name, "amanda")) {
- SS_SET_PORT(addrp, port);
+ SU_SET_PORT(addrp, port);
socklen = SS_LEN(addrp);
if (bind(s, (struct sockaddr *)addrp, socklen) >= 0) {
if (servPort == NULL) {