diff options
author | Alastair Houghton <alastair@coriolis-systems.com> | 2017-06-01 11:08:56 +0100 |
---|---|---|
committer | Alastair Houghton <alastair@coriolis-systems.com> | 2017-06-01 11:08:56 +0100 |
commit | 1d66d486d027fde737c8725fea08056d198164cd (patch) | |
tree | d950ea5c5492483ff64498e76368c19525e29cb4 | |
parent | 83c8b7185803d658f753dd7fcb560a4cb150f92f (diff) | |
download | netifaces-1d66d486d027fde737c8725fea08056d198164cd.tar.gz |
Always use Unicode strings, regardless of platform; otherwise it makes using it with ipaddress annoying.
-rw-r--r-- | netifaces.c | 178 |
1 files changed, 95 insertions, 83 deletions
diff --git a/netifaces.c b/netifaces.c index cf09adb..f1443df 100644 --- a/netifaces.c +++ b/netifaces.c @@ -1,9 +1,21 @@ #include <Python.h> +/* Before Python 2.6, PyUnicode_FromString doesn't exist */ +#if PY_MAJOR_VERSION < 2 || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 6) +PyObject *PyUnicode_FromString(const char *s) +{ + Py_ssize_t len = strlen(s); + if (!len) { + Py_UNICODE uc = 0; + return PyUnicode_FromUnicode(&uc, 0); + } + return PyUnicode_DecodeUTF8(s, len, NULL); +} +#endif + /* Python 3 compatibility */ #if PY_MAJOR_VERSION >= 3 #define PyInt_FromLong PyLong_FromLong -#define PyString_FromString PyUnicode_FromString #define MODULE_ERROR NULL #define MODULE_RETURN(v) return (v) @@ -601,7 +613,7 @@ netmask_from_prefix (unsigned prefix) buffer[sizeof(buffer) - 1] = '\0'; - return PyString_FromString(buffer); + return PyUnicode_FromString(buffer); } /* We dynamically bind to WSAAddressToStringW or WSAAddressToStringA @@ -666,7 +678,7 @@ string_from_address(SOCKADDR *addr, DWORD addrlen) iRet = AddressToStringA (addr, addrlen, NULL, buffer, &dwLen); if (iRet == 0) - return PyString_FromString (buffer); + return PyUnicode_FromString (buffer); } return NULL; @@ -790,7 +802,7 @@ ifaddrs (PyObject *self, PyObject *args) } *--ptr = '\0'; - hwaddr = PyString_FromString (buffer); + hwaddr = PyUnicode_FromString (buffer); dict = PyDict_New (); if (!dict) { @@ -1050,13 +1062,13 @@ ifaddrs (PyObject *self, PyObject *args) #endif /* HAVE_IPV6_SOCKET_IOCTLS */ if (string_from_sockaddr (addr->ifa_addr, buffer, sizeof (buffer)) == 0) - pyaddr = PyString_FromString (buffer); + pyaddr = PyUnicode_FromString (buffer); if (string_from_netmask (addr->ifa_netmask, buffer, sizeof (buffer)) == 0) - netmask = PyString_FromString (buffer); + netmask = PyUnicode_FromString (buffer); if (string_from_sockaddr (addr->ifa_broadaddr, buffer, sizeof (buffer)) == 0) - braddr = PyString_FromString (buffer); + braddr = PyUnicode_FromString (buffer); /* Cygwin's implementation of getaddrinfo() is buggy and returns broadcast addresses for 169.254.0.0/16. Nix them here. */ @@ -1134,7 +1146,7 @@ ifaddrs (PyObject *self, PyObject *args) found = TRUE; if (string_from_sockaddr ((struct sockaddr *)&ifr.CNAME(ifr_addr), buffer, sizeof (buffer)) == 0) { - PyObject *hwaddr = PyString_FromString (buffer); + PyObject *hwaddr = PyUnicode_FromString (buffer); PyObject *dict = PyDict_New (); if (!hwaddr || !dict) { @@ -1166,7 +1178,7 @@ ifaddrs (PyObject *self, PyObject *args) found = TRUE; if (string_from_sockaddr ((struct sockaddr *)&ifr.CNAME(ifr_addr), buffer, sizeof (buffer)) == 0) - addr = PyString_FromString (buffer); + addr = PyUnicode_FromString (buffer); } #endif @@ -1179,7 +1191,7 @@ ifaddrs (PyObject *self, PyObject *args) found = TRUE; if (string_from_sockaddr ((struct sockaddr *)&ifr.CNAME(ifr_addr), buffer, sizeof (buffer)) == 0) - netmask = PyString_FromString (buffer); + netmask = PyUnicode_FromString (buffer); } #endif @@ -1205,7 +1217,7 @@ ifaddrs (PyObject *self, PyObject *args) found = TRUE; if (string_from_sockaddr ((struct sockaddr *)&ifr.CNAME(ifr_addr), buffer, sizeof (buffer)) == 0) - braddr = PyString_FromString (buffer); + braddr = PyUnicode_FromString (buffer); } #endif @@ -1218,7 +1230,7 @@ ifaddrs (PyObject *self, PyObject *args) found = TRUE; if (string_from_sockaddr ((struct sockaddr *)&ifr.CNAME(ifr_addr), buffer, sizeof (buffer)) == 0) - dstaddr = PyString_FromString (buffer); + dstaddr = PyUnicode_FromString (buffer); } #endif @@ -1318,7 +1330,7 @@ interfaces (PyObject *self) } for (pInfo = pAdapterAddresses; pInfo; pInfo = pInfo->Next) { - PyObject *ifname = (PyObject *)PyString_FromString (pInfo->AdapterName); + PyObject *ifname = (PyObject *)PyUnicode_FromString (pInfo->AdapterName); PyList_Append (result, ifname); Py_DECREF (ifname); @@ -1342,7 +1354,7 @@ interfaces (PyObject *self) for (addr = addrs; addr; addr = addr->ifa_next) { if (!prev_name || strncmp (addr->ifa_name, prev_name, IFNAMSIZ) != 0) { - PyObject *ifname = PyString_FromString (addr->ifa_name); + PyObject *ifname = PyUnicode_FromString (addr->ifa_name); if (!PySequence_Contains (result, ifname)) PyList_Append (result, ifname); @@ -1412,7 +1424,7 @@ interfaces (PyObject *self) + ifc.CNAME(ifc_len)); while (pfreq < pfreqend) { if (!prev_name || strncmp (prev_name, pfreq->CNAME(ifr_name), IFNAMSIZ) != 0) { - PyObject *name = PyString_FromString (pfreq->CNAME(ifr_name)); + PyObject *name = PyUnicode_FromString (pfreq->CNAME(ifr_name)); if (!PySequence_Contains (result, name)) PyList_Append (result, name); @@ -1656,7 +1668,7 @@ gateways (PyObject *self) dwBestMetric = table->table[n].dwForwardMetric1; ifname = PyUnicode_FromUnicode (pwcsName, wcslen (pwcsName)); - gateway = PyString_FromString (gwbuf); + gateway = PyUnicode_FromString (gwbuf); isdefault = bBest ? Py_True : Py_False; tuple = PyTuple_Pack (3, gateway, ifname, isdefault); @@ -1914,8 +1926,8 @@ gateways (PyObject *self) } } - pyifname = PyString_FromString (ifname); - pyaddr = PyString_FromString (buffer); + pyifname = PyUnicode_FromString (ifname); + pyaddr = PyUnicode_FromString (buffer); tuple = PyTuple_Pack (3, pyaddr, pyifname, isdefault); @@ -2020,7 +2032,7 @@ gateways (PyObject *self) continue; } - pyifname = PyString_FromString (ifname); + pyifname = PyUnicode_FromString (ifname); ptr = (char *)(msg + 1); while (ptr + sizeof (struct sockaddr) <= msgend && addrs) { @@ -2062,7 +2074,7 @@ gateways (PyObject *self) PyObject *deftuple = NULL; if (string_from_sockaddr (sa, buffer, sizeof(buffer)) == 0) { - PyObject *pyaddr = PyString_FromString (buffer); + PyObject *pyaddr = PyUnicode_FromString (buffer); #ifdef RTF_IFSCOPE PyObject *isdefault = PyBool_FromLong (!(msg->rtm_flags & RTF_IFSCOPE)); #else @@ -2288,8 +2300,8 @@ gateways (PyObject *self) if (string_from_sockaddr ((struct sockaddr *)gw, buffer, sizeof(buffer)) == 0) { - PyObject *pyifname = PyString_FromString (ifname); - PyObject *pyaddr = PyString_FromString (buffer); + PyObject *pyifname = PyUnicode_FromString (ifname); + PyObject *pyaddr = PyUnicode_FromString (buffer); #ifdef RTF_IFSCOPE PyObject *isdefault = PyBool_FromLong (!(pmsg->rtm_flags & RTF_IFSCOPE)); #else @@ -2467,8 +2479,8 @@ gateways (PyObject *self) if (string_from_sockaddr ((struct sockaddr *)gw, buffer, sizeof(buffer)) == 0) { - PyObject *pyifname = PyString_FromString (ifname); - PyObject *pyaddr = PyString_FromString (buffer); + PyObject *pyifname = PyUnicode_FromString (ifname); + PyObject *pyaddr = PyUnicode_FromString (buffer); #ifdef RTF_IFSCOPE PyObject *isdefault = PyBool_FromLong (!(pmsg->rtm_flags & RTF_IFSCOPE)); #else @@ -2566,297 +2578,297 @@ MODULE_INIT(netifaces) #ifdef AF_UNSPEC PyModule_AddIntConstant (m, "AF_UNSPEC", AF_UNSPEC); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_UNSPEC), - PyString_FromString("AF_UNSPEC")); + PyUnicode_FromString("AF_UNSPEC")); #endif #ifdef AF_UNIX PyModule_AddIntConstant (m, "AF_UNIX", AF_UNIX); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_UNIX), - PyString_FromString("AF_UNIX")); + PyUnicode_FromString("AF_UNIX")); #endif #ifdef AF_FILE PyModule_AddIntConstant (m, "AF_FILE", AF_FILE); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_FILE), - PyString_FromString("AF_FILE")); + PyUnicode_FromString("AF_FILE")); #endif #ifdef AF_INET PyModule_AddIntConstant (m, "AF_INET", AF_INET); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_INET), - PyString_FromString("AF_INET")); + PyUnicode_FromString("AF_INET")); #endif #ifdef AF_AX25 PyModule_AddIntConstant (m, "AF_AX25", AF_AX25); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_AX25), - PyString_FromString("AF_AX25")); + PyUnicode_FromString("AF_AX25")); #endif #ifdef AF_IMPLINK PyModule_AddIntConstant (m, "AF_IMPLINK", AF_IMPLINK); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_IMPLINK), - PyString_FromString("AF_IMPLINK")); + PyUnicode_FromString("AF_IMPLINK")); #endif #ifdef AF_PUP PyModule_AddIntConstant (m, "AF_PUP", AF_PUP); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_PUP), - PyString_FromString("AF_PUP")); + PyUnicode_FromString("AF_PUP")); #endif #ifdef AF_CHAOS PyModule_AddIntConstant (m, "AF_CHAOS", AF_CHAOS); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_CHAOS), - PyString_FromString("AF_CHAOS")); + PyUnicode_FromString("AF_CHAOS")); #endif #ifdef AF_NS PyModule_AddIntConstant (m, "AF_NS", AF_NS); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NS), - PyString_FromString("AF_NS")); + PyUnicode_FromString("AF_NS")); #endif #ifdef AF_ISO PyModule_AddIntConstant (m, "AF_ISO", AF_ISO); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ISO), - PyString_FromString("AF_ISO")); + PyUnicode_FromString("AF_ISO")); #endif #ifdef AF_ECMA PyModule_AddIntConstant (m, "AF_ECMA", AF_ECMA); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ECMA), - PyString_FromString("AF_ECMA")); + PyUnicode_FromString("AF_ECMA")); #endif #ifdef AF_DATAKIT PyModule_AddIntConstant (m, "AF_DATAKIT", AF_DATAKIT); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_DATAKIT), - PyString_FromString("AF_DATAKIT")); + PyUnicode_FromString("AF_DATAKIT")); #endif #ifdef AF_CCITT PyModule_AddIntConstant (m, "AF_CCITT", AF_CCITT); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_CCITT), - PyString_FromString("AF_CCITT")); + PyUnicode_FromString("AF_CCITT")); #endif #ifdef AF_SNA PyModule_AddIntConstant (m, "AF_SNA", AF_SNA); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_SNA), - PyString_FromString("AF_SNA")); + PyUnicode_FromString("AF_SNA")); #endif #ifdef AF_DECnet PyModule_AddIntConstant (m, "AF_DECnet", AF_DECnet); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_DECnet), - PyString_FromString("AF_DECnet")); + PyUnicode_FromString("AF_DECnet")); #endif #ifdef AF_DLI PyModule_AddIntConstant (m, "AF_DLI", AF_DLI); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_DLI), - PyString_FromString("AF_DLI")); + PyUnicode_FromString("AF_DLI")); #endif #ifdef AF_LAT PyModule_AddIntConstant (m, "AF_LAT", AF_LAT); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_LAT), - PyString_FromString("AF_LAT")); + PyUnicode_FromString("AF_LAT")); #endif #ifdef AF_HYLINK PyModule_AddIntConstant (m, "AF_HYLINK", AF_HYLINK); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_HYLINK), - PyString_FromString("AF_HYLINK")); + PyUnicode_FromString("AF_HYLINK")); #endif #ifdef AF_APPLETALK PyModule_AddIntConstant (m, "AF_APPLETALK", AF_APPLETALK); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_APPLETALK), - PyString_FromString("AF_APPLETALK")); + PyUnicode_FromString("AF_APPLETALK")); #endif #ifdef AF_ROUTE PyModule_AddIntConstant (m, "AF_ROUTE", AF_ROUTE); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ROUTE), - PyString_FromString("AF_ROUTE")); + PyUnicode_FromString("AF_ROUTE")); #endif #ifdef AF_LINK PyModule_AddIntConstant (m, "AF_LINK", AF_LINK); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_LINK), - PyString_FromString("AF_LINK")); + PyUnicode_FromString("AF_LINK")); #endif #ifdef AF_PACKET PyModule_AddIntConstant (m, "AF_PACKET", AF_PACKET); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_PACKET), - PyString_FromString("AF_PACKET")); + PyUnicode_FromString("AF_PACKET")); #endif #ifdef AF_COIP PyModule_AddIntConstant (m, "AF_COIP", AF_COIP); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_COIP), - PyString_FromString("AF_COIP")); + PyUnicode_FromString("AF_COIP")); #endif #ifdef AF_CNT PyModule_AddIntConstant (m, "AF_CNT", AF_CNT); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_CNT), - PyString_FromString("AF_CNT")); + PyUnicode_FromString("AF_CNT")); #endif #ifdef AF_IPX PyModule_AddIntConstant (m, "AF_IPX", AF_IPX); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_IPX), - PyString_FromString("AF_IPX")); + PyUnicode_FromString("AF_IPX")); #endif #ifdef AF_SIP PyModule_AddIntConstant (m, "AF_SIP", AF_SIP); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_SIP), - PyString_FromString("AF_SIP")); + PyUnicode_FromString("AF_SIP")); #endif #ifdef AF_NDRV PyModule_AddIntConstant (m, "AF_NDRV", AF_NDRV); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NDRV), - PyString_FromString("AF_NDRV")); + PyUnicode_FromString("AF_NDRV")); #endif #ifdef AF_ISDN PyModule_AddIntConstant (m, "AF_ISDN", AF_ISDN); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ISDN), - PyString_FromString("AF_ISDN")); + PyUnicode_FromString("AF_ISDN")); #endif #ifdef AF_INET6 PyModule_AddIntConstant (m, "AF_INET6", AF_INET6); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_INET6), - PyString_FromString("AF_INET6")); + PyUnicode_FromString("AF_INET6")); #endif #ifdef AF_NATM PyModule_AddIntConstant (m, "AF_NATM", AF_NATM); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NATM), - PyString_FromString("AF_NATM")); + PyUnicode_FromString("AF_NATM")); #endif #ifdef AF_SYSTEM PyModule_AddIntConstant (m, "AF_SYSTEM", AF_SYSTEM); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_SYSTEM), - PyString_FromString("AF_SYSTEM")); + PyUnicode_FromString("AF_SYSTEM")); #endif #ifdef AF_NETBIOS PyModule_AddIntConstant (m, "AF_NETBIOS", AF_NETBIOS); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NETBIOS), - PyString_FromString("AF_NETBIOS")); + PyUnicode_FromString("AF_NETBIOS")); #endif #ifdef AF_NETBEUI PyModule_AddIntConstant (m, "AF_NETBEUI", AF_NETBEUI); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NETBEUI), - PyString_FromString("AF_NETBEUI")); + PyUnicode_FromString("AF_NETBEUI")); #endif #ifdef AF_PPP PyModule_AddIntConstant (m, "AF_PPP", AF_PPP); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_PPP), - PyString_FromString("AF_PPP")); + PyUnicode_FromString("AF_PPP")); #endif #ifdef AF_ATM PyModule_AddIntConstant (m, "AF_ATM", AF_ATM); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ATM), - PyString_FromString("AF_ATM")); + PyUnicode_FromString("AF_ATM")); #endif #ifdef AF_ATMPVC PyModule_AddIntConstant (m, "AF_ATMPVC", AF_ATMPVC); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ATMPVC), - PyString_FromString("AF_ATMPVC")); + PyUnicode_FromString("AF_ATMPVC")); #endif #ifdef AF_ATMSVC PyModule_AddIntConstant (m, "AF_ATMSVC", AF_ATMSVC); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ATMSVC), - PyString_FromString("AF_ATMSVC")); + PyUnicode_FromString("AF_ATMSVC")); #endif #ifdef AF_NETGRAPH PyModule_AddIntConstant (m, "AF_NETGRAPH", AF_NETGRAPH); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NETGRAPH), - PyString_FromString("AF_NETGRAPH")); + PyUnicode_FromString("AF_NETGRAPH")); #endif #ifdef AF_VOICEVIEW PyModule_AddIntConstant (m, "AF_VOICEVIEW", AF_VOICEVIEW); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_VOICEVIEW), - PyString_FromString("AF_VOICEVIEW")); + PyUnicode_FromString("AF_VOICEVIEW")); #endif #ifdef AF_FIREFOX PyModule_AddIntConstant (m, "AF_FIREFOX", AF_FIREFOX); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_FIREFOX), - PyString_FromString("AF_FIREFOX")); + PyUnicode_FromString("AF_FIREFOX")); #endif #ifdef AF_UNKNOWN1 PyModule_AddIntConstant (m, "AF_UNKNOWN1", AF_UNKNOWN1); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_UNKNOWN1), - PyString_FromString("AF_UNKNOWN1")); + PyUnicode_FromString("AF_UNKNOWN1")); #endif #ifdef AF_BAN PyModule_AddIntConstant (m, "AF_BAN", AF_BAN); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_BAN), - PyString_FromString("AF_BAN")); + PyUnicode_FromString("AF_BAN")); #endif #ifdef AF_CLUSTER PyModule_AddIntConstant (m, "AF_CLUSTER", AF_CLUSTER); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_CLUSTER), - PyString_FromString("AF_CLUSTER")); + PyUnicode_FromString("AF_CLUSTER")); #endif #ifdef AF_12844 PyModule_AddIntConstant (m, "AF_12844", AF_12844); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_12844), - PyString_FromString("AF_12844")); + PyUnicode_FromString("AF_12844")); #endif #ifdef AF_IRDA PyModule_AddIntConstant (m, "AF_IRDA", AF_IRDA); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_IRDA), - PyString_FromString("AF_IRDA")); + PyUnicode_FromString("AF_IRDA")); #endif #ifdef AF_NETDES PyModule_AddIntConstant (m, "AF_NETDES", AF_NETDES); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NETDES), - PyString_FromString("AF_NETDES")); + PyUnicode_FromString("AF_NETDES")); #endif #ifdef AF_NETROM PyModule_AddIntConstant (m, "AF_NETROM", AF_NETROM); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NETROM), - PyString_FromString("AF_NETROM")); + PyUnicode_FromString("AF_NETROM")); #endif #ifdef AF_BRIDGE PyModule_AddIntConstant (m, "AF_BRIDGE", AF_BRIDGE); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_BRIDGE), - PyString_FromString("AF_BRIDGE")); + PyUnicode_FromString("AF_BRIDGE")); #endif #ifdef AF_X25 PyModule_AddIntConstant (m, "AF_X25", AF_X25); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_X25), - PyString_FromString("AF_X25")); + PyUnicode_FromString("AF_X25")); #endif #ifdef AF_ROSE PyModule_AddIntConstant (m, "AF_ROSE", AF_ROSE); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ROSE), - PyString_FromString("AF_ROSE")); + PyUnicode_FromString("AF_ROSE")); #endif #ifdef AF_SECURITY PyModule_AddIntConstant (m, "AF_SECURITY", AF_SECURITY); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_SECURITY), - PyString_FromString("AF_SECURITY")); + PyUnicode_FromString("AF_SECURITY")); #endif #ifdef AF_KEY PyModule_AddIntConstant (m, "AF_KEY", AF_KEY); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_KEY), - PyString_FromString("AF_KEY")); + PyUnicode_FromString("AF_KEY")); #endif #ifdef AF_NETLINK PyModule_AddIntConstant (m, "AF_NETLINK", AF_NETLINK); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_NETLINK), - PyString_FromString("AF_NETLINK")); + PyUnicode_FromString("AF_NETLINK")); #endif #ifdef AF_ASH PyModule_AddIntConstant (m, "AF_ASH", AF_ASH); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ASH), - PyString_FromString("AF_ASH")); + PyUnicode_FromString("AF_ASH")); #endif #ifdef AF_ECONET PyModule_AddIntConstant (m, "AF_ECONET", AF_ECONET); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_ECONET), - PyString_FromString("AF_ECONET")); + PyUnicode_FromString("AF_ECONET")); #endif #ifdef AF_SNA PyModule_AddIntConstant (m, "AF_SNA", AF_SNA); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_SNA), - PyString_FromString("AF_SNA")); + PyUnicode_FromString("AF_SNA")); #endif #ifdef AF_PPPOX PyModule_AddIntConstant (m, "AF_PPPOX", AF_PPPOX); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_PPPOX), - PyString_FromString("AF_PPPOX")); + PyUnicode_FromString("AF_PPPOX")); #endif #ifdef AF_WANPIPE PyModule_AddIntConstant (m, "AF_WANPIPE", AF_WANPIPE); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_WANPIPE), - PyString_FromString("AF_WANPIPE")); + PyUnicode_FromString("AF_WANPIPE")); #endif #ifdef AF_BLUETOOTH PyModule_AddIntConstant (m, "AF_BLUETOOTH", AF_BLUETOOTH); PyDict_SetItem(address_family_dict, PyInt_FromLong(AF_BLUETOOTH), - PyString_FromString("AF_BLUETOOTH")); + PyUnicode_FromString("AF_BLUETOOTH")); #endif #ifdef IN6_IFF_AUTOCONF PyModule_AddIntConstant (m, "IN6_IFF_AUTOCONF", IN6_IFF_AUTOCONF); |