NetWare LibC dlsym works perfectly only thing that each of the extension need to export a symbol with FULL capital prefix.

This commit is contained in:
Anantha Kesari H Y 2005-05-04 13:26:28 +00:00
parent b2d28102a8
commit abf7b57160

View file

@ -145,7 +145,6 @@ void php_dl(pval *file, int type, pval *return_value TSRMLS_DC)
efree(libpath);
#ifndef NETWARE
get_module = (zend_module_entry *(*)(void)) DL_FETCH_SYMBOL(handle, "get_module");
/*
@ -156,23 +155,6 @@ void php_dl(pval *file, int type, pval *return_value TSRMLS_DC)
if (!get_module)
get_module = (zend_module_entry *(*)(void)) DL_FETCH_SYMBOL(handle, "_get_module");
#else
/* NetWare doesn't support two NLMs exporting same symbol */
{
char symbol_name[64] = "\0";
int module_name_length = Z_STRLEN_P(file) - 4; /* '.nlm' is 4 characters; knock it off */
/* Take the module name (e.g.: 'php_ldap') and append '@get_module' to it */
strncpy(symbol_name, Z_STRVAL_P(file), module_name_length);
symbol_name[module_name_length] = '\0';
strcat(symbol_name, "@");
strcat(symbol_name, "get_module");
get_module = (zend_module_entry *(*)(void)) DL_FETCH_SYMBOL(handle, symbol_name);
}
/* NetWare doesn't prepend '_' to symbol names; so the corresponding portion of code is also
not required for NetWare */
#endif
if (!get_module) {
DL_UNLOAD(handle);