[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/w32.c,v
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/w32.c,v |
Date: |
Fri, 14 Jul 2006 09:29:32 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kim F. Storm <kfstorm> 06/07/14 09:29:32
Index: w32.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/w32.c,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -b -r1.102 -r1.103
--- w32.c 19 May 2006 19:29:36 -0000 1.102
+++ w32.c 14 Jul 2006 09:29:32 -0000 1.103
@@ -2700,6 +2700,7 @@
int (PASCAL *pfn_WSAStartup) (WORD wVersionRequired, LPWSADATA lpWSAData);
void (PASCAL *pfn_WSASetLastError) (int iError);
int (PASCAL *pfn_WSAGetLastError) (void);
+int (PASCAL *pfn_WSAEventSelect) (SOCKET s, HANDLE hEventObject, long
lNetworkEvents);
int (PASCAL *pfn_socket) (int af, int type, int protocol);
int (PASCAL *pfn_bind) (SOCKET s, const struct sockaddr *addr, int namelen);
int (PASCAL *pfn_connect) (SOCKET s, const struct sockaddr *addr, int namelen);
@@ -2782,6 +2783,7 @@
LOAD_PROC( WSAStartup );
LOAD_PROC( WSASetLastError );
LOAD_PROC( WSAGetLastError );
+ LOAD_PROC( WSAEventSelect );
LOAD_PROC( socket );
LOAD_PROC( bind );
LOAD_PROC( connect );
@@ -3295,6 +3297,11 @@
int rc = pfn_listen (SOCK_HANDLE (s), backlog);
if (rc == SOCKET_ERROR)
set_errno ();
+ else
+ {
+ fd_info[s].flags |= FILE_LISTEN;
+ pfn_WSAEventSelect (SOCK_HANDLE (s), fd_info[s].cp->char_avail,
FD_ACCEPT);
+ }
return rc;
}
h_errno = ENOTSOCK;
@@ -3332,11 +3339,16 @@
}
check_errno ();
- if (fd_info[s].flags & FILE_SOCKET)
+ if (fd_info[s].flags & FILE_LISTEN)
{
SOCKET t = pfn_accept (SOCK_HANDLE (s), addr, addrlen);
if (t != INVALID_SOCKET)
- return socket_to_fd (t);
+ {
+ int fd = socket_to_fd (t);
+ if (fd >= 0)
+ pfn_WSAEventSelect (SOCK_HANDLE (fd), fd_info[fd].cp->char_avail,
FD_READ | FD_CLOSE);
+ return fd;
+ }
set_errno ();
return -1;
- [Emacs-diffs] Changes to emacs/src/w32.c,v,
Kim F. Storm <=