mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-05 18:13:27 +00:00
FS-4332: --resolve
This commit is contained in:
parent
17781cba1c
commit
7ce7cbda57
@ -1104,11 +1104,17 @@ void rtmp_add_registration(rtmp_session_t *rsession, const char *auth, const cha
|
|||||||
|
|
||||||
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, RTMP_EVENT_REGISTER) == SWITCH_STATUS_SUCCESS) {
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, RTMP_EVENT_REGISTER) == SWITCH_STATUS_SUCCESS) {
|
||||||
char *user, *domain, *dup;
|
char *user, *domain, *dup;
|
||||||
|
char *url = NULL;
|
||||||
|
char *token = NULL;
|
||||||
|
char network_port_c[6];
|
||||||
|
snprintf(network_port_c, sizeof(network_port_c), "%d", rsession->remote_port);
|
||||||
rtmp_event_fill(rsession, event);
|
rtmp_event_fill(rsession, event);
|
||||||
|
|
||||||
dup = strdup(auth);
|
dup = strdup(auth);
|
||||||
switch_split_user_domain(dup, &user, &domain);
|
switch_split_user_domain(dup, &user, &domain);
|
||||||
|
|
||||||
|
url = switch_mprintf("rtmp/%s/%s@%s", rsession->uuid, user, domain);
|
||||||
|
token = switch_mprintf("rtmp/%s/%s@%s/%s", rsession->uuid, user, domain, nickname);
|
||||||
|
|
||||||
reg->user = switch_core_strdup(rsession->pool, user);
|
reg->user = switch_core_strdup(rsession->pool, user);
|
||||||
reg->domain = switch_core_strdup(rsession->pool, domain);
|
reg->domain = switch_core_strdup(rsession->pool, domain);
|
||||||
@ -1117,7 +1123,10 @@ void rtmp_add_registration(rtmp_session_t *rsession, const char *auth, const cha
|
|||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Domain", domain);
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Domain", domain);
|
||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Nickname", switch_str_nil(nickname));
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Nickname", switch_str_nil(nickname));
|
||||||
switch_event_fire(&event);
|
switch_event_fire(&event);
|
||||||
|
switch_core_add_registration(user, domain, token, url, 0, rsession->remote_address, network_port_c, "tcp", "");
|
||||||
free(dup);
|
free(dup);
|
||||||
|
switch_safe_free(url);
|
||||||
|
switch_safe_free(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1160,9 +1169,13 @@ void rtmp_clear_registration(rtmp_session_t *rsession, const char *auth, const c
|
|||||||
/* Reg data is pool-allocated, no need to free them */
|
/* Reg data is pool-allocated, no need to free them */
|
||||||
switch_thread_rwlock_rdlock(rsession->account_rwlock);
|
switch_thread_rwlock_rdlock(rsession->account_rwlock);
|
||||||
for (account = rsession->account; account; account = account->next) {
|
for (account = rsession->account; account; account = account->next) {
|
||||||
|
char *token = NULL;
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
snprintf(buf, sizeof(buf), "%s@%s", account->user, account->domain);
|
snprintf(buf, sizeof(buf), "%s@%s", account->user, account->domain);
|
||||||
rtmp_clear_reg_auth(rsession, buf, nickname);
|
rtmp_clear_reg_auth(rsession, buf, nickname);
|
||||||
|
token = switch_mprintf("rtmp/%s/%s@%s/%s", rsession->uuid, account->user, account->domain, nickname);
|
||||||
|
switch_core_del_registration(account->user, account->domain, token);
|
||||||
|
switch_safe_free(token);
|
||||||
}
|
}
|
||||||
switch_thread_rwlock_unlock(rsession->account_rwlock);
|
switch_thread_rwlock_unlock(rsession->account_rwlock);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user