File: common.h

package info (click to toggle)
haskell-network-info 0.2.0.5-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 100 kB
  • ctags: 23
  • sloc: ansic: 209; haskell: 12; sh: 3; makefile: 2
file content (26 lines) | stat: -rw-r--r-- 619 bytes parent folder | download | duplicates (7)
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';
}