forked from Mirrors/freeswitch
FS-5642 FS-5556 --resolve I have not tested this yet for the connect but I fixed the seg for sure which was an outstanding issue in 5556 reopen 5642 if connect still doesnt work
This commit is contained in:
parent
a4bc98a775
commit
bc851de200
|
@ -1 +1 @@
|
|||
Thu Jul 11 17:38:06 CDT 2013
|
||||
Fri Jul 26 11:26:00 CDT 2013
|
||||
|
|
|
@ -885,12 +885,16 @@ tport_t *tport_alloc_secondary(tport_primary_t *pri,
|
|||
self->tp_stime = self->tp_ktime = self->tp_rtime = su_now();
|
||||
|
||||
if (pri->pri_vtable->vtp_init_secondary &&
|
||||
pri->pri_vtable->vtp_init_secondary(self, socket, accepted,
|
||||
return_reason) < 0) {
|
||||
if (pri->pri_vtable->vtp_deinit_secondary)
|
||||
pri->pri_vtable->vtp_deinit_secondary(self);
|
||||
su_home_zap(self->tp_home);
|
||||
return NULL;
|
||||
|
||||
pri->pri_vtable->vtp_init_secondary(self, socket, accepted, return_reason) < 0) {
|
||||
|
||||
if (pri->pri_vtable->vtp_deinit_secondary) {
|
||||
pri->pri_vtable->vtp_deinit_secondary(self);
|
||||
}
|
||||
su_timer_destroy(self->tp_timer);
|
||||
su_home_zap(self->tp_home);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Set IP TOS if it is set in primary */
|
||||
|
|
|
@ -458,6 +458,9 @@ int tport_ws_init_secondary(tport_t *self, int socket, int accepted,
|
|||
memset(&wstp->ws, 0, sizeof(wstp->ws));
|
||||
|
||||
if (ws_init(&wstp->ws, socket, wstp->ws_secure ? wspri->ssl_ctx : NULL, 0) < 0) {
|
||||
ws_destroy(&wstp->ws);
|
||||
su_close(socket);
|
||||
wstp->ws_initialized = -1;
|
||||
return *return_reason = "WS_INIT", -1;
|
||||
}
|
||||
|
||||
|
@ -465,6 +468,7 @@ int tport_ws_init_secondary(tport_t *self, int socket, int accepted,
|
|||
self->tp_pre_framed = 1;
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -242,6 +242,10 @@ int ws_handshake(wsh_t *wsh)
|
|||
}
|
||||
}
|
||||
|
||||
if (bytes > sizeof(wsh->buffer)) {
|
||||
goto err;
|
||||
}
|
||||
|
||||
*(wsh->buffer+bytes) = '\0';
|
||||
|
||||
if (strncasecmp(wsh->buffer, "GET ", 4)) {
|
||||
|
@ -325,7 +329,8 @@ issize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes)
|
|||
#else
|
||||
if (x++) Sleep(10);
|
||||
#endif
|
||||
} while (r == -1 && (errno == EAGAIN || errno == EINTR) && x < 100);
|
||||
} while (r == -1 && (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK ||
|
||||
errno == 35 || errno == 730035 || errno == 2 || errno == 60) && x < 100);
|
||||
|
||||
if (x >= 100) {
|
||||
r = -1;
|
||||
|
@ -462,7 +467,12 @@ int ws_init(wsh_t *wsh, ws_socket_t sock, SSL_CTX *ssl_ctx, int close_sock)
|
|||
}
|
||||
|
||||
while (!wsh->down && !wsh->handshake) {
|
||||
ws_handshake(wsh);
|
||||
int r = ws_handshake(wsh);
|
||||
|
||||
if (r < 0) {
|
||||
wsh->down = 1;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (wsh->down) {
|
||||
|
|
Loading…
Reference in New Issue