FS-4332: --resolve

This commit is contained in:
William King 2013-05-03 00:01:24 -05:00
parent d0e2e9ae9c
commit 2e7c219b7e
1 changed files with 13 additions and 0 deletions

View File

@ -1106,11 +1106,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) {
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);
dup = strdup(auth);
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->domain = switch_core_strdup(rsession->pool, domain);
@ -1119,7 +1125,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, "Nickname", switch_str_nil(nickname));
switch_event_fire(&event);
switch_core_add_registration(user, domain, token, url, 0, rsession->remote_address, network_port_c, "tcp", "");
free(dup);
switch_safe_free(url);
switch_safe_free(token);
}
}
@ -1162,9 +1171,13 @@ void rtmp_clear_registration(rtmp_session_t *rsession, const char *auth, const c
/* Reg data is pool-allocated, no need to free them */
switch_thread_rwlock_rdlock(rsession->account_rwlock);
for (account = rsession->account; account; account = account->next) {
char *token = NULL;
char buf[1024];
snprintf(buf, sizeof(buf), "%s@%s", account->user, account->domain);
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);
} else {