Example #1
0
int link_address_remote(struct link *link, char *addr, int *port)
{
	struct sockaddr_in iaddr;
	SOCKLEN_T length;
	int result;

	length = sizeof(iaddr);
	result = getpeername(link->fd, (struct sockaddr *) &iaddr, &length);
	if(result != 0)
		return 0;

	*port = ntohs(iaddr.sin_port);
	string_from_ip_address((unsigned char *) &iaddr.sin_addr, addr);

	return 1;
}
Example #2
0
File: link.c Project: mcast/cctools
int link_address_local(struct link *link, char *addr, int *port)
{
	struct sockaddr_in iaddr;
	SOCKLEN_T length;
	int result;

	if(link->type == LINK_TYPE_FILE) {
		return 0;
	}

	length = sizeof(iaddr);
	result = getsockname(link->fd, (struct sockaddr *) &iaddr, &length);
	if(result != 0)
		return 0;

	*port = ntohs(iaddr.sin_port);
	string_from_ip_address((unsigned char *) &iaddr.sin_addr, addr);

	return 1;
}