rem: exp = (struct module_exports*)dlsym(handle, "exports");
add: exp = (struct module_exports*)dlsym(handle, DLSYM_PREFIX "exports");
context: int load_module(char* path){	void* handle;	char* error;	struct module_exports* exp;	struct sr_module* t;	#ifndef RTLD_NOW#define RTLD_NOW DL_LAZY#endif	handle=dlopen(path, RTLD_NOW); /* resolve all symbols now */	if (handle==0){		LOG(L_ERR, "ERROR: load_module: could not open module <%s>: %s\n",					path, dlerror() );		goto error;	}		for(t=modules;t; t=t->next){		if (t->handle==handle){			LOG(L_WARN, "WARNING: load_module: attempting to load the same"						" module twice (%s)\n", path);			goto skip;		}	}	/* launch register */	exp = (struct module_exports*)dlsym(handle, "exports");	if ( (error =(char*)dlerror())!=0 ){		LOG(L_ERR, "ERROR: load_module: %s\n", error);		goto error1;	}	if (register_module(exp, path, handle)<0) goto error1;	return 0;error1:	dlclose(handle);error:skip:	return -1;}