Skip to content

Commit 27012c1

Browse files
authored
fix: expose errorno from ffi-rs (#316)
1 parent 5271914 commit 27012c1

File tree

3 files changed

+83
-86
lines changed

3 files changed

+83
-86
lines changed

lib/ffi-bindings.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,26 @@ const createFFI = () => {
1010

1111
return {
1212
setsockopt: (fd, level, name, value, valueLength) => {
13-
const ret = load({
13+
const { value: ret, errnoCode } = load({
1414
library: LIBRARY_NAME,
1515
funcName: 'setsockopt',
1616
retType: cInt,
1717
paramsType: [cInt, cInt, cInt, cVoidRef, cInt],
1818
paramsValue: [fd, level, name, value, valueLength],
19+
errno: true,
1920
})
20-
return ret
21+
return [ret, errnoCode]
2122
},
2223
getsockopt: (fd, level, name, value, valueLength) => {
23-
const ret = load({
24+
const { value: ret, errnoCode } = load({
2425
library: LIBRARY_NAME,
2526
funcName: 'getsockopt',
2627
retType: cInt,
2728
paramsType: [cInt, cInt, cInt, cVoidRef, cVoidRef],
2829
paramsValue: [fd, level, name, value, valueLength],
30+
errno: true,
2931
})
30-
return ret
32+
return [ret, errnoCode]
3133
},
3234
}
3335
}
@@ -51,10 +53,9 @@ const setsockopt = (fd, level, name, value, valueLength) => {
5153
return false
5254
}
5355

54-
const err = ffi().setsockopt(fd, level, name, value, valueLength)
56+
const [ret, errno] = ffi().setsockopt(fd, level, name, value, valueLength)
5557

56-
if (err !== 0) {
57-
const errno = 9 // FIXME: there's no FFI.errno() in ffi-rs
58+
if (ret !== 0) {
5859
throw errnoException(errno, 'setsockopt')
5960
}
6061

@@ -66,10 +67,9 @@ const getsockopt = (fd, level, name, value, valueLength) => {
6667
return false
6768
}
6869

69-
const err = ffi().getsockopt(fd, level, name, value, valueLength)
70+
const [ret, errno] = ffi().getsockopt(fd, level, name, value, valueLength)
7071

71-
if (err !== 0) {
72-
const errno = 9 // FIXME: there's no FFI.errno() in ffi-rs
72+
if (ret !== 0) {
7373
throw errnoException(errno, 'getsockopt')
7474
}
7575
return true

package-lock.json

Lines changed: 72 additions & 75 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
},
5151
"homepage": "https://hertzg.github.io/node-net-keepalive/",
5252
"dependencies": {
53-
"ffi-rs": "1.0.58"
53+
"ffi-rs": "1.0.60"
5454
},
5555
"devDependencies": {
5656
"@commitlint/cli": "^18.0.0",

0 commit comments

Comments
 (0)