extern "C" void* dlvsym(void* handle, const char* symbol, const char* version) { glinject_init_hooks(); for(unsigned int i = 0; i < sizeof(hook_table) / sizeof(Hook); ++i) { if(strcmp(hook_table[i].name, symbol) == 0) { fprintf(stderr, "[SSR-GLInject] Hooked: dlvsym(%s,%s).\n", symbol, version); return hook_table[i].address; } } return g_glinject_real_dlvsym(handle, symbol, version); }
extern "C" void* dlvsym(void* handle, const char* symbol, const char* version) { InitGLInject(); for(unsigned int i = 0; i < sizeof(hook_table) / sizeof(Hook); ++i) { if(strcmp(hook_table[i].name, symbol) == 0) { std::lock_guard<std::mutex> lock(g_glinject_mutex); GLINJECT_PRINT("Hooked: dlvsym(" << symbol << "," << version << ")."); return hook_table[i].address; } } return g_glinject_real_dlvsym(handle, symbol, version); }