Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch:
Changeset: r96797:8377609877a4
Date: 2019-06-12 13:48 +0200
http://bitbucket.org/pypy/pypy/changeset/8377609877a4/
Log: backport rlib socket changes from 440feb6ea372 (minus tabs)
diff --git a/rpython/rlib/_rsocket_rffi.py b/rpython/rlib/_rsocket_rffi.py
--- a/rpython/rlib/_rsocket_rffi.py
+++ b/rpython/rlib/_rsocket_rffi.py
@@ -203,6 +203,7 @@
FD_CONNECT_BIT FD_CLOSE_BIT
WSA_IO_PENDING WSA_IO_INCOMPLETE WSA_INVALID_HANDLE
WSA_INVALID_PARAMETER WSA_NOT_ENOUGH_MEMORY WSA_OPERATION_ABORTED
+WSA_FLAG_OVERLAPPED
SIO_RCVALL SIO_KEEPALIVE_VALS
SIOCGIFNAME SIOCGIFINDEX
@@ -1010,6 +1011,7 @@
CConfig.WSAPROTOCOL_INFO = platform.Struct(
'WSAPROTOCOL_INFOA',
[]) # Struct is just passed between functions
+
CConfig.FROM_PROTOCOL_INFO = platform.DefinedConstantInteger(
'FROM_PROTOCOL_INFO')
@@ -1035,6 +1037,45 @@
('keepalivetime', rffi.ULONG),
('keepaliveinterval', rffi.ULONG)])
+ CConfig.GUID = platform.Struct(
+ 'struct _GUID',
+ [('Data1', rffi.UINT),
+ ('Data2', rffi.UINT),
+ ('Data3', rffi.UINT),
+ ('Data4', rffi.CFixedArray(rffi.UCHAR, 8))
+ ])
+
+ CConfig.WSAPROTOCOLCHAIN = platform.Struct(
+ 'struct _WSAPROTOCOLCHAIN',
+ [('ChainLen', rffi.INT),
+ ('ChainEntries', rffi.CFixedArray(rffi.UINT, 7))])
+
+ WSAPROTOCOLCHAIN = CConfig.WSAPROTOCOLCHAIN
+ GUID = CConfig.GUID
+
+ CConfig.WSAPROTOCOL_INFOW = platform.Struct(
+ 'struct _WSAPROTOCOL_INFOW',
+ [('dwServiceFlags1', rffi.UINT),
+ ('dwServiceFlags2', rffi.UINT),
+ ('dwServiceFlags3', rffi.UINT),
+ ('dwServiceFlags4', rffi.UINT),
+ ('dwProviderFlags', rffi.UINT),
+ ('ProviderId', GUID),
+ ('dwCatalogEntryId', rffi.UINT),
+ ('ProtocolChain', WSAPROTOCOLCHAIN),
+ ('iVersion', rffi.INT),
+ ('iAddressFamily', rffi.INT),
+ ('iMaxSockAddr', rffi.INT),
+ ('iMinSockAddr', rffi.INT),
+ ('iSocketType', rffi.INT),
+ ('iProtocol', rffi.INT),
+ ('iProtocolMaxOffset', rffi.INT),
+ ('iNetworkByteOrder', rffi.INT),
+ ('iSecurityScheme', rffi.INT),
+ ('dwMessageSize', rffi.UINT),
+ ('dwProviderReserved', rffi.UINT),
+ ('szProtocol', rffi.CFixedArray(rffi.UCHAR, 256))])
+
class cConfig:
pass
@@ -1337,6 +1378,20 @@
rffi.VOIDP, rwin32.DWORD,
rwin32.LPDWORD, rffi.VOIDP, rffi.VOIDP],
rffi.INT, save_err=SAVE_ERR)
+
+ WSAPROTOCOL_INFOW = cConfig.WSAPROTOCOL_INFOW
+
+ WSADuplicateSocketW = external('WSADuplicateSocketW',
+ [socketfd_type, rwin32.DWORD,
+ lltype.Ptr(WSAPROTOCOL_INFOW)],
+ rffi.INT, save_err=SAVE_ERR)
+
+ WSASocketW = external('WSASocketW',
+ [rffi.INT, rffi.INT, rffi.INT,
+ lltype.Ptr(WSAPROTOCOL_INFOW),
+ rwin32.DWORD, rwin32.DWORD],
+ socketfd_type, save_err=SAVE_ERR)
+
tcp_keepalive = cConfig.tcp_keepalive
WSAPROTOCOL_INFO = cConfig.WSAPROTOCOL_INFO
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit