summaryrefslogtreecommitdiff
path: root/extra/hefur
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-12-01 01:52:00 -0800
committerroot <root@rshg054.dnsready.net>2012-12-01 01:52:00 -0800
commitc31ace4c6175db330d7e4aac1e7388fe5ca5d4f3 (patch)
tree305ea12a2bf8d2d9c7a36e52f68dba9fdb801548 /extra/hefur
parent51867161079ab52d5152105142a3bc965c63ca03 (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.patch93
-rw-r--r--extra/hefur/PKGBUILD14
-rw-r--r--extra/hefur/Replace-by-amp-in-stat.html.patch27
-rw-r--r--extra/hefur/hefurd.service1
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 &amp; 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}}&amp;dn={{name|u}}&amp;tr={{tracker_udp|u}}&amp;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