Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Ticket #1652: timeval-fix.patch

File timeval-fix.patch, 2.8 kB (added by Deewiant, 10 years ago)

Patch, untested on Windows or 32-bit

  • net/device/Berkeley.d

    old new  
    172172{ 
    173173        pragma (lib, "ws2_32.lib"); 
    174174         
     175        private import tango.stdc.config; 
    175176        private import tango.sys.win32.WsaSock; 
    176177 
    177178        private typedef int socket_t = ~0; 
    178179 
     180        private struct timeval 
     181        { 
     182            c_long seconds; 
     183            c_long microseconds; 
     184        } 
     185 
    179186        extern (Windows) 
    180187        { 
    181188                alias closesocket close; 
     
    247254else 
    248255{ 
    249256        private import tango.stdc.errno; 
     257        private import tango.stdc.posix.sys.time; 
    250258 
    251259        private typedef int socket_t = -1; 
    252260 
     
    17491757        static int select (SocketSet checkRead, SocketSet checkWrite, SocketSet checkError, long microseconds) 
    17501758        {        
    17511759                timeval tv = { 
    1752                              cast(int)(microseconds / 1000000),  
    1753                              cast(int)(microseconds % 1000000) 
     1760                             microseconds / 1000000, 
     1761                             microseconds % 1000000 
    17541762                             }; 
    17551763                return select (checkRead, checkWrite, checkError, &tv); 
    17561764        } 
     
    17791787        char[14] sa_data = 0; 
    17801788} 
    17811789 
    1782 private struct timeval 
    1783 { 
    1784         int seconds;  
    1785         int microseconds;  
    1786 } 
    1787  
    17881790private struct fd_set 
    17891791{ 
    17901792} 
  • net/Socket.d

    old new  
    111111 
    112112version (Win32) 
    113113        { 
     114        private import tango.stdc.config; 
     115 
    114116        pragma(lib, "ws2_32.lib"); 
    115117 
    116118        private typedef int socket_t = ~0; 
     
    137139        } 
    138140        alias WSADATA* LPWSADATA; 
    139141 
     142        struct timeval 
     143        { 
     144            c_long tv_sec; //seconds 
     145            c_long tv_usec; //microseconds 
     146        } 
     147 
    140148        extern  (Windows) 
    141149                { 
    142150                alias closesocket close; 
     
    186194version (BsdSockets) 
    187195        { 
    188196        private import tango.stdc.errno; 
     197        private import tango.stdc.posix.sys.time; 
    189198 
    190199        private typedef int socket_t = -1; 
    191200 
     
    242251 
    243252*******************************************************************************/ 
    244253 
    245 struct timeval 
    246 { 
    247         int tv_sec; //seconds 
    248         int tv_usec; //microseconds 
    249 } 
    250254 
    251  
    252255//transparent 
    253256struct fd_set 
    254257{ 
     
    15361539        static timeval toTimeval (TimeSpan time) 
    15371540        { 
    15381541                timeval tv; 
    1539                 tv.tv_sec = cast(uint) time.seconds; 
    1540                 tv.tv_usec = cast(uint) time.micros % 1_000_000; 
     1542                tv.tv_sec = time.seconds; 
     1543                tv.tv_usec = time.micros % 1_000_000; 
    15411544                return tv; 
    15421545        } 
    15431546}