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
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)
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);
        logevent("Forwarded X11 connection terminated due to local error");
        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);
        logevent("Forwarded port closed due to local error");
        logeventf(ssh, "Forwarded port closed due to local error: %s", err);
        break;
    }
    c->type = CHAN_ZOMBIE;

    ssh2_channel_check_close(c);
}