* See the file LICENSE for details.
*
* $Log: tcpip.c,v $
- * Revision 1.39 2001-07-19 19:49:40 adam
+ * Revision 1.40 2001-08-23 09:02:46 adam
+ * WIN32 fixes: Socket not re-used for bind. yaz_log logs WIN32 error
+ * message.
+ *
+ * Revision 1.39 2001/07/19 19:49:40 adam
* Fixed bug in tcpip_set_blocking.
*
* Revision 1.38 2001/03/21 12:43:36 adam
#else
TRC (fprintf (stderr, "tcpip_bind\n"));
#endif
+#ifndef WIN32
if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, (char*)
&one, sizeof(one)) < 0)
{
h->cerrno = CSYSERR;
return -1;
}
- if (bind(h->iofile, addr, sizeof(struct sockaddr_in)) < 0)
+#endif
+ if (bind(h->iofile, addr, sizeof(struct sockaddr_in)))
{
h->cerrno = CSYSERR;
return -1;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: log.c,v $
- * Revision 1.24 2000-09-04 08:58:15 adam
+ * Revision 1.25 2001-08-23 09:02:46 adam
+ * WIN32 fixes: Socket not re-used for bind. yaz_log logs WIN32 error
+ * message.
+ *
+ * Revision 1.24 2000/09/04 08:58:15 adam
* Added prefix yaz_ for most logging utility functions.
*
* Revision 1.23 2000/03/14 09:06:11 adam
#include <config.h>
#endif
+#ifdef WIN32
+#include <windows.h>
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
vsprintf(buf, fmt, ap);
#endif
if (o_level & LOG_ERRNO)
- sprintf(buf + strlen(buf), " [%s]", strerror(errno));
+ {
+#ifdef WIN32
+ DWORD err = GetLastError();
+ if (err)
+ {
+ strcat(buf, " [");
+ FormatMessage(
+ FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ err,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
+ (LPTSTR) buf + strlen(buf),
+ 2048,
+ NULL);
+ strcat(buf, "]");
+ }
+#else
+ sprintf(buf + strlen(buf), " [%s]", strerror(errno));
+#endif
+ }
if (start_hook_func)
(*start_hook_func)(o_level, buf, start_hook_info);
ti = time(0);