summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjchu <jchu>2004-09-02 23:15:10 +0200
committerjchu <jchu>2004-09-02 23:15:10 +0200
commita4710414e0efcb456bcd725c5956547edc4162af (patch)
tree6e98a997a6e538bb523ec29921bd71212f39d968
parent2423a686d6c26747c36b672e1132860302ed826b (diff)
downloadaur-a4710414e0efcb456bcd725c5956547edc4162af.tar.gz
aur-a4710414e0efcb456bcd725c5956547edc4162af.tar.xz
added support for multiple files in the client and made the file reading less memory intensive for the server (poorly, mind you)
-rwxr-xr-xtupkg/client/tupkg16
-rwxr-xr-xtupkg/server/tupkgs9
2 files changed, 17 insertions, 8 deletions
diff --git a/tupkg/client/tupkg b/tupkg/client/tupkg
index 4c0da4e3..14eb1c0f 100755
--- a/tupkg/client/tupkg
+++ b/tupkg/client/tupkg
@@ -121,14 +121,16 @@ def main(argv=None):
usage()
return 1
- try:
- fil = ClientFile(argv[1])
- except IOError, err:
- print "Error: " + err.strerror + ": '" + err.filename + "'"
- usage()
- return 1
+ files = []
+ for i in argv[1:]:
+ try:
+ files.append(ClientFile(i))
+ except IOError, err:
+ print "Error: " + err.strerror + ": '" + err.filename + "'"
+ usage()
+ return 1
- cs = ClientSocket([fil], 'localhost', 1034, "bfinch@example.net", "B0b")
+ cs = ClientSocket(files, 'localhost', 1034, "bfinch@example.net", "B0b")
cs.connect()
if not cs.auth():
diff --git a/tupkg/server/tupkgs b/tupkg/server/tupkgs
index ef010c94..4dd085b6 100755
--- a/tupkg/server/tupkgs
+++ b/tupkg/server/tupkgs
@@ -108,7 +108,14 @@ class ClientSocket(threading.Thread):
def readFiles(self):
for i in self.files:
- i.fd.write(self.reliableRead(i.actual_size))
+ count = 0
+ while count != i.actual_size:
+ if count + 1024 > i.actual_size:
+ i.fd.write(self.reliableRead(i.actual_size - count))
+ count += i.actual_size - count
+ else:
+ i.fd.write(self.reliableRead(1024))
+ count += 1024
i.fd.flush()
reply = {'numpkgs': len(self.files)}
for i, v in enumerate(self.files):