vsf_sysutil_getsockname
source
sysutil.c
line
1713 - 1736
function
1713 void
1714 vsf_sysutil_getsockname(int fd, struct vsf_sysutil_sockaddr** p_sockptr)
1715 {
1716 struct vsf_sysutil_sockaddr the_addr;
1717 int retval;
1718 unsigned int socklen = sizeof(the_addr);
1720 retval = getsockname(fd, &the_addr.u.u_sockaddr, &socklen);
1721 if (retval != 0)
1722 {
1723 die("getsockname");
1724 }
1725 if (the_addr.u.u_sockaddr.sa_family != AF_INET &&
1726 the_addr.u.u_sockaddr.sa_family != AF_INET6)
1727 {
1728 die("can only support ipv4 and ipv6 currently");
1729 }
1730 vsf_sysutil_sockaddr_alloc(p_sockptr);
1731 if (socklen > sizeof(the_addr))
1732 {
1733 socklen = sizeof(the_addr);
1734 }
1735 vsf_sysutil_memcpy(*p_sockptr, &the_addr, socklen);
1736 }
最終更新:2009年01月31日 20:35