Merge pull request #434 from raywang-dev/fix-stack-corruption
fix: scan PDUs before exiting event_loop due to connect timedout
This commit is contained in:
23
lib/sync.c
23
lib/sync.c
@@ -67,14 +67,21 @@ event_loop(struct iscsi_context *iscsi, struct iscsi_sync_state *state)
|
|||||||
while (state->finished == 0) {
|
while (state->finished == 0) {
|
||||||
short revents;
|
short revents;
|
||||||
|
|
||||||
if (scsi_timeout) {
|
if (scsi_timeout) {
|
||||||
t = time(NULL);
|
t = time(NULL);
|
||||||
if (t > scsi_timeout) {
|
if (t > scsi_timeout) {
|
||||||
iscsi_set_error(iscsi, "Connect timedout");
|
iscsi_timeout_scan(iscsi);
|
||||||
state->status = -1;
|
|
||||||
return;
|
if (iscsi->old_iscsi) {
|
||||||
}
|
iscsi_timeout_scan(iscsi->old_iscsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iscsi_set_error(iscsi, "Connect timedout");
|
||||||
|
state->status = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pfd.fd = iscsi_get_fd(iscsi);
|
pfd.fd = iscsi_get_fd(iscsi);
|
||||||
pfd.events = iscsi_which_events(iscsi);
|
pfd.events = iscsi_which_events(iscsi);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user