From d00c84135b39b1bbbd51552fc943aafd6895fdb7 Mon Sep 17 00:00:00 2001 From: Kevin Lynx Date: Sat, 20 Jul 2013 19:37:41 +0800 Subject: [PATCH] fix cache_indexer message leak bug --- ebin/dhtcrawler.app | 2 +- ebin/index_builder.beam | Bin 9252 -> 9596 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ebin/dhtcrawler.app b/ebin/dhtcrawler.app index 0d57ad6..99e6466 100644 --- a/ebin/dhtcrawler.app +++ b/ebin/dhtcrawler.app @@ -1,6 +1,6 @@ {application,dhtcrawler, [{description,"A DHT crawler to index magnet hash to torrent"}, - {vsn,"54a3012"}, + {vsn,"2658040"}, {registered,[dht_crawler_sup]}, {applications,[kernel,stdlib,crypto,public_key,ssl,inets,bson, mongodb]}, diff --git a/ebin/index_builder.beam b/ebin/index_builder.beam index d2fe5c8b9c4043a53fee92ac2a8f0e33cdf8fcf7..f4f3c5e164785de0b29e521e496124fa103fc71d 100644 GIT binary patch delta 7123 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