diff --git a/index.js b/index.js index d769d42..3a58823 100644 --- a/index.js +++ b/index.js @@ -36,8 +36,7 @@ module.exports = function (metadata) { // if buffer fails to decode or there is no info key, then metadata is corrupt info = bncode.encode(bncode.decode(metadata).info) } catch (err) { - // TODO: throw or disregard invalid metadata? - //throw new Error('ut_metadata constructed with invalid metadata') + throw new Error('`ut_metadata` constructed with corrupt/invalid metadata') } if (info) diff --git a/package.json b/package.json index 7ada3a6..b136975 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ut_metadata", "description": "Extension for Peers to Send Metadata Files (BEP 9)", - "version": "1.4.0", + "version": "2.0.1", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", diff --git a/test/fetch.js b/test/fetch.js index 2070239..019ca3d 100644 --- a/test/fetch.js +++ b/test/fetch.js @@ -122,7 +122,7 @@ test('fetch() large torrent', function (t) { } else if (ext === 'ut_metadata') { // note: this should get called twice, once for each block of the ubuntu metadata t.pass('got extended ut_metadata message') - + // this is emitted for consistency's sake, but it's ignored // by the user since the ut_metadata package handles the // complexities internally @@ -142,7 +142,7 @@ test('discard invalid metadata', function (t) { wire1.pipe(wire2).pipe(wire1) var invalidMetadata = metadata.slice(0) - invalidMetadata[0] = 99 // mess up the first byte of the metadata + invalidMetadata[55] = 65 // mess up a byte in the info block wire1.use(ut_metadata(invalidMetadata)) wire2.use(ut_metadata()) @@ -163,4 +163,3 @@ test('discard invalid metadata', function (t) { wire1.handshake(parsedTorrent.infoHash, id1) }) -