summaryrefslogtreecommitdiff
path: root/methods/rsh.h
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:56:32 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:56:32 +0000
commitb2e465d6d32d2dc884f58b94acb7e35f671a87fe (patch)
tree5928383b9bde7b0ba9812e6526ad746466e558f7 /methods/rsh.h
parent00b47c98ca4a4349686a082eba6d77decbb03a4d (diff)
Join with aliencode
Author: jgg Date: 2001-02-20 07:03:16 GMT Join with aliencode
Diffstat (limited to 'methods/rsh.h')
-rw-r--r--methods/rsh.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/methods/rsh.h b/methods/rsh.h
new file mode 100644
index 000000000..c3f3258e9
--- /dev/null
+++ b/methods/rsh.h
@@ -0,0 +1,69 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/// $Id: rsh.h,v 1.2 2001/02/20 07:03:18 jgg Exp $
+// $Id: rsh.h,v 1.2 2001/02/20 07:03:18 jgg Exp $
+/* ######################################################################
+
+ RSH method - Transfer files via rsh compatible program
+
+ ##################################################################### */
+ /*}}}*/
+#ifndef APT_RSH_H
+#define APT_RSH_H
+
+#include <string>
+#include <apt-pkg/strutl.h>
+#include <apt-pkg/md5.h>
+#include <apt-pkg/acquire-method.h>
+#include <apt-pkg/fileutl.h>
+
+class RSHConn
+{
+ char Buffer[1024*10];
+ unsigned long Len;
+ int WriteFd;
+ int ReadFd;
+ URI ServerName;
+
+ // Private helper functions
+ bool ReadLine(string &Text);
+
+ public:
+
+ int Process;
+
+ // Raw connection IO
+ bool WriteMsg(string &Text,bool Sync,const char *Fmt,...);
+ bool Connect(string Host, string User);
+ bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;};
+
+ // Connection control
+ bool Open();
+ void Close();
+
+ // Query
+ bool Size(const char *Path,unsigned long &Size);
+ bool ModTime(const char *Path, time_t &Time);
+ bool Get(const char *Path,FileFd &To,unsigned long Resume,
+ MD5Summation &MD5,bool &Missing, unsigned long Size);
+
+ RSHConn(URI Srv);
+ ~RSHConn();
+};
+
+class RSHMethod : public pkgAcqMethod
+{
+ virtual bool Fetch(FetchItem *Itm);
+
+ RSHConn *Server;
+
+ static string FailFile;
+ static int FailFd;
+ static time_t FailTime;
+ static void SigTerm(int);
+
+ public:
+
+ RSHMethod();
+};
+
+#endif