int retries;
int random;
char *nameserver[ENUM_MAXNAMESERVERS];
+#ifdef _MSC_VER
+ char *nameserver_buf;
+#endif
} globals;
SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_root, globals.root);
if (!globals.nameserver[0]) {
HKEY hKey;
DWORD data_sz;
- char* buf;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters",
0, KEY_QUERY_VALUE, &hKey);
if (hKey) {
RegQueryValueEx(hKey, "DhcpNameServer", NULL, NULL, NULL, &data_sz);
if (data_sz) {
- buf = (char*)malloc(data_sz + 1);
+ globals.nameserver_buf = (char*)malloc(data_sz + 1);
- RegQueryValueEx(hKey, "DhcpNameServer", NULL, NULL, (LPBYTE)buf, &data_sz);
+ RegQueryValueEx(hKey, "DhcpNameServer", NULL, NULL, (LPBYTE)globals.nameserver_buf, &data_sz);
- if(buf[data_sz - 1] != 0) {
- buf[data_sz] = 0;
+ if(globals.nameserver_buf[data_sz - 1] != 0) {
+ globals.nameserver_buf[data_sz] = 0;
}
- switch_replace_char(buf, ' ', 0, SWITCH_FALSE); /* only use the first entry ex "192.168.1.1 192.168.1.2" */
- globals.nameserver[0] = buf;
+ switch_replace_char(globals.nameserver_buf, ' ', 0, SWITCH_FALSE); /* only use the first entry ex "192.168.1.1 192.168.1.2" */
+ globals.nameserver[0] = globals.nameserver_buf;
}
RegCloseKey(hKey);
switch_safe_free(globals.root);
switch_safe_free(globals.isn_root);
+#ifdef _MSC_VER
+ switch_safe_free(globals.nameserver_buf);
+#endif
return SWITCH_STATUS_UNLOAD;
}
su_deinit();
+ /*
+ Release the clone of the default SIP parser
+ created by `sip_update_default_mclass(sip_extend_mclass(NULL))` call with NULL argument
+ */
+ free(sip_default_mclass());
+
switch_mutex_lock(mod_sofia_globals.hash_mutex);
switch_core_hash_destroy(&mod_sofia_globals.profile_hash);
switch_core_hash_destroy(&mod_sofia_globals.gateway_hash);