Browse Source

CDROM support

Author: jgg
Date: 1998-12-04 21:16:46 GMT
CDROM support
debian/1.8.y
Arch Librarian 19 years ago
parent
commit
542ec555f1
  1. 6
      apt-pkg/acquire-method.cc
  2. 37
      apt-pkg/acquire-worker.cc
  3. 5
      apt-pkg/acquire-worker.h
  4. 7
      apt-pkg/acquire.h
  5. 4
      apt-pkg/contrib/strutl.cc
  6. 19
      cmdline/acqprogress.cc
  7. 3
      cmdline/acqprogress.h
  8. 11
      doc/method.sgml

6
apt-pkg/acquire-method.cc

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acquire-method.cc,v 1.10 1998/12/03 07:29:16 jgg Exp $
// $Id: acquire-method.cc,v 1.11 1998/12/04 21:16:46 jgg Exp $
/* ######################################################################
Acquire Method
@ -230,8 +230,8 @@ void pkgAcqMethod::MediaFail(string Required,string Drive)
Messages.push_back(MyMessages.front());
MyMessages.erase(MyMessages.begin());
}
return;
return StringToBool(LookupTag(Message,"Fail"),false);
}
Messages.push_back(Message);

37
apt-pkg/acquire-worker.cc

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acquire-worker.cc,v 1.13 1998/11/29 01:24:18 jgg Exp $
// $Id: acquire-worker.cc,v 1.14 1998/12/04 21:16:47 jgg Exp $
/* ######################################################################
Acquire Worker
@ -26,6 +26,7 @@
#include <unistd.h>
#include <signal.h>
#include <wait.h>
#include <stdio.h>
/*}}}*/
// Worker::Worker - Constructor for Queue startup /*{{{*/
@ -288,6 +289,11 @@ bool pkgAcquire::Worker::RunMessages()
case 401:
_error->Error("Method %s General failure: %s",LookupTag(Message,"Message").c_str());
break;
// 403 Media Change
case 403:
MediaChange(Message);
break;
}
}
return true;
@ -318,6 +324,32 @@ bool pkgAcquire::Worker::Capabilities(string Message)
Config->SendConfig << endl;
}
return true;
}
/*}}}*/
// Worker::MediaChange - Request a media change /*{{{*/
// ---------------------------------------------------------------------
/* */
bool pkgAcquire::Worker::MediaChange(string Message)
{
if (Log == 0 || Log->MediaChange(LookupTag(Message,"Media"),
LookupTag(Message,"Drive")) == false)
{
char S[300];
sprintf(S,"603 Media Changed\nFailed: true\n\n");
if (Debug == true)
clog << " -> " << Access << ':' << QuoteString(S,"\n") << endl;
OutQueue += S;
OutReady = true;
return true;
}
char S[300];
sprintf(S,"603 Media Changed\n\n");
if (Debug == true)
clog << " -> " << Access << ':' << QuoteString(S,"\n") << endl;
OutQueue += S;
OutReady = true;
return true;
}
/*}}}*/
@ -451,8 +483,7 @@ void pkgAcquire::Worker::Pulse()
{
if (CurrentItem == 0)
return;
struct stat Buf;
if (stat(CurrentItem->Owner->DestFile.c_str(),&Buf) != 0)
return;

5
apt-pkg/acquire-worker.h

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acquire-worker.h,v 1.7 1998/11/09 01:09:24 jgg Exp $
// $Id: acquire-worker.h,v 1.8 1998/12/04 21:16:48 jgg Exp $
/* ######################################################################
Acquire Worker - Worker process manager
@ -61,7 +61,8 @@ class pkgAcquire::Worker
// The message handlers
bool Capabilities(string Message);
bool SendConfiguration();
bool MediaChange(string Message);
bool MethodFailure();
void ItemDone();

7
apt-pkg/acquire.h

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acquire.h,v 1.15 1998/11/29 01:24:20 jgg Exp $
// $Id: acquire.h,v 1.16 1998/12/04 21:16:49 jgg Exp $
/* ######################################################################
Acquire - File Acquiration
@ -208,11 +208,14 @@ class pkgAcquireStatus
// Called by items when they have finished a real download
virtual void Fetched(unsigned long Size,unsigned long ResumePoint);
// Called to change media
virtual bool MediaChange(string Media,string Drive) = 0;
// Each of these is called by the workers when an event occures
virtual void IMSHit(pkgAcquire::ItemDesc &Itm) {};
virtual void Fetch(pkgAcquire::ItemDesc &Itm) {};
virtual void Done(pkgAcquire::ItemDesc &Itm) {};
virtual void Fail(pkgAcquire::ItemDesc &Itm) {};
virtual void Fail(pkgAcquire::ItemDesc &Itm) {};
virtual void Pulse(pkgAcquire *Owner);
virtual void Start();
virtual void Stop();

4
apt-pkg/contrib/strutl.cc

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: strutl.cc,v 1.14 1998/12/03 07:29:18 jgg Exp $
// $Id: strutl.cc,v 1.15 1998/12/04 21:16:50 jgg Exp $
/* ######################################################################
String Util - Some usefull string functions.
@ -640,7 +640,7 @@ void URI::CopyFrom(string U)
Path = "/";
// Now we attempt to locate a user:pass@host fragment
if (U[1] == '/' && U[2] == '/')
if (FirstColon[1] == '/' && FirstColon[2] == '/')
FirstColon += 3;
else
FirstColon += 1;

19
cmdline/acqprogress.cc

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acqprogress.cc,v 1.4 1998/11/28 20:56:08 jgg Exp $
// $Id: acqprogress.cc,v 1.5 1998/12/04 21:16:52 jgg Exp $
/* ######################################################################
Acquire Progress - Command line progress meter
@ -228,3 +228,20 @@ void AcqTextStatus::Pulse(pkgAcquire *Owner)
Update = false;
}
/*}}}*/
// AcqTextStatus::MediaChange - Media need to be swapped /*{{{*/
// ---------------------------------------------------------------------
/* Prompt for a media swap */
bool AcqTextStatus::MediaChange(string Media,string Drive)
{
if (Quiet <= 0)
cout << '\r' << BlankLine << '\r';
cout << "Media Change: Please insert the Disc labeled '" << Media << "' in "\
" the drive '" << Drive << "' and press a key" << endl;
char C;
read(STDIN_FILENO,&C,1);
Update = true;
return true;
}
/*}}}*/

3
cmdline/acqprogress.h

@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: acqprogress.h,v 1.2 1998/11/12 05:30:09 jgg Exp $
// $Id: acqprogress.h,v 1.3 1998/12/04 21:16:53 jgg Exp $
/* ######################################################################
Acquire Progress - Command line progress meter
@ -21,6 +21,7 @@ class AcqTextStatus : public pkgAcquireStatus
public:
virtual bool MediaChange(string Media,string Drive);
virtual void IMSHit(pkgAcquire::ItemDesc &Itm);
virtual void Fetch(pkgAcquire::ItemDesc &Itm);
virtual void Done(pkgAcquire::ItemDesc &Itm);

11
doc/method.sgml

@ -4,7 +4,7 @@
<title>APT Method Interface </title>
<author>Jason Gunthorpe <email>jgg@debian.org</email></author>
<version>$Id: method.sgml,v 1.4 1998/10/30 07:53:49 jgg Exp $</version>
<version>$Id: method.sgml,v 1.5 1998/12/04 21:16:54 jgg Exp $</version>
<abstract>
This document describes the interface that APT uses to the archive
@ -207,6 +207,8 @@ The following is a short index of the header fields that are supported
<tag>Site<item>String indicating the site authorization is required for
<tag>User<item>Username for authorization
<tag>Password<item>Password for authorization
<tag>Fail<item>Operation failed
<tag>Drive<item>Drive the media should be placed in
<tag>Config-Item<item>
A string of the form <var>item</>=<var>value</> derived from the APT
configuration space. These may include method specific values and general
@ -214,9 +216,8 @@ values not related to the method. It is up to the method to filter out
the ones it wants.
<tag>Single-Instance<item>Requires that only one instance of the method be run
This is a yes/no value.
<tag>Pre-Scan<item>Method can detect if archives are already available.
This is a yes/no value.
<tag>Pipeline<item>The method is capable of pipelining.
<tag>Local<item>The method only returns Filename: feilds.
<tag>Send-Config<item>Send configuration to the method.
<tag>Version<item>Version string for the method
</taglist>
@ -279,7 +280,7 @@ Fields: Site
<tag>403 Media Failure<item>
A method that deals with multiple media requires that a new media be inserted.
The Media field contains the name of the media to be inserted.
Fields: Media
Fields: Media, Drive
<tag>600 URI Acquire<item>
APT is requesting that a new URI be added to the acquire list. Last-Modified
@ -301,7 +302,7 @@ Fields: Site, User, Password
<tag>603 Media Changed<item>
This is sent in response to a <em>403 Media Failure</> message. It
indicates that the user has changed media and it is safe to proceed.
Fields: Media
Fields: Media, Fail
</taglist>
</sect>

Loading…
Cancel
Save