Example #1
0
static int mcast6opt_add_membership(struct netsocket_config *cfg)
{
	struct ipv6_mreq mreq;

	mreq.ipv6mr_multiaddr = *get_addr6(bound_address);
	if (cfg->in_interface) {
		mreq.ipv6mr_interface = if_nametoindex(cfg->in_interface);
		if (!mreq.ipv6mr_interface) {
			log_perror("The incoming interface name is invalid",
					errno);
			return 1;
		}
	} else {
		mreq.ipv6mr_interface = 0; /* Any interface. */
	}

	if (setsockopt(sk, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq,
			sizeof(mreq))) {
		log_perror("setsockopt(IPV6_ADD_MEMBERSHIP) failed", errno);
		return 1;
	}

	log_info("We're now registered to the multicast group.");
	return 0;
}
Example #2
0
SWITCH_DECLARE(const char *) switch_get_addr(char *buf, switch_size_t len, switch_sockaddr_t *in)
{
	if (!in) {
		return SWITCH_BLANK_STRING;
	}

	if (in->family == AF_INET) {
		return get_addr(buf, len, (struct sockaddr *) &in->sa, in->salen);
	}

	return get_addr6(buf, len, (struct sockaddr_in6 *) &in->sa, in->salen);
}
Example #3
0
int
main(int argc, char **argv)
{
    if ( argc != 2 ) {
        printf("Usage: %s <hostname>\n",argv[0]);
        exit(1);
    }

    char *_h = argv[1];

    get_addr4(_h);

    get_addr6(_h);

    printf("isabel_gethostbyname:: address failed. Host: [%s]\n", _h);

    exit(1);
}