From 6c4870d8122f2787feabb3f90647fed5fd31af45 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Wed, 30 Apr 2014 17:38:44 +0100 Subject: [PATCH] Get rid unsafe pointer type in GetQueuedCompletionStatus. --- lib/pure/asyncdispatch.nim | 5 +++-- lib/pure/asynchttpserver.nim | 4 +++- lib/windows/winlean.nim | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim index 93eddc2a60..f5dcf11a27 100644 --- a/lib/pure/asyncdispatch.nim +++ b/lib/pure/asyncdispatch.nim @@ -182,8 +182,9 @@ when defined(windows) or defined(nimdoc): var lpNumberOfBytesTransferred: DWORD var lpCompletionKey: ULONG var customOverlapped: PCustomOverlapped - let res = GetQueuedCompletionStatus(p.ioPort, addr lpNumberOfBytesTransferred, - addr lpCompletionKey, addr customOverlapped, llTimeout).bool + let res = GetQueuedCompletionStatus(p.ioPort, + addr lpNumberOfBytesTransferred, addr lpCompletionKey, + cast[ptr POverlapped](addr customOverlapped), llTimeout).bool # http://stackoverflow.com/a/12277264/492186 # TODO: http://www.serverframework.com/handling-multiple-pending-socket-read-and-write-operations.html diff --git a/lib/pure/asynchttpserver.nim b/lib/pure/asynchttpserver.nim index 2ebd7036d9..6c2414d999 100644 --- a/lib/pure/asynchttpserver.nim +++ b/lib/pure/asynchttpserver.nim @@ -174,7 +174,9 @@ when isMainModule: proc cb(req: TRequest) {.async.} = #echo(req.reqMethod, " ", req.url) #echo(req.headers) - await req.respond(Http200, "Hello World") + let headers = {"Date": "Tue, 29 Apr 2014 23:40:08 GMT", + "Content-type": "text/plain; charset=utf-8"} + await req.respond(Http200, "Hello World", headers.newStringTable()) server.serve(TPort(5555), cb) runForever() diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim index d5dda4b637..a868f30250 100644 --- a/lib/windows/winlean.nim +++ b/lib/windows/winlean.nim @@ -672,7 +672,7 @@ proc CreateIoCompletionPort*(FileHandle: THANDLE, ExistingCompletionPort: THANDL proc GetQueuedCompletionStatus*(CompletionPort: THandle, lpNumberOfBytesTransferred: PDWORD, lpCompletionKey: PULONG, - lpOverlapped: pointer, + lpOverlapped: ptr POverlapped, dwMilliseconds: DWORD): WINBOOL{.stdcall, dynlib: "kernel32", importc: "GetQueuedCompletionStatus".}