Mercurial > dropbear
comparison common-channel.c @ 938:c88dce72f6d2
Make sure client exit messages don't get lost
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Wed, 09 Jul 2014 00:13:17 +0800 |
parents | 4ad38e223ccd |
children | 5daedffd0769 |
comparison
equal
deleted
inserted
replaced
937:4ad38e223ccd | 938:c88dce72f6d2 |
---|---|
572 cbuf_free(channel->extrabuf); | 572 cbuf_free(channel->extrabuf); |
573 channel->extrabuf = NULL; | 573 channel->extrabuf = NULL; |
574 } | 574 } |
575 | 575 |
576 | 576 |
577 /* close the FDs in case they haven't been done | 577 if (IS_DROPBEAR_SERVER || (channel->writefd != STDOUT_FILENO)) { |
578 * yet (they might have been shutdown etc) */ | 578 /* close the FDs in case they haven't been done |
579 TRACE(("CLOSE writefd %d", channel->writefd)) | 579 * yet (they might have been shutdown etc) */ |
580 close(channel->writefd); | 580 TRACE(("CLOSE writefd %d", channel->writefd)) |
581 TRACE(("CLOSE readfd %d", channel->readfd)) | 581 close(channel->writefd); |
582 close(channel->readfd); | 582 TRACE(("CLOSE readfd %d", channel->readfd)) |
583 TRACE(("CLOSE errfd %d", channel->errfd)) | 583 close(channel->readfd); |
584 close(channel->errfd); | 584 TRACE(("CLOSE errfd %d", channel->errfd)) |
585 close(channel->errfd); | |
586 } | |
585 | 587 |
586 if (!channel->close_handler_done | 588 if (!channel->close_handler_done |
587 && channel->type->closehandler) { | 589 && channel->type->closehandler) { |
588 channel->type->closehandler(channel); | 590 channel->type->closehandler(channel); |
589 channel->close_handler_done = 1; | 591 channel->close_handler_done = 1; |