@@ -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
0 commit comments