forked from Mirrors/freeswitch
add multiple-registrations flag to the core similar to mod_sofia
This commit is contained in:
parent
4b62ff799e
commit
b36a7c0ba6
|
@ -248,6 +248,7 @@ struct switch_runtime {
|
|||
int max_sql_buffer_len;
|
||||
switch_dbtype_t odbc_dbtype;
|
||||
char hostname[256];
|
||||
int multiple_registrations;
|
||||
};
|
||||
|
||||
extern struct switch_runtime runtime;
|
||||
|
|
|
@ -1549,6 +1549,8 @@ static void switch_load_core_config(const char *file)
|
|||
if (tmp > -1 && tmp < 11) {
|
||||
switch_core_session_ctl(SCSC_DEBUG_LEVEL, &tmp);
|
||||
}
|
||||
} else if (!strcasecmp(var, "multiple-registrations")) {
|
||||
runtime.multiple_registrations = switch_true(val);
|
||||
} else if (!strcasecmp(var, "sql-buffer-len")) {
|
||||
int tmp = atoi(val);
|
||||
|
||||
|
|
|
@ -1653,7 +1653,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_add_registration(const char *user, c
|
|||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
sql = switch_mprintf("delete from registrations where hostname='%q' and (url='%q' or token='%q')", switch_core_get_hostname(), url, switch_str_nil(token));
|
||||
if (runtime.multiple_registrations) {
|
||||
sql = switch_mprintf("delete from registrations where hostname='%q' and (url='%q' or token='%q')",
|
||||
switch_core_get_hostname(), url, switch_str_nil(token));
|
||||
} else {
|
||||
sql = switch_mprintf("delete from registrations where reg_user='%q' and realm='%q' and hostname='%q'",
|
||||
user, realm, switch_core_get_hostname());
|
||||
}
|
||||
|
||||
switch_cache_db_execute_sql(dbh, sql, NULL);
|
||||
free(sql);
|
||||
|
||||
|
|
Loading…
Reference in New Issue