Fix TCP Client interface
authorDavid Ruggles <thedavidfactor@gmail.com>
Mon, 7 Dec 2009 19:48:14 +0000 (19:48 +0000)
committerDavid Ruggles <thedavidfactor@gmail.com>
Mon, 7 Dec 2009 19:48:14 +0000 (19:48 +0000)
Fix a couple of very minor bugs that prevent the socket client from working. The wrong set of properties were used in one place and the size of the address variable isn't set if the host name is an ip address. Also includes a fix for a bug that was introduced previously.

(closes issue #16121)
Reported by: thedavidfactor
Tested by: thedavidfactor

Review: https://reviewboard.asterisk.org/r/439/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233545 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_externalivr.c

index ba9c211..95511cc 100644 (file)
@@ -419,7 +419,7 @@ static int app_exec(struct ast_channel *chan, const char *data)
        }
 
        /* Get rid of any extraneous arguments */
-       if ((s = strchr(eivr_args.options, ','))) {
+       if (eivr_args.options && (s = strchr(eivr_args.options, ','))) {
                *s = '\0';
        }
 
@@ -473,9 +473,9 @@ static int app_exec(struct ast_channel *chan, const char *data)
                }
 
                ast_gethostbyname(hostname, &hp);
-               ivr_desc.local_address.sin_family = AF_INET;
-               ivr_desc.local_address.sin_port = htons(port);
-               memcpy(&ivr_desc.local_address.sin_addr.s_addr, hp.hp.h_addr, hp.hp.h_length);
+               ivr_desc.remote_address.sin_family = AF_INET;
+               ivr_desc.remote_address.sin_port = htons(port);
+               memcpy(&ivr_desc.remote_address.sin_addr.s_addr, hp.hp.h_addr, sizeof(hp.hp.h_addr));
                if (!(ser = ast_tcptls_client_create(&ivr_desc)) || !(ser = ast_tcptls_client_start(ser))) {
                        goto exit;
                }