[utilities COMMIT] /cpp-log4shib/trunk/src/RemoteSyslogAppender.cpp
noreply at shibboleth.net
noreply at shibboleth.net
Wed Jan 28 17:16:29 EST 2015
Author: scantor
Date: Wed Jan 28 17:16:29 2015
New Revision: 732
URL: http://svn.shibboleth.net/view/utilities?rev=732&view=rev
Log:
Restore Winsock init logic
Modified:
cpp-log4shib/trunk/src/RemoteSyslogAppender.cpp
Modified: cpp-log4shib/trunk/src/RemoteSyslogAppender.cpp
URL: http://svn.shibboleth.net/view/utilities/cpp-log4shib/trunk/src/RemoteSyslogAppender.cpp?rev=732&r1=731&r2=732&view=diff
==============================================================================
--- cpp-log4shib/trunk/src/RemoteSyslogAppender.cpp (original)
+++ cpp-log4shib/trunk/src/RemoteSyslogAppender.cpp Wed Jan 28 17:16:29 2015
@@ -74,6 +74,12 @@
RemoteSyslogAppender::~RemoteSyslogAppender() {
close();
+#ifdef WIN32
+ if (_cludge) {
+ // we started it, we end it.
+ WSACleanup ();
+ }
+#endif
}
void RemoteSyslogAppender::open() {
@@ -83,15 +89,29 @@
type |= SOCK_CLOEXEC;
#endif
if ((_socket = socket(AF_INET, type, 0)) < 0) {
- // loglog("RemoteSyslogAppender: failed to open socket");
- return; // fail silently
+#ifdef WIN32
+ if (WSAGetLastError () == WSANOTINITIALISED) {
+ WSADATA wsaData;
+ if (WSAStartup (0x101, &wsaData) != 0) {
+ return;
+ }
+ _cludge = 1;
+ if ((_socket = socket(AF_INET, type, 0)) < 0) {
+ return;
+ }
+ } else {
+ return; // fail silently
+ }
+#else
+ return;
+#endif
}
#if !defined(LOG4SHIB_HAVE_SOCK_CLOEXEC) && defined(LOG4SHIB_HAVE_FD_CLOEXEC)
- int fdflags = ::fcntl(_socket, F_GETFD);
- if (fdflags != -1) {
- fdflags |= FD_CLOEXEC;
- ::fcntl(_socket, F_SETFD, fdflags);
- }
+ int fdflags = ::fcntl(_socket, F_GETFD);
+ if (fdflags != -1) {
+ fdflags |= FD_CLOEXEC;
+ ::fcntl(_socket, F_SETFD, fdflags);
+ }
#endif
}
More information about the commits
mailing list