support de l'alumage des interface reseau

This commit is contained in:
Marc
2022-02-15 12:31:06 +01:00
parent a5f8ef486a
commit 1edb531e1a
11 changed files with 167 additions and 23 deletions
+32
View File
@@ -0,0 +1,32 @@
#include <unistd.h>
#include <node.h>
#include <fcntl.h>
#include <string>
#include <netinet/in.h>
#define nodeparam v8::FunctionCallbackInfo<v8::Value>
namespace ioctlNode {
void nodeSocket(const nodeparam& args) {
v8::Isolate* isolate = args.GetIsolate();
if (args.Length() != 3 || !args[0]->IsUint32() || !args[1]->IsUint32() || !args[2]->IsUint32()) {
isolate->ThrowException(v8::Exception::TypeError(
v8::String::NewFromUtf8(isolate, "Argument 1, 2 & 3 must be numbers").ToLocalChecked()));
return;
}
const int domain = args[0].As<v8::Number>()->Value();
const int type = args[1].As<v8::Number>()->Value();
const int protocol = args[2].As<v8::Number>()->Value();
args.GetReturnValue().Set(socket(domain ,type, protocol));
}
void Initialize(v8::Local<v8::Object> exports) {
NODE_SET_METHOD(exports, "socket", nodeSocket);
}
NODE_MODULE(ioctl_api, Initialize)
}