diff options
author | Michael Vogt <mvo@debian.org> | 2005-01-20 12:06:58 +0000 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2005-01-20 12:06:58 +0000 |
commit | d3fbe3fe7968190312c953ee7ba0c567be33ef09 (patch) | |
tree | d52419c9d0e79425cca4dd35ccaeba5abaa330cc /apt-pkg/deb | |
parent | 67073e88fc4654be702fe3b176e94b86a484a858 (diff) | |
parent | a2a5cd159fad8f9d07d31f791e89e1fdf672cdd9 (diff) |
* starmeged with matt, added some comments to the unsetting of no_proxy in ftp.cc
Patches applied:
* apt@packages.debian.org/apt--main--0--patch-49
Merge michael.vogt@canonical.com--2004/apt--status-fd--0
* apt@packages.debian.org/apt--main--0--patch-50
Increment libapt-pkg version
* apt@packages.debian.org/apt--main--0--patch-51
0.6.30
* michael.vogt@canonical.com--2004--laptop/apt--status-fd--0--base-0
tag of apt@packages.debian.org/apt--main--0--patch-32
* michael.vogt@canonical.com--2004--laptop/apt--status-fd--0--patch-1
* michael.vogt@canonical.com--2004--laptop/apt--status-fd--0--patch-2
* changed version of the library
* michael.vogt@canonical.com--2004--laptop/apt--status-fd--0--patch-3
* merged with matt again
* michael.vogt@canonical.com--2004--laptop/apt--status-fd--0--patch-4
* merged with apt--main--0 and fixed permissions in po/
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-1
tag of michael.vogt@canonical.com--2004--laptop/apt--status-fd--0--patch-4
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-2
* merged with matt's tree
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-3
* removed a stupid "<<<" merge in the changelog
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-4
* star-merged with apt@packages.debian.org/apt--main--0
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-5
* removed the "pre-fork/post-fork" change and put it into it's own branch, star-merged with matt so that it applies cleanly
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-6
* cleaned a incorrect log-file merge
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-7
* removed a conflict in =tagging-method
* michael.vogt@canonical.com--2004/apt--status-fd--0--patch-8
* cleaned up the delta so that it no longer contains unreleated whitespace changes
Diffstat (limited to 'apt-pkg/deb')
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 19 | ||||
-rw-r--r-- | apt-pkg/deb/dpkgpm.h | 2 |
2 files changed, 18 insertions, 3 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 85d46edba..61c48dcbb 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -326,7 +326,7 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf) // DPkgPM::Go - Run the sequence /*{{{*/ // --------------------------------------------------------------------- /* This globs the operations and calls dpkg */ -bool pkgDPkgPM::Go() +bool pkgDPkgPM::Go(int status_fd) { unsigned int MaxArgs = _config->FindI("Dpkg::MaxArgs",8*1024); unsigned int MaxArgBytes = _config->FindI("Dpkg::MaxArgBytes",32*1024); @@ -367,6 +367,17 @@ bool pkgDPkgPM::Go() } } + // if we got a status_fd argument, we pass it to apt + char status_fd_buf[20]; + if(status_fd > 0) + { + Args[n++] = "--status-fd"; + Size += strlen(Args[n-1]); + snprintf(status_fd_buf,20,"%i",status_fd); + Args[n++] = status_fd_buf; + Size += strlen(Args[n-1]); + } + switch (I->Op) { case Item::Remove: @@ -440,7 +451,11 @@ bool pkgDPkgPM::Go() sighandler_t old_SIGINT = signal(SIGINT,SIG_IGN); // Fork dpkg - pid_t Child = ExecFork(); + pid_t Child; + if(status_fd > 0) + Child = ExecFork(status_fd); + else + Child = ExecFork(); // This is the child if (Child == 0) diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index 5d60b32d2..b59b9dc93 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -45,7 +45,7 @@ class pkgDPkgPM : public pkgPackageManager virtual bool Install(PkgIterator Pkg,string File); virtual bool Configure(PkgIterator Pkg); virtual bool Remove(PkgIterator Pkg,bool Purge = false); - virtual bool Go(); + virtual bool Go(int status_fd=-1); virtual void Reset(); public: |