diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-12-02 15:23:03 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-12-02 15:23:03 +0000 |
commit | 2bc3381e5c9922ba6013c8b8cc7809d49057d4d4 (patch) | |
tree | 8e09307dc9a4a57460e4935538f26e4b2601fda0 /winsup/cygwin | |
parent | 39276d4bceae7c91479f7e691a833a3991b8ed79 (diff) | |
download | newlib-2bc3381e5c9922ba6013c8b8cc7809d49057d4d4.zip newlib-2bc3381e5c9922ba6013c8b8cc7809d49057d4d4.tar.gz newlib-2bc3381e5c9922ba6013c8b8cc7809d49057d4d4.tar.bz2 |
* fhandler_socket.cc (send_internal): Don't split datagram messages
into pieces.
* syslog.cc (vsyslog): Set default facility to LOG_USER if it hasn't
been set yet.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_socket.cc | 14 | ||||
-rw-r--r-- | winsup/cygwin/syslog.cc | 6 |
3 files changed, 23 insertions, 5 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 4be550c..91964d3 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2009-12-02 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_socket.cc (send_internal): Don't split datagram messages + into pieces. + + * syslog.cc (vsyslog): Set default facility to LOG_USER if it hasn't + been set yet. + 2009-12-01 Corinna Vinschen <corinna@vinschen.de> * fhandler_registry.cc (fhandler_registry::open): Mark /proc/registry diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc index 5f22d7d..98a64ae 100644 --- a/winsup/cygwin/fhandler_socket.cc +++ b/winsup/cygwin/fhandler_socket.cc @@ -1613,8 +1613,10 @@ fhandler_socket::send_internal (struct _WSAMSG *wsamsg, int flags) for (DWORD i = 0; i < wsamsg->dwBufferCount; off >= wsamsg->lpBuffers[i].len && (++i, off = 0)) { - /* FIXME? Use the same technique in call to WSASendMsg? */ - if (!use_sendmsg) + /* CV 2009-12-02: Don't split datagram messages. */ + /* FIXME: Look for a way to split a message into the least number of + pieces to minimize the number of WsaSendTo calls. */ + if (get_socket_type () == SOCK_STREAM) { buf.buf = wsamsg->lpBuffers[i].buf + off; buf.len = wsamsg->lpBuffers[i].len - off; @@ -1627,9 +1629,13 @@ fhandler_socket::send_internal (struct _WSAMSG *wsamsg, int flags) { if (use_sendmsg) res = WSASendMsg (get_socket (), wsamsg, flags, &ret, NULL, NULL); - else + else if (get_socket_type () == SOCK_STREAM) res = WSASendTo (get_socket (), &buf, 1, &ret, flags, wsamsg->name, wsamsg->namelen, NULL, NULL); + else + res = WSASendTo (get_socket (), wsamsg->lpBuffers, + wsamsg->dwBufferCount, &ret, flags, + wsamsg->name, wsamsg->namelen, NULL, NULL); if (res && (err = WSAGetLastError ()) == WSAEWOULDBLOCK) { LOCK_EVENTS; @@ -1644,7 +1650,7 @@ fhandler_socket::send_internal (struct _WSAMSG *wsamsg, int flags) { off += ret; sum += ret; - if (use_sendmsg) + if (get_socket_type () != SOCK_STREAM) break; } else if (is_nonblocking () || err != WSAEWOULDBLOCK) diff --git a/winsup/cygwin/syslog.cc b/winsup/cygwin/syslog.cc index fe76b50..b27f0e7 100644 --- a/winsup/cygwin/syslog.cc +++ b/winsup/cygwin/syslog.cc @@ -1,7 +1,7 @@ /* syslog.cc Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007 Red Hat, Inc. + 2006, 2007, 2009 Red Hat, Inc. This file is part of Cygwin. @@ -275,6 +275,10 @@ vsyslog (int priority, const char *message, va_list ap) return; } + /* Set default facility to LOG_USER if not yet set via openlog. */ + if (!_my_tls.locals.process_facility) + _my_tls.locals.process_facility = LOG_USER; + /* Add default facility if not in the given priority. */ if (!(priority & LOG_FACMASK)) priority |= _my_tls.locals.process_facility; |