From: Juanma Barranquero <lekktu@gmail.com>
To: Dan Nicolaescu <dann@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: HAVE_SOCKETS in w32*
Date: Wed, 15 Sep 2010 03:46:11 +0200 [thread overview]
Message-ID: <AANLkTimmdVMd2EZW3aJ7XZX1XWZw6mhmJdDh6ALxg-Mu@mail.gmail.com> (raw)
In-Reply-To: <yxqvd7p5418.fsf@fencepost.gnu.org>
On Thu, Aug 5, 2010 at 20:05, Dan Nicolaescu <dann@gnu.org> wrote:
> HAVE_SOCKETS is defined unconditionally in s/ms-w32.h, yet some w32*.c
> files use HAVE_SOCKETS #ifdefs.
>
> It would be good to get rid of those.
The following patch does that; it also removes the few uses of
SOCK_REPLACE_HANDLE, which has been commented out since 1996.
Eli, Jason?
Juanma
2010-09-15 Juanma Barranquero <lekktu@gmail.com>
Don't make code conditional on HAVE_SOCKETS, it's always defined on W32.
* w32.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
(gethostname) [!HAVE_SOCKETS]: Remove.
(SOCK_REPLACE_HANDLE): Remove macro.
(socket_to_fd, sys_close, _sys_read_ahead, sys_read, sys_write)
(term_ntproc, init_ntproc): Don't conditionalize on HAVE_SOCKETS.
* w32proc.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
(syms_of_ntproc): Don't conditionalize on HAVE_SOCKETS.
=== modified file 'src/w32.c'
--- src/w32.c 2010-08-06 19:52:47 +0000
+++ src/w32.c 2010-09-15 01:24:04 +0000
@@ -110,7 +110,7 @@
DWORD PrivateUsage;
} PROCESS_MEMORY_COUNTERS_EX,*PPROCESS_MEMORY_COUNTERS_EX;
-#ifdef HAVE_SOCKETS /* TCP connection support, if kernel can do it */
+/* TCP connection support. */
#include <sys/socket.h>
#undef socket
#undef bind
@@ -129,7 +129,6 @@
#undef accept
#undef recvfrom
#undef sendto
-#endif
#include "w32.h"
#include "ndir.h"
@@ -830,17 +829,6 @@
#endif
}
-#ifndef HAVE_SOCKETS
-/* Emulate gethostname. */
-int
-gethostname (char *buffer, int size)
-{
- /* NT only allows small host names, so the buffer is
- certainly large enough. */
- return !GetComputerName (buffer, &size);
-}
-#endif /* HAVE_SOCKETS */
-
/* Emulate getloadavg. */
struct load_sample {
@@ -4348,8 +4336,6 @@
}
\f
-#ifdef HAVE_SOCKETS
-
/* Wrappers for winsock functions to map between our file descriptors
and winsock's handles; also set h_errno for convenience.
@@ -4636,13 +4622,7 @@
but I believe the method of keeping the socket handle separate (and
insuring it is not inheritable) is the correct one. */
-//#define SOCK_REPLACE_HANDLE
-
-#ifdef SOCK_REPLACE_HANDLE
-#define SOCK_HANDLE(fd) ((SOCKET) _get_osfhandle (fd))
-#else
#define SOCK_HANDLE(fd) ((SOCKET) fd_info[fd].hnd)
-#endif
int socket_to_fd (SOCKET s);
@@ -4686,13 +4666,6 @@
fd = _open ("NUL:", _O_RDWR);
if (fd >= 0)
{
-#ifdef SOCK_REPLACE_HANDLE
- /* now replace handle to NUL with our socket handle */
- CloseHandle ((HANDLE) _get_osfhandle (fd));
- _free_osfhnd (fd);
- _set_osfhnd (fd, s);
- /* setmode (fd, _O_BINARY); */
-#else
/* Make a non-inheritable copy of the socket handle. Note
that it is possible that sockets aren't actually kernel
handles, which appears to be the case on Windows 9x when
@@ -4738,7 +4711,6 @@
}
}
fd_info[fd].hnd = (HANDLE) s;
-#endif
/* set our own internal flags */
fd_info[fd].flags = FILE_SOCKET | FILE_BINARY | FILE_READ | FILE_WRITE;
@@ -5099,8 +5071,6 @@
return SOCKET_ERROR;
}
-#endif /* HAVE_SOCKETS */
-
/* Shadow main io functions: we need to handle pipes and sockets more
intelligently, and implement non-blocking mode as well. */
@@ -5135,18 +5105,15 @@
}
if (i == MAXDESC)
{
-#ifdef HAVE_SOCKETS
if (fd_info[fd].flags & FILE_SOCKET)
{
-#ifndef SOCK_REPLACE_HANDLE
if (winsock_lib == NULL) abort ();
pfn_shutdown (SOCK_HANDLE (fd), 2);
rc = pfn_closesocket (SOCK_HANDLE (fd));
-#endif
+
winsock_inuse--; /* count open sockets */
}
-#endif
delete_child (cp);
}
}
@@ -5314,7 +5281,6 @@
return STATUS_READ_ERROR;
}
}
-#ifdef HAVE_SOCKETS
else if (fd_info[fd].flags & FILE_SOCKET)
{
unsigned long nblock = 0;
@@ -5330,7 +5296,6 @@
pfn_ioctlsocket (SOCK_HANDLE (fd), FIONBIO, &nblock);
}
}
-#endif
if (rc == sizeof (char))
cp->status = STATUS_READ_SUCCEEDED;
@@ -5502,7 +5467,6 @@
nchars += rc;
}
}
-#ifdef HAVE_SOCKETS
else /* FILE_SOCKET */
{
if (winsock_lib == NULL) abort ();
@@ -5529,7 +5493,6 @@
nchars += res;
}
}
-#endif
}
else
{
@@ -5654,9 +5617,7 @@
}
}
}
- else
-#ifdef HAVE_SOCKETS
- if (fd < MAXDESC && fd_info[fd].flags & FILE_SOCKET)
+ else if (fd < MAXDESC && fd_info[fd].flags & FILE_SOCKET)
{
unsigned long nblock = 0;
if (winsock_lib == NULL) abort ();
@@ -5684,7 +5645,6 @@
}
}
else
-#endif
{
/* Some networked filesystems don't like too large writes, so
break them into smaller chunks. See the Comments section of
@@ -5776,10 +5736,8 @@
void
term_ntproc (void)
{
-#ifdef HAVE_SOCKETS
/* shutdown the socket interface if necessary */
term_winsock ();
-#endif
term_w32select ();
}
@@ -5787,7 +5745,6 @@
void
init_ntproc (void)
{
-#ifdef HAVE_SOCKETS
/* Initialise the socket interface now if available and requested by
the user by defining PRELOAD_WINSOCK; otherwise loading will be
delayed until open-network-stream is called (w32-has-winsock can
@@ -5801,7 +5758,6 @@
if (getenv ("PRELOAD_WINSOCK") != NULL)
init_winsock (TRUE);
-#endif
/* Initial preparation for subprocess support: replace our standard
handles with non-inheritable versions. */
=== modified file 'src/w32proc.c'
--- src/w32proc.c 2010-07-08 21:25:08 +0000
+++ src/w32proc.c 2010-09-15 01:26:18 +0000
@@ -1694,8 +1694,6 @@
process_dir = dir;
}
-#ifdef HAVE_SOCKETS
-
/* To avoid problems with winsock implementations that work over dial-up
connections causing or requiring a connection to exist while Emacs is
running, Emacs no longer automatically loads winsock on startup if it
@@ -1759,8 +1757,6 @@
return term_winsock () ? Qt : Qnil;
}
-#endif /* HAVE_SOCKETS */
-
\f
/* Some miscellaneous functions that are Windows specific, but not GUI
specific (ie. are applicable in terminal or batch mode as well). */
@@ -2268,10 +2264,9 @@
DEFSYM (Qhigh, "high");
DEFSYM (Qlow, "low");
-#ifdef HAVE_SOCKETS
defsubr (&Sw32_has_winsock);
defsubr (&Sw32_unload_winsock);
-#endif
+
defsubr (&Sw32_short_file_name);
defsubr (&Sw32_long_file_name);
defsubr (&Sw32_set_process_priority);
next prev parent reply other threads:[~2010-09-15 1:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-05 18:05 HAVE_SOCKETS in w32* Dan Nicolaescu
2010-09-15 1:46 ` Juanma Barranquero [this message]
2010-09-15 5:21 ` Jason Rumney
2010-09-15 19:34 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AANLkTimmdVMd2EZW3aJ7XZX1XWZw6mhmJdDh6ALxg-Mu@mail.gmail.com \
--to=lekktu@gmail.com \
--cc=dann@gnu.org \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.