Revision
17087
Author
mochouinard
Date
2010-03-24 14:04:19 -0500 (Wed, 24 Mar 2010)

Log Message

mod_sofia: Add url encode to a var in the xml output to be valid xml.  Also changed switch_url_encode to return the pointer of the string rather than the length, same as switch_amp_encode()

Modified Paths

Diff

Modified: freeswitch/trunk/src/include/switch_utils.h (17086 => 17087)


--- freeswitch/trunk/src/include/switch_utils.h	2010-03-24 16:17:58 UTC (rev 17086)
+++ freeswitch/trunk/src/include/switch_utils.h	2010-03-24 19:04:19 UTC (rev 17087)
@@ -591,7 +591,7 @@
 SWITCH_DECLARE(char *) switch_util_quote_shell_arg(const char *string);
 
 #define SWITCH_READ_ACCEPTABLE(status) (status == SWITCH_STATUS_SUCCESS || status == SWITCH_STATUS_BREAK)
-SWITCH_DECLARE(size_t) switch_url_encode(const char *url, char *buf, size_t len);
+SWITCH_DECLARE(char *) switch_url_encode(const char *url, char *buf, size_t len);
 SWITCH_DECLARE(char *) switch_url_decode(char *s);
 SWITCH_DECLARE(switch_bool_t) switch_simple_email(const char *to,
 												  const char *from,

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (17086 => 17087)


--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	2010-03-24 16:17:58 UTC (rev 17086)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	2010-03-24 19:04:19 UTC (rev 17087)
@@ -2075,25 +2075,20 @@
 		switch_strftime_nocheck(exp_buf, &retsize, sizeof(exp_buf), "%Y-%m-%d %T", &tm);
 	}
 
-	cb->stream->write_function(cb->stream,
-							   "    <registration>\n"
-							   "        <call-id>%s</call-id>\n"
-							   "        <user>%s@%s</user>\n"
-							   "        <contact>%s</contact>\n"
-							   "        <agent>%s</agent>\n"
-							   "        <status>%s(%s) exp(%s)</status>\n"
-							   "        <host>%s</host>\n"
-							   "        <network-ip>%s</network-ip>\n"
-							   "        <network-port>%s</network-port>\n"
-							   "        <sip-auth-user>%s</sip-auth-user>\n"
-							   "        <sip-auth-realm>%s</sip-auth-realm>\n"
-							   "        <mwi-account>%s@%s</mwi-account>\n"
-							   "    </registration>\n",
-							   switch_str_nil(argv[0]), switch_str_nil(argv[1]), switch_str_nil(argv[2]),
-							   switch_amp_encode(switch_str_nil(argv[3]), xmlbuf, buflen),
-							   switch_str_nil(argv[7]), switch_str_nil(argv[4]), switch_str_nil(argv[5]), exp_buf, switch_str_nil(argv[11]),
-							   switch_str_nil(argv[12]), switch_str_nil(argv[13]), switch_str_nil(argv[14]), switch_str_nil(argv[15]),
-							   switch_str_nil(argv[16]), switch_str_nil(argv[17]));
+	cb->stream->write_function(cb->stream,"    <registration>\n");
+	cb->stream->write_function(cb->stream,"        <call-id>%s</call-id>\n", switch_str_nil(argv[0]));
+	cb->stream->write_function(cb->stream,"        <user>%s@%s</user>\n", switch_str_nil(argv[1]), switch_str_nil(argv[2]));
+	cb->stream->write_function(cb->stream,"        <contact>%s</contact>\n", switch_amp_encode(switch_str_nil(argv[3]), xmlbuf, buflen));
+	cb->stream->write_function(cb->stream,"        <agent>%s</agent>\n", switch_str_nil(argv[7]));
+	cb->stream->write_function(cb->stream,"        <status>%s(%s) exp(%s)</status>\n", switch_str_nil(argv[4]), switch_str_nil(argv[5]), exp_buf);
+	cb->stream->write_function(cb->stream,"        <host>%s</host>\n", switch_str_nil(argv[11]));
+	cb->stream->write_function(cb->stream,"        <network-ip>%s</network-ip>\n", switch_str_nil(argv[12]));
+	cb->stream->write_function(cb->stream,"        <network-port>%s</network-port>\n", switch_str_nil(argv[13]));
+	cb->stream->write_function(cb->stream,"        <sip-auth-user>%s</sip-auth-user>\n", switch_url_encode(switch_str_nil(argv[14]), xmlbuf, sizeof(xmlbuf)));
+	cb->stream->write_function(cb->stream,"        <sip-auth-realm>%s</sip-auth-realm>\n", switch_str_nil(argv[15]));
+	cb->stream->write_function(cb->stream,"        <mwi-account>%s@%s</mwi-account>\n", switch_str_nil(argv[16]), switch_str_nil(argv[17]));
+	cb->stream->write_function(cb->stream,"    </registration>\n");
+
 	return 0;
 }
 

Modified: freeswitch/trunk/src/switch_utils.c (17086 => 17087)


--- freeswitch/trunk/src/switch_utils.c	2010-03-24 16:17:58 UTC (rev 17086)
+++ freeswitch/trunk/src/switch_utils.c	2010-03-24 19:04:19 UTC (rev 17087)
@@ -1991,7 +1991,7 @@
 	return nsds;
 }
 
-SWITCH_DECLARE(size_t) switch_url_encode(const char *url, char *buf, size_t len)
+SWITCH_DECLARE(char *) switch_url_encode(const char *url, char *buf, size_t len)
 {
 	const char *p;
 	size_t x = 0;
@@ -2025,7 +2025,7 @@
 	}
 	buf[x] = '\0';
 
-	return x;
+	return buf;
 }
 
 SWITCH_DECLARE(char *) switch_url_decode(char *s)