DC++ консольный клиент
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2008-11-10 18:12:36
- Контактная информация:
DC++ консольный клиент
Други, подскажите - есть DC++ клиент более-мение юзабельный?
с возможностью ограничения скорости аплоада.
Существующий microdc2 всем устраивает, но задаваемый параметр speed там ни на что не влияет.
с возможностью ограничения скорости аплоада.
Существующий microdc2 всем устраивает, но задаваемый параметр speed там ни на что не влияет.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
- Lycane
- старшина
- Сообщения: 407
- Зарегистрирован: 2008-05-23 15:25:58
- Откуда: Волжский
- Контактная информация:
Re: DC++ консольный клиент
Работа системного администратора заключается в том, чтобы по пЬяни разбиратЬ то, что написали укуреные программисты.
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2008-11-10 18:12:36
- Контактная информация:
Re: DC++ консольный клиент
Пользовались?
Он у вас собирается?
Он у вас собирается?
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: DC++ консольный клиент
rusty_j4ck писал(а):Пользовались?
Он у вас собирается?
Ошибку давайте.
Z301171463546 - можно пожертвовать мне денег
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2008-11-10 18:12:36
- Контактная информация:
Re: DC++ консольный клиент
Код: Выделить всё
[root@gateway /usr/tmp/dcget-1.0.68]# ./configure --prefix=/usr/local
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for ranlib... ranlib
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
[root@gateway /usr/tmp/dcget-1.0.68]# make
"Makefile", line 17: Need an operator
"Makefile", line 19: Need an operator
"lib/common.mk", line 8: Need an operator
"lib/extern.mk", line 1: Missing dependency operator
"lib/extern.mk", line 6: Need an operator
"lib/extern.mk", line 8: Missing dependency operator
"lib/extern.mk", line 13: Need an operator
"lib/extern.mk", line 15: Missing dependency operator
"lib/extern.mk", line 20: Need an operator
"lib/extern.mk", line 22: Missing dependency operator
"lib/extern.mk", line 27: Need an operator
"lib/common.mk", line 21: Missing dependency operator
"lib/common.mk", line 26: Need an operator
"lib/common.mk", line 28: Missing dependency operator
"lib/common.mk", line 30: Need an operator
"lib/common.mk", line 33: Missing dependency operator
"lib/common.mk", line 35: Need an operator
"lib/common.mk", line 38: Missing dependency operator
"lib/common.mk", line 39: Missing dependency operator
"lib/common.mk", line 42: Need an operator
"lib/common.mk", line 43: Need an operator
"lib/common.mk", line 46: Missing dependency operator
"lib/common.mk", line 48: Need an operator
"lib/common.mk", line 82: warning: duplicate script for target "%.o" ignored
"lib/common.mk", line 83: warning: duplicate script for target "%.o" ignored
"lib/common.mk", line 89: Need an operator
"lib/common.mk", line 93: Need an operator
"lib/common.mk", line 127: Missing dependency operator
"lib/common.mk", line 129: Need an operator
"lib/common.mk", line 131: Need an operator
"lib/common.mk", line 133: Missing dependency operator
"lib/common.mk", line 134: Missing dependency operator
"lib/common.mk", line 135: Need an operator
"lib/common.mk", line 136: Missing dependency operator
"lib/common.mk", line 137: Missing dependency operator
"lib/common.mk", line 138: Need an operator
make: fatal errors encountered -- cannot continue
[root@gateway /usr/tmp/dcget-1.0.68]# uname -a
FreeBSD gateway.cswork 6.2-RELEASE FreeBSD 6.2-RELEASE
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2008-11-10 18:12:36
- Контактная информация:
Re: DC++ консольный клиент
Код: Выделить всё
[root@gateway /usr/tmp/dcget-1.0.68]# gmake
for d in shakespeer lib/confuse lib/splib ; do (cd $d; make; cd ..) ; done
"common.mk", line 8: Need an operator
"./extern.mk", line 3: Need an operator
"./extern.mk", line 18: Need an operator
"./extern.mk", line 21: Need an operator
"./extern.mk", line 22: warning: duplicate script for target "define" ignored
"./extern.mk", line 23: warning: duplicate script for target "define" ignored
"./extern.mk", line 24: warning: duplicate script for target "define" ignored
"./extern.mk", line 29: warning: duplicate script for target "define" ignored
"./extern.mk", line 30: Need an operator
"./extern.mk", line 93: Missing dependency operator
"./extern.mk", line 98: Need an operator
"./extern.mk", line 100: Missing dependency operator
"./extern.mk", line 105: Need an operator
"./extern.mk", line 107: Missing dependency operator
"./extern.mk", line 112: Need an operator
"./extern.mk", line 114: Missing dependency operator
"./extern.mk", line 119: Need an operator
"common.mk", line 21: Missing dependency operator
"common.mk", line 26: Need an operator
"common.mk", line 28: Missing dependency operator
"common.mk", line 30: Need an operator
"common.mk", line 33: Missing dependency operator
"common.mk", line 35: Need an operator
"common.mk", line 38: Missing dependency operator
"common.mk", line 39: Missing dependency operator
"common.mk", line 42: Need an operator
"common.mk", line 43: Need an operator
"common.mk", line 46: Missing dependency operator
"common.mk", line 48: Need an operator
"common.mk", line 51: Missing dependency operator
"common.mk", line 53: Need an operator
"common.mk", line 87: warning: duplicate script for target "%.o" ignored
"common.mk", line 88: warning: duplicate script for target "%.o" ignored
"common.mk", line 94: Need an operator
"common.mk", line 95: warning: duplicate script for target "define" ignored
"common.mk", line 97: warning: duplicate script for target "define" ignored
"common.mk", line 98: Need an operator
"common.mk", line 132: Missing dependency operator
"common.mk", line 134: Need an operator
"common.mk", line 136: Need an operator
"common.mk", line 138: Missing dependency operator
"common.mk", line 139: Missing dependency operator
"common.mk", line 140: Need an operator
"common.mk", line 141: Missing dependency operator
"common.mk", line 142: Missing dependency operator
"common.mk", line 143: Need an operator
"Makefile", line 21: Missing dependency operator
"Makefile", line 25: Need an operator
"Makefile", line 29: Need an operator
make: fatal errors encountered -- cannot continue
"../common.mk", line 8: Need an operator
"../extern.mk", line 1: Missing dependency operator
"../extern.mk", line 6: Need an operator
"../extern.mk", line 8: Missing dependency operator
"../extern.mk", line 13: Need an operator
"../extern.mk", line 15: Missing dependency operator
"../extern.mk", line 20: Need an operator
"../extern.mk", line 22: Missing dependency operator
"../extern.mk", line 27: Need an operator
"../common.mk", line 21: Missing dependency operator
"../common.mk", line 26: Need an operator
"../common.mk", line 28: Missing dependency operator
"../common.mk", line 30: Need an operator
"../common.mk", line 33: Missing dependency operator
"../common.mk", line 35: Need an operator
"../common.mk", line 38: Missing dependency operator
"../common.mk", line 39: Missing dependency operator
"../common.mk", line 42: Need an operator
"../common.mk", line 43: Need an operator
"../common.mk", line 46: Missing dependency operator
"../common.mk", line 48: Need an operator
"../common.mk", line 82: warning: duplicate script for target "%.o" ignored
"../common.mk", line 83: warning: duplicate script for target "%.o" ignored
"../common.mk", line 89: Need an operator
"../common.mk", line 93: Need an operator
"../common.mk", line 127: Missing dependency operator
"../common.mk", line 129: Need an operator
"../common.mk", line 131: Need an operator
"../common.mk", line 133: Missing dependency operator
"../common.mk", line 134: Missing dependency operator
"../common.mk", line 135: Need an operator
"../common.mk", line 136: Missing dependency operator
"../common.mk", line 137: Missing dependency operator
"../common.mk", line 138: Need an operator
make: fatal errors encountered -- cannot continue
"../common.mk", line 8: Need an operator
"../extern.mk", line 1: Missing dependency operator
"../extern.mk", line 6: Need an operator
"../extern.mk", line 8: Missing dependency operator
"../extern.mk", line 13: Need an operator
"../extern.mk", line 15: Missing dependency operator
"../extern.mk", line 20: Need an operator
"../extern.mk", line 22: Missing dependency operator
"../extern.mk", line 27: Need an operator
"../common.mk", line 21: Missing dependency operator
"../common.mk", line 26: Need an operator
"../common.mk", line 28: Missing dependency operator
"../common.mk", line 30: Need an operator
"../common.mk", line 33: Missing dependency operator
"../common.mk", line 35: Need an operator
"../common.mk", line 38: Missing dependency operator
"../common.mk", line 39: Missing dependency operator
"../common.mk", line 42: Need an operator
"../common.mk", line 43: Need an operator
"../common.mk", line 46: Missing dependency operator
"../common.mk", line 48: Need an operator
"../common.mk", line 82: warning: duplicate script for target "%.o" ignored
"../common.mk", line 83: warning: duplicate script for target "%.o" ignored
"../common.mk", line 89: Need an operator
"../common.mk", line 93: Need an operator
"../common.mk", line 127: Missing dependency operator
"../common.mk", line 129: Need an operator
"../common.mk", line 131: Need an operator
"../common.mk", line 133: Missing dependency operator
"../common.mk", line 134: Missing dependency operator
"../common.mk", line 135: Need an operator
"../common.mk", line 136: Missing dependency operator
"../common.mk", line 137: Missing dependency operator
"../common.mk", line 138: Need an operator
"Makefile", line 28: Unassociated shell command "SOURCES += fgetln.c"
make: fatal errors encountered -- cannot continue
compiling hublist.c
In file included from hublist.c:33:
lib/splib/xml.h:29:19: expat.h: No such file or directory
In file included from hublist.c:33:
lib/splib/xml.h:49: error: syntax error before "XML_Parser"
command was: cc -Wp,-MD,.deps/hublist.d -c -o hublist.o hublist.c -DDCGETCONF="/usr/etc/dcget.conf" -g -O2 -Wall -DVERSION="0.9.5" -DPACKAGE="shakespeer" -Ilib/splib -Ilib/.. -DCOREDUMPS_ENABLED=1
gmake: *** [hublist.o] Error 1
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2008-11-10 18:12:36
- Контактная информация:
Re: DC++ консольный клиент
Понятно, библиотек не хватает, дома попробую собрать.
- server801
- ст. лейтенант
- Сообщения: 1421
- Зарегистрирован: 2008-09-27 21:15:16
- Откуда: Саратов
- Контактная информация:
Re: DC++ консольный клиент
Код: Выделить всё
DCOREDUMPS_ENABLED=1
-
- проходил мимо
Re: DC++ консольный клиент
интересно, что курил автор Makefile.in. Там надо не make, а $(MAKE).rusty_j4ck писал(а):Код: Выделить всё
for d in shakespeer lib/confuse lib/splib ; do (cd $d; make; cd ..) ; done "common.mk", line 8: Need an operator
Вот "слегка" недоделанный порт из одного Makefile'а:
Код: Выделить всё
# New ports collection makefile for: dcget
# Date created: Dunno
# Whom: anonymous <anonymous@anonymous>
#
# $FreeBSD$
#
PORTNAME= dcget
PORTVERSION= 1.0.60
CATEGORIES= net-p2p
MASTER_SITES= SF
MAINTAINER= anonymous@anonymous
COMMENT= Open Source Direct Connect client for embeded Linux
LIB_DEPENDS= expat.6:${PORTSDIR}/textproc/expat2 \
event-1.4:${PORTSDIR}/devel/libevent
USE_BZIP2= yes
USE_ICONV= yes
USE_GMAKE= yes
GNU_CONFIGURE= yes
post-extract: .SILENT
${REINPLACE_CMD} '/SUBDIRS/s/make/$$(MAKE)/' ${WRKSRC}/Makefile.in
${REINPLACE_CMD} 's|EXPAT_LDFLAGS=.*|& -L${PREFIX}/lib|' \
${WRKSRC}/shakespeer/config.mk
${REINPLACE_CMD} '/Need -liconv/,/ifeq/s/Linux/FreeBSD/' ${WRKSRC}/shakespeer/common.mk
${REINPLACE_CMD} 's|sys/types.h>|sys/endian.h>|' \
${WRKSRC}/shakespeer/splib/tigertree.c \
${WRKSRC}/lib/splib/tigertree.c
.include <bsd.port.mk>
Код: Выделить всё
dcget.c: In function 'add_shares':
dcget.c:440: error: 'shared_path' undeclared (first use in this function)
dcget.c:440: error: (Each undeclared identifier is reported only once
dcget.c:440: error: for each function it appears in.)
-
- проходил мимо
Re: DC++ консольный клиент
Это пофиксено в 1.0.68. Вот полный diff рабочего порта:Гость писал(а):Код: Выделить всё
dcget.c: In function 'add_shares': dcget.c:440: error: 'shared_path' undeclared (first use in this function) dcget.c:440: error: (Each undeclared identifier is reported only once dcget.c:440: error: for each function it appears in.)
Код: Выделить всё
Makefile | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
distinfo | 3 +++
pkg-descr | 3 +++
3 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..4d51ea9
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,48 @@
+# New ports collection makefile for: dcget
+# Date created: dunno
+# Whom: anonymous <anonymous@anonymous>
+#
+# $FreeBSD$
+#
+
+PORTNAME= dcget
+PORTVERSION= 1.0.68
+CATEGORIES= net-p2p
+MASTER_SITES= SF
+
+MAINTAINER= anonymous@anonymous
+COMMENT= wget-like Direct Connect client
+
+LIB_DEPENDS= expat.6:${PORTSDIR}/textproc/expat2 \
+ event-1.4:${PORTSDIR}/devel/libevent
+
+USE_BZIP2= yes
+USE_GMAKE= yes
+GNU_CONFIGURE= yes
+USE_ICONV= yes
+
+PLIST_FILES= bin/dcget \
+ bin/share_tool \
+ bin/sphashd \
+ bin/sphubd \
+ bin/queue_tool
+
+post-extract: .SILENT
+ ${REINPLACE_CMD} '/SUBDIRS/s/make/$$(MAKE)/' ${WRKSRC}/Makefile.in
+
+ ${REINPLACE_CMD} 's|\(CFLAGS+=\)-g -O2|\1-I${LOCALBASE}/include|' \
+ ${WRKSRC}/lib/common.mk \
+ ${WRKSRC}/shakespeer/common.mk
+
+ ${REINPLACE_CMD} 's|sys/types.h>|sys/endian.h>|' \
+ ${WRKSRC}/shakespeer/splib/tigertree.c \
+ ${WRKSRC}/lib/splib/tigertree.c
+
+ ${REINPLACE_CMD} 's|\(LIBS=\)\(.*\)|\1-L${LOCALBASE}/lib \2|' \
+ ${WRKSRC}/lib/extern.mk \
+ ${WRKSRC}/shakespeer/extern.mk
+
+ ${REINPLACE_CMD} '/Need -liconv/,/ifeq/s/Linux/FreeBSD/' \
+ ${WRKSRC}/shakespeer/common.mk
+
+.include <bsd.port.mk>
diff --git a/distinfo b/distinfo
new file mode 100644
index 0000000..878df69
--- /dev/null
+++ b/distinfo
@@ -0,0 +1,3 @@
+MD5 (dcget-1.0.68.tar.bz2) = 7485568caa2dbc7a2408ffb9ae511852
+SHA256 (dcget-1.0.68.tar.bz2) = e2227fba760848b6a7b31435642978a68192b561e48297f22d64230521f29e4d
+SIZE (dcget-1.0.68.tar.bz2) = 1889781
diff --git a/pkg-descr b/pkg-descr
new file mode 100644
index 0000000..60a15b5
--- /dev/null
+++ b/pkg-descr
@@ -0,0 +1,3 @@
+wget-like Direct Connect client
+
+WWW: http://sourceforge.net/projects/dcget
-
- проходил мимо
Re: DC++ консольный клиент
можно также накатить в порт последнюю версию из svn:
Код: Выделить всё
(~/dist). svn co -q https://dcget.svn.sourceforge.net/svnroot/dcget
(~/dist). tar xkf /usr/ports/distfiles/dcget-1.0.68.tar.bz2
(~/dist). cd dcget
(~/dist/dcget). diff -Nurd -x .svn ../dcget-1.0.68 . >~/ports/dcget/files/patch-svn
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2008-11-10 18:12:36
- Контактная информация:
Re: DC++ консольный клиент
Скомпилял программулину, объясните как пользоваться?
Дальше че делать надо? Есть где доки?
Код: Выделить всё
#в common.mk
CFLAGS+=-I/usr/local/include
CFLAGS+=-L/usr/local/include
#заменить make на
$(make)
#добавить
-liconv
# не объявлена функция htole64 в tigertree.c:99, добавить
#include <sys/endian.h>
# запускаем
root@j4ckHOST/usr/local/etc # dcget 21:49 ttyp4
Read hublist: [192.168.1.2],
wait for connection....connected
- server801
- ст. лейтенант
- Сообщения: 1421
- Зарегистрирован: 2008-09-27 21:15:16
- Откуда: Саратов
- Контактная информация:
Re: DC++ консольный клиент
определить адреса хабов ,шару и т д
-
- проходил мимо
Re: DC++ консольный клиент
а кто то пробовал собирать не во фре?
лично у меня при вводе dcget в консоли, такой вывод:
aborted sig=11, sphubd(-1)
лично у меня при вводе dcget в консоли, такой вывод:
aborted sig=11, sphubd(-1)
-
- проходил мимо
Re: DC++ консольный клиент
упс, я забыл добавить etc/dcget.conf.sample в PLIST_FILES
создай $PREFIX/etc/dcget.confГость писал(а):а кто то пробовал собирать не во фре?
лично у меня при вводе dcget в консоли, такой вывод:
aborted sig=11, sphubd(-1)
-
- проходил мимо
Re: DC++ консольный клиент
dcget.conf выглядит так
а вот так выглядит лог
вернее так он выглядит когда каталог download шары содержит файлы, если же он пуст то продолжается подключение к хабу...
опять же если download пуст, то подключение судя по статусу в консоли происходит, когда же я пытаюсь скопировать туда хотя бы один файл, то всё заканчивается на Read Hublist
Код: Выделить всё
bookmark Nlink {
nick = "anykey"
hub-address = "172.16.0.2"
password = "aeknyy"
auto-connect = true
email = "some@mail.com"
connection = "10"
port = 1024
passive = false
}
shared-paths = {
"/media/virtm/download"
}
client-tag = "DCGET"
part-size = 3000000
log-level = "debug"
connection = "LAN(T3)"
description = "hah"
email = "anykey-nah@yandex.ru"
download-directory = "/media/virtm/download"
incomplete-directory = "/media/virtm/incomplete"
working-directory = "/media/virtm/dctest"
sphubd-executable-path = "/usr/local/bin/sphubd"
passive = false
slots = 7
Код: Выделить всё
opened logfile '/media/virtm/dctest/dcget.log'
Fri 28 15:00:59 [8033] (main:1230) working-directory /media/virtm/dctest
Fri 28 15:00:59 [8033] (main:1231) connecting to sphubd...
Fri 28 15:00:59 [8033] (main:1235) /usr/local/bin/sphubd: No such file or directory
Fri 28 15:00:59 [8033] (io_connect_unix:317) connecting to socket '/media/virtm/dctest/sphubd'...
Fri 28 15:00:59 [8033] (io_connect_unix:325) /media/virtm/dctest/sphubd: Connection refused
Fri 28 15:00:59 [8033] (sp_exec:587) spawning executable: /usr/local/bin/sphubd -w /media/virtm/dctest -i /media/virtm/incomplete -g /media/virtm/download -t DCGET -d debug
Fri 28 15:00:59 [8033] (sp_exec:612) forked, pid = 8034
Fri 28 15:00:59 [8033] (io_connect_unix:317) connecting to socket '/media/virtm/dctest/sphubd'...
Fri 28 15:00:59 [8033] (main:1247) sphubd is running as pid 8035
Fri 28 15:00:59 [8033] (add_shares:477) add path: /media/virtm/download
опять же если download пуст, то подключение судя по статусу в консоли происходит, когда же я пытаюсь скопировать туда хотя бы один файл, то всё заканчивается на Read Hublist
-
- проходил мимо
Re: DC++ консольный клиент
хоть бы кто чё сказал чтоли... а то я как будто просто так писал предыдущий пост
-
- проходил мимо
Re: DC++ консольный клиент
где знак вопроса в том посте?Гость писал(а):хоть бы кто чё сказал чтоли... а то я как будто просто так писал предыдущий пост
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2008-11-10 18:12:36
- Контактная информация:
Re: DC++ консольный клиент
гость, ты сам с собой беседуешь?
пользуйся Microdc ибо пока лучше для консоли нет.
пользуйся Microdc ибо пока лучше для консоли нет.
-
- проходил мимо
Re: DC++ консольный клиент
Ну так у кого то хоть что то завелось?
-
- проходил мимо
Re: DC++ консольный клиент
Про консольного DC клиента.
Занимался (и занимаюсь) такой вещью - на сервер под опенбздой поставил microdc2 для качалова файлов с локалки. Работает в скрине, очень удобно. Ищем файлы в каком-нибудь linuxdcpp, а можно и прямо в микре, потом делаем очередь на закачку, детачимся от скрина, закрываем ssh и идём по своим делам. Проблемы случились с докачкой. При обрывах соединения, или отключении пользователя, у которого качали микра бросает качалово (хорошо ещё к хабу переподцепиться сама умеет), в результате остаётся недокаченный кусок файла <имя файла>.part При попытке подцепиться к тому же пользователю и продолжить качать этот же файл ругается "File Not Available" и ни в какую не качает. Причём, такая картина наблюдалась и на опенбзде и на фрибзде. Желание посетить исходники (благо, они есть) нарастало и наконец, появилось время разбираться что же там на самом деле происходит. Сначала прорабатывалась версия каких-то архитектурных особенностей, в силу которых то ли открыть файл для append'а не получается, то ли ещё что-то. Но курение исходников показало, что механизм докачки как раз присутствует, смещение верно вычисляется и команда для докачки корректно формируется. А вот до открытия недокаченного файла даже не доходит. Ошибку шлёт удалённый клиент, когда видит смещение, отличающееся от 1 (1 - качаем сначала файла). Дальше раскопки пошли в сторону описания dc-шного протокола. Оказалось всё правильно, микра формирует команду так, как написано в документации, но современные клиенты (FlyLink, StrongDC и т.д.) почему-то с такими командами шлют куда подале. Причём, эксперимент с докачкой между двумя микрами завершился успешно, докачка состоялась. Планирую дальше проанализировать межклиентские диалоги какого-нибудь linuxdcpp, у него докачка успешно работает.
Занимался (и занимаюсь) такой вещью - на сервер под опенбздой поставил microdc2 для качалова файлов с локалки. Работает в скрине, очень удобно. Ищем файлы в каком-нибудь linuxdcpp, а можно и прямо в микре, потом делаем очередь на закачку, детачимся от скрина, закрываем ssh и идём по своим делам. Проблемы случились с докачкой. При обрывах соединения, или отключении пользователя, у которого качали микра бросает качалово (хорошо ещё к хабу переподцепиться сама умеет), в результате остаётся недокаченный кусок файла <имя файла>.part При попытке подцепиться к тому же пользователю и продолжить качать этот же файл ругается "File Not Available" и ни в какую не качает. Причём, такая картина наблюдалась и на опенбзде и на фрибзде. Желание посетить исходники (благо, они есть) нарастало и наконец, появилось время разбираться что же там на самом деле происходит. Сначала прорабатывалась версия каких-то архитектурных особенностей, в силу которых то ли открыть файл для append'а не получается, то ли ещё что-то. Но курение исходников показало, что механизм докачки как раз присутствует, смещение верно вычисляется и команда для докачки корректно формируется. А вот до открытия недокаченного файла даже не доходит. Ошибку шлёт удалённый клиент, когда видит смещение, отличающееся от 1 (1 - качаем сначала файла). Дальше раскопки пошли в сторону описания dc-шного протокола. Оказалось всё правильно, микра формирует команду так, как написано в документации, но современные клиенты (FlyLink, StrongDC и т.д.) почему-то с такими командами шлют куда подале. Причём, эксперимент с докачкой между двумя микрами завершился успешно, докачка состоялась. Планирую дальше проанализировать межклиентские диалоги какого-нибудь linuxdcpp, у него докачка успешно работает.
-
- проходил мимо
Re: DC++ консольный клиент
Вести с полей. Прозанимавшись любовью с microdc2-0.15.6 где-то с полдня, удалось обучить детектить расширение протокола ADCGet и применять одноимённую команду, при этом не забыв и старый добрый Get. Кстати, с TTH эта программина работает только на аплоад, а при подстановке имени файла в команду ADCGET качались только файллисты, а запрашиваемые файлы просто игнорировались. Стало ясно, надо внедрять TTH в эту прграмму глубже. Пока что она умеет хранить TTH в очереди даунлоада вместе с файлами и подставлять его в команду вместо имени файла, при этом современные форточные клиенты отдают нужные куски файлов, в следствие чего после долгого перерыва снова ожила докачка и сэкономила массу времени и нервов. Следующим шагом планируется обучить микру по запросу закачки по TTH находить нужных юзеров и циклически опрашивать их, пока кто-нибудь не отдаст нужный файл. Такая фича так же известна как 'search for alternates'. Ну а если совсем много дури выкурить, то можно будет подумать о многопоточном качалове одного файла с динамическим вычислением длинны сегментов для каждого источника в зависимости от скорости качки предыдущего куска, вот тогда форточные монстры уйдут курить куда подале.
PS: самое сложное с микрой - это понять как она работает, там несколько форков и каждый выполняет свою задачу, при этом они обмениваются данными между собой, видимо предыдущие авторы курили что-то забористое. Программа эта не такая простая, как может показаться, слишком много нюансов при работе в сети и все их надо предусмотреть, чуть чего забыли и получаем segfault.
PS: самое сложное с микрой - это понять как она работает, там несколько форков и каждый выполняет свою задачу, при этом они обмениваются данными между собой, видимо предыдущие авторы курили что-то забористое. Программа эта не такая простая, как может показаться, слишком много нюансов при работе в сети и все их надо предусмотреть, чуть чего забыли и получаем segfault.
- savio
- лейтенант
- Сообщения: 813
- Зарегистрирован: 2007-11-08 15:46:43
- Откуда: UA
Re: DC++ консольный клиент
установил microdc2, долго хеширует, ну да ладно. Проблема в том что после ребута сервера microdc2 начинает с нуля все заново хешировать. почему не сохраняется? и сохраняется ли вообще предыдущее хеширование у этого консольного клиента?
Помни о смерти, все суета сует....
- Lycane
- старшина
- Сообщения: 407
- Зарегистрирован: 2008-05-23 15:25:58
- Откуда: Волжский
- Контактная информация:
Re: DC++ консольный клиент
Вообще должно сохранятЬся.
Где то в ./microdc2/filelist
Где то в ./microdc2/filelist
Работа системного администратора заключается в том, чтобы по пЬяни разбиратЬ то, что написали укуреные программисты.