[Freeswitch-svn] [commit] r8522 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Freeswitch SVN
anthm at freeswitch.org
Thu May 22 10:41:12 EDT 2008
Author: anthm
Date: Thu May 22 10:41:11 2008
New Revision: 8522
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c
Log:
tweak
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c Thu May 22 10:41:11 2008
@@ -1497,6 +1497,7 @@
char *p;
sofia_profile_t *profile = NULL;
const char *exclude_contact = NULL;
+ char *reply = "";
if (!cmd) {
stream->write_function(stream, "%s", "");
@@ -1543,11 +1544,13 @@
if (profile) {
struct cb_helper cb;
switch_stream_handle_t mystream = { 0 };
+
if (!domain || !strchr(domain, '.')) {
domain = profile->name;
}
SWITCH_STANDARD_STREAM(mystream);
+ switch_assert(mystream.data);
cb.profile = profile;
cb.stream = &mystream;
@@ -1561,19 +1564,20 @@
switch_assert(sql);
sofia_glue_execute_sql_callback(profile, SWITCH_FALSE, profile->ireg_mutex, sql, contact_callback, &cb);
switch_safe_free(sql);
- if (mystream.data) {
- char *str = mystream.data;
- *(str + (strlen(str) - 1)) = '\0';
+ reply = (char *) mystream.data;
+ if (!switch_strlen_zero(reply) && end_of(reply) == ',') {
+ end_of(reply) = '\0';
}
- stream->write_function(stream, "%s", mystream.data);
+ stream->write_function(stream, "%s", reply);
+ reply = NULL;
switch_safe_free(mystream.data);
- goto end;
}
}
- stream->write_function(stream, "%s", "");
+ if (reply) {
+ stream->write_function(stream, "%s", reply);
+ }
-end:
switch_safe_free(data);
if (profile) {
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c Thu May 22 10:41:11 2008
@@ -704,9 +704,14 @@
if (regtype == REG_REGISTER) {
char *new_contact = NULL;
+ char *p;
+
+ if ((p = strstr(contact_str, ";nat"))) {
+ *p = '\0';
+ }
if (exptime) {
- if (nat_hack) {
+ if (is_nat || nat_hack) {
new_contact = switch_mprintf("%s;expires=%ld;received=\"%s:%d\"", contact_str, (long)exptime, network_ip, network_port);
} else {
new_contact = switch_mprintf("%s;expires=%ld", contact_str, (long)exptime);
More information about the Freeswitch-svn
mailing list