2.0.1 • Published 8 months ago

sockopt v2.0.1

Weekly downloads
5
License
ISC
Repository
github
Last release
8 months ago

sockopt

getsockopt & setsockopt for Node.js sockets.

Allows you to set all the socket flags that Node does not expose via its built-in UDP & TCP socket APIs.

npm version ISC-licensed minimum Node.js version support me via GitHub Sponsors chat with me on Twitter

Installation

npm install sockopt

Usage

const {createSocket} = require('dgram')
const {getsockopt, setsockopt} = require('sockopt')

// https://github.com/apple/darwin-xnu/blob/a449c6a3b8014d9406c2ddbdc81795da24aa7443/bsd/sys/socket.h#L165
const SO_SNDBUF = 0x1001

const socket = createSocket({type: 'udp4'})
socket.bind(() => {
	console.log('SO_SNDBUF is', getsockopt(socket, SOL_SOCKET, SO_SNDBUF))
	setsockopt(socket, SOL_SOCKET, SO_SNDBUF, 1024)
	console.log('SO_SNDBUF is now', getsockopt(socket, SOL_SOCKET, SO_SNDBUF))
})
SO_SNDBUF is 9216
SO_SNDBUF is now 1024

ceveat: integer-based flags only

Note: Currently, this package only supports read & writing the flags via integers.

Set boolean flags (SO_BROADCAST) via 0 (disabled) and 1 (enabled), or +false and +true to be more explicit. Due to how the getsockopt syscall works, 0 will be returned for "disabled", and non-0 for "enabled".

Struct-based flags (e.g. SO_SNDTIMEO) do not work yet.

Related

Contributing

If you have a question or need support using sockopt, please double-check your code and setup first. If you think you have found a bug or want to propose a feature, use the issues page.

2.0.1

8 months ago

1.0.5

2 years ago

2.0.0

2 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago