Minor fixes for FTP support
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:53:03 +0000 (16:53 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:53:03 +0000 (16:53 +0000)
Author: jgg
Date: 1999-03-15 08:10:39 GMT
Minor fixes for FTP support

apt-pkg/acquire-method.cc
apt-pkg/acquire.cc
apt-pkg/contrib/configuration.h
apt-pkg/contrib/fileutl.cc
apt-pkg/contrib/fileutl.h
apt-pkg/contrib/strutl.cc
doc/apt-get.8.yo
doc/examples/apt.conf

index 9bb76e5..678b106 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire-method.cc,v 1.17 1999/02/08 07:30:49 jgg Exp $
+// $Id: acquire-method.cc,v 1.18 1999/03/15 08:10:39 jgg Exp $
 /* ######################################################################
 
    Acquire Method
@@ -69,7 +69,16 @@ void pkgAcqMethod::Fail(bool Transient)
 // ---------------------------------------------------------------------
 /* */
 void pkgAcqMethod::Fail(string Err,bool Transient)
-{   
+{
+   // Strip out junk from the error messages
+   for (char *I = Err.begin(); I != Err.end(); I++)
+   {
+      if (*I == '\r') 
+        *I = ' ';
+      if (*I == '\n') 
+        *I = ' ';
+   }
+   
    char S[1024];
    if (Queue != 0)
    {
@@ -271,7 +280,8 @@ bool pkgAcqMethod::Configuration(string Message)
       if (End == Equals)
         return false;
       
-      Cnf.Set(string(I,Equals-I),string(Equals+1,End-Equals-1));
+      Cnf.Set(DeQuoteString(string(I,Equals-I)),
+             DeQuoteString(string(Equals+1,End-Equals-1)));
       I = End;
    }
    
index a78dd19..aadfe2e 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire.cc,v 1.27 1999/03/13 23:30:04 jgg Exp $
+// $Id: acquire.cc,v 1.28 1999/03/15 08:10:39 jgg Exp $
 /* ######################################################################
 
    Acquire - File Acquiration
@@ -709,7 +709,7 @@ void pkgAcquireStatus::Pulse(pkgAcquire *Owner)
       else
         CurrentCPS = (CurrentBytes - LastBytes)/Delta;
       LastBytes = CurrentBytes;
-      ElapsedTime = Delta;
+      ElapsedTime = (unsigned long)Delta;
       Time = NewTime;
    }
 }
index adda854..bf99f07 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: configuration.h,v 1.9 1999/01/18 06:20:07 jgg Exp $
+// $Id: configuration.h,v 1.10 1999/03/15 08:10:39 jgg Exp $
 /* ######################################################################
 
    Configuration Class
@@ -60,7 +60,9 @@ class Configuration
    string FindFile(const char *Name,const char *Default = 0);
    string FindDir(const char *Name,const char *Default = 0);
    int FindI(const char *Name,int Default = 0);
+   int FindI(string Name,bool Default = 0) {return FindI(Name.c_str(),Default);};
    bool FindB(const char *Name,bool Default = false);
+   bool FindB(string Name,bool Default = false) {return FindB(Name.c_str(),Default);};
              
    inline void Set(string Name,string Value) {Set(Name.c_str(),Value);};
    void Set(const char *Name,string Value);
index b6a6492..a761794 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: fileutl.cc,v 1.21 1999/02/16 04:18:35 jgg Exp $
+// $Id: fileutl.cc,v 1.22 1999/03/15 08:10:39 jgg Exp $
 /* ######################################################################
    
    File Utilities
@@ -164,15 +164,16 @@ void SetNonBlock(int Fd,bool Block)
 // WaitFd - Wait for a FD to become readable                           /*{{{*/
 // ---------------------------------------------------------------------
 /* This waits for a FD to become readable using select. It is usefull for
-   applications making use of non-blocking sockets. */
+   applications making use of non-blocking sockets. The timeout is 
+   in seconds. */
 bool WaitFd(int Fd,bool write,unsigned long timeout)
 {
    fd_set Set;
    struct timeval tv;
    FD_ZERO(&Set);
    FD_SET(Fd,&Set);
-   tv.tv_sec = timeout / 1000000;
-   tv.tv_usec = timeout % 1000000;
+   tv.tv_sec = timeout;
+   tv.tv_usec = 0;
    if (write == true) 
    {
       if (select(Fd+1,0,&Set,0,(timeout != 0?&tv:0)) <= 0)
@@ -275,6 +276,20 @@ bool FileFd::Seek(unsigned long To)
       return _error->Error("Unable to seek to %u",To);
    }
    
+   return true;
+}
+                                                                       /*}}}*/
+// FileFd::Truncate - Truncate the file                                /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool FileFd::Truncate(unsigned long To)
+{
+   if (ftruncate(iFd,To) != 0)
+   {
+      Flags |= Fail;
+      return _error->Error("Unable to truncate to %u",To);
+   }
+   
    return true;
 }
                                                                        /*}}}*/
index 7bb3fc4..1bcb263 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: fileutl.h,v 1.14 1999/02/16 04:18:35 jgg Exp $
+// $Id: fileutl.h,v 1.15 1999/03/15 08:10:39 jgg Exp $
 /* ######################################################################
    
    File Utilities
@@ -42,6 +42,7 @@ class FileFd
    bool Read(void *To,unsigned long Size);
    bool Write(const void *From,unsigned long Size);
    bool Seek(unsigned long To);
+   bool Truncate(unsigned long To);
    unsigned long Tell();
    unsigned long Size();
    bool Close();
index eb3ef96..a2464c9 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: strutl.cc,v 1.20 1999/02/27 22:29:11 jgg Exp $
+// $Id: strutl.cc,v 1.21 1999/03/15 08:10:39 jgg Exp $
 /* ######################################################################
 
    String Util - Some usefull string functions.
@@ -20,7 +20,7 @@
 #endif
 
 #include <apt-pkg/strutl.h>
-#include <apt-pkg/fileutl.h>
+#include <apt-pkg//fileutl.h>
 
 #include <ctype.h>
 #include <string.h>
@@ -178,23 +178,20 @@ bool ParseCWord(const char *String,string &Res)
    return true;
 }
                                                                        /*}}}*/
-// DeQuoteString - Convert a string from quoted from                   /*{{{*/
+// QuoteString - Convert a string into quoted from                     /*{{{*/
 // ---------------------------------------------------------------------
-/* This undoes QuoteString */
-string DeQuoteString(string Str)
+/* */
+string QuoteString(string Str,const char *Bad)
 {
    string Res;
    for (string::iterator I = Str.begin(); I != Str.end(); I++)
    {
-      if (*I == '%' && I + 2 < Str.end())
+      if (strchr(Bad,*I) != 0 || isprint(*I) == 0 || 
+         *I <= 0x20 || *I >= 0x7F)
       {
-        char Tmp[3];
-        Tmp[0] = I[1];
-        Tmp[1] = I[2];
-        Tmp[2] = 0;
-        Res += (char)strtol(Tmp,0,16);
-        I += 2;
-        continue;
+        char Buf[10];
+        sprintf(Buf,"%%%02x",(int)*I);
+        Res += Buf;
       }
       else
         Res += *I;
@@ -202,27 +199,31 @@ string DeQuoteString(string Str)
    return Res;
 }
                                                                        /*}}}*/
-// QuoteString - Convert a string into quoted from                     /*{{{*/
+// DeQuoteString - Convert a string from quoted from                    /*{{{*/
 // ---------------------------------------------------------------------
-/* */
-string QuoteString(string Str,const char *Bad)
+/* This undoes QuoteString */
+string DeQuoteString(string Str)
 {
    string Res;
    for (string::iterator I = Str.begin(); I != Str.end(); I++)
    {
-      if (strchr(Bad,*I) != 0 || isprint(*I) == 0 || 
-         *I <= 0x20 || *I >= 0x7F)
+      if (*I == '%' && I + 2 < Str.end())
       {
-        char Buf[10];
-        sprintf(Buf,"%%%02x",(int)*I);
-        Res += Buf;
+        char Tmp[3];
+        Tmp[0] = I[1];
+        Tmp[1] = I[2];
+        Tmp[2] = 0;
+        Res += (char)strtol(Tmp,0,16);
+        I += 2;
+        continue;
       }
       else
         Res += *I;
    }
-   return Res;
+   return Res;   
 }
-                                                                       /*}}}*/
+
+                                                                        /*}}}*/
 // SizeToStr - Convert a long into a human readable size               /*{{{*/
 // ---------------------------------------------------------------------
 /* A max of 4 digits are shown before conversion to the next highest unit. 
@@ -597,6 +598,30 @@ static int MonthConv(char *Month)
    }   
 }
                                                                        /*}}}*/
+// timegm - Internal timegm function if gnu is not available           /*{{{*/
+// ---------------------------------------------------------------------
+/* Ripped this evil little function from wget - I prefer the use of 
+   GNU timegm if possible as this technique will have interesting problems
+   with leap seconds, timezones and other.
+   
+   Converts struct tm to time_t, assuming the data in tm is UTC rather
+   than local timezone (mktime assumes the latter).
+   
+   Contributed by Roger Beeman <beeman@cisco.com>, with the help of
+   Mark Baushke <mdb@cisco.com> and the rest of the Gurus at CISCO. */
+#ifndef __USE_MISC        // glib sets this
+static time_t timegm(struct tm *t)
+{
+   time_t tl, tb;
+   
+   tl = mktime (t);
+   if (tl == -1)
+      return -1;
+   tb = mktime (gmtime (&tl));
+   return (tl <= tb ? (tl + (tl - tb)) : (tl - (tb - tl)));
+}
+#endif
+                                                                       /*}}}*/
 // StrToTime - Converts a string into a time_t                         /*{{{*/
 // ---------------------------------------------------------------------
 /* This handles all 3 populare time formats including RFC 1123, RFC 1036
index 6209c7e..b4a468a 100644 (file)
@@ -66,7 +66,7 @@ list of locations from which to retrieve desired package files.
 dit(bf(install))
 bf(install) is followed by one or more em(packages) desired for installation. 
 Each em(package) is a package name, not a fully qualified filename 
-(for instance, in a Debian GNU/Linux system, em(lsdo) would be the argument 
+(for instance, in a Debian GNU/Linux system, em(ldso) would be the argument 
 provided, not em(ldso_1.9.6-2.deb)). All packages required by the package(s) 
 specified for installation will also be retrieved and installed. The
 bf(/etc/apt/sources.list) file is used to locate the desired packages. If a
index b4ba2ac..d0078cd 100644 (file)
@@ -1,4 +1,4 @@
-// $Id: apt.conf,v 1.26 1999/03/02 21:19:06 jgg Exp $
+// $Id: apt.conf,v 1.27 1999/03/15 08:10:39 jgg Exp $
 /* This file is an index of all APT configuration directives. It should
    NOT actually be used as a real config file, though it is a completely
    valid file.
@@ -66,6 +66,26 @@ Acquire
     Max-Age "86400";     // 1 Day age on index files
     No-Store "false";    // Prevent the cache from storing archives    
   };
+
+  ftp
+  {
+    Proxy "ftp://127.0.0.1/";
+    Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting
+
+    // Required script to perform proxy login
+    ProxyLogin
+    {
+       "USER $(PROXY_USER)";
+       "PASS $(PROXY_PASS)";
+       "USER $(SITE_USER)@$(SITE):$(SITE_PORT)";
+       "PASS $(SITE_PASS)";
+    };
+    
+    Timeout "120";
+    Passive "true";
+    Proxy::Passive "true";
+    Passive::http.us.debian.org "true"; // Specific per-host setting       
+  };
   
   cdrom
   {