summaryrefslogtreecommitdiff
path: root/apt-pkg/iprogress.cc
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2013-10-14 08:42:48 +0200
committerMichael Vogt <mvo@debian.org>2013-10-14 08:42:48 +0200
commit5e9458e285af11c7fa4308add10d250e3546c8bf (patch)
treea3c62859aa031737cb8d7487ca8d742bcd2cba87 /apt-pkg/iprogress.cc
parenta22fdebf63a42026e4350ebd069512c797bc2a5b (diff)
re-add APT::Keep-Fds:: for the dpkg status-fd in dpkgpm.cc as we always need this
Diffstat (limited to 'apt-pkg/iprogress.cc')
-rw-r--r--apt-pkg/iprogress.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/apt-pkg/iprogress.cc b/apt-pkg/iprogress.cc
index 7de190da0..bed991d68 100644
--- a/apt-pkg/iprogress.cc
+++ b/apt-pkg/iprogress.cc
@@ -8,7 +8,7 @@
#include <termios.h>
#include <sys/ioctl.h>
#include <sstream>
-
+#include <fcntl.h>
namespace APT {
namespace Progress {
@@ -42,7 +42,12 @@ void PackageManagerProgressFd::WriteToStatusFd(std::string s)
void PackageManagerProgressFd::Start()
{
- _config->Set("APT::Keep-Fds::", OutStatusFd);
+ if(OutStatusFd <= 0)
+ return;
+
+ // FIXME: use SetCloseExec here once it taught about throwing
+ // exceptions instead of doing _exit(100) on failure
+ fcntl(OutStatusFd,F_SETFD,FD_CLOEXEC);
// send status information that we are about to fork dpkg
std::ostringstream status;