sanguinews 0.61 → 0.62

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40aa32aca9a225e90465338f0e81ab91e3a6d252
4
- data.tar.gz: d54b92ab842f357493d401bbe2f125896e019c8d
3
+ metadata.gz: a07e61c925070d018d579a856c137b846c731e6c
4
+ data.tar.gz: e7a3c111b7073f2c4521aaa2d61e8359f59a1237
5
5
  SHA512:
6
- metadata.gz: a6502eba0c482db080ab3a0a3eedd47ae3523a5772e908d68fe6d21041844cae67fcd02cb631cb6501b6b6ee18448c1837ec5a45c01cfca4eb4e04f02828829f
7
- data.tar.gz: d501c3176bf7f6e2ca3197e1234c74652e770574e6d668f4881daea9b5e0009b44dc832eca6ca9a91ece5f0af069bf01edb807d8a6f78578908b8f9f069df722
6
+ metadata.gz: 3c5da17e11518f47a90931e941a0304c5dbf992f6457a0c407b602fc0cb4d5594bad0798bb445fbde0f0467d7fa9d313c653f5ae30e297b1e957bd2df7aef22a
7
+ data.tar.gz: e7af4ec66b501eb5852202cbd5f20a09c507c4562be01c7379e7b10d54c03ac42aaf8024f4b4919f91c5586b7ec0723fe4b9d3b94e6e3d16379c5c5335719679
@@ -34,7 +34,57 @@ VALUE method_yencoded_data_yenc(VALUE self, VALUE data,VALUE length) {
34
34
  unsigned char c;
35
35
  unsigned char *output;
36
36
  unsigned char *start;
37
+ uint32_t crc=0;
38
+ VALUE yencoded;
39
+ VALUE crc32;
37
40
  VALUE result;
41
+ // table for crc32 value calculations
42
+ static uint32_t crc32_tab[] = {
43
+ 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
44
+ 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
45
+ 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
46
+ 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
47
+ 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
48
+ 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
49
+ 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
50
+ 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
51
+ 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
52
+ 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
53
+ 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
54
+ 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
55
+ 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
56
+ 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
57
+ 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
58
+ 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
59
+ 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
60
+ 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
61
+ 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
62
+ 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
63
+ 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
64
+ 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
65
+ 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
66
+ 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
67
+ 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
68
+ 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
69
+ 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
70
+ 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
71
+ 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
72
+ 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
73
+ 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
74
+ 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
75
+ 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
76
+ 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
77
+ 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
78
+ 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
79
+ 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
80
+ 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
81
+ 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
82
+ 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
83
+ 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
84
+ 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
85
+ 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
86
+ };
87
+
38
88
 
39
89
  // convert ruby variables to c variables
40
90
  bindata = StringValuePtr(data);
@@ -44,8 +94,10 @@ VALUE method_yencoded_data_yenc(VALUE self, VALUE data,VALUE length) {
44
94
  destlen = restlen; //will be needing this for memory allocation
45
95
  output = (unsigned char*)malloc(2 * destlen * sizeof(char));
46
96
  start = output; //starting address will be stored here
97
+ crc = crc ^ ~0U;
47
98
  while (restlen>0) {
48
99
  c=(unsigned char) *bindata; //get byte
100
+ crc = crc32_tab[(crc ^ c) & 0xFF] ^ (crc >> 8); // crc32 calculation
49
101
  c=c+42; //add 42 as per yenc specs
50
102
  bindata++; restlen--;
51
103
  switch(c) { //special characters
@@ -83,7 +135,12 @@ VALUE method_yencoded_data_yenc(VALUE self, VALUE data,VALUE length) {
83
135
  }
84
136
  *output=0; //NULL termination is required
85
137
  destlen++;
86
- result=rb_str_new2((char*)start);
138
+ crc = crc ^ ~0U;
139
+ result=rb_ary_new();
140
+ yencoded=rb_str_new2((char*)start);
141
+ crc32=UINT2NUM(crc);
142
+ rb_ary_push(result, yencoded);
143
+ rb_ary_push(result, crc32);
87
144
  free(start);
88
145
  return result;
89
146
  }
data/lib/sanguinews.rb CHANGED
@@ -50,8 +50,9 @@ module Sanguinews
50
50
  data = {}
51
51
  final_data = []
52
52
  len = bindata.length
53
- data[:yenc] = Yencoded::Data.yenc(bindata, len)
54
- data[:crc32] = Zlib.crc32(bindata, 0).to_s(16)
53
+ yencoded = Yencoded::Data.yenc(bindata, len)
54
+ data[:crc32] = yencoded[1].to_s(16)
55
+ data[:yenc] = yencoded[0]
55
56
  data[:length] = len
56
57
  data[:chunk] = chunk
57
58
  data[:file] = file
@@ -207,7 +208,7 @@ module Sanguinews
207
208
 
208
209
  # "max" is needed only in dirmode
209
210
  max = files.length
210
- current_chunk = 1
211
+ current_file = 1
211
212
 
212
213
  unprocessed = 0
213
214
  info_lock=Mutex.new
@@ -235,7 +236,7 @@ module Sanguinews
235
236
  informed[file.to_sym] = false
236
237
  file = FileToUpload.new(
237
238
  name: file, chunk_length: @config.article_size, prefix: @config.prefix,
238
- current: current_chunk, last: max, filemode: @config.filemode,
239
+ current: current_file, last: max, filemode: @config.filemode,
239
240
  from: @config.from, groups: @config.groups, nzb: @config.nzb
240
241
  )
241
242
  @s.to_upload += file.size
@@ -245,7 +246,7 @@ module Sanguinews
245
246
  end
246
247
 
247
248
  files_to_process << file
248
- current_chunk += 1
249
+ current_file += 1
249
250
  end
250
251
 
251
252
  # let's give a little bit higher priority for file processing thread
@@ -1,3 +1,3 @@
1
1
  module Sanguinews
2
- VERSION = "0.61"
2
+ VERSION = "0.62"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sanguinews
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.61'
4
+ version: '0.62'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tadeus Dobrovolskij
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-04 00:00:00.000000000 Z
11
+ date: 2014-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: speedometer