equal
deleted
inserted
replaced
|
1 from libc cimport * |
|
2 |
|
3 cdef object inet_ntop (int af, void *sockaddr) : |
|
4 """ |
|
5 Wrapper around inet_ntop, returning a PyString |
|
6 """ |
|
7 |
|
8 # XXX: longest possible address... |
|
9 cdef char buf[INET6_ADDRSTRLEN] |
|
10 |
|
11 if c_inet_ntop(af, sockaddr, buf, sizeof(buf)) == NULL : |
|
12 # XXX: errno? |
|
13 raise OSError() |
|
14 |
|
15 # autoconvert -> str |
|
16 return buf |
|
17 |
|
18 cdef object inet_pton (int af, char *addr, void *sockaddr_out) : |
|
19 if c_inet_pton(af, addr, sockaddr_out) < 0 : |
|
20 raise OSError() |
|
21 |
|
22 cdef object getnameinfo (sockaddr *sa, socklen_t salen, int flags) : |
|
23 cdef char hostbuf[NI_MAXHOST] |
|
24 cdef char servbuf[NI_MAXSERV] |
|
25 cdef int err |
|
26 |
|
27 err = c_getnameinfo(sa, salen, hostbuf, sizeof(hostbuf), servbuf, sizeof(servbuf), flags) |
|
28 |
|
29 if err : |
|
30 # XXX: raise a GAIError |
|
31 raise Exception(gai_strerror(err)) |
|
32 |
|
33 else : |
|
34 return hostbuf, servbuf |
|
35 |