windows: fix sb-bsd-sockets build by adding shutdown() support
authorNikodemus Siivola <nikodemus@random-state.net>
Thu, 26 Sep 2013 08:40:45 +0000 (11:40 +0300)
committerNikodemus Siivola <nikodemus@random-state.net>
Thu, 26 Sep 2013 08:40:55 +0000 (11:40 +0300)
contrib/sb-bsd-sockets/win32-constants.lisp
contrib/sb-bsd-sockets/win32-sockets.lisp

index 7b8e719..5b4ed07 100644 (file)
  (:integer msg-peek "MSG_PEEK")
  (:integer msg-dontroute "MSG_DONTROUTE")
 
+ ;; socket shutdown flags
+ (:integer SHUT_RD "SD_RECEIVE")
+ (:integer SHUT_WR "SD_SEND")
+ (:integer SHUT_RDWR "SD_BOTH")
 
+ ;; errors
  (:integer EADDRINUSE "WSAEADDRINUSE")
  (:integer EAGAIN "WSAEWOULDBLOCK")
  (:integer EBADF "WSAEBADF")
  (:function getprotobynumber ("getprotobynumber" (* protoent)
                                                  (proto int)))
 
+ ;; FIXME: We should probably grovel the windows SOCKET type and use it in
+ ;; these instead of int...
+
+ ;; KLUDGE: For historical reasons many of these prepend win32- to the symbol
+ ;; names. Life for Windows users of SBCL is already hard enough, so rather
+ ;; than break compatibility for those who directly use these, win32-sockets.lisp
+ ;; wraps them with prefixless wrappers.
  (:function win32-bind
             ("bind" int
              (sockfd int)
  (:function win32-close ("closesocket" int
                          (fd int)))
 
+ (:function shutdown ("shutdown" int
+                      (socket int) ; KLUDGE: should be SOCKET, not int.
+                      (how int)))
+
  (:function win32-recvfrom ("recvfrom" ssize-t
                             (socket int)
                             (buf (* t))
index c5dadac..2d1e867 100644 (file)
@@ -32,6 +32,9 @@
 ;;; prepend "win32-" to the symbol names.  Rather than break compatibility
 ;;; for users depending on those names, wrap the misnamed functions in
 ;;; correctly named ones...
+;;;
+;;; FIXME: We have a deprecation pipe these days. Remove the win32-prefixes,
+;;; and make deprecation-wrappers with the prefixes.
 (macrolet ((define-socket-fd-arg-routines (&rest names)
              `(progn
                 (declaim (inline ,@names))