rtorrent && wtorrent

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
inBrain
проходил мимо
Сообщения: 7
Зарегистрирован: 2010-01-10 21:51:21

rtorrent && wtorrent

Непрочитанное сообщение inBrain » 2010-01-26 18:57:40

Установил рторрент, прикрутил вебморду.
На попытку добавить торрент морда отвечает:
Ошибка: невозможно создать файл. Проверьте наличие прав
Морда и рторрент работают с директориями:

Код: Выделить всё

drwxrwxr-x  5 p2p   p2p         512B 26 янв 17:51 torrent
уровнем ниже:

Код: Выделить всё

drwxrwxr-x  2 p2p  p2p   512B 26 янв 17:51 dl
drwxrwxr-x  2 p2p  p2p   512B 26 янв 18:32 session
drwxrwxr-x  2 p2p  p2p   512B 26 янв 17:51 work
Права 775 на всех, апач писать туда везде может (юзером www файлы создаются успешно)

Код: Выделить всё

uid=1002(p2p) gid=1004(p2p) groups=1004(p2p),80(www),1001(mgrsecure)
uid=80(www) gid=80(www) groups=80(www),1004(p2p)
Есть у кого идеи, что еще может быть?
Полдня занимался "любовью" с мордой, результат - 0.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: rtorrent && wtorrent

Непрочитанное сообщение Alex Keda » 2010-03-07 15:17:59

отладку включите
Убей их всех! Бог потом рассортирует...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: rtorrent && wtorrent

Непрочитанное сообщение FreeBSP » 2010-04-10 11:58:33

материлась на меня так
Error: Impossible to create file on given directory, please check permisions

матюгнулся в ответ так:

Код: Выделить всё

[13:33]wtorrent/# grep -rin 'mpossible to create file on given directory, please check permisions' ./*
./wt/lang/en.txt:13:err_add_dir = Error: Impossible to create file on given directory, please check permisions
[13:34]wtorrent/# grep -rin err_add_dir ./*
./wt/cls/AddT.cls.php:203:                      $this->addMessage($this->_str['err_add_dir']);
....
потопал, куда послали, узрел это

Код: Выделить всё

 63                 $uploadfile = DIR_EXEC . DIR_TORRENTS . sha1( $url ) . md5($url) . ".torrent";
 64                 // Get sha1/md5 for avoid filename problems & Multiple torrents
 65                 if (file_exists($uploadfile))
 66                 {
 67                         $this->addMessage($this->_str['err_add_file']);
 68                         return false;
 69                 }
Почесал репу, сказал "КАКОВА ЛЕШЕГО!!!!!", зарекся написать патчик и потопал стругать костыль

Код: Выделить всё

[13:36]wtorrent/# grep DIR_TORRENTS wtorrent/conf/user.conf.php
define ('DIR_TORRENTS', '../../../../../../../../mnt/160/dl/_TORRENTS/');
теперь имею честь лицезреть в вебморде такое:

Код: Выделить всё

 Torrent file: /usr/local/www/apache22/data/wtorrent/../../../../../../../../mnt/160/dl/_TORRENTS/1270892222Beliy.Den.Diskografija.1996-2005.MP3.192-320kbps.torrent
Data path: /mnt/160/dl/_MUSIC/Beliy.Den.Diskografija.1996-2005.MP3.192-320kbps
Done: 701.00 MB
Uploaded: 0 b
Size: 701.00 MB
Ratio: 0
надеюсь кому поможет костыль. на неделе напишу патчик

PS может, кто в курсе, в проект wtorrent патчи принимают?
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Гость
проходил мимо

Re: rtorrent && wtorrent

Непрочитанное сообщение Гость » 2010-05-06 15:52:42

может кому интересно будет, как я стругал патчик, и тут кто нить что нить нового почерпнет :bn:

итак, я просек, что вместо чего - то разумного банально склеиваются пути к wtorrent и путь к папке с торрентами.
склейка происходит приблизительно так

