Merge branch 'master' of git://github.com/fowlmouth/Nimrod into fowlmouth-master

This commit is contained in:
Dominik Picheta
2012-08-20 21:52:32 +01:00

View File

@@ -1205,7 +1205,7 @@ proc recvAsync*(socket: TSocket, s: var TaintedString): bool =
result = True
proc recvFrom*(socket: TSocket, data: var string, length: int,
address: var string, flags = 0'i32): int =
address: var string, port: var TPort, flags = 0'i32): int =
## Receives data from ``socket``. This function should normally be used with
## connection-less sockets (UDP sockets).
##
@@ -1215,7 +1215,7 @@ proc recvFrom*(socket: TSocket, data: var string, length: int,
## function will make no effort to return it.
# TODO: Buffered sockets
data = newString(length)
data.setLen(length)
var sockAddress: Tsockaddr_in
var addrLen = sizeof(sockAddress).TSockLen
result = recvFrom(socket.fd, cstring(data), length.cint, flags.cint,
@@ -1223,13 +1223,14 @@ proc recvFrom*(socket: TSocket, data: var string, length: int,
if result != -1:
address = $inet_ntoa(sockAddress.sin_addr)
port = ntohs(sockAddress.sin_port).TPort
proc recvFromAsync*(socket: TSocket, data: var String, length: int,
address: var string, flags = 0'i32): bool =
address: var string, port: var TPort, flags = 0'i32): bool =
## Similar to ``recvFrom`` but raises an EOS error when an error occurs.
## Returns False if no messages could be received from ``socket``.
result = true
var callRes = recvFrom(socket, data, length, address)
var callRes = recvFrom(socket, data, length, address, port, flags)
if callRes < 0:
when defined(windows):
# TODO: Test on Windows