-Fri Sep 20 12:16:57 CDT 2019
+Tue Oct 08 10:50:11 CDT 2019
&&
(i = su_root_register(root, wait, wakeup, self, 0)) != -1) {
+ /* Can't be added to list of opened if already closed */
+ if (tport_is_closed(self)) goto fail;
+
self->tp_index = i;
self->tp_events = events;
- /* Can't be added to list of opened if already closed */
- if (!tport_is_closed(self))
- tprb_append(&self->tp_pri->pri_open, self);
+ tprb_append(&self->tp_pri->pri_open, self);
+
return 0;
}
+fail:
+ SU_DEBUG_9(("%s(%p): tport is %s!\n", __func__, (void *)self, (tport_is_closed(self) ? "closed" : "opened")));
su_wait_destroy(wait);
return -1;
}
if (events & SU_WAIT_HUP && !self->tp_closed)
tport_hup_event(self);
- if (self->tp_closed)
+ if (self->tp_closed) {
+ SU_DEBUG_9(("%s(%p): tport was closed during connect. Returning, but set secondary timer first.\n",
+ __func__, (void *)self));
+ tport_set_secondary_timer(self);
return 0;
+ }
error = su_soerror(self->tp_socket);
if (error) {
tport_error_report(self, error, NULL);
+ SU_DEBUG_9(("%s(%p): socket error during connect. Returning, but set secondary timer first.\n",
+ __func__, (void *)self));
+ tport_set_secondary_timer(self);
return 0;
}