aboutsummaryrefslogtreecommitdiffstats
path: root/channels/h323/ast_h323.cpp
diff options
context:
space:
mode:
authorjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-20 21:04:16 +0000
committerjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-20 21:04:16 +0000
commit4a2506f136ee5a98be8b15632781d85941109fe6 (patch)
tree6e24c60c36f9aba3cdd61e00e7cdc9ebc646e2c3 /channels/h323/ast_h323.cpp
parentc7e53dbe4dec2a523aefb151b1e2ac50e46317f7 (diff)
first attempt to properly copy and then free call detail strings.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3485 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/h323/ast_h323.cpp')
-rwxr-xr-xchannels/h323/ast_h323.cpp34
1 files changed, 15 insertions, 19 deletions
diff --git a/channels/h323/ast_h323.cpp b/channels/h323/ast_h323.cpp
index d67e95fd3..0e52068e3 100755
--- a/channels/h323/ast_h323.cpp
+++ b/channels/h323/ast_h323.cpp
@@ -375,11 +375,11 @@ void MyH323EndPoint::OnConnectionCleared(H323Connection & connection, const PStr
remoteName = connection.GetRemotePartyName();
cd.call_reference = connection.GetCallReference();
- cd.call_token = (const char *)clearedCallToken;
- cd.call_source_aliases = (const char *)connection.GetRemotePartyName();
+ cd.call_token = strdup((const char *)clearedCallToken);
+ cd.call_source_aliases = strdup((const char *)connection.GetRemotePartyName());
connection.GetSignallingChannel()->GetRemoteAddress().GetIpAndPort(Ip, sourcePort);
- cd.sourceIp = (const char *)Ip.AsString();
+ cd.sourceIp = strdup((const char *)Ip.AsString());
/* Convert complex strings */
char *s;
@@ -539,7 +539,6 @@ BOOL MyH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU)
PString sourceName;
PString sourceAliases;
PString destAliases;
- PString sourceIp;
PIPSocket::Address Ip;
WORD sourcePort;
char *s, *s1;
@@ -567,18 +566,15 @@ BOOL MyH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU)
cd.call_reference = GetCallReference();
- cd.call_token = (const char *)GetCallToken();
- cd.call_source_aliases = (const char *)sourceAliases;
- cd.call_dest_alias = (const char *)destAliases;
- cd.call_source_e164 = (const char *)sourceE164;
- cd.call_dest_e164 = (const char *)destE164;
- cd.call_source_name = (const char *)sourceName;
+ cd.call_token = strdup((const char *)GetCallToken());
+ cd.call_source_aliases = strdup((const char *)sourceAliases);
+ cd.call_dest_alias = strdup((const char *)destAliases);
+ cd.call_source_e164 = strdup((const char *)sourceE164);
+ cd.call_dest_e164 = strdup((const char *)destE164);
+ cd.call_source_name = strdup((const char *)sourceName);
GetSignallingChannel()->GetRemoteAddress().GetIpAndPort(Ip, sourcePort);
- sourceIp = Ip.AsString();
- cd.sourceIp = (const char *)sourceIp;
-
-
+ cd.sourceIp = strdup((const char *)Ip.AsString());
/* Notify Asterisk of the request */
int res = on_incoming_call(cd);
@@ -622,11 +618,11 @@ BOOL MyH323Connection::OnSendSignalSetup(H323SignalPDU & setupPDU)
*s1 = '\0';
cd.call_reference = GetCallReference();
- cd.call_token = (const char *)GetCallToken();
- cd.call_source_aliases = (const char *)sourceAliases;
- cd.call_dest_alias = (const char *)destAliases;
- cd.call_source_e164 = (const char *)sourceE164;
- cd.call_dest_e164 = (const char *)destE164;
+ cd.call_token = strdup((const char *)GetCallToken());
+ cd.call_source_aliases = strdup((const char *)sourceAliases);
+ cd.call_dest_alias = strdup((const char *)destAliases);
+ cd.call_source_e164 = strdup((const char *)sourceE164);
+ cd.call_dest_e164 = strdup((const char *)destE164);
int res = on_outgoing_call(cd);