Diff

Differences From Artifact [f01903b995]:

To Artifact [ab7c5d0dc8]:


4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315

4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
    if (c->closes & CLOSES_SENT_EOF)
        return;

    c->pending_eof = TRUE;
    ssh_channel_try_eof(c);
}

void sshfwd_unclean_close(struct ssh_channel *c)
{
    Ssh ssh = c->ssh;

    if (ssh->state == SSH_STATE_CLOSED)
	return;

    switch (c->type) {
      case CHAN_X11:
        x11_close(c->u.x11.s);
        logevent("Forwarded X11 connection terminated due to local error");

        break;
      case CHAN_SOCKDATA:
      case CHAN_SOCKDATA_DORMANT:
        pfd_close(c->u.pfd.s);
        logevent("Forwarded port closed due to local error");
        break;
    }
    c->type = CHAN_ZOMBIE;

    ssh2_channel_check_close(c);
}








|









|
>




|







4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
    if (c->closes & CLOSES_SENT_EOF)
        return;

    c->pending_eof = TRUE;
    ssh_channel_try_eof(c);
}

void sshfwd_unclean_close(struct ssh_channel *c, const char *err)
{
    Ssh ssh = c->ssh;

    if (ssh->state == SSH_STATE_CLOSED)
	return;

    switch (c->type) {
      case CHAN_X11:
        x11_close(c->u.x11.s);
        logeventf(ssh, "Forwarded X11 connection terminated due to local "
                  "error: %s", err);
        break;
      case CHAN_SOCKDATA:
      case CHAN_SOCKDATA_DORMANT:
        pfd_close(c->u.pfd.s);
        logeventf(ssh, "Forwarded port closed due to local error: %s", err);
        break;
    }
    c->type = CHAN_ZOMBIE;

    ssh2_channel_check_close(c);
}