Throw Error exceptions from node.dlopen()

This commit is contained in:
Ryan
2009-08-31 18:48:47 +02:00
parent afd9e714d3
commit 3862fdade4

View File

@@ -126,13 +126,15 @@ node_dlopen (const v8::Arguments& args)
void *handle = dlopen(*filename, RTLD_LAZY);
if (handle == NULL) {
return ThrowException(String::New("dlopen() failed."));
Local<Value> exception = Exception::Error(String::New(dlerror()));
return ThrowException(exception);
}
void *init_handle = dlsym(handle, "init");
if (init_handle == NULL) {
ThrowException(String::New("No 'init' symbol found in module."));
return Undefined();
Local<Value> exception =
Exception::Error(String::New("No 'init' symbol found in module."));
return ThrowException(exception);
}
extInit init = reinterpret_cast<extInit>(init_handle);