From 9d6adc8f3c8d237d5bb40677b80995cdb9d7da2a Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Tue, 24 Nov 2009 11:13:06 -0800 Subject: [PATCH] multiudpsink: return error message on windows too. --- gst/udp/gstmultiudpsink.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c index 9a5aaa6f8a..27fb8b251f 100644 --- a/gst/udp/gstmultiudpsink.c +++ b/gst/udp/gstmultiudpsink.c @@ -402,8 +402,20 @@ socket_last_error_code () static gchar * socket_last_error_message () { - /* TODO: windows version using FormatMessage() */ +#ifdef G_OS_WIN32 + int errorcode = WSAGetLastError (); + wchar_t buf[1024]; + DWORD result = + FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, errorcode, 0, buf, sizeof (buf) / sizeof (wchar_t), NULL); + if (FAILED (result)) { + return g_strdup ("failed to get error message from system"); + } else { + return g_convert (buf, "UTF-16", "UTF-8", NULL, NULL, NULL); + } +#else return g_strdup (g_strerror (errno)); +#endif } static GstFlowReturn