Changeset 89
- Timestamp:
- 06/21/10 00:06:20 (2 years ago)
- Files:
-
- trunk/win32/dfl/socket.d (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/win32/dfl/socket.d
r88 r89 11 11 version(DFL_TangoNetDeviceBerkeley) 12 12 { 13 version = _DFL_Tango HasBerkeleySocket;13 version = _DFL_TangoBerkeleySocket; 14 14 } 15 15 else version(Old) … … 19 19 else 20 20 { 21 // Tango's socket conduit not supported yet. 22 version = DFL_NoSocket; 21 version = _DFL_TangoSocketConduit; 23 22 } 24 23 } … … 44 43 { 45 44 46 version(_DFL_Tango HasBerkeleySocket)45 version(_DFL_TangoBerkeleySocket) 47 46 { 48 47 private import std.intrinsic; … … 70 69 } 71 70 } 71 else version(_DFL_TangoSocketConduit) 72 { 73 private import std.intrinsic; 74 private import tango.net.device.Socket; 75 private import tango.net.device.Berkeley; 76 77 alias NetHost DInternetHost; 78 alias IPv4Address DInternetAddress; 79 80 socket_t getSocketHandle(DflSocket sock) 81 { 82 return sock.native.handle; 83 } 84 } 72 85 73 86 } … … 89 102 version(Tango) 90 103 { 91 version(_DFL_Tango HasBerkeleySocket)104 version(_DFL_TangoBerkeleySocket) 92 105 { 93 106 class DflSocket /// … … 267 280 268 281 alias tango.net.Socket.Socket DflSocket; /// 282 283 } 284 else version(_DFL_TangoSocketConduit) 285 { 286 287 alias tango.net.device.Socket.Socket DflSocket; /// 269 288 270 289 } … … 332 351 _init(); 333 352 334 sock.blocking = false; // So the getter will be correct. 353 version(Tango) 354 { 355 version(_DFL_TangoBerkeleySocket) 356 { 357 sock.blocking = false; // So the getter will be correct. 358 } 359 else version(_DFL_TangoHasOldSocket) 360 { 361 sock.blocking = false; // So the getter will be correct. 362 } 363 } 364 else 365 { 366 sock.blocking = false; // So the getter will be correct. 367 } 335 368 336 369 // SOCKET_ERROR … … 362 395 { 363 396 super(af, type, protocol); 364 super.blocking = false; 397 version(_DFL_TangoSocketConduit) 398 { 399 this.native.blocking = false; 400 } 401 else 402 { 403 super.blocking = false; 404 } 365 405 } 366 406 367 407 version(Tango) 368 408 { 409 version(_DFL_TangoSocketConduit) 410 { 411 412 this() 413 { 414 super(); 415 this.native.blocking = false; 416 } 417 418 } 369 419 } 370 420 else … … 385 435 } 386 436 387 /// ditto 388 // For use with accept(). 389 protected this() 390 { 437 version(_DFL_TangoSocketConduit) 438 { 439 } 440 else 441 { 442 /// ditto 443 // For use with accept(). 444 protected this() 445 { 446 } 391 447 } 392 448 … … 401 457 version(Tango) 402 458 { 403 version(_DFL_Tango HasBerkeleySocket)459 version(_DFL_TangoBerkeleySocket) 404 460 { 405 461 override DflSocket accept() … … 441 497 442 498 443 override bool blocking() // getter 444 { 445 return false; 446 } 447 448 449 override void blocking(bool byes) // setter 450 { 451 if(byes) 452 assert(0); 453 } 499 version(_DFL_TangoSocketConduit) 500 { 501 } 502 else 503 { 504 override bool blocking() // getter 505 { 506 return false; 507 } 508 509 510 override void blocking(bool byes) // setter 511 { 512 if(byes) 513 assert(0); 514 } 515 } 516 454 517 } 455 518 … … 785 848 st = buf.length; 786 849 787 st = sock.send(buf[0 .. st]); 850 version(_DFL_TangoSocketConduit) 851 { 852 st = sock.write(buf[0 .. st]); 853 } 854 else 855 { 856 st = sock.send(buf[0 .. st]); 857 } 788 858 if(st > 0) 789 859 { … … 856 926 readbuf.length = readbuf.length + 2048; 857 927 858 int rd = sock.receive(readbuf[rpos .. readbuf.length]); 928 version(_DFL_TangoSocketConduit) 929 { 930 int rd = sock.read(readbuf[rpos .. readbuf.length]); 931 } 932 else 933 { 934 int rd = sock.receive(readbuf[rpos .. readbuf.length]); 935 } 859 936 if(rd > 0) 860 937 rpos += cast(uint)rd; … … 875 952 buf = writebuf; 876 953 877 int st = sock.send(buf); 954 version(_DFL_TangoSocketConduit) 955 { 956 int st = sock.write(buf); 957 } 958 else 959 { 960 int st = sock.send(buf); 961 } 878 962 if(st > 0) 879 963 writebuf = writebuf[st .. writebuf.length];
