[Python-Dev] [Python-checkins] r85934 - in python/branches/py3k: Misc/NEWS Modules/socketmodule.c
"Martin v. Löwis"
martin at v.loewis.de
Sat Oct 30 22:08:57 CEST 2010
> I think size should be in TCHARs, not in bytes. (MSDN says so)
> And GetComputerName's signature differs from MSDN. (Maybe should
> use GetComputerNameExW again?)
You are right. So how about this patch?
Index: Modules/socketmodule.c
===================================================================
--- Modules/socketmodule.c (Revision 85983)
+++ Modules/socketmodule.c (Arbeitskopie)
@@ -3098,16 +3098,16 @@
version of the hostname, whereas we need a Unicode string.
Otherwise, gethostname apparently also returns the DNS name. */
wchar_t buf[MAX_COMPUTERNAME_LENGTH];
- DWORD size = sizeof(buf);
+ DWORD size = sizeof(buf)/sizeof(wchar_t);
if (!GetComputerNameExW(ComputerNamePhysicalDnsHostname, buf, &size)) {
if (GetLastError() == ERROR_MORE_DATA) {
/* MSDN says this may occur "because DNS allows longer names */
PyObject *result = PyUnicode_FromUnicode(NULL, size);
if (!result)
return NULL;
- if (GetComputerName(ComputerNamePhysicalDnsHostname,
- PyUnicode_AS_UNICODE(result),
- size+1))
+ if (GetComputerNameExW(ComputerNamePhysicalDnsHostname,
+ PyUnicode_AS_UNICODE(result),
+ size+1))
return result;
Py_DECREF(result);
}
Regards,
Martin
More information about the Python-Dev
mailing list