unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* HAVE_SOCKETS in w32*
@ 2010-08-05 18:05 Dan Nicolaescu
  2010-09-15  1:46 ` Juanma Barranquero
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Nicolaescu @ 2010-08-05 18:05 UTC (permalink / raw)
  To: emacs-devel


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. 

Only msdos does not define HAVE_SOCKETS currently, and a lot of the
HAVE_SOCKETS #ifdefs are only used when subprocesses is defined.  That
means that most of those can simply go away.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: HAVE_SOCKETS in w32*
  2010-08-05 18:05 HAVE_SOCKETS in w32* Dan Nicolaescu
@ 2010-09-15  1:46 ` Juanma Barranquero
  2010-09-15  5:21   ` Jason Rumney
  2010-09-15 19:34   ` Eli Zaretskii
  0 siblings, 2 replies; 4+ messages in thread
From: Juanma Barranquero @ 2010-09-15  1:46 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: emacs-devel

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);



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: HAVE_SOCKETS in w32*
  2010-09-15  1:46 ` Juanma Barranquero
@ 2010-09-15  5:21   ` Jason Rumney
  2010-09-15 19:34   ` Eli Zaretskii
  1 sibling, 0 replies; 4+ messages in thread
From: Jason Rumney @ 2010-09-15  5:21 UTC (permalink / raw)
  To: emacs-devel

On 15/09/2010 09:46, Juanma Barranquero wrote:
> 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?
>    

Its OK to remove this. HAVE_SOCKETS was needed for the original release 
of Windows 95, as sockets were an optional component that was not always 
installed. Later versions (including a later update of Windows 95) 
always install with networking support.  SOCK_REPLACE_HANDLE looks like 
it was experimental code from when sockets were first implemented.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: HAVE_SOCKETS in w32*
  2010-09-15  1:46 ` Juanma Barranquero
  2010-09-15  5:21   ` Jason Rumney
@ 2010-09-15 19:34   ` Eli Zaretskii
  1 sibling, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2010-09-15 19:34 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: dann, emacs-devel

> From: Juanma Barranquero <lekktu@gmail.com>
> Date: Wed, 15 Sep 2010 03:46:11 +0200
> Cc: emacs-devel@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?

Looks good to me.  Thanks.



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-09-15 19:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-05 18:05 HAVE_SOCKETS in w32* Dan Nicolaescu
2010-09-15  1:46 ` Juanma Barranquero
2010-09-15  5:21   ` Jason Rumney
2010-09-15 19:34   ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).