@@ -10,24 +10,26 @@ const createFFI = () => {
10
10
11
11
return {
12
12
setsockopt : ( fd , level , name , value , valueLength ) => {
13
- const ret = load ( {
13
+ const { value : ret , errnoCode } = load ( {
14
14
library : LIBRARY_NAME ,
15
15
funcName : 'setsockopt' ,
16
16
retType : cInt ,
17
17
paramsType : [ cInt , cInt , cInt , cVoidRef , cInt ] ,
18
18
paramsValue : [ fd , level , name , value , valueLength ] ,
19
+ errno : true ,
19
20
} )
20
- return ret
21
+ return [ ret , errnoCode ]
21
22
} ,
22
23
getsockopt : ( fd , level , name , value , valueLength ) => {
23
- const ret = load ( {
24
+ const { value : ret , errnoCode } = load ( {
24
25
library : LIBRARY_NAME ,
25
26
funcName : 'getsockopt' ,
26
27
retType : cInt ,
27
28
paramsType : [ cInt , cInt , cInt , cVoidRef , cVoidRef ] ,
28
29
paramsValue : [ fd , level , name , value , valueLength ] ,
30
+ errno : true ,
29
31
} )
30
- return ret
32
+ return [ ret , errnoCode ]
31
33
} ,
32
34
}
33
35
}
@@ -51,10 +53,9 @@ const setsockopt = (fd, level, name, value, valueLength) => {
51
53
return false
52
54
}
53
55
54
- const err = ffi ( ) . setsockopt ( fd , level , name , value , valueLength )
56
+ const [ ret , errno ] = ffi ( ) . setsockopt ( fd , level , name , value , valueLength )
55
57
56
- if ( err !== 0 ) {
57
- const errno = 9 // FIXME: there's no FFI.errno() in ffi-rs
58
+ if ( ret !== 0 ) {
58
59
throw errnoException ( errno , 'setsockopt' )
59
60
}
60
61
@@ -66,10 +67,9 @@ const getsockopt = (fd, level, name, value, valueLength) => {
66
67
return false
67
68
}
68
69
69
- const err = ffi ( ) . getsockopt ( fd , level , name , value , valueLength )
70
+ const [ ret , errno ] = ffi ( ) . getsockopt ( fd , level , name , value , valueLength )
70
71
71
- if ( err !== 0 ) {
72
- const errno = 9 // FIXME: there's no FFI.errno() in ffi-rs
72
+ if ( ret !== 0 ) {
73
73
throw errnoException ( errno , 'getsockopt' )
74
74
}
75
75
return true
0 commit comments