1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
inline void ipv4copy(ipv4 *dst, struct sockaddr *addr)
{
*dst = ((struct sockaddr_in *)addr)->sin_addr.s_addr;
}
inline void ipv6copy(ipv6 *dst, struct sockaddr *addr)
{
memcpy(dst, ((struct sockaddr_in6 *)addr)->sin6_addr.s6_addr, sizeof(ipv6));
}
inline int wcsempty(const wchar_t *str)
{
return wcslen(str) == 0;
}
inline void wszcopy(wchar_t *dst, const wchar_t *src, size_t dst_size)
{
wcsncpy(dst, src, dst_size - 1);
dst[dst_size - 1] = '\0';
}
inline void mbswszcopy(wchar_t *dst, const char *src, size_t dst_size)
{
mbstowcs(dst, src, dst_size - 1);
dst[dst_size - 1] = '\0';
}
|