Код: Выделить всё

$uploadfile = DIR_EXEC . DIR_TORRENTS . sha1( $url ) . md5($url) . ".torrent";
и в любом случае получаем что то типа "/path/to/www/dir/wtorrent/DIR_TORRENTS" без возможности повлиять на это предусмотренными конфигурялками.
мне это совершенно не нравится, никакой гибкости, хотя вышеописанный костыль под это дело ставится в два счета.

ну, поехали стругать патчик

Код: Выделить всё

[11:21]wtorrent/# grep -rn DIR_TORRENTS ./*
./conf/sample.user.conf.php:45:define( 'DIR_TORRENTS',          'torrents/');
./conf/user.conf.php:13:define ('DIR_TORRENTS', '../../../../../../../../mnt/160/dl/_TORRENTS/');
./wt/cls/AddT.cls.php:56:               if (!is_writable(DIR_EXEC . DIR_TORRENTS))
./wt/cls/AddT.cls.php:58:                       $this->addMessage(DIR_EXEC . DIR_TORRENTS . $this->_str['err_not_writable']);
./wt/cls/AddT.cls.php:63:               $uploadfile = DIR_EXEC . DIR_TORRENTS . sha1( $url ) . md5($url) . ".torrent";
./wt/cls/AddT.cls.php:200:              $uploadfile = DIR_EXEC . DIR_TORRENTS . time() . basename($fileU['name']);
./wt/cls/AddT.cls.php:201:              if (!is_writable(DIR_EXEC . DIR_TORRENTS))
АГА
константа DIR_TORRENTS используется только в одном файле, как следует из названия, там наверное находится класс для добавления торрентов. В файле действительно оказался класс, и константа используется в двух методах - addRemoteTorrent() и uploadTorrent(). Всего, как сказал добрый grep, 5 вхождений.
Просто выкорчевать из этих строк константу DIR_EXEC мне показалось мало. Решил поставить что то поинтереснее, а заодно вытянуть оттудова тросик и приладить его к рычажку в conf/user.conf.php
сказано - сделано
Сначала делаем рычажок - дописываем строчку в user.conf.php

Код: Выделить всё

define ('ABSOLUTE_PATH_TORRENTS', true);
без определения этой константы в истину(true) wtorrent будет сохранять стандартное поведение даже при наложенном патче - для совместимости и успокоения нервов

ну а далее стругаем патч - добавляем в класс публичное свойство uploaddir и рисуем небольшую проверку в конструкторе

Код: Выделить всё

 24                 if(defined('ABSOLUTE_PATH_TORRENTS') && ABSOLUTE_PATH_TORRENTS === true
 25                         && defined('DIR_TORRENTS') && substr(DIR_TORRENTS, 0,1) === '/')
 26                 {
 27                         $this->uploaddir = DIR_TORRENTS;
 28                 }
 29                 else
 30                 {
 31                         $this->uploaddir = DIR_EXEC . DIR_TORRENTS;
 32                 }
в таком виде даже с активированным патчем если в DIR_TORRENTS указан относительный путь, он и останется относительным. Для того чтобы путь считался абсолютным, он должен начинаться со слеша - все стандартно =)
дальше меняем все вхождения DIR_EXEC . DIR_TORRENTS на $this->uploaddir. вроде бы и все - проверяем, грузим торренты, играемся с настройкой ABSOLUTE_PATH_TORRENTS...

патч прикрепляю, пинаем
тикет в проект отослал http://www.wtorrent-project.org/trac/ticket/416

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: rtorrent && wtorrent

Непрочитанное сообщение FreeBSP » 2010-05-06 15:55:49

предыдущее сообщение мое,
а вот и патч
Вложения
patch-abs_path-AddT.cls.zip
сори что в архиве, ни .php ни .patch не отсылаются
(870 байт) 28 скачиваний
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!