diff options
author | root <root@rshg054.dnsready.net> | 2012-12-01 01:52:00 -0800 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-12-01 01:52:00 -0800 |
commit | c31ace4c6175db330d7e4aac1e7388fe5ca5d4f3 (patch) | |
tree | 305ea12a2bf8d2d9c7a36e52f68dba9fdb801548 /extra/hefur | |
parent | 51867161079ab52d5152105142a3bc965c63ca03 (diff) |
Sat Dec 1 01:48:48 PST 2012
Diffstat (limited to 'extra/hefur')
-rw-r--r-- | extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch | 93 | ||||
-rw-r--r-- | extra/hefur/PKGBUILD | 14 | ||||
-rw-r--r-- | extra/hefur/Replace-by-amp-in-stat.html.patch | 27 | ||||
-rw-r--r-- | extra/hefur/hefurd.service | 1 |
4 files changed, 131 insertions, 4 deletions
diff --git a/extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch b/extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch new file mode 100644 index 000000000..8ad67ee74 --- /dev/null +++ b/extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch @@ -0,0 +1,93 @@ +From dbd00cfc3805b6f1ff794f7de0b52b1a7893401f Mon Sep 17 00:00:00 2001 +From: Alexandre Bique <bique.alexandre@gmail.com> +Date: Thu, 15 Nov 2012 20:43:41 +0100 +Subject: [PATCH 07/12] Check that added torrents from the disk are still on + the disk. +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + hefur/fs-tree-white-list.cc | 20 ++++++++++++++++++++ + hefur/fs-tree-white-list.hh | 1 + + hefur/torrent-db.hh | 4 +++- + 3 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/hefur/fs-tree-white-list.cc b/hefur/fs-tree-white-list.cc +index f493e95..61714d0 100644 +--- a/hefur/fs-tree-white-list.cc ++++ b/hefur/fs-tree-white-list.cc +@@ -54,10 +54,30 @@ namespace hefur + } + + void ++ FsTreeWhiteList::check() ++ { ++ std::vector<m::StringRef> keys; ++ auto db = Hefur::instance().torrentDb(); ++ m::SharedMutex::Locker locker(db->torrents_lock_); ++ db->torrents_.foreach([this, &keys] (Torrent::Ptr torrent) { ++ if (::strncmp(torrent->path().c_str(), root_.c_str(), root_.size())) ++ return; ++ ++ struct ::stat st; ++ if (::stat(torrent->path().c_str(), &st) && errno == ENOENT) ++ keys.push_back(torrent->key()); ++ }); ++ ++ for (auto it = keys.begin(); it != keys.end(); ++it) ++ db->torrents_.erase(*it); ++ } ++ ++ void + FsTreeWhiteList::loopScan() + { + do { + scan(); ++ check(); + } while (!stop_.timedWait(m::time() + rescan_interval_)); + } + } +diff --git a/hefur/fs-tree-white-list.hh b/hefur/fs-tree-white-list.hh +index c32bcd4..643fb78 100644 +--- a/hefur/fs-tree-white-list.hh ++++ b/hefur/fs-tree-white-list.hh +@@ -30,6 +30,7 @@ namespace hefur + * When a .torrent is found, call TorrentDb::addTorrent(). + */ + void scan(); ++ void check(); + + private: + /** +diff --git a/hefur/torrent-db.hh b/hefur/torrent-db.hh +index a1e5d38..e25ed33 100644 +--- a/hefur/torrent-db.hh ++++ b/hefur/torrent-db.hh +@@ -17,6 +17,7 @@ namespace hefur + { + class StatHandler; + class PeersHandler; ++ class FsTreeWhiteList; + + /** + * This is the "in memory" torrent database. +@@ -63,6 +64,7 @@ namespace hefur + friend class StatHandler; + friend class PeersHandler; + friend class FileHandler; ++ friend class FsTreeWhiteList; + + /** helper to use torrent->key() as a key for the trie */ + static inline m::StringRef torrentKey(Torrent::Ptr torrent) { +@@ -77,7 +79,7 @@ namespace hefur + m::Future<bool> cleanup_stop_; + m::Thread cleanup_thread_; + m::SharedMutex torrents_lock_; +- torrents_type torrents_; ++ torrents_type torrents_; + }; + } + +-- +1.8.0.1 + diff --git a/extra/hefur/PKGBUILD b/extra/hefur/PKGBUILD index 09db3f623..7b593a50c 100644 --- a/extra/hefur/PKGBUILD +++ b/extra/hefur/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 169811 2012-10-29 22:16:57Z thomas $ +# $Id: PKGBUILD 172176 2012-11-30 21:59:44Z thomas $ # Maintainer: Pierre Schmitz <pierre@archlinux.de> # Contributor: Alexandre Bique <bique.alexandre@gmail.com> pkgname=hefur pkgver=0.3 -pkgrel=3 +pkgrel=4 pkgdesc='A standalone and lightweight BitTorrent tracker' arch=('i686' 'x86_64') url='http://github.com/abique/hefur' @@ -12,12 +12,18 @@ license=('MIT') makedepends=('cmake') depends=('gnutls' 'xz') source=("https://github.com/downloads/abique/${pkgname}/${pkgname}-${pkgver}.tar.xz" - 'hefurd.service') + 'hefurd.service' + 'Check-that-added-torrents-from-the-disk-are-still-on.patch' + 'Replace-by-amp-in-stat.html.patch') md5sums=('446ca4e659ce0ca3c8f32b0990ee7f5f' - 'fec6d1a7a96bd6c5605d5316fec4fc2f') + '731d5be04d74a52541450b5127abeff3' + 'f912a75467a30251403923c0a7abe049' + 'f11af93e9a8074c8ba73f7a47e978362') build() { cd ${srcdir}/${pkgname}-${pkgver} + patch -p1 -i ${srcdir}/Check-that-added-torrents-from-the-disk-are-still-on.patch + patch -p1 -i ${srcdir}/Replace-by-amp-in-stat.html.patch mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. diff --git a/extra/hefur/Replace-by-amp-in-stat.html.patch b/extra/hefur/Replace-by-amp-in-stat.html.patch new file mode 100644 index 000000000..a11406a2f --- /dev/null +++ b/extra/hefur/Replace-by-amp-in-stat.html.patch @@ -0,0 +1,27 @@ +From 6986df22d293b7a149f51d4d8ba4a995645a4560 Mon Sep 17 00:00:00 2001 +From: Alexandre Bique <bique.alexandre@gmail.com> +Date: Sun, 4 Nov 2012 14:08:47 +0100 +Subject: [PATCH 03/12] Replace & by & in stat.html. +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + www/tpl/stat.html | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/www/tpl/stat.html b/www/tpl/stat.html +index 3234679..1e3b148 100644 +--- a/www/tpl/stat.html ++++ b/www/tpl/stat.html +@@ -21,7 +21,7 @@ + {{*torrents}} + <tr> + <td> +- <a href="magnet:?xt=urn:btih:{{info_sha1|b16}}&dn={{name|u}}&tr={{tracker_udp|u}}&tr={{tracker_http|u}}" ++ <a href="magnet:?xt=urn:btih:{{info_sha1|b16}}&dn={{name|u}}&tr={{tracker_udp|u}}&tr={{tracker_http|u}}" + title="Magnet link"> + <img src="/img/magnet-icon.gif"/> + </a> +-- +1.8.0.1 + diff --git a/extra/hefur/hefurd.service b/extra/hefur/hefurd.service index cdfc461ab..a5766225f 100644 --- a/extra/hefur/hefurd.service +++ b/extra/hefur/hefurd.service @@ -6,6 +6,7 @@ After=network.target ExecStart=/usr/bin/hefurd -torrent-dir /var/lib/hefurd User=nobody Group=nobody +CPUSchedulingPolicy=batch [Install] WantedBy=multi-user.target |