nova-tcp 1.0 → 1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/nova-recv +13 -11
  3. data/bin/nova-send +25 -4
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f8fe2b622d887c5011abd418e945a4fa1b7b343
4
- data.tar.gz: 87aa1091cf3dc63afba12c1a775623e432eda668
3
+ metadata.gz: ddb256dd595fee01e634e71ae00eb6f07ea78e9c
4
+ data.tar.gz: 28b9e8824315c8d754ad2c45857ef40671efc2a7
5
5
  SHA512:
6
- metadata.gz: 95917df98fbb39c3a7ab380b1522b6879ef28583de82c4bbde781557639b30ff580585f9b6344f81a6f47822fc6b381420fbdd7513842de1370b4fae1db584fb
7
- data.tar.gz: 3da52b29c3c3ef9aad775b9d529287601e96581778af50aeb1b25317769edf9224a5f96fc0324886b66ace232ae4bebcf2198b93ee4579f526a3a9b868b20bc8
6
+ metadata.gz: 1a30becc06357bd9476598dc96a50321420e454132bff6ba4d9821a5fefa4b3d3ae89003cc1b9bd1ad0834801d47bbcdd2a8f09065e97d92d6302e133d1173b3
7
+ data.tar.gz: d90a9a63a92bdb86d913f6ba893786b97c025140c2e4b11d338805ce4b62b48f12736b114cd308eaa7d09b8dcdb0abba985e99692cc61a6c29fad9d82e9b8898
@@ -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
- def socket_eof
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"&&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
@@ -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
- files = ARGV.drop(2)
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
- fname,content = [ file , Base64.encode64( File.read(file) ) ]
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
- $sock.puts("SOCKET_EOF");exit
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nova-tcp
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: '1.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - sesshomariu