#+linux (:integer so-passcred "SO_PASSCRED")
(:integer so-rcvbuf "SO_RCVBUF")
(:integer so-keepalive "SO_KEEPALIVE"
- "Send periodic keepalives: if peer does not respond, we get SIGPIPE")
+ "Send periodic keepalives. If peer does not respond, we get SIGPIPE.")
+ #+linux (:integer tcp-keepcnt "TCP_KEEPCNT"
+ "Number of unacknowledged probes before the connection is considered dead.")
+ #+linux (:integer tcp-keepidle "TCP_KEEPIDLE"
+ "Seconds between the last data packet sent and the first keepalive probe.")
+ #+linux (:integer tcp-keepintvl "TCP_KEEPINTVL" "Seconds between keepalive probes.")
(:integer so-oobinline "SO_OOBINLINE"
"Put out-of-band data into the normal input queue when received")
#+linux
#+linux (:integer so-bindtodevice "SO_BINDTODEVICE")
(:integer ifnamsiz "IFNAMSIZ")
+;; socket shutdown flags
+(:integer SHUT_RD "SHUT_RD")
+(:integer SHUT_WR "SHUT_WR")
+(:integer SHUT_RDWR "SHUT_RDWR")
+
+;; errors
(:integer EADDRINUSE "EADDRINUSE")
(:integer EAGAIN "EAGAIN")
(:integer EBADF "EBADF")
(addrlen socklen-t)))
(:function close ("close" int
(fd int)))
+ (:function shutdown ("shutdown" int
+ (fd int) (how int)))
(:function recvfrom ("recvfrom" ssize-t
(socket int)
(buf (* t))
#+darwin (integer addrlen "socklen_t" "ai_addrlen")
#-darwin (integer addrlen "size_t" "ai_addrlen")
((* sockaddr-in) addr "struct sockaddr*" "ai_addr")
- (c-string canonname "char *" "ai_canonname")
- ((* t) next "struct addrinfo*" "ai_next")))
+ (c-string-pointer canonname "char *" "ai_canonname")
+ ((* (struct addrinfo)) next "struct addrinfo*" "ai_next")))
#+sb-bsd-sockets-addrinfo
(:function getaddrinfo ("getaddrinfo"