nova-tcp 1.0 → 1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/nova-recv +13 -11
- data/bin/nova-send +25 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddb256dd595fee01e634e71ae00eb6f07ea78e9c
|
4
|
+
data.tar.gz: 28b9e8824315c8d754ad2c45857ef40671efc2a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a30becc06357bd9476598dc96a50321420e454132bff6ba4d9821a5fefa4b3d3ae89003cc1b9bd1ad0834801d47bbcdd2a8f09065e97d92d6302e133d1173b3
|
7
|
+
data.tar.gz: d90a9a63a92bdb86d913f6ba893786b97c025140c2e4b11d338805ce4b62b48f12736b114cd308eaa7d09b8dcdb0abba985e99692cc61a6c29fad9d82e9b8898
|
data/bin/nova-recv
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'socket'
|
4
4
|
require 'base64'
|
5
|
+
require 'digest'
|
5
6
|
|
6
7
|
unless ARGV.length==1
|
7
8
|
abort "USAGE: nova-recv PORT"
|
@@ -22,22 +23,23 @@ c = $server.accept
|
|
22
23
|
puts "Got connection from #{c.peeraddr[-1]}"
|
23
24
|
puts "Waiting for data"
|
24
25
|
|
25
|
-
|
26
|
-
puts "Client has finished transmission"
|
27
|
-
exit
|
28
|
-
end
|
26
|
+
md5 = {}
|
29
27
|
|
30
28
|
loop do
|
31
29
|
fname = c.gets.chomp
|
32
|
-
fname=="SOCKET_EOF"&&
|
30
|
+
fname=="SOCKET_EOF"&&(break)
|
33
31
|
puts "Receiving file #{fname}"
|
34
32
|
len = c.gets.chomp.to_i
|
35
|
-
content =
|
36
|
-
begin
|
37
|
-
content << c.read_nonblock(len)
|
38
|
-
rescue IO::EAGAINWaitReadable
|
39
|
-
retry
|
40
|
-
end
|
33
|
+
content = c.gets.chomp
|
41
34
|
File.write(fname,Base64.decode64(content))
|
35
|
+
md5[fname] = Digest::MD5.hexdigest(File.read(fname))
|
42
36
|
c.puts("ok")
|
37
|
+
end
|
38
|
+
|
39
|
+
printf("\n")
|
40
|
+
printf("Check your MD5s!\n")
|
41
|
+
md5.each_pair do |k,v|
|
42
|
+
printf("%s:\n",k)
|
43
|
+
printf(" %s\n",v)
|
44
|
+
printf("\n")
|
43
45
|
end
|
data/bin/nova-send
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
#!/usr/bin/env ruby
|
2
3
|
|
3
4
|
=begin
|
@@ -20,13 +21,20 @@
|
|
20
21
|
|
21
22
|
require 'socket'
|
22
23
|
require 'base64'
|
24
|
+
require 'digest'
|
23
25
|
|
24
26
|
unless ARGV.length >= 3 # address, port, file(s)
|
25
27
|
abort("USAGE: nova-send ADDRESS PORT FILE1 FILE2 ... FILEn")
|
26
28
|
end
|
27
29
|
|
28
30
|
addr, port = ARGV
|
29
|
-
|
31
|
+
files_rel = ARGV.drop(2)
|
32
|
+
|
33
|
+
files = []
|
34
|
+
|
35
|
+
for f in files_rel
|
36
|
+
files.concat Dir.glob(f)
|
37
|
+
end
|
30
38
|
|
31
39
|
ARGV.clear
|
32
40
|
|
@@ -42,9 +50,13 @@ else
|
|
42
50
|
puts "Connected."
|
43
51
|
end
|
44
52
|
|
53
|
+
md5 = {}
|
54
|
+
|
45
55
|
files.each_with_index do |file, index|
|
46
56
|
puts "Preparing transfer of file #{index+1}/#{files.length}"
|
47
|
-
|
57
|
+
raw_content = File.read(file)
|
58
|
+
fname,content = [ file , Base64.encode64(raw_content).gsub("\n","") ]
|
59
|
+
md5[file] = Digest::MD5.hexdigest(raw_content)
|
48
60
|
len = content.length
|
49
61
|
puts "Sending #{file}"
|
50
62
|
$sock.puts [fname,len,content].join("\n")
|
@@ -55,6 +67,15 @@ files.each_with_index do |file, index|
|
|
55
67
|
when "err"
|
56
68
|
puts "SENDING FAILED"
|
57
69
|
abort
|
58
|
-
end
|
59
|
-
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
$sock.puts("SOCKET_EOF")
|
74
|
+
|
75
|
+
printf("\n")
|
76
|
+
printf("Check your MD5s!\n")
|
77
|
+
md5.each_pair do |k,v|
|
78
|
+
printf("%s:\n",k)
|
79
|
+
printf(" %s\n",v)
|
80
|
+
printf("\n")
|
60
81
|
end
|