#include <sys/time.h>
#include <string.h>
#include <fcntl.h>
+#include <errno.h>
#include "nixio.h"
+
/**
* setblocking()
*/
} else if (!strcmp(option, "sndbuf")) {
return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_SNDBUF, set);
} else if (!strcmp(option, "priority")) {
+#ifdef SO_PRIORITY
return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_PRIORITY, set);
+#else
+ return nixio__pstatus(L, !(errno = ENOPROTOOPT));
+#endif
} else if (!strcmp(option, "broadcast")) {
return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_BROADCAST, set);
} else if (!strcmp(option, "linger")) {
return luaL_error(L, "not a TCP socket");
}
if (!strcmp(option, "cork")) {
- return nixio__gso_int(L, sock->fd, SOL_TCP, TCP_CORK, set);
+ return nixio__gso_int(L, sock->fd, IPPROTO_TCP, TCP_CORK, set);
} else if (!strcmp(option, "nodelay")) {
- return nixio__gso_int(L, sock->fd, SOL_TCP, TCP_NODELAY, set);
+ return nixio__gso_int(L, sock->fd, IPPROTO_TCP, TCP_NODELAY, set);
} else {
return luaL_argerror(L, 3, "supported values: cork, nodelay");
}