summaryrefslogtreecommitdiffstats
path: root/src/astmanproxy.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/astmanproxy.c')
-rw-r--r--src/astmanproxy.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/astmanproxy.c b/src/astmanproxy.c
index 25aab23..ac30b1b 100644
--- a/src/astmanproxy.c
+++ b/src/astmanproxy.c
@@ -374,8 +374,8 @@ int ConnectAsterisk(struct mansession *s) {
s->connected = 0;
if (debug)
- debugmsg("asterisk@%s: Connecting (u=%s, p=%s)", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr),
- s->server->ast_user, s->server->ast_pass);
+ debugmsg("asterisk@%s: Connecting (u=%s, p=%s, ssl=%s)", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr),
+ s->server->ast_user, s->server->ast_pass, s->server->use_ssl ? "on" : "off");
/* Construct auth message just once */
memset( &m, 0, sizeof(struct message) );
@@ -385,12 +385,7 @@ int ConnectAsterisk(struct mansession *s) {
AddHeader(&m, "Events: %s", s->server->ast_events);
for ( ;; ) {
- if ( connect_nonb(s->fd, (struct sockaddr *) &s->sin, sizeof(s->sin), 2) < 0 ) {
- if (errno == EISCONN) {
- pthread_mutex_lock(&s->lock);
- s->fd = socket(AF_INET, SOCK_STREAM, 0);
- pthread_mutex_unlock(&s->lock);
- }
+ if ( ast_connect(s) == -1 ) {
if (debug)
debugmsg("asterisk@%s: Connect failed, Retrying (%d) %s",
ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr), r, strerror(errno) );
@@ -457,7 +452,6 @@ int StartServer(struct ast_server *srv) {
debugmsg("Set %s output format to %s", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr), s->output->formatname);
}
-
if (pthread_create(&s->t, &attr, (void *)HandleAsterisk, s))
destroy_session(s);
else
@@ -673,6 +667,9 @@ int main(int argc, char *argv[])
sessions = NULL;
LaunchAsteriskThreads();
+ /* Initialize SSL Client-Side Context */
+ client_init_secure();
+
/* Setup listener socket to setup new sessions... */
if ((asock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
fprintf(stderr,"Cannot create listener socket!\n");