amule-adunanza/amuleadunanza3.11b1.patch

9183 lines
360 KiB
Diff

diff -urdpN ../aMule-2.1.3-orig/amule.desktop ./amule.desktop
--- ../aMule-2.1.3-orig/amule.desktop 2005-12-14 05:12:44.000000000 +0100
+++ ./amule.desktop 2006-06-12 18:30:05.000000000 +0200
@@ -1,7 +1,7 @@
[Desktop Entry]
Encoding=UTF-8
-Name=aMule
-Comment=aMule
+Name=aMule AdunanzA
+Comment=aMule AdunanzA per utenti Fastweb
Exec=amule
Icon=amule.xpm
Terminal=false
diff -urdpN ../aMule-2.1.3-orig/ap/amule.apspec ./ap/amule.apspec
--- ../aMule-2.1.3-orig/ap/amule.apspec 1970-01-01 01:00:00.000000000 +0100
+++ ./ap/amule.apspec 2006-06-12 19:14:40.000000000 +0200
@@ -0,0 +1,164 @@
+# -*-shell-script-*-
+
+[Meta]
+RootName: @amule.org/amule:$SOFTWAREVERSION
+DisplayName: aMule AdunanzA
+ShortName: aMuleAdu
+Maintainer: lupz <no@spam.com>
+Packager: lupz <no@spam.com>
+Summary: aMule AdunanzA e' una versione di aMule specifica per utenti Fastweb
+URL: http://www.amule.org/
+License: GNU General Public License, Version 2
+PackageVersion: 1
+SoftwareVersion: 3.11b
+AutopackageTarget: 1.0
+
+
+[Description]
+aMule AdunanzA e' una versione di aMule specifica per utenti Fastweb
+
+[Globals]
+export WXPREFIX=${HOME}/ap/WX-2.6.3-apbuild-dyn
+
+
+[BuildPrepare]
+export APBUILD_PROJECTNAME=aMuleAdu
+
+DISTRO=debian
+
+# Static-linkage and some work-arounds
+export APBUILD_RESOLVE_LIBPATH="wx_[a-z0-9_-.]+"
+
+if [ $DISTRO = 'fedora' ]; then
+# needed for fedora
+ echo "Using Fedora settings..."
+# static libs
+ export APBUILD_STATIC="bfd-2.15.94.0.2.2=${HOME}/ap/WX/lib/libbfd.a"
+ export APBUILD_STATIC="${APBUILD_STATIC} glib-2.0=${HOME}/ap/WX/lib/libglib-2.0.a"
+ export APBUILD_STATIC="${APBUILD_STATIC} iberty=${HOME}/ap/WX/lib/libiberty.a"
+
+# compat gcc
+ export APBUILD_CC=gcc32
+ export APBUILD_CXX=g++32
+else
+# needed for debian
+ echo "Using Debian settings..."
+
+# static libs
+# don't know .. :D
+
+# compat gcc
+ export APBUILD_CC=gcc-3.3
+ export APBUILD_CXX=g++-3.3
+fi
+
+env | sort -n
+
+# Point to static wx install
+WXCONFIG=${WXPREFIX}/bin/wx-config
+
+# Save a bit on filesize, while the packages are still experiemental
+
+export CFLAGS="-O2 -DAUTOPACKAGE"
+export CXXFLAGS="${CFLAGS}"
+
+# Update autoconf/automake, configure, compile and install
+# 2 to run configure and autogen.sh
+# 1 to run configure
+# 0 do nothing
+CONF=0
+DAEMONGUI=1
+USE_APBUILD=1
+DEBUG=1
+
+OPTS=" \
+ --enable-ccache \
+ --enable-webserver \
+ --enable-amulecmd \
+ --with-wx-config=${WXCONFIG} \
+ --with-wxbase-config=${WXCONFIG} \
+ "
+
+if [ $DAEMONGUI -gt 0 ]; then
+ OPTS="$OPTS \
+ --enable-amule-daemon \
+ --enable-amule-gui \
+ "
+fi
+
+if [ $DEBUG -gt 0 ]; then
+ OPTS="$OPTS \
+ --enable-debug \
+ "
+else
+ OPTS="$OPTS \
+ --disable-debug \
+ "
+fi
+
+if [ $USE_APBUILD -eq 0 ]; then
+ OPTS="$OPTS \
+ --disable-rpath \
+ "
+fi
+
+if [ $CONF -gt 0 ]; then
+
+ if [ $CONF -gt 1 ]; then
+ ./autogen.sh
+ fi
+
+ if [ $USE_APBUILD -eq 0 ]; then
+ export CC=$APBUILD_CC
+ export CXX=$APBUILD_CXX
+ ./configure $OPTS
+ export APKG_BUILD_SKIP_CONFIGURE=1
+ fi
+
+
+else
+
+ export APKG_BUILD_SKIP_CONFIGURE=1
+
+fi
+
+if [ $USE_APBUILD -eq 0 ]; then
+ prepareBuild
+else
+ prepareBuild $OPTS
+fi
+
+[BuildUnprepare]
+unprepareBuild
+
+
+[Imports]
+# Grab everything from the installation by default
+echo '*' | import
+ls ${WXPREFIX}/lib/*.so* | import lib/autopackage
+
+[Prepare]
+require @zlib.org/zlib 1.2 # Require zlib 1.2.x+
+require @gnu.org/libstdc++ 3 # Require the ABI of GCC-3.2+
+require @gtk.org/gtk 2.2 # v2.2 is required because of the systray.
+require @jig.org/libjpeg 62 # Require version 6b+
+require @gnu.org/readline 5 # Needed for amuleweb/amulecmd
+require @libpng.org/libpng 3 # Require libpng 1.2.6+
+
+
+[Install]
+installMan 1 share/man/*
+installData share/doc/aMule-2.1.3
+
+installIcon share/pixmaps/amule.xpm
+installDesktop "Network/P2P" share/applications/amule.desktop
+
+installLocale share/locale
+installData share/amule
+
+copyFiles lib/autopackage "$PREFIX/lib"
+
+installExe bin/*
+
+[Uninstall]
+uninstallFromLog
diff -urdpN ../aMule-2.1.3-orig/ap/makeclean ./ap/makeclean
--- ../aMule-2.1.3-orig/ap/makeclean 1970-01-01 01:00:00.000000000 +0100
+++ ./ap/makeclean 2006-06-14 13:47:17.000000000 +0200
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+[ -e Makefile ] && make distclean
+rm -rf unittests/{muleunit,tests}/{Makefile,.deps}
+rm -rf `find . \( -name '*~' -o -name '*.orig' -o -name '*.rej' -o -name 'core*' -o -name '*.gmo' -o -name '*.package' \) `
diff -urdpN ../aMule-2.1.3-orig/ap/readline/skeleton.1 ./ap/readline/skeleton.1
--- ../aMule-2.1.3-orig/ap/readline/skeleton.1 1970-01-01 01:00:00.000000000 +0100
+++ ./ap/readline/skeleton.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,12 @@
+[Meta]
+RootName: @gnu.org/readline
+DisplayName: readline support
+ShortName: readline
+Skeleton-Author: lupz <no@spam.com>
+Skeleton-Version: 1
+
+[Notes]
+Interface version corresponds to soname version
+
+[Test]
+INTERFACE_VERSIONS=`testForLib -i libreadline.so`
diff -urdpN ../aMule-2.1.3-orig/ap/README ./ap/README
--- ../aMule-2.1.3-orig/ap/README 1970-01-01 01:00:00.000000000 +0100
+++ ./ap/README 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,91 @@
+# Note su come creare un autopackage:
+# createvi anzitutto una dir ~/ap
+
+mkdir ~/ap
+cd ~/ap
+
+# scaricate le ultime wxWidgets
+wget http://puzzle.dl.sourceforge.net/sourceforge/wxwindows/wxWidgets-2.6.2.tar.bz2
+# patchatele a dovere!!
+
+export CC=apgcc
+export CXX=apg++
+export CFLAGS="-Os"
+export CXXFLAGS="${CFLAGS}"
+
+APBUILD_RESOLVE_LIBPATH="wx_[a-z0-9_-.]+"
+
+# per gcc 3.2 su fedora
+#export APBUILD_CC=gcc32
+#export APBUILD_CXX=g++32
+
+# per gcc 3.3 su debian NON VA
+export APBUILD_CC=gcc-3.3
+export APBUILD_CXX=g++-3.3
+
+# per gcc standard
+#export CC=$APBUILD_CC
+#export CXX=$APBUILD_CXX
+
+export APBUILD_STATIC="Xfixes X11"
+
+# le installiamo in una cartella farlocca: ~/ap/WX
+./configure --disable-debug --prefix=${HOME}/ap/WX-2.6.3-apbuild-dyn \
+ --enable-shared --disable-precomp-headers --enable-ccache \
+ --disable-compat24 --without-libtiff --disable-dialupman \
+ --disable-mshtmlhelp --disable-help --disable-html \
+ --disable-htmlhelp --disable-xrc --disable-pcx --disable-pnm \
+ --disable-icocur --without-expat
+
+make install
+
+# --disable-shared
+# scaricate i sorgenti di ogni altra libreria che amule linka statica
+# per scoprire quali sono potete confrontare la riga del linking con ldd
+# o con l'output di questo mini-script
+
+objdump -x src/amule | grep NEEDED | sed -e's#NEEDED\s*##g' | sort | uniq |
+while read a;
+do
+ (test -e "/lib/$a" && echo "/lib/$a") ||
+ (test -e "/usr/lib/$a" && echo "/usr/lib/$a") ||
+ (test -e "/usr/X11R6/lib/$a" && echo "/usr/X11R6/lib/$a") ||
+ echo $a;
+done | sort
+
+# su fedora 4 erano:
+# - /usr/lib/libglib-2.0.a
+# - /usr/lib/libXinerama.a
+# - /usr/lib/libXxf86vm.a
+# - /usr/lib/libdl.a
+# - /usr/lib/libbfd.a
+# - /usr/lib/libm.a
+# - /usr/lib/libiberty.a
+# potete anche evitare di ricompilare quelle che non hanno simboli delle GLIBC_2.3
+# quindi di quelle prima di cui si e' resa necessaria la compilazione sempre su fedora 4 sono state:
+# - /usr/lib/libbfd.a
+# - /usr/lib/libiberty.a
+# - /usr/lib/libglib-2.0.a
+# quindi i package ricompilati sono stati:
+# - binutils
+# - glib2
+# se ricompilate altre cose fatelo con le variabili di ambiente settate sopra e con --prefix=${HOME}/ap/WX
+# poi nell'apspec metteteci anche il full path delle librerie statiche da linkare in questo modo:
+# export APBUILD_STATIC="bfd-2.15.94.0.2.2=${HOME}/ap/WX/lib/libbfd.a"
+# export APBUILD_STATIC="${APBUILD_STATIC} glib-2.0=${HOME}/ap/WX/lib/libglib-2.0.a"
+# export APBUILD_STATIC="${APBUILD_STATIC} iberty=${HOME}/ap/WX/lib/libiberty.a"
+# per le wx non serve in quanto ci pensa wx-config da solo
+#
+# Adesso potete finalmente:
+# 1) scaricare amule
+# 2) decomprimerlo
+# 3) andare nella dir di amule
+# 4) patcharlo con l'ultima patch (che contiene sto README quindi magari gia' lo avevate fatto :P)
+# 5) e solo ora dare il comando:
+
+makeinstaller ap/amule.apspec
+
+# Il package compare nella directory dove state
+#
+# saluti,
+# lupz
diff -urdpN ../aMule-2.1.3-orig/config.guess ./config.guess
--- ../aMule-2.1.3-orig/config.guess 2006-06-11 17:09:04.000000000 +0200
+++ ./config.guess 2006-06-12 18:30:05.000000000 +0200
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2006-02-23'
+timestamp='2005-08-03'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -106,7 +106,7 @@ set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -206,9 +206,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
- *:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
macppc:MirBSD:*:*)
echo powerppc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
@@ -767,12 +764,7 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
@@ -780,9 +772,6 @@ EOF
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
- i*:MSYS_NT-*:*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
@@ -790,11 +779,8 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- x86:Interix*:[345]*)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- EM64T:Interix*:[345]*)
- echo x86_64-unknown-interix${UNAME_RELEASE}
+ x86:Interix*:[34]*)
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
exit ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
@@ -865,11 +851,7 @@ EOF
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
mips64:Linux:*:*)
@@ -888,11 +870,7 @@ EOF
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
or32:Linux:*:*)
@@ -941,9 +919,6 @@ EOF
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
- exit ;;
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
exit ;;
@@ -989,7 +964,7 @@ EOF
LIBC=gnulibc1
# endif
#else
- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
+ #ifdef __INTEL_COMPILER
LIBC=gnu
#else
LIBC=gnuaout
@@ -999,11 +974,7 @@ EOF
LIBC=dietlibc
#endif
EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^LIBC/{
- s: ::g
- p
- }'`"
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
test x"${LIBC}" != x && {
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit
@@ -1214,6 +1185,7 @@ EOF
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
+ *86) UNAME_PROCESSOR=i686 ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1292,9 +1264,6 @@ EOF
i*86:skyos:*:*)
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
exit ;;
- i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
diff -urdpN ../aMule-2.1.3-orig/config.sub ./config.sub
--- ../aMule-2.1.3-orig/config.sub 2006-06-11 17:09:04.000000000 +0200
+++ ./config.sub 2006-06-12 18:30:05.000000000 +0200
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2006-02-23'
+timestamp='2005-07-08'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -119,9 +119,8 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -172,10 +171,6 @@ case $os in
-hiux*)
os=-hiuxwe2
;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -192,10 +187,6 @@ case $os in
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -248,7 +239,7 @@ case $basic_machine in
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
- | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -266,9 +257,8 @@ case $basic_machine in
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
- | mt \
+ | ms1 \
| msp430 \
- | nios | nios2 \
| ns16k | ns32k \
| or32 \
| pdp10 | pdp11 | pj | pjl \
@@ -296,9 +286,6 @@ case $basic_machine in
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
- ms1)
- basic_machine=mt-unknown
- ;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
@@ -349,9 +336,8 @@ case $basic_machine in
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
- | mt-* \
+ | ms1-* \
| msp430-* \
- | nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
@@ -710,9 +696,6 @@ case $basic_machine in
basic_machine=i386-pc
os=-msdos
;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
mvs)
basic_machine=i370-ibm
os=-mvs
@@ -820,12 +803,6 @@ case $basic_machine in
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
@@ -882,10 +859,6 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
- basic_machine=i386-pc
- os=-rdos
- ;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
@@ -1201,23 +1174,21 @@ case $os in
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos*)
+ | -skyos* | -haiku*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
diff -urdpN ../aMule-2.1.3-orig/debian/amule-adunanza.dirs ./debian/amule-adunanza.dirs
--- ../aMule-2.1.3-orig/debian/amule-adunanza.dirs 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-adunanza.dirs 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,5 @@
+usr/bin
+usr/sbin
+usr/share
+usr/share/pixmaps
+usr/share/applications
diff -urdpN ../aMule-2.1.3-orig/debian/amule-adunanza.docs ./debian/amule-adunanza.docs
--- ../aMule-2.1.3-orig/debian/amule-adunanza.docs 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-adunanza.docs 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,3 @@
+docs/README
+docs/amulesig.txt
+docs/ED2K-Links.HOWTO
diff -urdpN ../aMule-2.1.3-orig/debian/amule-adunanza.menu ./debian/amule-adunanza.menu
--- ../aMule-2.1.3-orig/debian/amule-adunanza.menu 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-adunanza.menu 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,7 @@
+?package(amule-adunanza):needs="X11" section="Apps/Net"\
+ title="amule" command="/usr/bin/amule"\
+ icon="/usr/share/pixmaps/amule.xpm"
+
+?package(amule-adunanza):needs="X11" section="Apps/Net"\
+ title="aMule webserver control" command="/usr/bin/amulewebDLG"\
+ icon="/usr/share/pixmaps/amule.xpm"
diff -urdpN ../aMule-2.1.3-orig/debian/amule-adunanza.postinst ./debian/amule-adunanza.postinst
--- ../aMule-2.1.3-orig/debian/amule-adunanza.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-adunanza.postinst 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+if [ "$1" = "configure" ] && [ -x /usr/bin/update-menus ]; then update-menus ; fi
+
+exit 0
diff -urdpN ../aMule-2.1.3-orig/debian/amule-adunanza.postrm ./debian/amule-adunanza.postrm
--- ../aMule-2.1.3-orig/debian/amule-adunanza.postrm 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-adunanza.postrm 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = remove ]; then
+ dpkg-divert --package amule-adunanza --rename --remove /usr/bin/ed2k
+fi
+
+
+#DEBHELPER#
diff -urdpN ../aMule-2.1.3-orig/debian/amule.dirs ./debian/amule.dirs
--- ../aMule-2.1.3-orig/debian/amule.dirs 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.dirs 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,5 @@
+usr/bin
+usr/sbin
+usr/share
+usr/share/pixmaps
+usr/share/applications
diff -urdpN ../aMule-2.1.3-orig/debian/amule.docs ./debian/amule.docs
--- ../aMule-2.1.3-orig/debian/amule.docs 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.docs 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,3 @@
+docs/README
+docs/amulesig.txt
+docs/ED2K-Links.HOWTO
diff -urdpN ../aMule-2.1.3-orig/debian/amule.manpages ./debian/amule.manpages
--- ../aMule-2.1.3-orig/debian/amule.manpages 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.manpages 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,5 @@
+debian/mans/amule.1
+debian/mans/ed2k.wrapper.fr.1
+debian/mans/ed2k.wrapper.1
+debian/mans/ed2k.amule.fr.1
+debian/mans/ed2k.amule.1
diff -urdpN ../aMule-2.1.3-orig/debian/amule.menu ./debian/amule.menu
--- ../aMule-2.1.3-orig/debian/amule.menu 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.menu 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,7 @@
+?package(amule):needs="X11" section="Apps/Net"\
+ title="amule" command="/usr/bin/amule"\
+ icon="/usr/share/pixmaps/amule.xpm"
+
+?package(amule):needs="X11" section="Apps/Net"\
+ title="aMule webserver control" command="/usr/bin/amulewebDLG"\
+ icon="/usr/share/pixmaps/amule.xpm"
diff -urdpN ../aMule-2.1.3-orig/debian/amule.postinst ./debian/amule.postinst
--- ../aMule-2.1.3-orig/debian/amule.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.postinst 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+if [ "$1" = "configure" ] && [ -x /usr/bin/update-menus ]; then update-menus ; fi
+
+exit 0
diff -urdpN ../aMule-2.1.3-orig/debian/amule.postrm ./debian/amule.postrm
--- ../aMule-2.1.3-orig/debian/amule.postrm 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.postrm 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = remove ]; then
+ dpkg-divert --package amule --rename --remove /usr/bin/ed2k
+fi
+
+
+#DEBHELPER#
diff -urdpN ../aMule-2.1.3-orig/debian/amule.preinst ./debian/amule.preinst
--- ../aMule-2.1.3-orig/debian/amule.preinst 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.preinst 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "upgrade" = "$1" ]; then
+ dpkg-divert --remove --rename /usr/bin/ed2k > /dev/null &>/dev/null
+fi
+
+if [ "install" = "$1" ] || [ "upgrade" = "$1" ]; then
+ dpkg-divert --package amule --add --rename \
+ --divert /usr/bin/ed2k.xmule /usr/bin/ed2k
+fi
+
+#DEBHELPER#
diff -urdpN ../aMule-2.1.3-orig/debian/amule.README.Debian ./debian/amule.README.Debian
--- ../aMule-2.1.3-orig/debian/amule.README.Debian 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule.README.Debian 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,41 @@
+amule for Debian
+----------------
+
+STANDING AMULE ?
+----------------
+With some Window Manager, aMule runs, but the GUI seems to be buggy.
+So, It's not a problem from the package, you just have to uncheck
+the option : "minimise icon to system tray" in your aMule preferences.
+
+
+AMULE AND XMULE PACKAGE
+-----------------
+Before the 1.2.X version, the package of amule was in conflicts with
+the xmule package. The bug comes from the /usr/bin/ed2k, which was
+used by the twice packages.
+
+I wrotte a wrapper, which see if amule or xmule is running and
+invoke the right binary. So, the binary ed2k from amule was
+renamed as ed2k.amule and this from xmule was renamed ed2k.xmule.
+According to Debian, I use a diversion to rename this file :-)
+
+
+
+CONFFILES IN YOUR HOME
+-----------------
+aMule is a fork of xMule, it uses the same files (~./aMule, ...).
+
+/!\ BE CAREFUL /!\
+If you are an older user of xMule, aMule move your files of the
+~/.xMule directory to the ~/.aMule dir.
+
+
+
+TOO HIGH CPU USAGE
+------------------
+If you have a high CPU usage with amule (you can see that when you
+run 'top'), you need maybe to compile a new kernel. See this topic :
+http://xmule.org/forums/index.php?showtopic=1030
+
+
+ -- Julien Delange <julien@gunnm.org>, Sat, 27 Sep 2003 00:11:07 +0200
diff -urdpN ../aMule-2.1.3-orig/debian/amule-utils.dirs ./debian/amule-utils.dirs
--- ../aMule-2.1.3-orig/debian/amule-utils.dirs 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-utils.dirs 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,5 @@
+usr/bin
+usr/share
+usr/share/pixmaps
+usr/share/applications
+usr/share/cas/
diff -urdpN ../aMule-2.1.3-orig/debian/amule-utils.manpages ./debian/amule-utils.manpages
--- ../aMule-2.1.3-orig/debian/amule-utils.manpages 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-utils.manpages 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,4 @@
+debian/mans/amulecmdDLG.fr.1
+debian/mans/amulecmdDLG.1
+debian/mans/amulecmd.1
+debian/mans/amulecmd.fr.1
diff -urdpN ../aMule-2.1.3-orig/debian/amule-utils.menu ./debian/amule-utils.menu
--- ../aMule-2.1.3-orig/debian/amule-utils.menu 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-utils.menu 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,7 @@
+?package(amule-utils):needs="X11" section="Apps/Net"\
+ title="aMule Stats" command="/usr/bin/wxcas"\
+ icon="/usr/share/pixmaps/amule.xpm"
+
+?package(amule):needs="X11" section="Apps/Net"\
+ title="aMule command" command="/usr/bin/amulecmdDLG"\
+ icon="/usr/share/pixmaps/amule.xpm"
diff -urdpN ../aMule-2.1.3-orig/debian/amule-utils.README.Debian ./debian/amule-utils.README.Debian
--- ../aMule-2.1.3-orig/debian/amule-utils.README.Debian 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/amule-utils.README.Debian 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,4 @@
+C AMULE STATS (CAS)
+
+CAS is a little programme, which replace astats.
+The generation of webpage is not implemented yet.
diff -urdpN ../aMule-2.1.3-orig/debian/changelog ./debian/changelog
--- ../aMule-2.1.3-orig/debian/changelog 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/changelog 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,356 @@
+amule-adunanza (2.0.3+cvs20050727-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.3+cvs20050727
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Wed, 27 Jul 2005 18:25:00 +0200
+
+amule-adunanza (2.0.3+cvs20050710-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.3+cvs20050710
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Sun, 10 Jul 2005 21:00:23 +0200
+
+amule-adunanza (2.0.3+cvs20050709-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.3+cvs20050709
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Sat, 9 Jul 2005 10:38:52 +0200
+
+amule-adunanza (2.0.3+cvs20050705-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.3+cvs20050705
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Tue, 5 Jul 2005 18:16:41 +0200
+
+amule-adunanza (2.0.3+cvs20050620-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.3+cvs20050620
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Mon, 20 Jun 2005 19:10:30 +0200
+
+amule-adunanza (2.0.2+cvs20050612-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.2+cvs20050612
+ * Cleanup in adu code
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Sun, 12 Jun 2005 13:18:47 +0200
+
+amule-adunanza (2.0.2-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.2
+ * Now show the number of queued adunanza clients in transfer window (amule)
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Wed, 8 Jun 2005 21:31:00 +0200
+
+amule-adunanza (2.0.1-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.1
+ * Fixed debian/rules script
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Thu, 19 May 2005 08:54:07 +0200
+
+amule-adunanza (2.0.0-3) unstable; urgency=low
+
+ * Fixed compilation errors for amuled and amulegui
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Tue, 10 May 2005 01:09:02 +0200
+
+amule-adunanza (2.0.0-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Tue, 3 May 2005 18:56:47 +0200
+
+amule-adunanza (2.0.0rc8+cvs20050415-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050415
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 15 Apr 2005 19:16:17 +0200
+
+amule-adunanza (2.0.0rc8+cvs20050405-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050405
+
+ -- Stefano Picerno <stefanopp@libero.it> Tue, 5 Apr 2005 22:56:32 +0200
+
+amule-adunanza (2.0.0rc8+cvs20050404-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050404
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 4 Apr 2005 19:19:10 +0200
+
+amule-adunanza (2.0.0rc8+cvs20050329-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050329
+
+ -- Stefano Picerno <stefanopp@libero.it> Tue, 29 Mar 2005 18:19:50 +0200
+
+amule-adunanza (2.0.0rc8+cvs20050327-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050327
+ * Removed references to the DWORD type, changed to uint32
+
+ -- Stefano Picerno <stefanopp@libero.it> Sun, 27 Mar 2005 17:03:21 +0200
+
+amule-adunanza (2.0.0rc8+cvs20050326-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050326
+
+ -- Stefano Picerno <stefanopp@libero.it> Sat, 26 Mar 2005 17:54:29 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050325-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050325
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 25 Mar 2005 15:18:20 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050324-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050324
+ * Removed some code from PartFile.cpp (ie: limit<50 stuff)
+
+ -- Stefano Picerno <stefano.picerno@gmail.com> Thu, 24 Mar 2005 12:18:41 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050323-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050323
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 23 Mar 2005 15:04:58 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050321-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050321
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 21 Mar 2005 11:11:07 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050318-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050318
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 18 Mar 2005 13:43:36 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050317-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050317
+
+ -- Stefano Picerno <stefanopp@libero.it> Thu, 17 Mar 2005 11:23:51 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050316-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050316
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 16 Mar 2005 20:36:38 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050315-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050315
+
+ -- Stefano Picerno <stefanopp@libero.it> Tue, 15 Mar 2005 08:27:37 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050314-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050314
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 14 Mar 2005 19:30:10 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050312-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050312
+
+ -- Stefano Picerno <stefanopp@libero.it> Sat, 12 Mar 2005 10:39:09 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050309-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050309
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 9 Mar 2005 13:36:43 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050308-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050308
+
+ -- Stefano Picerno <stefanopp@libero.it> Tue, 8 Mar 2005 11:08:26 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050307-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050307
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 7 Mar 2005 13:26:30 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050306-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050306
+ * Added support for AdunanzA categories during search
+
+ -- Stefano Picerno <stefanopp@libero.it> Sun, 6 Mar 2005 18:32:03 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050305-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050305
+
+ -- Stefano Picerno <stefanopp@libero.it> Sun, 6 Mar 2005 11:33:10 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050303-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050303
+
+ -- Stefano Picerno <stefanopp@libero.it> Thu, 3 Mar 2005 10:09:30 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050302-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050302
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 2 Mar 2005 19:15:39 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050301-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050301
+
+ -- Stefano Picerno <stefanopp@libero.it> Tue, 1 Mar 2005 16:27:09 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050216-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050216
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 16 Feb 2005 13:47:48 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050214-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050214
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 14 Feb 2005 11:36:29 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050208-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050208
+
+ -- Stefano Picerno <stefanopp@libero.it> Tue, 8 Feb 2005 10:13:43 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050131-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050131
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 31 Jan 2005 18:28:38 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050124-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050124
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 24 Jan 2005 18:02:31 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050110-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050110
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 10 Jan 2005 11:59:12 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050107-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050107
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 7 Jan 2005 14:20:41 +0100
+
+amule-adunanza (2.0.0rc8+cvs20050106-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20050106
+
+ -- Stefano Picerno <stefanopp@libero.it> Thu, 6 Jan 2005 12:32:40 +0100
+
+amule-adunanza (2.0.0rc8+cvs20041230-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8+cvs20041230
+
+ -- Stefano Picerno <stefanopp@libero.it> Thu, 30 Dec 2004 21:09:31 +0100
+
+amule-adunanza (2.0.0rc8-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc8
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 22 Dec 2004 10:09:56 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041217-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc7+cvs20041217
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 17 Dec 2004 15:39:32 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041213-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041209
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 13 Dec 2004 12:05:42 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041209-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041209
+
+ -- Stefano Picerno <stefanopp@libero.it> Thu, 9 Dec 2004 12:13:04 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041201-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041201
+ * Fixed a bug in UploadClient.cpp:607
+
+ -- Stefano Picerno <stefanopp@libero.it> Thu, 2 Dec 2004 00:52:52 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041118-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041118
+ * Updated debian directory from official debian package amule (1.2.6+rc7-1)
+
+ -- Stefano Picerno <stefanopp@libero.it> Thu, 18 Nov 2004 14:41:40 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041106-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041106
+
+ -- Stefano Picerno <stefanopp@libero.it> Sat, 6 Nov 2004 11:53:59 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041105-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041105
+ * Enabled ccache support in configure script
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 5 Nov 2004 17:50:14 +0100
+
+amule-adunanza (2.0.0rc7+cvs20041028-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041028
+ * Forced TransferFullChunks to true (see Preferences.h)
+ * Fixed client icons in upload / download / queue list
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 29 Oct 2004 13:59:09 +0200
+
+amule-adunanza (2.0.0rc7-2) unstable; urgency=low
+
+ * Fixed a bug in AdunanzA.cpp, 83.x.x.x was not recognized a Fastweb IP
+
+ -- Stefano Picerno <stefanopp@libero.it> Fri, 22 Oct 2004 18:31:12 +0200
+
+amule-adunanza (2.0.0rc7-1) unstable; urgency=low
+
+ * Updated upstream codebase to 2.0.0rc7 tarball
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 20 Oct 2004 18:20:07 +0200
+
+amule-adunanza (2.0.0rc6+cvs20041017-1) unstable; urgency=low
+
+ * Updated upstream codebase to cvs snapshot 20041017
+ * Fixed some tracing calls
+
+ -- Stefano Picerno <stefanopp@libero.it> Mon, 18 Oct 2004 14:38:22 +0200
+
+amule-adunanza (2.0.0rc6+cvs20041009-2) unstable; urgency=low
+
+ * Removed direct access to isAduSoftware ( GetIsAduSoftware and SetIsAduSoftware)
+ * Added Icons for Adunanza/Fastweb client both in upload and download list pane
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 13 Oct 2004 15:19:34 +0200
+
+amule-adunanza (2.0.0rc6+cvs20041009-1) unstable; urgency=low
+
+ * Initial Release.
+ * Merged network code for AdnzA 3.2 (only ed2k, KAD support is still missing in amule)
+
+ -- Stefano Picerno <stefanopp@libero.it> Wed, 13 Oct 2004 15:17:08 +0200
+
diff -urdpN ../aMule-2.1.3-orig/debian/compat ./debian/compat
--- ../aMule-2.1.3-orig/debian/compat 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/compat 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1 @@
+4
diff -urdpN ../aMule-2.1.3-orig/debian/control ./debian/control
--- ../aMule-2.1.3-orig/debian/control 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/control 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,23 @@
+Source: amule-adunanza
+Section: x11
+Priority: optional
+Maintainer: Stefano Picerno <stefano.picerno@gmail.com>
+Build-Depends: debhelper(>= 4.0.0), libglib1.2-dev, libgtk2.0-dev, zlib1g-dev, libwxgtk2.5-dev, libcurl2-dev, libgd2-xpm-dev, automake1.7 | automake1.8 | automake1.9
+Standards-Version: 3.6.1.0
+
+Package: amule-adunanza
+Architecture: any
+Replaces: amule, amule-utils
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: aNOTHER eMule P2P Client - AdunanzA mod
+ aMule stand for another eMule file-sharing program, it is also
+ another fork of the xMule project. It connects to eDonkey2000
+ network, supports Linux, *BSD and MacOS X platforms, and has
+ a new vision of the GUI.
+ .
+ Contains AdunanzA 3.2 mod ( Fastweb )
+ .
+ Debian amule-utils package is contained in amule-adunanza
+
+
+
diff -urdpN ../aMule-2.1.3-orig/debian/copyright ./debian/copyright
--- ../aMule-2.1.3-orig/debian/copyright 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/copyright 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,14 @@
+This package was debianized by Julien Delange <julien@gunnm.org> on
+Sat, 27 Sep 2003 00:11:07 +0200.
+
+It was downloaded from http://sourceforge.net/project/showfiles.php?group_id=88225
+
+Upstream Author: Stephane COLIN <bigbob@meloo.com>
+
+Copyright:
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 dated June, 1991.
+
+ See /usr/share/common-licenses/GPL.
diff -urdpN ../aMule-2.1.3-orig/debian/dirs ./debian/dirs
--- ../aMule-2.1.3-orig/debian/dirs 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/dirs 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,2 @@
+usr/bin
+usr/sbin
diff -urdpN ../aMule-2.1.3-orig/debian/manpage.1.ex ./debian/manpage.1.ex
--- ../aMule-2.1.3-orig/debian/manpage.1.ex 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/manpage.1.ex 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,59 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH AMULE-ADUNANZA SECTION "October 10, 2004"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+amule-adunanza \- program to do something
+.SH SYNOPSIS
+.B amule-adunanza
+.RI [ options ] " files" ...
+.br
+.B bar
+.RI [ options ] " files" ...
+.SH DESCRIPTION
+This manual page documents briefly the
+.B amule-adunanza
+and
+.B bar
+commands.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBamule-adunanza\fP is a program that...
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+For a complete description, see the Info files.
+.TP
+.B \-h, \-\-help
+Show summary of options.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.SH SEE ALSO
+.BR bar (1),
+.BR baz (1).
+.br
+The programs are documented fully by
+.IR "The Rise and Fall of a Fooish Bar" ,
+available via the Info system.
+.SH AUTHOR
+amule-adunanza was written by <upstream author>.
+.PP
+This manual page was written by Stefano Picerno <stefanopp@libero.it>,
+for the Debian project (but may be used by others).
diff -urdpN ../aMule-2.1.3-orig/debian/manpage.sgml.ex ./debian/manpage.sgml.ex
--- ../aMule-2.1.3-orig/debian/manpage.sgml.ex 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/manpage.sgml.ex 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,156 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+ <!ENTITY dhsurname "<surname>SURNAME</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>October 10, 2004</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
+ <!ENTITY dhemail "<email>stefanopp@libero.it</email>">
+ <!ENTITY dhusername "Stefano Picerno">
+ <!ENTITY dhucpackage "<refentrytitle>AMULE-ADUNANZA</refentrytitle>">
+ <!ENTITY dhpackage "amule-adunanza">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+ <arg><option>--example <replaceable>that</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <application>Info</application> files.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>bar (1), baz (1).</para>
+
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the
+ <application>Info</application> system.</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
diff -urdpN ../aMule-2.1.3-orig/debian/manpage.xml.ex ./debian/manpage.xml.ex
--- ../aMule-2.1.3-orig/debian/manpage.xml.ex 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/manpage.xml.ex 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+ <!ENTITY dhsurname "<surname>SURNAME</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>October 10, 2004</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
+ <!ENTITY dhemail "<email>stefanopp@libero.it</email>">
+ <!ENTITY dhusername "Stefano Picerno">
+ <!ENTITY dhucpackage "<refentrytitle>AMULE-ADUNANZA</refentrytitle>">
+ <!ENTITY dhpackage "amule-adunanza">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+ <arg><option>--example <replaceable>that</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <application>Info</application> files.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>bar (1), baz (1).</para>
+
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the
+ <application>Info</application> system.</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
diff -urdpN ../aMule-2.1.3-orig/debian/mans/amule.1 ./debian/mans/amule.1
--- ../aMule-2.1.3-orig/debian/mans/amule.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/amule.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,17 @@
+.TH AMULE 1
+.SH NAME
+amule \- aNother Peer to Peer client
+.SH SYNOPSIS
+.B amule
+.SH "DESCRIPTION"
+.B amule
+is a client, which can connect to emule servers.
+.PP
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+
+.SH "SEE ALSO"
+You can see the Changelog file and README.Debian in the /usr/share/doc directory
+.SH AUTHOR
+aMule was written by Stephane Colin <bigbog@tiscali.fr>
+This manpage was written by Julien Delange for Debian <julien AT gunnm DOT org>
diff -urdpN ../aMule-2.1.3-orig/debian/mans/amulecmd.1 ./debian/mans/amulecmd.1
--- ../aMule-2.1.3-orig/debian/mans/amulecmd.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/amulecmd.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,18 @@
+.TH AMULECMD 1
+.SH NAME
+amulecmd \- Text-based program to control amule
+.SH SYNOPSIS
+.B amulecmd
+.SH "DESCRIPTION"
+.B amulecmd
+is a texte based client to control amule. Useful help can
+be obtained when you launch the program.
+.PP
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+
+.SH "SEE ALSO"
+You can see the Changelog file and README.Debian in the /usr/share/doc directory
+.SH AUTHOR
+aMule was written by Stephane Colin <bigbog@tiscali.fr>
+This manpage was written by Julien Delange for Debian <julien AT gunnm DOT org>
diff -urdpN ../aMule-2.1.3-orig/debian/mans/amulecmdDLG.1 ./debian/mans/amulecmdDLG.1
--- ../aMule-2.1.3-orig/debian/mans/amulecmdDLG.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/amulecmdDLG.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,19 @@
+.TH AMULECMDDLG 1
+.SH NAME
+amulecmdDLG \- aMule control program with GUI
+.SH SYNOPSIS
+.B amulecmddlg
+.SH "DESCRIPTION"
+.B amulecmdDLG
+is a client program, and can be connected on amule client. You
+can manage your amule program with it. It provides the same functionnality
+than amulecmd, but it contains a GUI interface, written in GTK+.
+.PP
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+
+.SH "SEE ALSO"
+You can see the Changelog file and README.Debian in the /usr/share/doc directory
+.SH AUTHOR
+aMule was written by Stephane Colin <bigbog@tiscali.fr>
+This manpage was written by Julien Delange for Debian <julien AT gunnm DOT org>
diff -urdpN ../aMule-2.1.3-orig/debian/mans/amulecmdDLG.fr.1 ./debian/mans/amulecmdDLG.fr.1
--- ../aMule-2.1.3-orig/debian/mans/amulecmdDLG.fr.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/amulecmdDLG.fr.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,18 @@
+.TH AMULECMDDLG 1
+.SH NAME
+amulecmdDLG \- Controle de aMule a travers une interface GTK
+.SH SYNOPSIS
+.B amulecmdDLG
+.SH "DESCRIPTION"
+.B amulecmdDLG
+Vous permet de faire les mêmes choses que amulecmd, mis à part que ce programme
+est en GTK+. Il est donc doté d'une interface graphique.
+.PP
+Cette page de manuel a été écrite pour Debian, car le logiciel original n'en avait pas.
+
+.SH "VOIR AUSSI"
+Vous pouvez consultez les fichiers relatifs à ce programme dans le répertoire /usr/share/doc/amule/
+
+.SH "AUTEUR"
+aMule a été écrit par Stéphane Colin <bigbog AT tiscali DOT fr>, ainsi que de nombreux contributeurs.
+Cette page de manuel a été écrite par Julien Delange <julien AT gunnm DOT org>. Merci de me contacter pour tout problème.
\ No newline at end of file
diff -urdpN ../aMule-2.1.3-orig/debian/mans/amulecmd.fr.1 ./debian/mans/amulecmd.fr.1
--- ../aMule-2.1.3-orig/debian/mans/amulecmd.fr.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/amulecmd.fr.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,17 @@
+.TH AMULECMD 1
+.SH NAME
+amulecmd \- Control du programme amule à travers une interface en mode texte.
+.SH SYNOPSIS
+.B amulecmd
+.SH "DESCRIPTION"
+.B amulecmd
+est un programme qui vous permet de commander le logiciel amule en ligne de commande.
+.PP
+Cette page de manuel a été écrite pour Debian, car le logiciel original n'en avait pas.
+
+.SH "VOIR AUSSI"
+Vous pouvez consultez les fichiers relatifs à ce programme dans le répertoire /usr/share/doc/amule/
+
+.SH "AUTEUR"
+aMule a été écrit par Stéphane Colin <bigbog AT tiscali DOT fr>, ainsi que de nombreux contributeurs.
+Cette page de manuel a été écrite par Julien Delange <julien AT gunnm DOT org>. Merci de me contacter pour tout problème.
\ No newline at end of file
diff -urdpN ../aMule-2.1.3-orig/debian/mans/amule.fr.1 ./debian/mans/amule.fr.1
--- ../aMule-2.1.3-orig/debian/mans/amule.fr.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/amule.fr.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,17 @@
+.TH AMULE 1
+.SH NAME
+amule \- aNother Peer to Peer client
+.SH SYNOPSIS
+.B amule
+.SH "DESCRIPTION"
+.B amule
+est un client Peer to Peer qui permet de se connecter au réseau eDonkey (eMule, ...)
+.PP
+Cette page de manuel a été écrite pour Debian, car le logiciel original n'en avait pas.
+
+.SH "VOIR AUSSI"
+Vous pouvez consultez les fichiers relatifs à ce programme dans le répertoire /usr/share/doc/amule/
+
+.SH "AUTEUR"
+aMule a été écrit par Stéphane Colin <bigbog AT tiscali DOT fr>, ainsi que de nombreux contributeurs.
+Cette page de manuel a été écrite par Julien Delange <julien AT gunnm DOT org>. Merci de me contacter pour tout problème.
\ No newline at end of file
diff -urdpN ../aMule-2.1.3-orig/debian/mans/ed2k.amule.1 ./debian/mans/ed2k.amule.1
--- ../aMule-2.1.3-orig/debian/mans/ed2k.amule.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/ed2k.amule.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,15 @@
+.TH ED2K.AMULE 1
+.SH NAME
+ed2k \- binary used by aMule program.
+.SH SYNOPSIS
+.B ed2k.amule
+.SH "DESCRIPTION"
+.B ed2k
+is a binary used by the aMule program. It is used to get ed2k link.
+.PP
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+
+.SH AUTHOR
+ed2k was written by the aMule team, see http://amule.sourceforge.net
+This manpage was written by Julien Delange for Debian <julien AT gunnm DOT org>
diff -urdpN ../aMule-2.1.3-orig/debian/mans/ed2k.amule.fr.1 ./debian/mans/ed2k.amule.fr.1
--- ../aMule-2.1.3-orig/debian/mans/ed2k.amule.fr.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/ed2k.amule.fr.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,14 @@
+.TH ED2K.AMULE 1
+.SH NAME
+ed2k \- binaire utilisé par le programme amule
+.SH SYNOPSIS
+.B ed2k.amule
+.SH "DESCRIPTION"
+.B ed2k
+est un binaire utilisé par le programme amule. Il sert à passer les URL de type ed2k:// dans le programme amule.
+.PP
+Cette page de manuel a été écrite pour Debian, car le logiciel original n'en avait pas.
+
+.SH "AUTEUR"
+ed2k a été écrit par la amule team (site : http://amule.sourceforge.net)
+Cette page de manuel a été écrite par Julien Delange <julien AT gunnm DOT org>. Merci de me contacter pour tout problème.
\ No newline at end of file
diff -urdpN ../aMule-2.1.3-orig/debian/mans/ed2k.wrapper.1 ./debian/mans/ed2k.wrapper.1
--- ../aMule-2.1.3-orig/debian/mans/ed2k.wrapper.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/ed2k.wrapper.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,15 @@
+.TH ED2K 1
+.SH NAME
+ed2k \- wrapper for {x|a}Mule
+.SH SYNOPSIS
+.B ed2k
+.SH "DESCRIPTION"
+.B ed2k
+is a binary used by to invoke ed2k.amule or ed2k.xmule. Its a specific wrapper for Debian.
+.PP
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+
+.SH AUTHOR
+ed2k and this manpage was written by Julien Delange <julien AT gunnm DOT org> for Debian.
+
diff -urdpN ../aMule-2.1.3-orig/debian/mans/ed2k.wrapper.fr.1 ./debian/mans/ed2k.wrapper.fr.1
--- ../aMule-2.1.3-orig/debian/mans/ed2k.wrapper.fr.1 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/mans/ed2k.wrapper.fr.1 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,13 @@
+.TH ED2K 1
+.SH NAME
+ed2k \- wrapper pour aMule et xMule
+.SH SYNOPSIS
+.B ed2k
+.SH "DESCRIPTION"
+.B ed2k
+est un wrapper utilisé pour passer les URL ed2k:// à ed2k.amule ou ed2k.xmule. Ce programme est spécifique à Debian.
+.PP
+Cette page de manuel a été écrite pour Debian, car le logiciel original n'en avait pas.
+
+.SH "AUTEUR"
+ed2k et cette page de manuel ont été écrit par Julien Delange <julien AT gunnm DOT org> pour Debian.
\ No newline at end of file
diff -urdpN ../aMule-2.1.3-orig/debian/menu ./debian/menu
--- ../aMule-2.1.3-orig/debian/menu 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/menu 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,2 @@
+?package(amule-adunanza):needs="X11|text|vc|wm" section="Apps/Tools"\
+ title="amule-adunanza" command="/usr/bin/amule-adunanza"
diff -urdpN ../aMule-2.1.3-orig/debian/README.Debian ./debian/README.Debian
--- ../aMule-2.1.3-orig/debian/README.Debian 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/README.Debian 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,7 @@
+amule-adunanza for Debian
+-------------------------
+
+The Adunanza Mod used is the version 3.2. http://www.adunanza.net
+Kademlia network is not yet supported by amule.
+
+ -- Stefano Picerno <stefanopp@libero.it>, Sun, 10 Oct 2004 11:36:17 +0200
diff -urdpN ../aMule-2.1.3-orig/debian/rules ./debian/rules
--- ../aMule-2.1.3-orig/debian/rules 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/rules 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,148 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g -D__USE_KAD__
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+endif
+
+config.status: autogen.sh
+ dh_testdir
+ #
+ #
+ ./autogen.sh
+
+ # Add here commands to configure the package.
+ CFLAGS="$(CFLAGS)" CXXFLAGS="-Os" ./configure --enable-kad-compile --enable-amulecmd --enable-optimize --enable-gsocket --enable-alc --enable-alcc --enable-amule-daemon --enable-amulecmdgui --disable-debug --enable-systray --enable-cas --enable-wxcas --enable-ccache --enable-webserver --enable-webservergui --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
+
+
+build: build-stamp
+
+build-stamp: config.status
+ dh_testdir -a
+
+ # Add here commands to compile the package.
+ $(MAKE) -j4 CCACHE_PREFIX=distcc
+ #/usr/bin/docbook-to-man debian/amule.sgml > amule.1
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) distclean
+ rm -f po/*.gmo
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+ cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+ cp -f /usr/share/misc/config.guess config.guess
+endif
+
+
+ dh_clean -a
+
+install: build
+ dh_testdir -a
+ dh_testroot -a
+ dh_clean -a -k
+ dh_installdirs -a -k -s
+
+ # Add here commands to install the package into debian/amule.
+ echo Cur dir is: $(CURDIR)
+ $(MAKE) install DESTDIR=$(CURDIR)/debian/amule-adunanza
+
+ #exit
+ #aMule part
+ #mv $(CURDIR)/debian/tmp/usr/bin/ed2k $(CURDIR)/debian/amule/usr/bin/ed2k.amule
+ #mv $(CURDIR)/debian/tmp/usr/bin/amuleweb $(CURDIR)/debian/amule/usr/bin/ || true
+ #mv $(CURDIR)/debian/tmp/usr/share/amuleweb $(CURDIR)/debian/amule/usr/share/ || true
+ #mv $(CURDIR)/debian/tmp/usr/bin/amulewebDLG $(CURDIR)/debian/amule/usr/bin/
+ #mv $(CURDIR)/debian/tmp/usr/bin/amule $(CURDIR)/debian/amule/usr/bin/
+ #mv $(CURDIR)/debian/tmp/usr/share/pixmaps/amule.xpm $(CURDIR)/debian/amule/usr/share/pixmaps/amule.xpm
+ #mv $(CURDIR)/debian/tmp/usr/share/locale $(CURDIR)/debian/amule/usr/share/
+ #mv $(CURDIR)/debian/tmp/usr/share/applications/amule.desktop $(CURDIR)/debian/amule/usr/share/applications/
+
+
+ #install -m 755 debian/wrapper/wrapper $(CURDIR)/debian/amule/usr/bin/ed2k.wrapper
+ #dh_link /usr/bin/ed2k.wrapper /usr/bin/ed2k
+ #dh_link /usr/share/man/fr/man1/ed2k.wrapper.1.gz /usr/share/man/fr/man1/ed2k.1.gz
+ #dh_link /usr/share/man/man1/ed2k.wrapper.1.gz /usr/share/man/man1/ed2k.1.gz
+
+ #aMule utils part
+ #mv $(CURDIR)/debian/tmp/usr/bin/wxcas $(CURDIR)/debian/amule-utils/usr/bin
+ #mv $(CURDIR)/debian/tmp/usr/bin/cas $(CURDIR)/debian/amule-utils/usr/bin
+ #mv $(CURDIR)/debian/tmp/usr/bin/alc $(CURDIR)/debian/amule-utils/usr/bin
+ #mv $(CURDIR)/debian/tmp/usr/bin/alcc $(CURDIR)/debian/amule-utils/usr/bin
+ #mv $(CURDIR)/debian/tmp/usr/bin/amulecmd $(CURDIR)/debian/amule-utils/usr/bin
+ #mv $(CURDIR)/debian/tmp/usr/bin/amulecmdDLG $(CURDIR)/debian/amule-utils/usr/bin
+ #mv $(CURDIR)/debian/tmp/usr/share/applications/alc.desktop $(CURDIR)/debian/amule-utils/usr/share/applications
+ #mv $(CURDIR)/debian/tmp/usr/share/applications/wxcas.desktop $(CURDIR)/debian/amule-utils/usr/share/applications
+ #mv $(CURDIR)/debian/tmp/usr/share/pixmaps/alc.xpm $(CURDIR)/debian/amule-utils/usr/share/pixmaps
+ #mv $(CURDIR)/debian/tmp/usr/share/pixmaps/wxcas.xpm $(CURDIR)/debian/amule-utils/usr/share/pixmaps
+ #mv $(CURDIR)/debian/tmp/usr/share/cas/stat.png $(CURDIR)/debian/amule-utils/usr/share/cas/
+ #mv $(CURDIR)/debian/tmp/usr/share/cas/tmp.html $(CURDIR)/debian/amule-utils/usr/share/cas/
+
+# mv $(CURDIR)/debian/tmp/usr/share/pixmaps/stat.png $(CURDIR)/debian/amule-utils/usr/share/pixmaps/stat.png
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir -a
+ dh_testroot -a
+ dh_installchangelogs docs/Changelog
+ dh_installdocs -a
+ dh_installexamples -a
+# dh_install
+ dh_installmenu -a
+ dh_installdebconf -a
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman -a
+ dh_link -a
+ dh_strip -a
+ dh_compress -a
+ dh_fixperms -a
+# dh_perl
+# dh_python
+# dh_makeshlibs
+ dh_installdeb -a
+ dh_shlibdeps -a
+ dh_gencontrol -a
+ dh_md5sums -a
+ dh_builddeb -a
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
diff -urdpN ../aMule-2.1.3-orig/debian/watch ./debian/watch
--- ../aMule-2.1.3-orig/debian/watch 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/watch 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,7 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# Site Directory Pattern Version Script
+version=2
+#http://amule.hirnriss.net /cvs/aMule-cvs-(.*)\.tar\.bz2 debian uupdate
+http://amule.hirnriss.net/ cvs/aMule-cvs-([0-9]*)\.tar\.bz2
diff -urdpN ../aMule-2.1.3-orig/debian/wrapper/wrapper ./debian/wrapper/wrapper
--- ../aMule-2.1.3-orig/debian/wrapper/wrapper 1970-01-01 01:00:00.000000000 +0100
+++ ./debian/wrapper/wrapper 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,64 @@
+#!/usr/bin/perl
+
+
+my $ps_result;
+
+
+sub which_program
+{
+ open(PS_PROC,"ps x |") or die "can't exec ps ! suxor system !\n";
+
+ while(<PS_PROC>)
+ {
+ if(/amule/)
+ {
+ close(PS_PROC);
+ return "amule";
+ }
+ elsif(/xmule/)
+ {
+ close(PS_PROC);
+ return "xmule";
+ }
+ }
+ return "nobody";
+}
+
+sub main
+{
+ my $program;
+ my $url;
+
+ $url=@ARGV[0];
+ $program=which_program();
+ print "url : $url \n";
+ if($program=~/nobody/){
+ exit(-1);
+ }
+ elsif($program=~/amule/)
+ {
+ if(-x "/usr/bin/ed2k.amule")
+ {
+ system("/usr/bin/ed2k.amule '".$url."'");
+ print "add an amule ed2k link\n";
+ }
+ else
+ {
+ print "oOops ! In cant exec /usr/bin/ed2k.amule";
+ }
+ }
+ elsif($program=~/xmule/)
+ {
+ if (-x "/usr/bin/ed2k.xmule")
+ {
+ system("/usr/bin/ed2k.xmule '".$url."'");
+ print "add an xmule ed2k link\n";
+ }
+ else
+ {
+ print "OoOps ! couldn't find /usr/bin/ed2k binary !\n"
+ }
+ }
+}
+
+&main();
diff -urdpN ../aMule-2.1.3-orig/po/it.po ./po/it.po
--- ../aMule-2.1.3-orig/po/it.po 2006-01-01 06:17:25.000000000 +0100
+++ ./po/it.po 2006-06-12 18:30:05.000000000 +0200
@@ -31,11 +31,11 @@ msgstr "Kademlia: chiave di ricerca trop
#: src/kademlia/routing/RoutingZone.cpp:159
#, c-format
msgid "Read %u Kad contacts"
-msgstr "Letti %u contatti Kad"
+msgstr "Letti %u contatti KAdu"
#: src/kademlia/routing/RoutingZone.cpp:162
msgid "Error while reading Kad contacts - 0 entries"
-msgstr "Errore nella lettura dei contatti Kad - 0 contatti"
+msgstr "Errore nella lettura dei contatti KAdu - 0 contatti"
#: src/utils/wxCas/src/wxcasframe.cpp:97
#: src/utils/aLinkCreator/src/alcframe.cpp:85
@@ -2144,7 +2144,7 @@ msgstr "Non connesso"
#: src/TextClient.cpp:481 src/muuli_wdr.cpp:238 src/muuli_wdr.cpp:4028
#: src/DataToText.cpp:131
msgid "Kad"
-msgstr "Kad"
+msgstr "KAdu"
#: src/TextClient.cpp:485
msgid "firewalled"
@@ -2270,7 +2270,7 @@ msgstr "Connetti solo alla rete ed2k."
#: src/TextClient.cpp:601
msgid "Connect to Kad only."
-msgstr "Connetti solo alla rete Kad."
+msgstr "Connetti solo alla rete KAdu."
#: src/TextClient.cpp:603
msgid "Disconnect from the network."
@@ -2286,7 +2286,7 @@ msgstr "Disconnetti solo dalla rete ed2k
#: src/TextClient.cpp:606
msgid "Disconnect from Kad only."
-msgstr "Disconnetti solo dalla rete Kad."
+msgstr "Disconnetti solo dalla rete KAdu."
#: src/TextClient.cpp:608
msgid "Adds an ed2k link to core."
@@ -2867,15 +2867,15 @@ msgstr "Disconnesso dalla rete ed2k"
#: src/amule.cpp:1901
msgid "Connected to Kad (ok)"
-msgstr "Connesso alla rete Kad (ok)"
+msgstr "Connesso alla rete KAdu (ok)"
#: src/amule.cpp:1903
msgid "Connected to Kad (firewalled)"
-msgstr "Connesso alla rete Kad (firewalled)"
+msgstr "Connesso alla rete KAdu (firewalled)"
#: src/amule.cpp:1906
msgid "Disconnected from Kad"
-msgstr "Disconnesso dalla rete Kad"
+msgstr "Disconnesso dalla rete KAdu"
#: src/AICHSyncThread.cpp:102
msgid "AICH Thread: Signaling for thread to terminate."
@@ -3004,7 +3004,7 @@ msgstr "Connetti"
#: src/amuleDlg.cpp:793 src/muuli_wdr.cpp:4088
msgid "Connect to any server and/or Kad"
-msgstr "Connetti a qualsiasi server e/o a Kad"
+msgstr "Connetti a qualsiasi server e/o a KAdu"
#: src/amuleDlg.cpp:803
msgid "WARNING: You have recieved Low-ID!"
@@ -4121,7 +4121,7 @@ msgstr "Porta UDP avanzata del client:"
#: src/muuli_wdr.cpp:1868
msgid "This UDP port is used for extended Ed2K requests and Kad network"
-msgstr "Questa porta UDP è usata per richieste ed2k avanzate e per la rete Kad"
+msgstr "Questa porta UDP è usata per richieste ed2k avanzate e per la rete KAdu"
#: src/muuli_wdr.cpp:1871
msgid "disable"
@@ -4406,15 +4406,15 @@ msgstr "Barra della velocità nell'icona
#: src/muuli_wdr.cpp:2319
msgid "Kad-nodes current"
-msgstr "Nodi Kad attuali"
+msgstr "Nodi KAdu attuali"
#: src/muuli_wdr.cpp:2320
msgid "Kad-nodes running"
-msgstr "Nodi Kad attivi"
+msgstr "Nodi KAdu attivi"
#: src/muuli_wdr.cpp:2321
msgid "Kad-nodes session"
-msgstr "Nodi Kad nella sessione"
+msgstr "Nodi KAdu nella sessione"
#: src/muuli_wdr.cpp:2326 src/muuli_wdr.cpp:2969
msgid "Select"
@@ -4804,7 +4804,7 @@ msgstr "Informazioni ed2k"
#: src/muuli_wdr.cpp:3189 src/muuli_wdr.cpp:3990
msgid "Kad Info"
-msgstr "Informazioni Kad"
+msgstr "Informazioni KAdu"
#: src/muuli_wdr.cpp:3211
msgid ""
@@ -4873,7 +4873,7 @@ msgstr "Bootstrap da\n"
#: src/muuli_wdr.cpp:3381
msgid "Disconnect Kad"
-msgstr "Disconnetti rete Kad"
+msgstr "Disconnetti rete KAdu"
#: src/muuli_wdr.cpp:3434 src/PrefsUnifiedDlg.cpp:171
msgid "Security"
@@ -5309,7 +5309,7 @@ msgstr "Overhead server (pacchetti): %s"
#: src/Statistics.cpp:634 src/Statistics.cpp:653
#, c-format
msgid "Kad Overhead (Packets): %s"
-msgstr "Overhead Kad (pacchetti): %s"
+msgstr "Overhead KAdu (pacchetti): %s"
#: src/Statistics.cpp:636
#, c-format
@@ -5626,7 +5626,7 @@ msgstr "Non ha senso usare la ricerca We
#: src/ExternalConn.cpp:798
msgid "Kad is disabled in preferences."
-msgstr "La rete Kad è disabilitata nelle Preferenze."
+msgstr "La rete KAdu è disabilitata nelle Preferenze."
#: src/ExternalConn.cpp:956
msgid "No points for graph."
@@ -5675,11 +5675,11 @@ msgstr "Connessione alla rete ed2k..."
#: src/ExternalConn.cpp:1307
msgid "Already connected to Kad."
-msgstr "Già connesso alla rete Kad."
+msgstr "Già connesso alla rete KAdu."
#: src/ExternalConn.cpp:1310
msgid "Connecting to Kad..."
-msgstr "Connessione alla rete Kad..."
+msgstr "Connessione alla rete KAdu..."
#: src/ExternalConn.cpp:1315
msgid "All networks are disabled."
@@ -5691,7 +5691,7 @@ msgstr "Disconnesso dalla rete ed2k."
#: src/ExternalConn.cpp:1327
msgid "Disconnected from Kad."
-msgstr "Disconnesso dalla rete Kad."
+msgstr "Disconnesso dalla rete KAdu."
#: src/ExternalConn.cpp:1335
#, c-format
@@ -5947,7 +5947,7 @@ msgstr "Sospensione upload del file: %s"
msgid ""
"Impossible to make Kad search (invalid chars? keywords too short? not "
"connected?)"
-msgstr "Impossibile effetturare una ricerca Kad (caratteri non validi? chiave di ricerca troppo corta? mancanza di connessione?)"
+msgstr "Impossibile effetturare una ricerca KAdu (caratteri non validi? chiave di ricerca troppo corta? mancanza di connessione?)"
#: src/SearchDlg.cpp:523
msgid "You are not connected to a server!"
@@ -6044,11 +6044,11 @@ msgstr "Troppe connessioni"
#: src/DataToText.cpp:72
msgid "Connecting via Kad"
-msgstr "Connessione via Kad"
+msgstr "Connessione via KAdu"
#: src/DataToText.cpp:73
msgid "Too many Kad connections"
-msgstr "Troppe connessioni Kad"
+msgstr "Troppe connessioni KAdu"
#: src/DataToText.cpp:75
msgid "Connection Error"
diff -urdpN ../aMule-2.1.3-orig/src/AdunanzA.cpp ./src/AdunanzA.cpp
--- ../aMule-2.1.3-orig/src/AdunanzA.cpp 1970-01-01 01:00:00.000000000 +0100
+++ ./src/AdunanzA.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,413 @@
+#ifdef _DEBUG
+#include "DebugHelpers.h"
+#endif
+#include "amule.h"
+#include "updownclient.h"
+#include "Friend.h"
+#include "ClientList.h"
+#include "OtherFunctions.h"
+#include "PartFile.h"
+#include "ListenSocket.h"
+#include "Friend.h"
+#include <zlib.h>
+#include "Packet.h"
+#include "OPCodes.h"
+#include "SafeFile.h"
+#include "Preferences.h"
+#include "Statistics.h"
+#include "ClientCredits.h"
+#include "IPFilter.h"
+#include "UploadQueue.h"
+#include "DownloadQueue.h"
+#include "SearchList.h"
+#include "SharedFileList.h"
+#ifdef __USE_KAD__
+#include "Kademlia/Kademlia/Kademlia.h"
+#include "Kademlia/Net/KademliaUDPListener.h"
+#endif
+#if !defined(_CONSOLE) && !defined(AMULE_DAEMON)
+#include "ServerWnd.h"
+#include "TransferWnd.h"
+#include "ChatWnd.h"
+#endif
+
+#include <cmath>
+
+#include "AdunanzA.h"
+#include "RemoteSettings.h"
+
+// Inclusi per il parsing sul file per Updater
+#include <stdio.h>
+#include <stdlib.h>
+#define thePrefs (*(theApp.glob_prefs))
+// Funzione molto semplice che ritorna un
+// valore booleano vero se l'ip passatogli in input
+// appartiene alla rete FastWeb italiana.
+/*
+MAN Milano........................ 1.0.0.0/8
+MAN Milano hinterland Nord........ 2.0.0.0/8
+MAN Genova........................ 5.0.0.0/8
+MAN Veneto........................ 11.0.0.0/8
+MAN Milano hinterland Sud......... 14.0.0.0/8
+MAN Ancona........................ 21.0.0.0/8
+MAN Grosseto...................... 22.0.0.0/8
+MAN Roma.......................... 23.0.0.0/8
+MAN Toscana....................... 27.0.0.0/8
+MAN Triveneto..................... 29.0.0.0/8
+MAN Bari.......................... 31.0.0.0/8
+MAN Sicilia....................... 36.0.0.0/8
+MAN Bologna....................... 37.0.0.0/8
+MAN Napoli........................ 39.0.0.0/8
+MAN Torino........................ 41.0.0.0/8
+MAN Reggio Emilia................. 42.0.0.0/8
+
+Routers & OAM..................... 10.0.0.0/8
+Organization, Administration & Management (ad. es.: Server interni ntp, voip, billing etc. etc.)
+*/
+
+bool AduIsFastWebLANIP(uint32 ip)
+{
+ switch (ip & 0xff) {
+ case MAN_ROMA:
+ case MAN_MILANO:
+ case MAN_MILANO_H_NORD:
+ case MAN_MILANO_H_SUD:
+ case MAN_GENOVA:
+ case MAN_TRIVENETO:
+ case MAN_BARI:
+ case MAN_BOLOGNA:
+ case MAN_NAPOLI:
+ case MAN_TORINO:
+ case MAN_REGGIO_EMILIA:
+ case MAN_TOSCANA:
+ case MAN_VENETO:
+ case MAN_GROSSETO:
+ case MAN_SICILIA:
+ case MAN_ANCONA:
+ case FASTWEB_ROUTERS:
+ return true;
+ default:
+ return false;
+ }
+}
+
+void CUpDownClient::SetClientFWCity(void)
+{
+ switch (m_dwUserIP & 0x000000ff) {
+ case MAN_ROMA:
+ m_FWCity = wxT("RM");
+ break;
+ case MAN_MILANO:
+ m_FWCity = wxT("MI");
+ break;
+ case MAN_MILANO_H_NORD:
+ m_FWCity = wxT("MI H. Nord");
+ break;
+ case MAN_MILANO_H_SUD:
+ m_FWCity = wxT("MI H. Sud");
+ break;
+ case MAN_GENOVA:
+ m_FWCity = wxT("GE");
+ break;
+ case MAN_TRIVENETO:
+ m_FWCity = wxT("Triveneto");
+ break;
+ case MAN_BARI:
+ m_FWCity = wxT("BA");
+ break;
+ case MAN_BOLOGNA:
+ m_FWCity = wxT("BO");
+ break;
+ case MAN_NAPOLI:
+ m_FWCity = wxT("NA");
+ break;
+ case MAN_TORINO:
+ m_FWCity = wxT("TO");
+ break;
+ case MAN_REGGIO_EMILIA:
+ m_FWCity = wxT("RE");
+ break;
+ case MAN_TOSCANA:
+ m_FWCity = wxT("Toscana");
+ break;
+ case MAN_VENETO:
+ m_FWCity = wxT("Veneto");
+ break;
+ case MAN_GROSSETO:
+ m_FWCity = wxT("GR");
+ break;
+ case MAN_SICILIA:
+ m_FWCity = wxT("Sicilia");
+ break;
+ case MAN_ANCONA:
+ m_FWCity = wxT("AN");
+ break;
+ case FASTWEB_ROUTERS:
+ m_FWCity = wxT("OAM");
+ break;
+ default:
+ m_FWCity = wxT("");
+ break;
+ }
+}
+
+
+
+bool CUpDownClient::IsAduFiber() const
+{
+ return AduIsFiber(m_dwUserIP);
+}
+
+bool AduIsFiber (uint32 ip) {
+ bool is128 = (((ip >> 15) & 1) == (uint32)0);
+
+ return AduIsFastWebLANIP(ip) & is128;
+}
+
+bool AduIsFastWebIP(uint32 ip)
+{
+ if (AduIsFastWebLANIP(ip))
+ return true;
+
+ // match rapido: (ip & mask) == netid
+
+ // netid 213.140.0.0/19 - netid (hex) 0x00008cd5 / mask 0x00e0ffff
+ if ((ip & 0x00e0ffff) == 0x00008cd5 ||
+ // netid 213.156.32.0/19 - netid (hex) 0x00209cd5 / mask 0x00e0ffff
+ (ip & 0x00e0ffff) == 0x00209cd5 ||
+ // netid 62.101.64.0/18 - netid (hex) 0x0040653e / mask 0x00c0ffff
+ (ip & 0x00c0ffff) == 0x0040653e ||
+ // netid 81.208.0.0/17 - netid (hex) 0x0000d051 / mask 0x0080ffff
+ (ip & 0x0080ffff) == 0x0000d051 ||
+ // netid 83.103.0.0/17 - netid (hex) 0x00006753 / mask 0x0080ffff
+ (ip & 0x0080ffff) == 0x00006753 ||
+ // netid 85.18.0.0/16 - netid (hex) 0x00001255 / mask 0x0000ffff
+ (ip & 0x0000ffff) == 0x00001255 ||
+ // netid 89.96.0.0/15 - netid (hex) 0x00006059 / mask 0x0000f7ff
+ (ip & 0x0000f7ff) == 0x00006059) return true;
+
+
+ return false;
+}
+
+#include "Logger.h"
+#include <common/Format.h>
+#include "NetworkFunctions.h"
+
+bool AduIsValidKaduAddress( uint32 host )
+{
+ host = wxUINT32_SWAP_ALWAYS( host );
+ //AddDebugLogLineM(false, logClientKadUDP, CFormat(wxT("Checking %s for kADU validity")) % Uint32toStringIP(host));
+
+ // TODO: Add Banlist support here
+
+ return AduIsFastWebIP( host );
+}
+
+// Metodo dell'oggetto CUpDownClient
+// Vedere il file
+// Questo metodo ritorna
+// ADUNANZA_ICON_NONE Se il client non e' adunanza
+// ADUNANZA_ICON_FW Se il client non e' adunanza ma e' sulla rete FastWeb Italia
+// ADUNANZA_ICON_ADU Se il client e' AdunanzA ed e' sulla rete FastWeb Italia
+uint32 CUpDownClient::GetClientAduType(void) const
+{
+ if (AduIsFastWebIP(m_dwUserIP))
+ {
+ if (GetIsAduSoftware())
+ return ADUNANZA_ICON_ADU;
+ else
+ return ADUNANZA_ICON_FW;
+ }
+ return ADUNANZA_ICON_NONE;
+}
+
+bool CUpDownClient::IsAduClient() const
+{
+ return GetClientAduType() == ADUNANZA_ICON_ADU;
+}
+
+float calcolaStima(float avail, uint32& firstPublish, uint32 publishInterval, uint32 pubkRTK, bool sameIP, uint32 now) {
+ int kRTK = theApp.rm->kadRepublishTimeK;
+
+ // Using this increment style, we can guess also if clients use different publish rates.
+ float inc = (float)pubkRTK / kRTK;
+
+ // Only old clients, with republishtimek == 24hrs don't publish their republishtimek.
+ if (inc == 0.f)
+ inc = HR2S(24) / kRTK;
+
+ if (publishInterval > kRTK)
+ avail=0.f,firstPublish=now;
+
+ while ((now-firstPublish) > kRTK && avail > 2.f)
+ avail--,firstPublish+=(uint32)(kRTK/avail);
+
+ // Some client seem to send duplicate publish to already contacted clients.
+ // In 90% of the times we avoid this here.
+ if (!sameIP)
+ avail+=inc;
+
+ return avail;
+}
+
+float normalizzaStima( float avail, uint32 from, uint32 to ) {
+ // Parte necessaria per il debug
+ // calcolo il coefficiente di normalizzazione
+ int kRTK = theApp.rm->kadRepublishTimeK;
+
+ float norm_factor = 1.f;
+
+ if (avail > theApp.rm->kadFreshGuess_NoNorm) {
+ norm_factor = (to - from)/kRTK;
+
+ if ( norm_factor > 1-1/avail )
+ norm_factor = 1.f;
+
+ norm_factor = ( norm_factor < theApp.rm->kadFreshGuess_Tol ? theApp.rm->kadFreshGuess_Tol : norm_factor );
+
+ // We have a good number of publishes, but not high.
+ // Low normalization is still suggested.
+ if ( avail < theApp.rm->kadFreshGuess_LowNorm && norm_factor > avail / theApp.rm->kadFreshGuess_LowNorm )
+ norm_factor /= powf( avail/theApp.rm->kadFreshGuess_LowNorm, 0.5f );
+ }
+
+ if ( avail > 2.f )
+ avail /= powf( norm_factor, theApp.rm->kadFreshGuess_Weight );
+
+ return avail;
+}
+
+#include "Statistics.h"
+
+
+// Decido come selezionare un client in base alla
+// banda realmente data in upload
+uint32 AduGetTypeBand()
+{
+ uint64 sessionSentBytes = theApp.statistics->GetSessionSentBytes();
+ uint64 sessionRecvBytes = theApp.statistics->GetSessionReceivedBytes();
+
+ uint64 aduSessionSentBytes = theApp.statistics->GetAduSessionSentBytes();
+ uint64 aduSessionRecvBytes = theApp.statistics->GetAduSessionReceivedBytes();
+
+ uint64 sentToExternal = sessionSentBytes - aduSessionSentBytes;
+ uint64 recvFromExternal = sessionRecvBytes - aduSessionRecvBytes;
+
+ if ( sentToExternal < recvFromExternal )
+ return ADUNANZA_EXTERN;
+ else
+ return ADUNANZA_FASTWEB;
+}
+
+// lista di servers solo interna
+typedef struct _servIP_Port
+{
+ uint32 ip;
+ uint16 port;
+} servIP_Port, *LPservIP_Port;
+
+static LPservIP_Port _aduServers = NULL;
+static int _aduServersNum = 0;
+
+
+// Ci dice se connesso ad un server adunanza o meno
+bool IsAduServer(uint32 CurServer) {
+
+ if (_aduServers && _aduServersNum)
+ {
+ for(int i = 0; i < _aduServersNum; i++)
+ {
+ if (CurServer == _aduServers[i].ip) return true;
+ }
+ }
+ return false;
+}
+
+#ifndef CLIENT_GUI
+int AduQ(void) {
+ return theApp.uploadqueue->GetAdunanzAUserCount();
+}
+
+bool AduDebt(void) {
+ uint64 sentToExternal = theApp.statistics->GetSessionSentBytes() - theApp.statistics->GetAduSessionSentBytes();
+ uint64 recvFromExternal = theApp.statistics->GetSessionReceivedBytes() - theApp.statistics->GetAduSessionReceivedBytes();
+
+ if ( sentToExternal < recvFromExternal )
+ return true;
+ else
+ return false;
+}
+int SetSlots(void) {
+ float maxUp = (float)thePrefs.GetMaxUpload();
+ float kBpsUpPerClient = (float)thePrefs.GetSlotAllocation();
+ float kBpsUp = (float)theStats::GetUploadRate() / 1024.0f;
+ int slots;
+
+
+ if (thePrefs.GetMaxUpload() == UNLIMITED)
+ slots = (int)( kBpsUp / kBpsUpPerClient + 2 );
+ else
+ slots = (int)floor( maxUp / kBpsUpPerClient + 0.5f );
+
+ return std::max(MIN_UP_CLIENTS_ALLOWED,slots);
+}
+
+int TotSlots(void) {
+ if (AduDebt())
+ return (int)(SetSlots() * 1.5f);
+ else
+ return SetSlots();
+}
+
+int ExtSlots(void) {
+ if (AduDebt())
+ return (int)(TotSlots() * 0.5f);
+ else
+ return TotSlots();
+}
+
+uint32 AduNextClient(int fix) {
+ int totslots = TotSlots(), totcount = theApp.uploadqueue->GetUploadCount() - fix;
+
+ if (totcount < totslots) {
+ if (!AduQ())
+ return ADUNANZA_ANY;
+
+ int aducount = theApp.uploadqueue->GetAduUploadCount();
+ int extcount = totcount - aducount;
+
+ if (AduDebt()) {
+ int extslots = ExtSlots() - fix;
+ int aduslots = totslots - extslots;
+
+ if (extslots > extcount && aduslots > aducount)
+ return ADUNANZA_ANY;
+ else if (extslots > extcount)
+ return ADUNANZA_EXTERN;
+ else if (aduslots > aducount)
+ return ADUNANZA_FASTWEB;
+ else
+ return ADUNANZA_NONE; // non dovrebbe poter succedere
+
+ } else {
+ return ADUNANZA_FASTWEB;
+ }
+ } else
+ return ADUNANZA_NONE;
+}
+
+uint32 AduGetMaxUploadSlots(void)
+{
+ return TotSlots();
+}
+
+bool AduMaxTrans(void) {
+ uint32 now = (uint32)time(NULL);
+ if (AduQ() && AduNextClient(1) == ADUNANZA_FASTWEB && now > theApp.uploadqueue->lastmax + 45 ) {
+ theApp.uploadqueue->lastmax = now;
+ return true;
+ } else
+ return false;
+}
+#endif
diff -urdpN ../aMule-2.1.3-orig/src/AdunanzA.h ./src/AdunanzA.h
--- ../aMule-2.1.3-orig/src/AdunanzA.h 1970-01-01 01:00:00.000000000 +0100
+++ ./src/AdunanzA.h 2006-06-12 18:30:05.000000000 +0200
@@ -0,0 +1,136 @@
+#ifndef _ADUNANZA_H_
+#define _ADUNANZA_H_
+
+#define V(M, m) _T(#M) _T(".") _T(#m)
+#define _V(M, m) V(M,m)
+
+#define B(n, l) _T(#n) _T(l)
+#define _B(n, l) B(n, l)
+
+#define ADU_VER_MAJ 3
+#define ADU_VER_MIN 11
+
+#define ADU_VER_RL _V(ADU_VER_MAJ, ADU_VER_MIN)
+
+#define ADU_BETA_MAJ 0
+#define ADU_BETA_MIN ""
+
+#if ADU_BETA_MAJ > 0
+ #define ADU_VER ADU_VER_RL _T("b") _B(ADU_BETA_MAJ, ADU_BETA_MIN)
+#else
+ #define ADU_VER ADU_VER_RL _T("b")
+#endif
+
+#define ADU_MOD_NAME _T("AdunanzA")
+#define ADU_MOD ADU_MOD_NAME _T(" ") ADU_VER
+
+#include "OPCodes.h"
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h" // VERSION
+#endif
+
+#ifdef __CVS__
+ #define MOD_VERSION_LONG ADU_MOD wxT(" - aMule CVS")
+#else
+ #define MOD_VERSION_LONG ADU_MOD wxT(" - aMule ") wxT(VERSION)
+#endif
+
+// Parametri e definzioni esportate dal file AdunanzA.cpp
+#define ADUNANZA_ANY 0
+#define ADUNANZA_EXTERN 1
+#define ADUNANZA_FASTWEB 2
+#define ADUNANZA_NONE 0xff
+
+// Definizioni per icone e per riconoscimento client
+#define ADUNANZA_ICON_NONE 0
+#define ADUNANZA_ICON_FW 1
+#define ADUNANZA_ICON_ADU 2
+
+// Percentuale minima per assegnare uno slot ad un Adu
+//#define ADUNANZA_MIN_ADU 5
+// Definizione default del numero di slots
+#define ADUNANZA_DEF_UPSL 8
+// Definizione default banda Adu
+//#define ADUNANZA_BAND_PERC 85
+// Definizione connessione automatica
+#define ADUNANZA_AUTO_CONN 1
+// Definizione forzature upload/dl ext 1:1 - Disabilitato di default
+#define ADUNANZA_AUTO_EXT11 1
+
+#define ADU_VER_CODE(M,m,o) (((M) << 12) + ((m) << 7) + (o))
+#define ADU_GET_MAJ(v) ((v) >> 12)
+#define ADU_GET_MIN(v) (((v) >> 7) & 0x1f)
+#define ADU_GET_B(v) ((v) & 0x7f)
+
+// ADU URLS
+#define ADURM_URL "http://update.adunanza.net/3-10/adu_remote.conf"
+//#define ADU_SRV_URL "http://ocbmaurice.dyns.net/pl/slist.pl?download/server-best.met"
+#define ADU_SRV_URL "http://corpo.free.fr/server.met"
+#define ADU_NODES_DAT "http://update.adunanza.net/adu_nodes.dat"
+
+/*
+MAN Milano........................ 1.0.0.0/8
+MAN Milano hinterland Nord........ 2.0.0.0/8
+MAN Genova........................ 5.0.0.0/8
+MAN Veneto........................ 11.0.0.0/8
+MAN Milano hinterland Sud......... 14.0.0.0/8
+MAN Ancona........................ 21.0.0.0/8
+MAN Grosseto...................... 22.0.0.0/8
+MAN Roma.......................... 23.0.0.0/8
+MAN Toscana....................... 27.0.0.0/8
+MAN Triveneto..................... 29.0.0.0/8
+MAN Bari.......................... 31.0.0.0/8
+MAN Sicilia....................... 36.0.0.0/8
+MAN Bologna....................... 37.0.0.0/8
+MAN Napoli........................ 39.0.0.0/8
+MAN Torino........................ 41.0.0.0/8
+MAN Reggio Emilia................. 42.0.0.0/8
+
+Routers & OAM..................... 10.0.0.0/8
+Organization, Administration & Management (ad. es.: Server interni ntp, voip, billing etc. etc.)
+*/
+
+// Definizione zone italia FW
+#define MAN_MILANO 1
+#define MAN_MILANO_H_NORD 2
+#define MAN_GENOVA 5
+#define FASTWEB_ROUTERS 10
+#define MAN_VENETO 11
+#define MAN_MILANO_H_SUD 14
+#define MAN_ANCONA 21
+#define MAN_GROSSETO 22
+#define MAN_ROMA 23
+#define MAN_TOSCANA 27
+#define MAN_TRIVENETO 29
+#define MAN_BARI 31
+#define MAN_SICILIA 36
+#define MAN_BOLOGNA 37
+#define MAN_NAPOLI 39
+#define MAN_TORINO 41
+#define MAN_REGGIO_EMILIA 42
+
+// Funzioni esportate
+extern bool AduIsFastWebIP(uint32 ip);
+extern bool AduIsFastWebLANIP(uint32 ip);
+extern bool AduIsFiber(uint32 ip);
+extern uint32 AduGetTypeBand();
+extern bool IsAduServer(uint32 CurServer);
+extern uint32 AduGetMaxUploadSlots(void);
+//extern float AduGetPercBandwidth(void);
+extern void AduStartConnection(void);
+extern void* AduGetNextAduServer(int value, int& num);
+extern void AduUpdate(char *url);
+// KAdu
+extern bool AduIsValidKaduAddress( uint32 host );
+
+extern float calcolaStima( float avail, uint32& firstPublish, uint32 publishInterval, uint32 pubkRTK, bool sameIP, uint32 now );
+extern float normalizzaStima( float avail, uint32 from, uint32 to );
+
+#ifndef CLIENT_GUI
+uint32 AduNextClient(int fix = 0);
+bool AduMaxTrans(void);
+#endif
+
+#endif
+
diff -urdpN ../aMule-2.1.3-orig/src/amule.cpp ./src/amule.cpp
--- ../aMule-2.1.3-orig/src/amule.cpp 2006-04-21 05:13:51.000000000 +0200
+++ ./src/amule.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -91,6 +91,7 @@
#include "kademlia/kademlia/Kademlia.h"
#include "kademlia/kademlia/Prefs.h"
#include "Timer.h"
+#include "RemoteSettings.h"
#ifndef AMULE_DAEMON
#ifdef __WXMAC__
@@ -212,6 +213,8 @@ int CamuleApp::OnExit()
printf("Now, exiting main app...\n");
}
+ delete rm;
+
// From wxWidgets docs, wxConfigBase:
// ...
// Note that you must delete this object (usually in wxApp::OnExit)
@@ -221,7 +224,7 @@ int CamuleApp::OnExit()
// above: you may forget about calling Set(). When Get() is called and
// there is no current object, it will create one using Create() function.
// To disable this behaviour DontCreateOnDemand() is provided.
- delete wxConfigBase::Set((wxConfigBase *)NULL);
+ delete acfg;
// Save credits
clientcredits->SaveList();
@@ -387,8 +390,9 @@ std::pair<bool, wxString> CheckMuleDirec
//
const wxString CamuleApp::FullMuleVersion = GetFullMuleVersion();
const wxString CamuleApp::OSDescription = wxGetOsDescription();
-char *CamuleApp::strFullMuleVersion = new char[GetFullMuleVersion().Length()+1];
-char *CamuleApp::strOSDescription = new char[wxGetOsDescription().Length()+1];
+
+char *CamuleApp::strFullMuleVersion = new char[256];
+char *CamuleApp::strOSDescription = new char[256];
bool CamuleApp::OnInit()
{
@@ -426,6 +430,7 @@ bool CamuleApp::OnInit()
OSType = wxT("Unknown");
}
+
// Parse cmdline arguments.
wxCmdLineParser cmdline(AMULE_APP_BASE::argc, AMULE_APP_BASE::argv);
@@ -559,11 +564,13 @@ bool CamuleApp::OnInit()
}
}
+ rm = new CRemoteSettings();
+
// This creates the CFG file we shall use
- wxConfigBase* cfg = new wxFileConfig( wxEmptyString, wxEmptyString, ConfigDir + wxT("amule.conf") );
+ acfg = new wxFileConfig( wxEmptyString, wxEmptyString, ConfigDir + wxT("amule.conf") );
// Set the config object as the global cfg file
- wxConfig::Set( cfg );
+ //wxConfig::Set( acfg );
// Make a backup of the log file
wxString logfileName(ConfigDir + wxT("logfile"));
@@ -585,7 +592,7 @@ bool CamuleApp::OnInit()
// Load Preferences
CPreferences::BuildItemList(ConfigDir);
- CPreferences::LoadAllItems( wxConfigBase::Get() );
+ CPreferences::LoadAllItems( acfg );
glob_prefs = new CPreferences();
std::pair<bool, wxString> checkResult;
@@ -617,8 +624,9 @@ bool CamuleApp::OnInit()
// Display notification on new version or first run
wxTextFile vfile( ConfigDir + wxT("lastversion") );
- wxString newMule(wxT(VERSION));
+ wxString newMule(ADU_VER);
+#if 0
// Test if there's any new version
if (thePrefs::CheckNewVersion()) {
// We use the thread base because I don't want a dialog to pop up.
@@ -628,6 +636,7 @@ bool CamuleApp::OnInit()
version_check->Create();
version_check->Run();
}
+#endif
if ( !wxFileExists( vfile.GetName() ) ) {
vfile.Create();
@@ -1203,6 +1212,7 @@ void CamuleApp::Localize_mule()
// Is called when the user runs a new version of aMule
void CamuleApp::Trigger_New_version(wxString new_version)
{
+#if 0
wxString info = wxT(" --- ") + CFormat(_("This is the first time you run aMule %s")) % new_version + wxT(" ---\n\n");
if (new_version == wxT("CVS")) {
info += _("This version is a testing version, updated daily, and\n");
@@ -1216,10 +1226,27 @@ void CamuleApp::Trigger_New_version(wxSt
info += _("at www.aMule.org, or in our IRC channel #aMule at irc.freenode.net.\n");
info += wxT("\n");
info += _("Feel free to report any bugs to http://forum.amule.org");
+#endif
- ShowAlert(info, _("Info"), wxCENTRE | wxOK | wxICON_ERROR);
-}
+ wxString info = wxT(" --- ") + CFormat(_("Questa è la prima volta che lanci %s")) % ADU_MOD + wxT(" ---\n\n");
+
+ info += wxT("Per maggiori informazioni fate riferimento\n");
+ info += wxT("al nostro sito www.adunanza.net, o al canale\n");
+ info += wxT("#La_Stalla sul server IRC chat.adunanza.net.\n");
+
+ info += wxT("\n");
+
+ info += wxT("Riportate pure qualsiasi problema o consiglio\n");
+ info += wxT("sul nostro forum.\n");
+
+ info += wxT("\n");
+
+ info += CFormat(wxT("Basato su aMule %s.")) % wxT(VERSION);
+ ShowAlert(info, _("Informazioni"), wxCENTRE | wxOK | wxICON_ERROR);
+
+ rm->UpdateURL = wxT(ADURM_URL);
+}
void CamuleApp::SetOSFiles(const wxString new_path)
{
@@ -1314,6 +1341,8 @@ void CamuleApp::OnCoreTimer(CMuleInterna
static uint64 msPrev1, msPrev5, msPrevSave, msPrevHist, msPrevOS, msPrevKnownMet;
uint64 msCur = theStats::GetUptimeMillis();
+ static uint64 msAduConf = 0;
+
if (!IsRunning()) {
return;
}
@@ -1388,15 +1417,15 @@ void CamuleApp::OnCoreTimer(CMuleInterna
wxString buffer;
// Save total upload/download to preferences
- wxConfigBase* cfg = wxConfigBase::Get();
+ //wxConfigBase* cfg = wxConfigBase::Get();
buffer = CFormat(wxT("%llu")) % (theStats::GetSessionReceivedBytes() + thePrefs::GetTotalDownloaded());
- cfg->Write(wxT("/Statistics/TotalDownloadedBytes"), buffer);
+ acfg->Write(wxT("/Statistics/TotalDownloadedBytes"), buffer);
buffer = CFormat(wxT("%llu")) % (theStats::GetSessionSentBytes() + thePrefs::GetTotalUploaded());
- cfg->Write(wxT("/Statistics/TotalUploadedBytes"), buffer);
+ acfg->Write(wxT("/Statistics/TotalUploadedBytes"), buffer);
// Write changes to file
- cfg->Flush();
+ acfg->Flush();
}
@@ -1412,6 +1441,11 @@ void CamuleApp::OnCoreTimer(CMuleInterna
msPrevKnownMet = msCur;
}
+ if (msCur > msAduConf) {
+ msAduConf = msCur + MIN2MS(1); //every minute
+
+ rm->CheckUpdate();
+ }
// Recomended by lugdunummaster himself - from emule 0.30c
serverconnect->KeepConnectionAlive();
@@ -1517,6 +1551,15 @@ void CamuleApp::ShutDown()
thePrefs::Add2TotalDownloaded(theStats::GetSessionReceivedBytes());
thePrefs::Add2TotalUploaded(theStats::GetSessionSentBytes());
+ // Mod adu
+ thePrefs::Add2TotalAduUploaded(theStats::GetAduSessionSentBytes());
+ thePrefs::Add2TotalAduFUploaded(theStats::GetAduFSessionSentBytes());
+ thePrefs::Add2TotalAduDUploaded(theStats::GetAduDSessionSentBytes());
+ thePrefs::Add2TotalAduDownloaded(theStats::GetAduSessionReceivedBytes());
+ thePrefs::Add2TotalAduFDownloaded(theStats::GetAduFSessionReceivedBytes());
+ thePrefs::Add2TotalAduDDownloaded(theStats::GetAduDSessionReceivedBytes());
+ thePrefs::Add2TotalExtUploaded(theStats::GetExtSessionSentBytes());
+ thePrefs::Add2TotalExtDownloaded(theStats::GetExtSessionReceivedBytes());
if (glob_prefs) {
glob_prefs->Save();
@@ -1694,6 +1737,9 @@ void CamuleApp::OnFinishedHTTPDownload(C
AddLogLineM(true, _("Failed to download the nodes list."));
}
break;
+ case HTTP_AdunanzaConf:
+ rm->FileDownloadedCallback(event.GetExtraLong());
+ break;
}
}
diff -urdpN ../aMule-2.1.3-orig/src/amuled.cpp ./src/amuled.cpp
--- ../aMule-2.1.3-orig/src/amuled.cpp 2006-03-18 08:40:11.000000000 +0100
+++ ./src/amuled.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -486,26 +486,8 @@ int CamuleDaemonApp::InitGui(bool ,wxStr
return 0;
}
printf("amuled: forking to background - see you\n");
- //
- // fork to background and detouch from controlling tty
- // while redirecting stdout to /dev/null
- //
- for(int i_fd = 0;i_fd < 3; i_fd++) {
- close(i_fd);
- }
- int fd = open("/dev/null",O_RDWR);
- dup(fd);
- dup(fd);
- int pid = fork();
-
- wxASSERT(pid != -1);
-
- if ( pid ) {
- exit(0);
- } else {
- setsid();
- }
-
+ int rc = daemon(0,0);
+ wxASSERT(rc != -1);
#endif
return 0;
}
diff -urdpN ../aMule-2.1.3-orig/src/amuleDlg.cpp ./src/amuleDlg.cpp
--- ../aMule-2.1.3-orig/src/amuleDlg.cpp 2006-03-23 12:37:26.000000000 +0100
+++ ./src/amuleDlg.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -105,6 +105,7 @@ BEGIN_EVENT_TABLE(CamuleDlg, wxFrame)
EVT_TOOL(ID_BUTTONMESSAGES, CamuleDlg::OnToolBarButton)
EVT_TOOL(ID_BUTTONSTATISTICS, CamuleDlg::OnToolBarButton)
EVT_TOOL(ID_ABOUT, CamuleDlg::OnAboutButton)
+ EVT_TOOL(ID_IRC, CamuleDlg::OnIrcButton)
EVT_TOOL(ID_BUTTONNEWPREFERENCES, CamuleDlg::OnPrefButton)
#ifndef CLIENT_GUI
@@ -405,30 +406,101 @@ void CamuleDlg::OnToolBarButton(wxComman
}
}
+#include "wx/process.h"
+
+void CamuleDlg::OnIrcButton(wxCommandEvent& WXUNUSED(ev))
+{
+
+ wxString exe = wxT("/usr/bin/xchat");
+
+ if (!wxFileExists(exe)) {
+ wxString err = wxT("ATTENZIONE!\n");
+
+ err += wxT("Per utilizzare questa funzione è necessario\n");
+ err += wxT("che xchat sia installato.\n\n");
+ err += wxT("Installate xchat e controllate che l'eseguibile sia\n");
+ err += CFormat(wxT("reperibile in %s\n")) % exe;
+
+ theApp.ShowAlert(err, _("Error"), wxCENTRE | wxOK | wxICON_ERROR);
+ }
+
+ wxString cfgdir = CFormat(wxT("%s.xchat2")) % GetConfigDir();
+
+ if (!wxDirExists(cfgdir)) {
+ wxMkdir(cfgdir, 0760);
+
+ wxTextFile vfile( cfgdir + wxT("/xchat.conf") );
+
+ if (!vfile.Exists())
+ vfile.Create();
+
+ if (vfile.IsOpened() || vfile.Open()) {
+ vfile.InsertLine( wxT("gui_slist_skip = 1"), 0 );
+ vfile.InsertLine( wxT("irc_nick1 = Adu3_linux"), 0 );
+ vfile.InsertLine( wxT("irc_nick2 = Adu3_linux_2"), 0 );
+ vfile.InsertLine( wxT("irc_nick3 = Adu3_linux_3"), 0 );
+
+ vfile.Write();
+ vfile.Close();
+ }
+
+ }
+
+ wxString cmd = CFormat(wxT("%s --url=irc://chat.adunanza.net/La_Stalla --no-plugins --cfgdir=\"%s\"")) % exe % cfgdir;
+
+ wxProcess *process = new wxProcess();
+ long m_pidLast = wxExecute(cmd, wxEXEC_ASYNC, process);
+ if ( !m_pidLast ) {
+ AddDebugLogLineM(false, logGeneral, CFormat(wxT("Execution of '%s' failed.")) % cmd);
+ delete process;
+ } else
+ AddDebugLogLineM(false, logGeneral, CFormat(wxT("Process %ld (%s) launched.")) % m_pidLast % cmd );
+
+}
void CamuleDlg::OnAboutButton(wxCommandEvent& WXUNUSED(ev))
{
wxString msg = wxT(" ");
+ // Stefano Picerno: Aggiungo la label "AdunanzA" nel nome del programma
#ifdef CLIENT_GUI
- msg << _("aMule remote control ") << wxT(VERSION);
+ msg << wxT("aMule ") << ADU_MOD_NAME << wxT(" remote control ") << ADU_VER; // << wxT(" - ") << wxT(VERSION);
#else
- msg << wxT("aMule ") << wxT(VERSION);
+ msg << wxT("aMule ") << ADU_MOD; // << wxT(" - ") << wxT(VERSION);
#endif
msg << wxT(" ");
+ // Fine modifiche
#ifdef CVSDATE
msg << _("Snapshot:") << wxT("\n ") << wxT(CVSDATE);
#endif
- msg << wxT("\n\n") << _(
+ msg << wxT("\n\n") << wxT(
+ " Versione specifica per utenti Fastweb \n\n"
+ " Website: http://www.adunanza.net \n\n"
+ " originalmente modificata da: \n"
+ " http://amuleadu.altervista.org \n\n"
+ " E' una modifica di aMule " VERSION " (www.amule.org) \n"
+ " 'All-Platform' p2p client based on eMule \n"
+ " Copyright (C) 2003-2006 aMule Team \n\n"
+ " Part of aMule is based on \n"
+ " Kademlia: Peer-to-peer routing based on the XOR metric.\n"
+ " Copyright (C) 2002 Petar Maymounkov\n"
+ " http://kademlia.scs.cs.nyu.edu\n");
+
+#if 0
+ msg << wxT("\n\n") << wxT(
" 'All-Platform' p2p client based on eMule \n\n"
" Website: http://www.amule.org \n"
" Forum: http://forum.amule.org \n"
" FAQ: http://wiki.amule.org \n\n"
+ " ") ADU_MOD wxT("\n"
+ " by http://www.adunanza.net\n"
+ " originally developed by http://amuleadu.altervista.org\n\n"
" Contact: admin@amule.org (administrative issues) \n"
" Copyright (C) 2003-2006 aMule Team \n\n"
" Part of aMule is based on \n"
" Kademlia: Peer-to-peer routing based on the XOR metric.\n"
" Copyright (C) 2002 Petar Maymounkov\n"
" http://kademlia.scs.cs.nyu.edu\n");
+#endif
if (is_safe_state) {
wxMessageBox(msg, _("Message"), wxOK | wxICON_INFORMATION, this);
@@ -867,7 +939,7 @@ void CamuleDlg::OnBnClickedFast(wxComman
bool CamuleDlg::LoadGUIPrefs(bool override_pos, bool override_size)
{
// Create a config base for loading razor preferences
- wxConfigBase *config = wxConfigBase::Get();
+ wxConfigBase *config = theApp.acfg;
// If config haven't been created exit without loading
if (config == NULL) {
return false;
@@ -913,7 +985,7 @@ bool CamuleDlg::SaveGUIPrefs()
Save client size and position */
// Create a config base for saving razor preferences
- wxConfigBase *config = wxConfigBase::Get();
+ wxConfigBase *config = theApp.acfg;
// If config haven't been created exit without saving
if (config == NULL) {
return false;
@@ -1340,6 +1412,21 @@ void CamuleDlg::Apply_Clients_Skin(wxStr
bitmaps_found[Client_ExcellentRating_Smiley].found = true;
bitmaps_found[Client_ExcellentRating_Smiley].filename=skinfile[i].AfterLast(wxT('='));
}
+ // Client_Adunanza_Flag
+ if (skinfile[i].StartsWith(wxT("Client_Adunanza_Flag="))) {
+ bitmaps_found[Client_Adunanza_Flag].found = true;
+ bitmaps_found[Client_Adunanza_Flag].filename=skinfile[i].AfterLast(wxT('='));
+ }
+ // Client_Fastweb_Flag
+ if (skinfile[i].StartsWith(wxT("Client_Fastweb_Flag="))) {
+ bitmaps_found[Client_Fastweb_Flag].found = true;
+ bitmaps_found[Client_Fastweb_Flag].filename=skinfile[i].AfterLast(wxT('='));
+ }
+ // Client_Fiber_Flag
+ if (skinfile[i].StartsWith(wxT("Client_Fiber_Flag="))) {
+ bitmaps_found[Client_Fiber_Flag].found = true;
+ bitmaps_found[Client_Fiber_Flag].filename=skinfile[i].AfterLast(wxT('='));
+ }
}
}
diff -urdpN ../aMule-2.1.3-orig/src/amuleDlg.h ./src/amuleDlg.h
--- ../aMule-2.1.3-orig/src/amuleDlg.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/amuleDlg.h 2006-06-12 18:30:05.000000000 +0200
@@ -89,6 +89,9 @@ enum ClientSkinEnum {
Client_ExcellentRating_Smiley,
Client_CommentOnly_Smiley,
// Add items here.
+ Client_Adunanza_Flag,
+ Client_Fastweb_Flag,
+ Client_Fiber_Flag,
CLIENT_SKIN_UNUSED
};
@@ -182,6 +185,7 @@ protected:
void OnToolBarButton(wxCommandEvent& ev);
void OnAboutButton(wxCommandEvent& ev);
+ void OnIrcButton(wxCommandEvent& ev);
void OnPrefButton(wxCommandEvent& ev);
#ifndef CLIENT_GUI
void OnImportButton(wxCommandEvent& ev);
diff -urdpN ../aMule-2.1.3-orig/src/amule-gui.cpp ./src/amule-gui.cpp
--- ../aMule-2.1.3-orig/src/amule-gui.cpp 2006-02-03 20:14:05.000000000 +0100
+++ ./src/amule-gui.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -234,15 +234,15 @@ int CamuleGuiBase::InitGui(bool geometry
// Should default/last-used position be overridden?
#ifdef CVSDATE
#ifdef CLIENT_GUI
- m_FrameTitle = wxString::Format(wxT("aMule remote control %s %s"), wxT(VERSION), wxT(CVSDATE));
+ m_FrameTitle = wxString::Format(wxT("aMule ") ADU_MOD); //wxT(" remote control %s %s"), wxT(VERSION), wxT(CVSDATE));
#else
- m_FrameTitle = wxString::Format(wxT("aMule %s %s"), wxT(VERSION), wxT(CVSDATE));
+ m_FrameTitle = wxString::Format(wxT("aMule ") ADU_MOD); // wxT(" - %s %s"), wxT(VERSION), wxT(CVSDATE));
#endif
#else
#ifdef CLIENT_GUI
- m_FrameTitle = wxString::Format(wxT("aMule remote control %s"), wxT(VERSION));
+ m_FrameTitle = wxString::Format(wxT("aMule ") ADU_MOD); //wxT(" remote control %s"), wxT(VERSION));
#else
- m_FrameTitle = wxString::Format(wxT("aMule %s"), wxT(VERSION));
+ m_FrameTitle = wxString::Format(wxT("aMule ") ADU_MOD); //wxT(" - %s"), wxT(VERSION));
#endif
#endif
if ( geometry_enabled ) {
diff -urdpN ../aMule-2.1.3-orig/src/amule.h ./src/amule.h
--- ../aMule-2.1.3-orig/src/amule.h 2006-06-05 11:41:56.000000000 +0200
+++ ./src/amule.h 2006-06-12 18:30:05.000000000 +0200
@@ -72,6 +72,9 @@ class wxSingleInstanceChecker;
class wxExecuteData;
class CMuleInternalEvent;
+class CRemoteSettings;
+class wxFileConfig;
+
#define theApp wxGetApp()
@@ -179,6 +182,9 @@ public:
UploadBandwidthThrottler* uploadBandwidthThrottler;
wxLocale m_locale;
+ CRemoteSettings* rm;
+ wxFileConfig* acfg;
+
void ShutDown();
wxString GetLog(bool reset = false);
diff -urdpN ../aMule-2.1.3-orig/src/amule-remote-gui.cpp ./src/amule-remote-gui.cpp
--- ../aMule-2.1.3-orig/src/amule-remote-gui.cpp 2006-03-24 22:15:56.000000000 +0100
+++ ./src/amule-remote-gui.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -81,7 +81,8 @@ using std::auto_ptr;
#include "ServerListCtrl.h"
#include "ClientCredits.h"
#include "OtherFunctions.h" // Needed for CastItoIShort
-
+#include "InternalEvents.h" // Needed for CMuleInternalEvent
+#include "RemoteSettings.h"
CEConnectDlg::CEConnectDlg() :
wxDialog(theApp.amuledlg, -1, _("Connect to remote amule"), wxDefaultPosition )
@@ -89,9 +90,9 @@ CEConnectDlg::CEConnectDlg() :
CoreConnect(this, TRUE);
wxString pref_host, pref_port;
- wxConfig::Get()->Read(wxT("/EC/Host" ), &pref_host, wxT("localhost"));
- wxConfig::Get()->Read(wxT("/EC/Port" ), &pref_port, wxT("4712"));
- wxConfig::Get()->Read(wxT("/EC/Password" ), &pwd_hash);
+ theApp.acfg->Read(wxT("/EC/Host" ), &pref_host, wxT("localhost"));
+ theApp.acfg->Read(wxT("/EC/Port" ), &pref_port, wxT("4712"));
+ theApp.acfg->Read(wxT("/EC/Password" ), &pwd_hash);
CastChild(ID_REMOTE_HOST, wxTextCtrl)->SetValue(pref_host);
CastChild(ID_REMOTE_PORT, wxTextCtrl)->SetValue(pref_port);
@@ -133,16 +134,28 @@ BEGIN_EVENT_TABLE(CamuleRemoteGuiApp, wx
EVT_CUSTOM(wxEVT_EC_CONNECTION, -1, CamuleRemoteGuiApp::OnECConnection)
EVT_CUSTOM(wxEVT_EC_INIT_DONE, -1, CamuleRemoteGuiApp::OnECInitDone)
+ EVT_MULE_INTERNAL(wxEVT_CORE_FINISHED_HTTP_DOWNLOAD, -1, CamuleRemoteGuiApp::OnFinishedHTTPDownload)
END_EVENT_TABLE()
IMPLEMENT_APP(CamuleRemoteGuiApp)
+void CamuleRemoteGuiApp::OnFinishedHTTPDownload(CMuleInternalEvent& event)
+{
+ switch (event.GetInt()) {
+ case HTTP_AdunanzaConf:
+ rm->FileDownloadedCallback(event.GetExtraLong());
+ break;
+ }
+}
int CamuleRemoteGuiApp::OnExit()
{
StopTickTimer();
+
+ delete rm;
+ delete acfg;
return wxApp::OnExit();
}
@@ -210,6 +223,7 @@ bool CamuleRemoteGuiApp::OnInit()
amuledlg = NULL;
+ printf("amulegui: OnInit - starting timer\n");
if ( !wxApp::OnInit() ) {
return false;
}
@@ -235,7 +249,10 @@ bool CamuleRemoteGuiApp::OnInit()
wxMkdir( ConfigDir, CPreferences::GetDirPermissions() );
}
- wxConfig::Set(new wxFileConfig(wxEmptyString, wxEmptyString, ConfigDir + wxT("remote.conf")));
+ rm = new CRemoteSettings();
+
+ theApp.acfg = new wxFileConfig(wxEmptyString, wxEmptyString, ConfigDir + wxT("remote.conf"));
+
glob_prefs = new CPreferencesRem(connect);
@@ -294,9 +311,9 @@ void CamuleRemoteGuiApp::OnECInitDone(wx
void CamuleRemoteGuiApp::Startup() {
if ( dialog->SaveUserPass() ) {
- wxConfig::Get()->Write(wxT("/EC/Host" ), dialog->Host());
- wxConfig::Get()->Write(wxT("/EC/Port" ), dialog->Port());
- wxConfig::Get()->Write(wxT("/EC/Password" ), dialog->PassHash());
+ theApp.acfg->Write(wxT("/EC/Host" ), dialog->Host());
+ theApp.acfg->Write(wxT("/EC/Port" ), dialog->Port());
+ theApp.acfg->Write(wxT("/EC/Password" ), dialog->PassHash());
}
dialog->Destroy();
@@ -530,7 +547,7 @@ CPreferencesRem::CPreferencesRem(CRemote
m_conn = conn;
CPreferences::BuildItemList( theApp.ConfigDir);
- CPreferences::LoadAllItems( wxConfigBase::Get() );
+ CPreferences::LoadAllItems( theApp.acfg );
//
// Settings queried from remote side
@@ -1157,6 +1174,15 @@ void CDownQueueRem::DeleteItem(CPartFile
{
auto_ptr<CPartFile> file(in_file);
+#if 0
+ printf("&theApp: %08x\n", &theApp);
+ printf("theApp.amuledlg: %08x\n", theApp.amuledlg);
+ printf("theApp.amuledlg->transferwnd: %08x\n", theApp.amuledlg->transferwnd);
+ printf("theApp.amuledlg->transferwnd->downloadlistctrl: %08x\n", theApp.amuledlg->transferwnd->downloadlistctrl);
+ printf("file.get(): %08x\n", &theApp);
+ printf("&theApp: %08x\n", &theApp);
+#endif
+
theApp.amuledlg->transferwnd->downloadlistctrl->RemoveFile(file.get());
m_enc_map.erase(file->GetFileHash());
@@ -1182,6 +1208,7 @@ void CDownQueueRem::ProcessItemUpdate(CE
tag->SetSourceXferCount(file->transferingsrc);
tag->SetSourceNotCurrCount(file->m_notCurrentSources);
tag->SetSourceCount(file->m_source_count);
+ tag->SetAduSourceCount(file->m_adu_source_count);
tag->SetSourceCountA4AF(file->m_a4af_source_count);
tag->SetFileStatus(file->status);
@@ -1202,6 +1229,7 @@ void CDownQueueRem::ProcessItemUpdate(CE
file->transferingsrc = tag->SourceXferCount();
file->m_notCurrentSources = tag->SourceNotCurrCount();
file->m_source_count = tag->SourceCount();
+ file->m_adu_source_count = tag->AduSourceCount();
file->m_a4af_source_count = tag->SourceCountA4AF();
file->status = tag->FileStatus();
diff -urdpN ../aMule-2.1.3-orig/src/amule-remote-gui.h ./src/amule-remote-gui.h
--- ../aMule-2.1.3-orig/src/amule-remote-gui.h 2006-06-05 11:41:56.000000000 +0200
+++ ./src/amule-remote-gui.h 2006-06-12 18:30:05.000000000 +0200
@@ -713,6 +713,10 @@ public:
CStatistics *statistics;
+ wxFileConfig* acfg;
+ CRemoteSettings* rm;
+ void OnFinishedHTTPDownload(CMuleInternalEvent& evt);
+
bool AddServer(CServer *srv, bool fromUser = false);
uint32 GetPublicIP();
diff -urdpN ../aMule-2.1.3-orig/src/BaseClient.cpp ./src/BaseClient.cpp
--- ../aMule-2.1.3-orig/src/BaseClient.cpp 2006-03-10 03:53:01.000000000 +0100
+++ ./src/BaseClient.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -60,6 +60,7 @@
#include "Logger.h"
#include "DataToText.h" // Needed for GetSoftName()
#include "OtherFunctions.h"
+#include "RemoteSettings.h"
#include "kademlia/kademlia/Kademlia.h"
#include "kademlia/net/KademliaUDPListener.h"
@@ -69,6 +70,9 @@
//#define __PACKET_DEBUG__
+// Stefano Picerno: include Adunanza header
+#include "AdunanzA.h" // Needed for AduIsFastWebIP
+// Fine
// some client testing variables
static wxString crash_name = wxT("[Invalid User Name]");
@@ -246,6 +250,10 @@ void CUpDownClient::Init()
/* Creation time (for buddies timeout) */
m_nCreationTime = ::GetTickCount();
+
+ isAduSoftware = 0;
+ aduver = 0;
+ sentadu = false;
}
@@ -408,6 +416,7 @@ bool CUpDownClient::ProcessHelloTypePack
switch(temptag.GetNameID()){
case CT_NAME:
m_Username = temptag.GetStr();
+ AddDebugLogLineM(false, logClient, CFormat(wxT("username: %s hash: %s")) % m_Username % hash.Encode());
break;
case CT_VERSION:
@@ -524,8 +533,13 @@ bool CUpDownClient::ProcessHelloTypePack
// 7 Min Version (Only need 0-99)
// 3 Upd Version (Only need 0-5)
// 7 Bld Version (Only need 0-99)
- m_byCompatibleClient = (temptag.GetInt() >> 24);
+ m_byCompatibleClient = m_clientSoft = (temptag.GetInt() >> 24);
m_nClientVersion = temptag.GetInt() & 0x00ffffff;
+ uint32 nClientMajVersion = (m_nClientVersion >> 17) & 0x7f;
+ uint32 nClientMinVersion = (m_nClientVersion >> 10) & 0x7f;
+ uint32 nClientUpVersion = (m_nClientVersion >> 7) & 0x07;
+
+ m_nClientVersion = MAKE_CLIENT_VERSION(nClientMajVersion, nClientMinVersion, nClientUpVersion);
m_byEmuleVersion = 0x99;
m_fSharedDirectories = 1;
dwEmuleTags |= 4;
@@ -657,6 +671,8 @@ void CUpDownClient::SendMuleInfoPacket(b
return;
}
+ bool wastePackets = ( m_dwUserIP && AduIsFastWebIP(m_dwUserIP) ? true : false );
+
CPacket* packet = NULL;
CMemFile data;
@@ -687,7 +703,9 @@ void CUpDownClient::SendMuleInfoPacket(b
data.WriteUInt8(EMULE_PROTOCOL);
// Tag number
- data.WriteUInt32(9);
+ // Stefano Picerno: Aggiungo il tag ET_SUPERADU3, per il riconoscimento dei client Adu
+ data.WriteUInt32(7 + ( wastePackets ? 1 + 1 /*AdunanzA*/ + 1 /*ET_MOD_VERSION*/ : 0 ) );
+ // Fine
CTag tag1(ET_COMPRESSION,1);
tag1.WriteTagToFile(&data);
@@ -713,15 +731,22 @@ void CUpDownClient::SendMuleInfoPacket(b
CTag tag7(ET_FEATURES, dwTagValue);
tag7.WriteTagToFile(&data);
- CTag tag8(ET_COMPATIBLECLIENT,SO_AMULE);
- tag8.WriteTagToFile(&data);
+ if (wastePackets) {
+
+ CTag tag8(ET_COMPATIBLECLIENT,SO_AMULE);
+ tag8.WriteTagToFile(&data);
- // Support for tag ET_MOD_VERSION
- wxString mod_name(MOD_VERSION_LONG);
- CTag tag9(ET_MOD_VERSION, mod_name);
- tag9.WriteTagToFile(&data);
- // Maella end
+ // Support for tag ET_MOD_VERSION
+ wxString mod_name(MOD_VERSION_LONG);
+ CTag tag9(ET_MOD_VERSION, mod_name);
+ tag9.WriteTagToFile(&data);
+ // Maella end
+ // Stefano Picerno: In realta' gli altri client adu ignorano il valore associato al tag Adu;
+ // e' sufficiente che tale valore sia != 0.
+ CTag tag10(ET_SUPERADU3, ADUNANZA_FASTWEB); // E' connesso ad Adunanza
+ tag10.WriteTagToFile(&data);
+ }
}
packet = new CPacket(&data,OP_EMULEPROT);
@@ -859,6 +884,13 @@ bool CUpDownClient::ProcessMuleInfoPacke
case ET_MOD_VERSION:
if (temptag.IsStr()) {
m_strModVersion = temptag.GetStr();
+ if (m_strModVersion.Find(wxT("AdunanzA")) > -1) {
+ uint32 adumaj = 0, adumin = 0, adubeta = 0;
+ if (sscanf(unicode2char(m_strModVersion),"AdunanzA %u.%ub%u", &adumaj, &adumin, &adubeta) < 2)
+ sscanf(unicode2char(m_strModVersion),"AdunanzA %u.%u", &adumaj, &adumin);
+
+ aduver = ADU_VER_CODE(adumaj, adumin, adubeta);
+ }
} else if (temptag.IsInt()) {
m_strModVersion = wxString::Format(wxT("ModID=%u"), temptag.GetInt());
} else {
@@ -867,6 +899,18 @@ bool CUpDownClient::ProcessMuleInfoPacke
break;
+ // Mod Add - Gestisce il tag ET_SUPERADU3
+ case ET_SUPERADU3:
+ uint32 tagval;
+ tagval = temptag.GetInt();
+ SetIsAduSoftware(tagval);
+ if (!aduver) {
+ aduver = ADU_VER_CODE(3, 7, 0);
+ }
+
+ break;
+ // fine mod Adu
+
default:
AddDebugLogLineM( false, logPacketErrors,
CFormat( wxT("Unknown Mule tag (%s) from client: %s") )
@@ -908,7 +952,13 @@ bool CUpDownClient::ProcessMuleInfoPacke
ReGetClientSoft();
- m_byInfopacketsReceived |= IP_EMULEPROTPACK;
+ m_byInfopacketsReceived |= IP_EMULEPROTPACK;
+
+ // Mod AdunanzA
+ // lupz
+ if (IsOldAdu(theApp.rm->mVer))
+ Ban();
+ // Fine Mod AdunanzA
}
return (protocol_version == 0xFF); // This was a OS_Info?
@@ -937,7 +987,21 @@ void CUpDownClient::SendHelloAnswer()
void CUpDownClient::SendHelloTypePacket(CMemFile* data)
{
data->WriteHash(thePrefs::GetUserHash());
- data->WriteUInt32(theApp.GetID());
+
+ amuleIPV4Address address;
+ m_socket->GetPeer(address);
+ m_FullUserIP = address.IPAddress();
+ SetIP(StringIPtoUint32(m_FullUserIP));
+
+ uint32 clientid;
+ if (AduIsFastWebIP(GetIP()))
+ clientid = theApp.GetID();
+ else
+ clientid = theApp.GetED2KID();
+
+ data->WriteUInt32(clientid);
+
+ //data->WriteUInt32(theApp.GetID());
data->WriteUInt16(thePrefs::GetPort());
uint32 tagcount = 6;
@@ -1378,7 +1442,7 @@ bool CUpDownClient::TryToConnect(bool bI
bio.WriteUInt128(Kademlia::CUInt128(GetBuddyID()));
bio.WriteUInt128(Kademlia::CUInt128(m_reqfile->GetFileHash().GetHash()));
bio.WriteUInt16(thePrefs::GetPort());
- CPacket* packet = new CPacket(&bio, OP_KADEMLIAHEADER, KADEMLIA_CALLBACK_REQ);
+ CPacket* packet = new CPacket(&bio, theApp.rm->kadOpcode, KADEMLIA_CALLBACK_REQ);
theApp.clientudp->SendPacket(packet, GetBuddyIP(), GetBuddyPort());
AddDebugLogLineM(false,logLocalClient, wxString::Format(wxT("KADEMLIA_CALLBACK_REQ (%i)"),packet->GetPacketSize()));
theStats::AddUpOverheadKad(packet->GetRealPacketSize());
@@ -1535,13 +1599,14 @@ void CUpDownClient::ReGetClientSoft()
}
int iHashType = GetHashType();
+ AddDebugLogLineM(false, logClient, CFormat(wxT("soft: %u hash: %u byEmuleVersion: %u nClientVersion: %u")) % m_clientSoft % iHashType % m_byEmuleVersion % m_nClientVersion);
wxString clientModString;
if (iHashType == SO_EMULE) {
m_clientSoft = m_byCompatibleClient;
m_clientSoftString = GetSoftName(m_clientSoft);
// Special issues:
- if((GetClientModString().IsEmpty() == false) && (m_clientSoft != SO_EMULE)) {
+ if(m_clientSoftString.IsEmpty() && (GetClientModString().IsEmpty() == false) && (m_clientSoft != SO_EMULE)) {
m_clientSoftString = GetClientModString();
}
// Isn't xMule annoying?
@@ -1591,9 +1656,13 @@ void CUpDownClient::ReGetClientSoft()
}
}
+ if (m_byEmuleVersion && m_nClientVersion > 0xff)
+ m_byEmuleVersion = 0x99;
+
if (m_byEmuleVersion == 0) {
m_nClientVersion = MAKE_CLIENT_VERSION(0,0,0);
- } else if (m_byEmuleVersion != 0x99) {
+ }
+ else if (m_byEmuleVersion != 0x99) {
uint32 nClientMinVersion = (m_byEmuleVersion >> 4)*10 + (m_byEmuleVersion & 0x0f);
m_nClientVersion = MAKE_CLIENT_VERSION(0,nClientMinVersion,0);
switch (m_clientSoft) {
@@ -1609,11 +1678,9 @@ void CUpDownClient::ReGetClientSoft()
break;
}
} else {
- uint32 nClientMajVersion = (m_nClientVersion >> 17) & 0x7f;
- uint32 nClientMinVersion = (m_nClientVersion >> 10) & 0x7f;
- uint32 nClientUpVersion = (m_nClientVersion >> 7) & 0x07;
-
- m_nClientVersion = MAKE_CLIENT_VERSION(nClientMajVersion, nClientMinVersion, nClientUpVersion);
+ uint32 nClientMajVersion = m_nClientVersion / (100U * 10U * 100U);
+ uint32 nClientMinVersion = m_nClientVersion / (100U * 10U) - (nClientMajVersion * 100U);
+ uint32 nClientUpVersion = m_nClientVersion / 100U - (nClientMajVersion * 100U * 10U) - (nClientMinVersion * 10U) ;
switch (m_clientSoft) {
case SO_AMULE:
@@ -1644,6 +1711,33 @@ void CUpDownClient::ReGetClientSoft()
break;
}
}
+
+ // Stefano Picerno: Aggiungo alla versione del client i flag Adunanza / Fastweb
+ uint32 aduResult = GetClientAduType();
+ if (aduResult == ADUNANZA_ICON_FW )
+ {
+ clientModString = _(" - Fastweb - ") + GetClientModString();
+ }
+ else if (aduResult == ADUNANZA_ICON_ADU )
+ {
+ if (ADU_GET_B(aduver))
+ m_strModVersion = wxString::Format(wxT("V%u.%ub%u"), ADU_GET_MAJ(aduver), ADU_GET_MIN(aduver), ADU_GET_B(aduver));
+ else
+ m_strModVersion = wxString::Format(wxT("V%u.%u"), ADU_GET_MAJ(aduver), ADU_GET_MIN(aduver));
+
+ clientModString = _(" - AdunanzA ") + GetClientModString();
+ } else
+ clientModString = _(" - ") + GetClientModString();
+
+ if (aduResult > 0) {
+ if (IsAduFiber())
+ clientModString += _(" Fibra");
+ else
+ clientModString += _(" DSL");
+
+ SetClientFWCity();
+ }
+ // Fine
} else if (m_bIsHybrid) {
// seen:
// 105010 50.10
@@ -1711,11 +1805,8 @@ void CUpDownClient::ReGetClientSoft()
m_clientVerString = wxString::Format(wxT("v%u.%u"), m_nClientVersion / 100000, (m_nClientVersion / 1000) % 100);
}
- m_clientVersionString = m_clientVerString;
- if (!clientModString.IsEmpty()) {
- m_clientVerString += wxT(" - ") + clientModString;
- }
- m_fullClientVerString = m_clientSoftString + wxT(" ") + m_clientVerString;
+ m_clientVersionString = m_clientVerString + clientModString;
+ m_fullClientVerString = m_clientSoftString + wxT(" ") + m_clientVerString + clientModString;
UpdateStats();
}
@@ -1759,6 +1850,9 @@ void CUpDownClient::ResetFileStatusInfo(
m_pReqFileAICHHash = NULL;
}
+ // Mod Adu
+ SetIsAduSoftware( 0 );
+ // Fine adu
}
wxString CUpDownClient::GetUploadFileInfo()
@@ -1842,12 +1936,19 @@ void CUpDownClient::SendSignaturePacket(
uint8 byChaIPKind = 0;
uint32 ChallengeIP = 0;
if (bUseV2){
- if (::IsLowID(theApp.GetED2KID())) {
+
+ uint32 clientid;
+ if (AduIsFastWebIP(m_dwUserIP))
+ clientid = theApp.GetID();
+ else
+ clientid = theApp.GetED2KID();
+
+ if (::IsLowID(clientid)) {
// we cannot do not know for sure our public ip, so use the remote clients one
ChallengeIP = GetIP();
byChaIPKind = CRYPT_CIP_REMOTECLIENT;
} else {
- ChallengeIP = theApp.GetED2KID();
+ ChallengeIP = clientid;
byChaIPKind = CRYPT_CIP_LOCALCLIENT;
}
}
@@ -1949,6 +2050,9 @@ void CUpDownClient::ProcessSignaturePack
}
m_dwLastSignatureIP = GetIP();
+
+ SendMuleInfoPacket(false);
+ sentadu = true;
}
void CUpDownClient::SendSecIdentStatePacket(){
@@ -2088,10 +2192,14 @@ bool CUpDownClient::IsConnected() const
return m_socket && m_socket->IsConnected();
}
+// Stefano Picerno: aggiunto il parametro actualPayloadSize (e' necessario passarlo al socket
+#if 0
bool CUpDownClient::SendPacket(CPacket* packet, bool delpacket, bool controlpacket)
+#endif
+bool CUpDownClient::SendPacket(CPacket* packet, bool delpacket, bool controlpacket, uint32 actualPayloadSize )
{
if ( m_socket ) {
- m_socket->SendPacket(packet, delpacket, controlpacket );
+ m_socket->SendPacket(packet, delpacket, controlpacket, actualPayloadSize );
return true;
} else {
printf("CAUGHT DEAD SOCKET IN SENDPACKET()\n");
diff -urdpN ../aMule-2.1.3-orig/src/ClientDetailDialog.cpp ./src/ClientDetailDialog.cpp
--- ../aMule-2.1.3-orig/src/ClientDetailDialog.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/ClientDetailDialog.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -91,7 +91,7 @@ bool CClientDetailDialog::OnInitDialog()
CastChild(ID_DID,wxStaticText)->SetLabel(wxString::Format(wxT("%u (%s)"),ENDIAN_NTOHL(m_client->GetIP()),(m_client->HasLowID() ? _("LowID"):_("HighID"))));
- CastChild(ID_DIP,wxStaticText)->SetLabel(m_client->GetFullIP() + wxString::Format(wxT(":%i"),m_client->GetUserPort()));
+ //CastChild(ID_DIP,wxStaticText)->SetLabel(Uint32_16toStringIP_Port(m_client->GetIP() & 0x000fffff,m_client->GetUserPort()));
if (m_client->GetServerIP()) {
diff -urdpN ../aMule-2.1.3-orig/src/ClientListCtrl.cpp ./src/ClientListCtrl.cpp
--- ../aMule-2.1.3-orig/src/ClientListCtrl.cpp 2006-04-06 03:24:09.000000000 +0200
+++ ./src/ClientListCtrl.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -43,6 +43,7 @@
#include <wx/brush.h>
#include <wx/dc.h>
+#include "AdunanzA.h"
@@ -595,7 +596,35 @@ void CUploadingView::DrawCell( CUpDownCl
wxIMAGELIST_DRAW_TRANSPARENT);
}
- dc->DrawText( client->GetUserName(), rect.x + 20, rect.y + 3 );
+ // Aggiungo le icone per adu / fastweb
+ uint32 client_type = client->GetClientAduType();
+ wxString preUserName = wxString(_(""));
+
+ if (client_type!=ADUNANZA_ANY) {
+ switch (client_type)
+ {
+ case ADUNANZA_ICON_ADU:
+ // Adu protocol -> Draw the '+' in the lower right
+ imagelist.Draw( Client_Adunanza_Flag, *dc, rect.x, rect.y + 1, wxIMAGELIST_DRAW_TRANSPARENT);
+ break;
+ case ADUNANZA_ICON_FW:
+ // Client from Fastweb address -> Draw the other '+' in the
+ // lower right
+ imagelist.Draw( Client_Fastweb_Flag, *dc, rect.x, rect.y + 1, wxIMAGELIST_DRAW_TRANSPARENT);
+ break;
+ default:
+ break;
+ }
+ if (client->IsAduFiber())
+ imagelist.Draw( Client_Fiber_Flag, *dc, rect.x, rect.y + 1, wxIMAGELIST_DRAW_TRANSPARENT);
+
+ if (client->GetClientFWCity().Len())
+ preUserName += _("(") + client->GetClientFWCity() + _(") ");
+
+ }
+ // Fine
+
+ dc->DrawText( preUserName + client->GetUserName(), rect.x + 20, rect.y + 3 );
return;
}
diff -urdpN ../aMule-2.1.3-orig/src/ClientTCPSocket.cpp ./src/ClientTCPSocket.cpp
--- ../aMule-2.1.3-orig/src/ClientTCPSocket.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/ClientTCPSocket.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -287,7 +287,7 @@ bool CClientTCPSocket::ProcessPacket(con
if (m_client->GetInfoPacketsReceived() == IP_BOTH) {
m_client->InfoPacketsReceived();
}
-
+
// Socket might die because of sending in InfoPacketsReceived, so check
if (m_client) {
m_client->ConnectionEstablished();
@@ -347,9 +347,10 @@ bool CClientTCPSocket::ProcessPacket(con
}
Notify_UploadCtrlRefreshClient( m_client );
// send a response packet with standart informations
- if ((m_client->GetHashType() == SO_EMULE) && !bIsMuleHello) {
- m_client->SendMuleInfoPacket(false);
- }
+
+ if ((m_client->GetHashType() == SO_EMULE) && !bIsMuleHello) {
+ m_client->SendMuleInfoPacket(false);
+ }
// Client might die from Sending in SendMuleInfoPacket, so check
if ( m_client ) {
@@ -360,7 +361,11 @@ bool CClientTCPSocket::ProcessPacket(con
// Client might die from Sending in SendHelloAnswer, so check
if (m_client && m_client->GetOSInfoSupport()) {
m_client->SendMuleInfoPacket(false,true); // Send the OS Info tag on the recycled Mule Info
- }
+ }
+
+ if ((m_client->GetHashType() == SO_EMULE) && bIsMuleHello && m_client->HasFastwebIP()) {
+ m_client->SendMuleInfoPacket(false);
+ }
// Client might die from Sending in SendMuleInfoPacket, so check
if ( m_client ) {
@@ -1258,6 +1263,7 @@ bool CClientTCPSocket::ProcessExtPacket(
if (m_client->GetInfoPacketsReceived() == IP_BOTH) {
m_client->InfoPacketsReceived();
}
+
m_client->SendMuleInfoPacket(true);
} else {
AddDebugLogLineM( false, logRemoteClient, wxT("Remote Client: OP_EMULEINFO is an OS_INFO") );
diff -urdpN ../aMule-2.1.3-orig/src/ClientUDPSocket.cpp ./src/ClientUDPSocket.cpp
--- ../aMule-2.1.3-orig/src/ClientUDPSocket.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/ClientUDPSocket.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -46,6 +46,7 @@
#include "kademlia/kademlia/Kademlia.h"
#include "kademlia/io/IOException.h"
#include "zlib.h"
+#include "RemoteSettings.h"
//
// CClientUDPSocket -- Extended eMule UDP socket
@@ -81,33 +82,26 @@ void CClientUDPSocket::OnPacketReceived(
uint16 port = addr.Service();
try {
- switch (protocol) {
- case OP_EMULEPROT:
- ProcessPacket((char*)buffer + 2,length - 2, opcode, ip, port);
- break;
-
- case OP_KADEMLIAHEADER:
- theStats::AddDownOverheadKad(length);
- Kademlia::CKademlia::processPacket(buffer, length, wxUINT32_SWAP_ALWAYS(ip), port);
- break;
-
- case OP_KADEMLIAPACKEDPROT: {
- theStats::AddDownOverheadKad(length);
- uint32 nNewSize = length*10+300; // Should be enough...
- byte unpack[nNewSize];
- uLongf unpackedsize = nNewSize-2;
- uint16 result = uncompress(unpack + 2, &unpackedsize, buffer + 2, length-2);
- if (result == Z_OK) {
- unpack[0] = OP_KADEMLIAHEADER;
- unpack[1] = opcode;
- Kademlia::CKademlia::processPacket(unpack, unpackedsize + 2, wxUINT32_SWAP_ALWAYS(ip), port);
- } else {
- AddDebugLogLineM(false, logClientKadUDP, wxT("Failed to uncompress Kademlia packet"));
- }
- break;
+ if (protocol == OP_EMULEPROT) {
+ ProcessPacket((char*)buffer + 2,length - 2, opcode, ip, port);
+ } else if (protocol == theApp.rm->kadOpcode) {
+ theStats::AddDownOverheadKad(length);
+ Kademlia::CKademlia::processPacket(buffer, length, wxUINT32_SWAP_ALWAYS(ip), port);
+ } else if (protocol == theApp.rm->kadZOpcode) {
+ theStats::AddDownOverheadKad(length);
+ uint32 nNewSize = length*10+300; // Should be enough...
+ byte unpack[nNewSize];
+ uLongf unpackedsize = nNewSize-2;
+ uint16 result = uncompress(unpack + 2, &unpackedsize, buffer + 2, length-2);
+ if (result == Z_OK) {
+ unpack[0] = theApp.rm->kadOpcode;
+ unpack[1] = opcode;
+ Kademlia::CKademlia::processPacket(unpack, unpackedsize + 2, wxUINT32_SWAP_ALWAYS(ip), port);
+ } else {
+ AddDebugLogLineM(false, logClientKadUDP, wxT("Failed to uncompress Kademlia packet"));
}
- default:
- AddDebugLogLineM(false, logClientUDP, wxString::Format(wxT("Unknown opcode on received packet: 0x%x"), protocol));
+ } else {
+ AddDebugLogLineM(false, logClientUDP, wxString::Format(wxT("Unknown opcode on received packet: 0x%x"), protocol));
}
} catch (const wxString& e) {
AddDebugLogLineM(false, logClientUDP, wxT("Error while parsing UDP packet: ") + e);
diff -urdpN ../aMule-2.1.3-orig/src/DownloadClient.cpp ./src/DownloadClient.cpp
--- ../aMule-2.1.3-orig/src/DownloadClient.cpp 2006-01-24 23:23:31.000000000 +0100
+++ ./src/DownloadClient.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -489,7 +489,7 @@ void CUpDownClient::SetDownloadState(uin
if (m_nDownloadState != byNewState) {
if (m_reqfile) {
// Notify the client that this source has changed its state
- m_reqfile->ClientStateChanged( m_nDownloadState, byNewState );
+ m_reqfile->ClientStateChanged( m_nDownloadState, byNewState, this );
if (byNewState == DS_DOWNLOADING) {
m_reqfile->AddDownloadingSource(this);
@@ -571,12 +571,58 @@ void CUpDownClient::ProcessHashSet(const
SendStartupLoadReq();
}
+void CUpDownClient::CreateBlockRequests(int iMaxBlocks)
+{
+ wxASSERT( iMaxBlocks >= 1 /*&& iMaxBlocks <= 3*/ );
+ if (m_DownloadBlocks_list.IsEmpty())
+ {
+ //dazzle: prevent a sign error from occurring
+ uint16 count, countinit;
+ if (iMaxBlocks - m_PendingBlocks_list.GetCount() > 0)
+ countinit = iMaxBlocks - m_PendingBlocks_list.GetCount();
+ else
+ countinit = 0;
+
+ count = countinit;
+ //end dazzle
+ Requested_Block_Struct* toadd[count];
+ if (m_reqfile->GetNextRequestedBlock(this,toadd,&count)) {
+ for (int i = 0; i != count; i++)
+ m_DownloadBlocks_list.AddTail(toadd[i]);
+ }
+ //dazzle: if no blocks available, try to drop the slowest source, then try again
+ else if (m_reqfile->DropSlowestSource(this)) {
+ count = countinit;
+ if (m_reqfile->GetNextRequestedBlock(this,toadd,&count)){
+ for (int i = 0; i < count; i++)
+ m_DownloadBlocks_list.AddTail(toadd[i]);
+ }
+ }
+
+ //end dazzle
+ }
+
+ while (m_PendingBlocks_list.GetCount() < iMaxBlocks && !m_DownloadBlocks_list.IsEmpty())
+ {
+ Pending_Block_Struct* pblock = new Pending_Block_Struct;
+ pblock->block = m_DownloadBlocks_list.RemoveHead();
+ pblock->zStream = NULL;
+ pblock->totalUnzipped = 0;
+ pblock->fZStreamError = 0;
+ pblock->fRecovered = 0;
+ m_PendingBlocks_list.AddTail(pblock);
+ }
+
+}
+
void CUpDownClient::SendBlockRequests()
{
m_dwLastBlockReceived = ::GetTickCount();
if (!m_reqfile) {
return;
}
+
+#if 0
if (m_DownloadBlocks_list.IsEmpty()) {
// Barry - instead of getting 3, just get how many is needed
uint16 count = 3 - m_PendingBlocks_list.GetCount();
@@ -599,7 +645,9 @@ void CUpDownClient::SendBlockRequests()
pblock->fRecovered = 0;
m_PendingBlocks_list.AddTail(pblock);
}
-
+#endif
+
+ CreateBlockRequests(3);
if (m_PendingBlocks_list.IsEmpty()) {
if (!GetSentCancelTransfer()){
@@ -698,7 +746,17 @@ void CUpDownClient::ProcessBlockPacket(c
if ( nEndPos == nStartPos || size != ((nEndPos - nStartPos) + HEADER_SIZE)) {
throw wxString(wxT("Corrupted or invalid DataBlock received (ProcessBlockPacket)"));
}
- theStats::AddDownloadFromSoft(GetClientSoft(),size - HEADER_SIZE);
+ // mod Adu
+ // Emanem
+ // Aggiungo i dati trasferiti all'elenco AdunanzA
+ uint32 aduBytes = 0, aduFBytes = 0;
+ if (IsAduClient()) {
+ aduBytes = size - HEADER_SIZE;
+ if (IsAduFiber())
+ aduFBytes = aduBytes;
+ }
+ theStats::AddDownloadFromSoft(GetClientSoft(),size - HEADER_SIZE,aduBytes,aduFBytes);
+
bytesReceivedCycle += size - HEADER_SIZE;
credits->AddDownloaded(size - HEADER_SIZE, GetIP(), theApp.CryptoAvailable());
@@ -1313,7 +1371,7 @@ void CUpDownClient::SetRequestFile(CPart
if ( m_reqfile != reqfile ) {
// Decrement the source-count of the old request-file
if ( m_reqfile ) {
- m_reqfile->ClientStateChanged( GetDownloadState(), -1 );
+ m_reqfile->ClientStateChanged( GetDownloadState(), -1, this );
m_reqfile->UpdatePartsFrequency( this, false );
}
@@ -1324,7 +1382,7 @@ void CUpDownClient::SetRequestFile(CPart
if ( reqfile ) {
// Increment the source-count of the new request-file
- m_reqfile->ClientStateChanged( -1, GetDownloadState() );
+ m_reqfile->ClientStateChanged( -1, GetDownloadState(), this );
m_nPartCount = reqfile->GetPartCount();
}
@@ -1455,3 +1513,31 @@ void CUpDownClient::ProcessAICHFileHash(
AddDebugLogLineM( false, logAICHTransfer, wxT("ProcessAICHFileHash(): PartFile not found or Partfile differs from requested file, ") + GetClientFullInfo() );
}
}
+
+void CUpDownClient::SendCancelTransfer(CPacket* packet)
+{
+ if (!m_socket){
+ wxASSERT(0);
+ return;
+ }
+
+ if (!GetSentCancelTransfer())
+ {
+ bool bDeletePacket;
+ CPacket* pCancelTransferPacket;
+ if (packet)
+ {
+ pCancelTransferPacket = packet;
+ bDeletePacket = false;
+ }
+ else
+ {
+ pCancelTransferPacket = new CPacket(OP_CANCELTRANSFER, 0);
+ bDeletePacket = true;
+ }
+
+ theStats::AddUpOverheadFileRequest(pCancelTransferPacket->GetPacketSize());
+ m_socket->SendPacket(pCancelTransferPacket,bDeletePacket,true);
+ SetSentCancelTransfer(1);
+ }
+}
diff -urdpN ../aMule-2.1.3-orig/src/DownloadListCtrl.cpp ./src/DownloadListCtrl.cpp
--- ../aMule-2.1.3-orig/src/DownloadListCtrl.cpp 2006-03-10 06:02:41.000000000 +0100
+++ ./src/DownloadListCtrl.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -1411,13 +1411,11 @@ void CDownloadListCtrl::DrawFileItem( wx
// Sources
case 6: {
+ uint16 asc = file->GetAduSourceCount();
uint16 sc = file->GetSourceCount();
uint16 ncsc = file->GetNotCurrentSourcesCount();
- if ( ncsc ) {
- text = wxString::Format( wxT("%i/%i" ), sc - ncsc, sc );
- } else {
- text = wxString::Format( wxT("%i"), sc );
- }
+
+ text = wxString::Format( wxT("%i"), asc );
if ( file->GetSrcA4AFCount() ) {
text += wxString::Format( wxT("+%i"), file->GetSrcA4AFCount() );
@@ -1425,6 +1423,12 @@ void CDownloadListCtrl::DrawFileItem( wx
text += wxString::Format( wxT(" (%i)"), file->GetTransferingSrcCount() );
+ if ( ncsc ) {
+ text += wxString::Format( wxT(" E[%i/%i]" ), sc - ncsc, sc );
+ } else {
+ text += wxString::Format( wxT(" E[%i]"), sc );
+ }
+
break;
}
@@ -1600,13 +1604,39 @@ void CDownloadListCtrl::DrawSourceItem(
m_ImageList.Draw(Client_BadGuy_Smiley, *dc, point2.x, point.y,
wxIMAGELIST_DRAW_TRANSPARENT);
}
+
+ // Stefano Picerno: Aggiungo l'immagine giusta a seconda dei flag Adu / Fastweb
+ uint32 client_type = client->GetClientAduType();
+ wxString preUserName = wxString(_(""));
+ if (client_type>ADUNANZA_ANY) {
+ switch (client_type)
+ {
+ case ADUNANZA_ICON_ADU:
+ // Adu protocol -> Draw the 'A' in the lower right
+ m_ImageList.Draw(Client_Adunanza_Flag, *dc, point2.x, point.y, wxIMAGELIST_DRAW_TRANSPARENT);
+ break;
+ case ADUNANZA_ICON_FW:
+ // Client from Fastweb address -> Draw the 'F' in the lower right
+ m_ImageList.Draw(Client_Fastweb_Flag, *dc, point2.x, point.y, wxIMAGELIST_DRAW_TRANSPARENT);
+ break;
+ default:
+ break;
+ }
+ if (client->IsAduFiber())
+ m_ImageList.Draw(Client_Fiber_Flag, *dc, point2.x, point.y, wxIMAGELIST_DRAW_TRANSPARENT);
+
+ if (client->GetClientFWCity().Len())
+ preUserName += _("(") + client->GetClientFWCity() + _(") ");
+
+ }
if ( client->GetUserName().IsEmpty() ) {
- dc->DrawText( wxT("?"), rect.GetX() + 40, rect.GetY() );
+ dc->DrawText( preUserName + wxT("?"), rect.GetX() + 40, rect.GetY() );
} else {
- dc->DrawText( client->GetUserName(), rect.GetX() + 40,
+ dc->DrawText( preUserName + client->GetUserName(), rect.GetX() + 40,
rect.GetY());
}
+ // Fine
}
break;
@@ -1885,8 +1915,8 @@ int CDownloadListCtrl::Compare( const CP
// Sort by number of sources
case 6:
result = CmpAny(
- file1->GetSourceCount(),
- file2->GetSourceCount() );
+ file1->GetAduSourceCount(),
+ file2->GetAduSourceCount() );
break;
// Sort by priority
diff -urdpN ../aMule-2.1.3-orig/src/DownloadQueue.cpp ./src/DownloadQueue.cpp
--- ../aMule-2.1.3-orig/src/DownloadQueue.cpp 2006-02-24 11:37:53.000000000 +0100
+++ ./src/DownloadQueue.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -353,11 +353,11 @@ void CDownloadQueue::Process()
uint32 downspeed = 0;
if (thePrefs::GetMaxDownload() != UNLIMITED && m_datarate > 1500) {
downspeed = (((uint32)thePrefs::GetMaxDownload())*1024*100)/(m_datarate+1);
- if (downspeed < 50) {
+ /*if (downspeed < 50) {
downspeed = 50;
} else if (downspeed > 200) {
downspeed = 200;
- }
+ }*/
}
m_datarate = 0;
@@ -1363,7 +1363,7 @@ void CDownloadQueue::KademliaSearchFile(
}
//Do we need more sources?
- if(!(!temp->IsStopped() && thePrefs::GetMaxSourcePerFile() > temp->GetSourceCount())) {
+ if(!(!temp->IsStopped() && thePrefs::GetMaxSourcePerFile() > temp->GetAduSourceCount())) {
AddDebugLogLineM(false, logKadSearch, wxT("No more sources needed for this file"));
return;
}
@@ -1382,7 +1382,16 @@ void CDownloadQueue::KademliaSearchFile(
}
CUpDownClient* ctemp = NULL;
- switch( type ) {
+
+ // Se il client è nella rete fastweb lo considero sempre non firewalled
+ uint8 adutype;
+ if (type == (uint8)3 && AduIsFastWebLANIP(ED2KID))
+ adutype = 1;
+ else
+ adutype = type;
+
+
+ switch( adutype ) {
case 1: {
//NonFirewalled users
if(!tcp) {
diff -urdpN ../aMule-2.1.3-orig/src/ECSpecialCoreTags.cpp ./src/ECSpecialCoreTags.cpp
--- ../aMule-2.1.3-orig/src/ECSpecialCoreTags.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/ECSpecialCoreTags.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -130,6 +130,7 @@ CEC_PartFile_Tag::CEC_PartFile_Tag(CPart
valuemap.CreateTag(EC_TAG_PARTFILE_STATUS, file->GetStatus(), this);
valuemap.CreateTag(EC_TAG_PARTFILE_SOURCE_COUNT, file->GetSourceCount(), this);
+ valuemap.CreateTag(EC_TAG_PARTFILE_ADU_SOURCE_COUNT, file->GetAduSourceCount(), this);
valuemap.CreateTag(EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT, file->GetNotCurrentSourcesCount(), this);
valuemap.CreateTag(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, file->GetTransferingSrcCount(), this);
valuemap.CreateTag(EC_TAG_PARTFILE_SOURCE_COUNT_A4AF, file->GetSrcA4AFCount(), this);
@@ -166,6 +167,7 @@ CEC_PartFile_Tag::CEC_PartFile_Tag(CPart
AddTag(CECTag(EC_TAG_PARTFILE_STATUS, file->GetStatus()));
AddTag(CECTag(EC_TAG_PARTFILE_SOURCE_COUNT, file->GetSourceCount()));
+ AddTag(CECTag(EC_TAG_PARTFILE_ADU_SOURCE_COUNT, file->GetAduSourceCount()));
AddTag(CECTag(EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT, file->GetNotCurrentSourcesCount()));
AddTag(CECTag(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, file->GetTransferingSrcCount()));
AddTag(CECTag(EC_TAG_PARTFILE_SOURCE_COUNT_A4AF, file->GetSrcA4AFCount()));
diff -urdpN ../aMule-2.1.3-orig/src/EMSocket.cpp ./src/EMSocket.cpp
--- ../aMule-2.1.3-orig/src/EMSocket.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/EMSocket.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -510,10 +510,10 @@ SocketSentBytes CEMSocket::Send(uint32 m
maxNumberOfBytesToSend = GetNextFragSize(maxNumberOfBytesToSend, minFragSize);
- bool bWasLongTimeSinceSend = (::GetTickCount() - lastSent) > 1000;
-
lastCalledSend = ::GetTickCount();
+ bool bWasLongTimeSinceSend = (lastCalledSend - lastSent) > 1000;
+
bool anErrorHasOccured = false;
uint32 sentStandardPacketBytesThisCall = 0;
uint32 sentControlPacketBytesThisCall = 0;
diff -urdpN ../aMule-2.1.3-orig/src/GuiEvents.h ./src/GuiEvents.h
--- ../aMule-2.1.3-orig/src/GuiEvents.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/GuiEvents.h 2006-06-12 18:30:05.000000000 +0200
@@ -150,7 +150,8 @@ enum HTTP_Download_File {
// Auto-updating server.met has a different callback.
HTTP_ServerMetAuto,
HTTP_VersionCheck,
- HTTP_NodesDat
+ HTTP_NodesDat,
+ HTTP_AdunanzaConf
};
DECLARE_LOCAL_EVENT_TYPE(wxEVT_MULE_NOTIFY_EVENT, wxEVT_USER_FIRST+NOTIFY_EVENT)
diff -urdpN ../aMule-2.1.3-orig/src/KadDlg.cpp ./src/KadDlg.cpp
--- ../aMule-2.1.3-orig/src/KadDlg.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/KadDlg.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -93,13 +93,13 @@ void CKadDlg::SetUpdatePeriod(int step)
void CKadDlg::SetGraphColors()
{
- static const char aTrend[] = { 2, 1, 0 };
- static const int aRes[] = { IDC_C0, IDC_C0_3, IDC_C0_2 };
+ static const char aTrend[] = { 3, 2, 1, 0 };
+ static const int aRes[] = { IDC_C1, IDC_C0, IDC_C0_3, IDC_C0_2 };
m_kad_scope->SetBackgroundColor(CStatisticsDlg::getColors(0));
m_kad_scope->SetGridColor(CStatisticsDlg::getColors(1));
- for (size_t i = 0; i < 3; ++i) {
+ for (size_t i = 0; i < 4; ++i) {
m_kad_scope->SetPlotColor(CStatisticsDlg::getColors(12 + i), aTrend[i]);
CColorFrameCtrl* ctrl = CastChild(aRes[i], CColorFrameCtrl);
@@ -111,25 +111,35 @@ void CKadDlg::SetGraphColors()
void CKadDlg::UpdateGraph(bool bStatsVisible, const GraphUpdateInfo& update)
{
- const float* apfKad[] = { &update.kadnodes[0], &update.kadnodes[1], &update.kadnodes[2] };
+ const float* apfKad[] = { &update.kadnodes[0], &update.kadnodes[1], &update.kadnodes[2] , &update.kadnodes[3] };
unsigned nodeCount = static_cast<unsigned>(update.kadnodes[2]);
+ unsigned activeNodeCount = static_cast<unsigned>(update.kadnodes[3]);
if (!bStatsVisible) {
m_kad_scope->DelayPoints();
} else {
+ float range = m_kad_scope->GetUpperLimit();
+
// Check the current node-count to see if we should increase the graph height
- if (m_kad_scope->GetUpperLimit() < update.kadnodes[2]) {
+ if (range > update.kadnodes[1]*1.5) {
+ // If the range is really higher than the average adjust this
+ range = update.kadnodes[1]*1.5;
+ }
+
+ if (range < update.kadnodes[2]) {
// Grow the limit by 50 sized increments.
- m_kad_scope->SetRanges(0.0, ((nodeCount + 49) / 50) * 50);
+ range = ((nodeCount + 49) / 50) * 50;
}
+ m_kad_scope->SetRanges(0.0, range);
+
m_kad_scope->AppendPoints(update.timestamp, apfKad);
}
wxStaticText* label = CastChild( wxT("nodesListLabel"), wxStaticText );
wxCHECK_RET(label, wxT("Failed to find kad-nodes label"));
- label->SetLabel(wxString::Format(_("Nodes (%u)"), nodeCount));
+ label->SetLabel(wxString::Format(_("Active nodes %u (total %u)"), activeNodeCount, nodeCount));
label->GetParent()->Layout();
}
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/kademlia/Entry.h ./src/kademlia/kademlia/Entry.h
--- ../aMule-2.1.3-orig/src/kademlia/kademlia/Entry.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/kademlia/Entry.h 2006-06-12 18:30:05.000000000 +0200
@@ -81,6 +81,19 @@ public:
return 0;
}
+ float GetFloatTagValue(const wxString& tagname) const
+ {
+ TagList::const_iterator it;
+ Kademlia::CTag* tag;
+ for (it = taglist.begin(); it != taglist.end(); ++it) {
+ tag = *it;
+ if (!tag->m_name.Cmp(tagname) && tag->IsFloat()) {
+ return tag->GetFloat();
+ }
+ }
+ return 0.f;
+ }
+
wxString GetStrTagValue(const wxString& tagname) const
{
TagList::const_iterator it;
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/kademlia/Indexed.cpp ./src/kademlia/kademlia/Indexed.cpp
--- ../aMule-2.1.3-orig/src/kademlia/kademlia/Indexed.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/kademlia/Indexed.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -48,12 +48,16 @@ there client on the eMule forum..
#include "../net/KademliaUDPListener.h"
#include "../utils/UInt128.h"
#include "../../OtherFunctions.h"
+#include <common/Format.h>
#include "../kademlia/Tag.h"
#include "../io/FileIO.h"
#include "../io/IOException.h"
#include "amule.h"
#include "Preferences.h"
#include "Logger.h"
+#include <cmath> //for pow in debug
+#include "../../NetworkFunctions.h" //needed still for debug
+#include "RemoteSettings.h"
#include <wx/arrstr.h>
@@ -74,9 +78,9 @@ wxString CIndexed::m_loadfilename;
CIndexed::CIndexed()
{
- m_sfilename = theApp.ConfigDir + wxT("src_index.dat");
- m_kfilename = theApp.ConfigDir + wxT("key_index.dat");
- m_loadfilename = theApp.ConfigDir + wxT("load_index.dat");
+ m_sfilename = theApp.ConfigDir + wxT("src_index.TEST5");
+ m_kfilename = theApp.ConfigDir + wxT("key_index.TEST5");
+ m_loadfilename = theApp.ConfigDir + wxT("load_index.TEST5");
m_lastClean = time(NULL) + (60*30);
m_totalIndexSource = 0;
m_totalIndexKeyword = 0;
@@ -120,8 +124,9 @@ void CIndexed::readFile(void)
uint32 version = k_file.readUInt32();
if( version < 2 ) {
- time_t savetime = k_file.readUInt32();
- if( savetime > time(NULL) ) {
+ uint32 savetime = k_file.readUInt32();
+ uint32 now = (uint32)time(NULL);
+ if( savetime + theApp.rm->kadRepublishTimeK > now ) {
CUInt128 id;
k_file.readUInt128(&id);
@@ -144,6 +149,8 @@ void CIndexed::readFile(void)
while( tagList ) {
CTag* tag = k_file.readTag();
if(tag) {
+ uint32 tmpValue;
+
if (!tag->m_name.Cmp(wxT(TAG_FILENAME))) {
toaddN->fileName = tag->GetStr();
KadTagStrMakeLower(toaddN->fileName); // Make lowercase, the search code expects lower case strings!
@@ -162,6 +169,22 @@ void CIndexed::readFile(void)
} else if (!tag->m_name.Cmp(wxT(TAG_SOURCEUPORT))) {
toaddN->udpport = tag->GetInt();
toaddN->taglist.push_back(tag);
+ // Mod Adu
+ // lupz
+ // riallineo alla data attuale le date memorizzate
+ // è necessario per manterenere un comportamento coerente anche tra i
+ // muli che non stanno online h24
+ } else if ( !tag->m_name.Cmp(wxT(TAG_KADFIRSTPUBLISH)) ||
+ !tag->m_name.Cmp(wxT(TAG_KADLASTPUBLISH)) ||
+ !tag->m_name.Cmp(wxT(TAG_KADCOMPLETE_FIRSTPUBLISH)) ||
+ !tag->m_name.Cmp(wxT(TAG_KADCOMPLETE_LASTPUBLISH)))
+ {
+ wxString tmpTagName = wxString(tag->m_name);
+ tmpValue = tag->GetInt() + (now - savetime);
+ delete tag;
+ tag = new CTagUInt32(tmpTagName, tmpValue);
+ toaddN->taglist.push_back(tag);
+ // Fine mod adu
} else {
toaddN->taglist.push_back(tag);
}
@@ -171,9 +194,10 @@ void CIndexed::readFile(void)
toaddN->keyID.setValue(keyID);
toaddN->sourceID.setValue(sourceID);
uint8 load = 0;
- if(AddKeyword(keyID, sourceID, toaddN, load)) {
+ if(AddKeyword(keyID, sourceID, toaddN, load, true)) {
totalKeyword++;
} else {
+ AddDebugLogLineM( false, logKadIndex, CFormat(wxT("Scartato file: %s")) % toaddN->fileName);
delete toaddN;
}
numName--;
@@ -293,7 +317,7 @@ CIndexed::~CIndexed()
uint32 version = 1;
s_file.writeUInt32(version);
- s_file.writeUInt32(time(NULL)+KADEMLIAREPUBLISHTIMES);
+ s_file.writeUInt32(time(NULL)+theApp.rm->kadRepublishTimeS);
s_file.writeUInt32(m_Sources_map.size());
SrcHashMap::iterator itSrcHash = m_Sources_map.begin();
@@ -333,7 +357,7 @@ CIndexed::~CIndexed()
uint32 version = 1;
k_file.writeUInt32(version);
- k_file.writeUInt32(time(NULL)+KADEMLIAREPUBLISHTIMEK);
+ k_file.writeUInt32(time(NULL));
k_file.writeUInt128(Kademlia::CKademlia::getPrefs()->getKadID());
@@ -486,7 +510,7 @@ void CIndexed::clean(void)
m_lastClean = time(NULL) + MIN2S(30);
}
-bool CIndexed::AddKeyword(const CUInt128& keyID, const CUInt128& sourceID, Kademlia::CEntry* entry, uint8& load)
+bool CIndexed::AddKeyword(const CUInt128& keyID, const CUInt128& sourceID, Kademlia::CEntry* entry, uint8& load,bool loading)
{
if( !entry ) {
return false;
@@ -503,9 +527,21 @@ bool CIndexed::AddKeyword(const CUInt128
KeyHashMap::iterator itKeyHash = m_Keyword_map.find(keyID);
KeyHash* currKeyHash = NULL;
+ float avail = 1.f, cavail = 1.f;
+ uint32 now = (uint32)time(NULL);
+
if(itKeyHash == m_Keyword_map.end()) {
Source* currSource = new Source;
currSource->sourceID.setValue(sourceID);
+ if (!loading) {
+ entry->taglist.push_back(new CTagFloat(TAG_KADSOURCES, avail));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADFIRSTPUBLISH, now));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADLASTPUBLISH, now));
+
+ entry->taglist.push_back(new CTagFloat(TAG_KADCOMPLETE_SOURCES, cavail));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADCOMPLETE_FIRSTPUBLISH, now));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADCOMPLETE_LASTPUBLISH, now));
+ }
currSource->entryList.push_front(entry);
currKeyHash = new KeyHash;
currKeyHash->keyID.setValue(keyID);
@@ -526,24 +562,71 @@ bool CIndexed::AddKeyword(const CUInt128
CSourceKeyMap::iterator itSource = currKeyHash->m_Source_map.find(sourceID);
if(itSource != currKeyHash->m_Source_map.end()) {
currSource = itSource->second;
+ Kademlia::CEntry* currEntry = NULL;
+ uint32 firstPublish = now, cfirstPublish = now;
+
if (currSource->entryList.size() > 0) {
- if( indexTotal > KADEMLIAMAXINDEX - 5000 ) {
- load = 100;
- //We are in a hot node.. If we continued to update all the publishes
- //while this index is full, popular files will be the only thing you index.
- return false;
- }
- delete currSource->entryList.front();
+ currEntry = currSource->entryList.front();
+ avail = currEntry->GetFloatTagValue(wxT(TAG_KADSOURCES));
+ firstPublish = currEntry->GetIntTagValue(wxT(TAG_KADFIRSTPUBLISH));
+ uint32 publishInterval = (uint32)(now - currEntry->GetIntTagValue(wxT(TAG_KADLASTPUBLISH)));
+ uint32 pubkRTK = currEntry->GetIntTagValue(wxT(TAG_KADREPUBLISHTIMEK));
+
+ avail = calcolaStima( avail, firstPublish, publishInterval, pubkRTK, entry->ip == currEntry->ip, now);
+
+ cavail = currEntry->GetFloatTagValue(wxT(TAG_KADCOMPLETE_SOURCES));
+ cfirstPublish = currEntry->GetIntTagValue(wxT(TAG_KADCOMPLETE_FIRSTPUBLISH));
+
+ uint32 complete = currEntry->GetIntTagValue(wxT(TAG_KADCOMPLETE));
+
+ if ( complete ) {
+ uint32 cpublishInterval = (uint32)(now - currEntry->GetIntTagValue(wxT(TAG_KADCOMPLETE_LASTPUBLISH)));
+
+ cavail = calcolaStima( cavail, cfirstPublish, cpublishInterval, pubkRTK, entry->ip == currEntry->ip, now);
+ }
+
+#if ADU_BETA_MAJ > 0
+
+ AddDebugLogLineM( false, logKadIndex, CFormat(wxT("Estimated %.0f (N: %.0f) sources after %s publish for ed2k://|file|%s|%u|%s|/"))
+ % avail
+ % normalizzaStima(avail, firstPublish, now)
+ % Uint32toStringIP(wxUINT32_SWAP_ALWAYS(entry->ip))
+ % entry->fileName
+ % entry->size
+ % sourceID.toHexString() );
+
+ // END
+#endif
+
+ delete currEntry;
currSource->entryList.pop_front();
} else {
m_totalIndexKeyword++;
}
load = (indexTotal*100)/KADEMLIAMAXINDEX;
+
+ entry->taglist.push_back(new CTagFloat(TAG_KADSOURCES, avail));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADFIRSTPUBLISH, firstPublish));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADLASTPUBLISH, now));
+
+ entry->taglist.push_back(new CTagFloat(TAG_KADCOMPLETE_SOURCES, cavail));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADCOMPLETE_FIRSTPUBLISH, cfirstPublish));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADCOMPLETE_LASTPUBLISH, now));
+
currSource->entryList.push_front(entry);
return true;
} else {
currSource = new Source;
currSource->sourceID.setValue(sourceID);
+ if (!loading) {
+ entry->taglist.push_back(new CTagFloat(TAG_KADSOURCES, avail));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADFIRSTPUBLISH, now));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADLASTPUBLISH, now));
+
+ entry->taglist.push_back(new CTagFloat(TAG_KADCOMPLETE_SOURCES, cavail));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADCOMPLETE_FIRSTPUBLISH, now));
+ entry->taglist.push_back(new CTagUInt32(TAG_KADCOMPLETE_LASTPUBLISH, now));
+ }
currSource->entryList.push_front(entry);
currKeyHash->m_Source_map[currSource->sourceID] = currSource;
m_totalIndexKeyword++;
@@ -593,18 +676,18 @@ bool CIndexed::AddSources(const CUInt128
currSource->entryList.pop_front();
delete currName;
currSource->entryList.push_front(entry);
- load = (size*100)/KADEMLIAMAXSOUCEPERFILE;
+ load = (size*100)/theApp.rm->kadMaxSrcFile;
return true;
}
} else {
//This should never happen!
currSource->entryList.push_front(entry);
wxASSERT(0);
- load = (size*100)/KADEMLIAMAXSOUCEPERFILE;
+ load = (size*100)/theApp.rm->kadMaxSrcFile;
return true;
}
}
- if( size > KADEMLIAMAXSOUCEPERFILE ) {
+ if( size > theApp.rm->kadMaxSrcFile ) {
Source* currSource = currSrcHash->m_Source_map.back();
currSrcHash->m_Source_map.pop_back();
wxASSERT(currSource!=NULL);
@@ -623,7 +706,7 @@ bool CIndexed::AddSources(const CUInt128
currSource->entryList.push_front(entry);
currSrcHash->m_Source_map.push_front(currSource);
m_totalIndexSource++;
- load = (size*100)/KADEMLIAMAXSOUCEPERFILE;
+ load = (size*100)/theApp.rm->kadMaxSrcFile;
return true;
}
}
@@ -667,18 +750,18 @@ bool CIndexed::AddNotes(const CUInt128&
currNote->entryList.pop_front();
delete currName;
currNote->entryList.push_front(entry);
- load = (size*100)/KADEMLIAMAXNOTESPERFILE;
+ load = (size*100)/theApp.rm->kadMaxNotFile;
return true;
}
} else {
//This should never happen!
currNote->entryList.push_front(entry);
wxASSERT(0);
- load = (size*100)/KADEMLIAMAXNOTESPERFILE;
+ load = (size*100)/theApp.rm->kadMaxNotFile;
return true;
}
}
- if( size > KADEMLIAMAXNOTESPERFILE ) {
+ if( size > theApp.rm->kadMaxNotFile ) {
Source* currNote = currNoteHash->m_Source_map.back();
currNoteHash->m_Source_map.pop_back();
wxASSERT(currNote!=NULL);
@@ -696,7 +779,7 @@ bool CIndexed::AddNotes(const CUInt128&
currNote->sourceID.setValue(sourceID);
currNote->entryList.push_front(entry);
currNoteHash->m_Source_map.push_front(currNote);
- load = (size*100)/KADEMLIAMAXNOTESPERFILE;
+ load = (size*100)/theApp.rm->kadMaxNotFile;
return true;
}
}
@@ -952,7 +1035,7 @@ void CIndexed::SendValidKeywordResult(co
currKeyHash = itKeyHash->second;
byte packet[1024*50];
CByteIO bio(packet,sizeof(packet));
- bio.writeByte(OP_KADEMLIAHEADER);
+ bio.writeByte(theApp.rm->kadOpcode);
bio.writeByte(KADEMLIA_SEARCH_RES);
bio.writeUInt128(keyID);
bio.writeUInt16(50);
@@ -975,7 +1058,7 @@ void CIndexed::SendValidKeywordResult(co
AddDebugLogLineM(false, logClientKadUDP, wxT("KadSearchRes ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip), port));
CKademlia::getUDPListener()->sendPacket(packet, len, ip, port);
bio.reset();
- bio.writeByte(OP_KADEMLIAHEADER);
+ bio.writeByte(theApp.rm->kadOpcode);
bio.writeByte(KADEMLIA_SEARCH_RES);
bio.writeUInt128(keyID);
bio.writeUInt16(50);
@@ -1004,7 +1087,7 @@ void CIndexed::SendValidSourceResult(con
currSrcHash = itSrcHash->second;
byte packet[1024*50];
CByteIO bio(packet,sizeof(packet));
- bio.writeByte(OP_KADEMLIAHEADER);
+ bio.writeByte(theApp.rm->kadOpcode);
bio.writeByte(KADEMLIA_SEARCH_RES);
bio.writeUInt128(keyID);
bio.writeUInt16(50);
@@ -1025,7 +1108,7 @@ void CIndexed::SendValidSourceResult(con
AddDebugLogLineM(false, logClientKadUDP, wxT("KadSearchRes ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip) , port));
CKademlia::getUDPListener()->sendPacket(packet, len, ip, port);
bio.reset();
- bio.writeByte(OP_KADEMLIAHEADER);
+ bio.writeByte(theApp.rm->kadOpcode);
bio.writeByte(KADEMLIA_SEARCH_RES);
bio.writeUInt128(keyID);
bio.writeUInt16(50);
@@ -1053,7 +1136,7 @@ void CIndexed::SendValidNoteResult(const
currNoteHash = itNote->second;
byte packet[1024*50];
CByteIO bio(packet,sizeof(packet));
- bio.writeByte(OP_KADEMLIAHEADER);
+ bio.writeByte(theApp.rm->kadOpcode);
bio.writeByte(KADEMLIA_SRC_NOTES_RES);
bio.writeUInt128(keyID);
bio.writeUInt16(50);
@@ -1074,7 +1157,7 @@ void CIndexed::SendValidNoteResult(const
AddDebugLogLineM(false, logClientKadUDP, wxT("KadNotesRes ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip), port));
CKademlia::getUDPListener()->sendPacket(packet, len, ip, port);
bio.reset();
- bio.writeByte(OP_KADEMLIAHEADER);
+ bio.writeByte(theApp.rm->kadOpcode);
bio.writeByte(KADEMLIA_SRC_NOTES_RES);
bio.writeUInt128(keyID);
bio.writeUInt16(50);
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/kademlia/Indexed.h ./src/kademlia/kademlia/Indexed.h
--- ../aMule-2.1.3-orig/src/kademlia/kademlia/Indexed.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/kademlia/Indexed.h 2006-06-12 18:30:05.000000000 +0200
@@ -122,7 +122,7 @@ public:
CIndexed();
~CIndexed();
- bool AddKeyword(const CUInt128& keyWordID, const CUInt128& sourceID, Kademlia::CEntry* entry, uint8& load);
+ bool AddKeyword(const CUInt128& keyWordID, const CUInt128& sourceID, Kademlia::CEntry* entry, uint8& load,bool loading = false);
bool AddSources(const CUInt128& keyWordID, const CUInt128& sourceID, Kademlia::CEntry* entry, uint8& load);
bool AddNotes(const CUInt128& keyID, const CUInt128& sourceID, Kademlia::CEntry* entry, uint8& load);
bool AddLoad(const CUInt128& keyID, uint32 time);
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/kademlia/Prefs.cpp ./src/kademlia/kademlia/Prefs.cpp
--- ../aMule-2.1.3-orig/src/kademlia/kademlia/Prefs.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/kademlia/Prefs.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -110,6 +110,13 @@ void CPrefs::readFile()
} catch (const CSafeIOException& e) {
AddDebugLogLineM(true, logKadPrefs, wxT("IO error while reading prefs: ") + e.what());
}
+
+ // Mod Adu
+ // lupz
+ // evitiamo di avere client con id tutto nullo
+ if (m_clientID == 0)
+ m_clientID.setValueRandom();
+ // Fine mod Adu
}
void CPrefs::writeFile()
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/kademlia/Search.cpp ./src/kademlia/kademlia/Search.cpp
--- ../aMule-2.1.3-orig/src/kademlia/kademlia/Search.cpp 2006-02-11 02:23:21.000000000 +0100
+++ ./src/kademlia/kademlia/Search.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -65,6 +65,9 @@ typedef CTag ed2kCTag;
#include "updownclient.h"
#include "Logger.h"
#include "../../Preferences.h"
+#include <common/Format.h>
+#include <cmath>
+#include "RemoteSettings.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -132,6 +135,10 @@ CSearch::~CSearch()
// WTF?
}
}
+
+ if (!m_unique_found_srcs.empty() && temp) {
+ AddDebugLogLineM(false, logKadIndex, wxString::Format(wxT("Got total results %d for %s"), m_unique_found_srcs.size(), temp->GetFileName().c_str()) );
+ }
}
void CSearch::go(void)
@@ -264,7 +271,7 @@ void CSearch::processResponse(uint32 fro
// Not interested in responses for FIND_NODE, will be added to contacts by udp listener
if (m_type == NODE) {
- AddDebugLogLineM(false, logKadSearch, wxT("Node type search result, discarding."));
+ AddDebugLogLineM(false, logKadSearch, wxT("Node type search result, discarding. node: ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(fromIP),fromPort));
m_answers++;
m_possible.clear();
delete results;
@@ -388,7 +395,7 @@ void CSearch::StorePacket()
break;
}
case STOREFILE: {
- AddDebugLogLineM(false, logKadSearch, wxT("Search result type: StoreFile"));
+ //AddDebugLogLineM(false, logKadSearch, wxT("Search result type: StoreFile"));
if( m_answers > SEARCHSTOREFILE_TOTAL ) {
prepareToStop();
break;
@@ -437,7 +444,7 @@ void CSearch::StorePacket()
break;
}
case STOREKEYWORD: {
- AddDebugLogLineM(false, logKadSearch, wxT("Search result type: StoreKeyword"));
+ //AddDebugLogLineM(false, logKadSearch, wxT("Search result type: StoreKeyword"));
if( m_answers > SEARCHSTOREKEYWORD_TOTAL ) {
prepareToStop();
break;
@@ -458,7 +465,7 @@ void CSearch::StorePacket()
break;
}
case STORENOTES: {
- AddDebugLogLineM(false, logKadSearch, wxT("Search result type: StoreNotes"));
+ //AddDebugLogLineM(false, logKadSearch, wxT("Search result type: StoreNotes"));
byte fileid[16];
m_target.toByteArray(fileid);
CKnownFile* file = theApp.sharedfiles->GetFileByID(CMD4Hash(fileid));
@@ -554,7 +561,7 @@ void CSearch::processResult(uint32 fromI
processResultNotes(fromIP, fromPort, answer, info);
break;
}
- AddDebugLogLineM(false, logKadSearch, wxT("Got result ") + type + wxT(" from ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(fromIP),fromPort));
+ //AddDebugLogLineM(false, logKadSearch, wxT("Got result ") + type + wxT(" from ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(fromIP),fromPort));
}
void CSearch::processResultFile(uint32 WXUNUSED(fromIP), uint16 WXUNUSED(fromPort), const CUInt128 &answer, TagList *info)
@@ -602,6 +609,8 @@ void CSearch::processResultFile(uint32 W
}
delete info;
+ m_unique_found_srcs[ip] = type;
+
switch( type ) {
case 1:
case 3: {
@@ -675,7 +684,7 @@ void CSearch::processResultNotes(uint32
}
}
-void CSearch::processResultKeyword(uint32 WXUNUSED(fromIP), uint16 WXUNUSED(fromPort), const CUInt128 &answer, TagList *info)
+void CSearch::processResultKeyword(uint32 fromIP, uint16 fromPort, const CUInt128 &answer, TagList *info)
{
bool interested = false;
wxString name;
@@ -689,6 +698,9 @@ void CSearch::processResultKeyword(uint3
wxString codec;
uint32 bitrate = 0;
uint32 availability = 0;
+ float kadavailability = 0.f;
+ uint32 first = 0;
+ uint32 last = 0;
for (TagList::const_iterator it = info->begin(); it != info->end(); ++it) {
CTag* tag = *it;
@@ -714,6 +726,12 @@ void CSearch::processResultKeyword(uint3
bitrate = tag->GetInt();
} else if (!tag->m_name.Cmp(wxT(TAG_MEDIA_CODEC))) {
codec = tag->GetStr();
+ } else if (!tag->m_name.Cmp(wxT(TAG_KADFIRSTPUBLISH))) {
+ first = tag->GetInt();
+ } else if (!tag->m_name.Cmp(wxT(TAG_KADLASTPUBLISH))) {
+ last = tag->GetInt();
+ } else if (!tag->m_name.Cmp(wxT(TAG_KADSOURCES))) {
+ kadavailability = tag->GetFloat();
} else if (!tag->m_name.Cmp(wxT(TAG_SOURCES))) {
availability = tag->GetInt();
if( availability > 65500 ) {
@@ -724,6 +742,8 @@ void CSearch::processResultKeyword(uint3
}
delete info;
+ kadavailability = normalizzaStima( kadavailability, first, last );
+
// Check that it matches original criteria
// generally this is ok, but with the transition of Kad from ACP to Unicode we may receive 'wrong' results in the next months which are
// actually not 'wrong' (don't ask for a detailed explanation)
@@ -770,7 +790,10 @@ void CSearch::processResultKeyword(uint3
taglist.push_back(new ed2kCTag(TAG_MEDIA_BITRATE, bitrate));
}
if (availability) {
- taglist.push_back(new ed2kCTag(TAG_SOURCES, availability));
+ taglist.push_back(new ed2kCTag(TAG_COMPLETE_SOURCES, availability));
+ }
+ if (kadavailability) {
+ taglist.push_back(new ed2kCTag(TAG_SOURCES, (uint32)kadavailability));
}
if (interested) {
@@ -797,19 +820,19 @@ void CSearch::sendFindValue(const CUInt1
switch(m_type){
case NODE:
case NODECOMPLETE:
- bio.WriteUInt8(KADEMLIA_FIND_NODE);
+ bio.WriteUInt8(theApp.rm->kadFindNode);
break;
case FILE:
case KEYWORD:
case FINDSOURCE:
case NOTES:
- bio.WriteUInt8(KADEMLIA_FIND_VALUE);
+ bio.WriteUInt8(theApp.rm->kadFindValue);
break;
case FINDBUDDY:
case STOREFILE:
case STOREKEYWORD:
case STORENOTES:
- bio.WriteUInt8(KADEMLIA_STORE);
+ bio.WriteUInt8(theApp.rm->kadStore);
break;
default:
AddDebugLogLineM(false, logKadSearch, wxT("Invalid search type. (CSearch::sendFindValue)"));
@@ -872,7 +895,9 @@ void CSearch::PreparePacketForTags( CByt
taglist.push_back(new CTagStr(TAG_FILENAME, file->GetFileName()));
taglist.push_back(new CTagUInt(TAG_FILESIZE, file->GetFileSize()));
taglist.push_back(new CTagUInt(TAG_SOURCES, (uint32)file->m_nCompleteSourcesCount));
-
+ taglist.push_back(new CTagUInt32(TAG_KADREPUBLISHTIMEK, theApp.rm->kadRepublishTimeK));
+ taglist.push_back(new CTagUInt(TAG_KADCOMPLETE, ( file->IsPartFile() ? 0 : 1 )));
+
// eD2K file type (Audio, Video, ...)
// NOTE: Archives and CD-Images are published with file type "Pro"
wxString strED2KFileType(GetED2KFileTypeSearchTerm(GetED2KFileTypeID(file->GetFileName())));
@@ -953,7 +978,7 @@ void CSearch::PreparePacket(void)
}
if( count > 100 ) {
bio3 = new CByteIO(packet3,sizeof(packet3));
- bio3->writeByte(OP_KADEMLIAHEADER);
+ bio3->writeByte(theApp.rm->kadOpcode);
bio3->writeByte(KADEMLIA_PUBLISH_REQ);
bio3->writeUInt128(m_target);
bio3->writeUInt16(count-100);
@@ -973,7 +998,7 @@ void CSearch::PreparePacket(void)
}
if( count > 50 ) {
bio2 = new CByteIO(packet2,sizeof(packet2));
- bio2->writeByte(OP_KADEMLIAHEADER);
+ bio2->writeByte(theApp.rm->kadOpcode);
bio2->writeByte(KADEMLIA_PUBLISH_REQ);
bio2->writeUInt128(m_target);
bio2->writeUInt16(count-50);
@@ -993,7 +1018,7 @@ void CSearch::PreparePacket(void)
}
if( count > 0 ) {
bio1 = new CByteIO(packet1,sizeof(packet1));
- bio1->writeByte(OP_KADEMLIAHEADER);
+ bio1->writeByte(theApp.rm->kadOpcode);
bio1->writeByte(KADEMLIA_PUBLISH_REQ);
bio1->writeUInt128(m_target);
bio1->writeUInt16(count);
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/kademlia/Search.h ./src/kademlia/kademlia/Search.h
--- ../aMule-2.1.3-orig/src/kademlia/kademlia/Search.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/kademlia/Search.h 2006-06-12 18:30:05.000000000 +0200
@@ -148,6 +148,7 @@ private:
ContactMap m_best;
ContactList m_delete;
ContactMap m_inUse;
+ std::map<uint32, uint8> m_unique_found_srcs;
};
} // End namespace
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/net/KademliaUDPListener.cpp ./src/kademlia/net/KademliaUDPListener.cpp
--- ../aMule-2.1.3-orig/src/kademlia/net/KademliaUDPListener.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/net/KademliaUDPListener.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -58,6 +58,11 @@ there client on the eMule forum..
#include "../../Logger.h"
#include <common/Format.h>
#include "../../Preferences.h"
+#include "../../RemoteSettings.h"
+
+// Stefano Picerno: ADunanzaA Mod
+#include "../../AdunanzA.h"
+// FIne mod
#include <wx/tokenzr.h>
#include <wx/arrstr.h>
@@ -93,6 +98,8 @@ void CKademliaUDPListener::sendMyDetails
bio.WriteUInt16(thePrefs::GetEffectiveUDPPort());
bio.WriteUInt16(thePrefs::GetPort());
bio.WriteUInt8(0);
+ if (opcode==KADEMLIA_HELLO_REQ || opcode==KADEMLIA_HELLO_RES)
+ AddDebugLogLineM(false, logClientKadUDP, CFormat(wxT("Hello to %s")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip), port));
sendPacket(&bio, opcode, ip, port);
}
@@ -115,7 +122,7 @@ void CKademliaUDPListener::publishPacket
//We need to get the tag lists working with CMemFiles..
byte packet[1024];
CByteIO bio(packet, sizeof(packet));
- bio.writeByte(OP_KADEMLIAHEADER);
+ bio.writeByte(theApp.rm->kadOpcode);
bio.writeByte(KADEMLIA_PUBLISH_REQ);
bio.writeUInt128(targetID);
//We only use this for publishing sources now.. So we always send one here..
@@ -128,6 +135,13 @@ void CKademliaUDPListener::publishPacket
void CKademliaUDPListener::processPacket(const byte* data, uint32 lenData, uint32 ip, uint16 port)
{
+ // Stefano Picerno: Modifica Adu
+ if (!AduIsValidKaduAddress( ip ) )
+ {
+ AddDebugLogLineM(false, logKadMain, CFormat(wxT("Skipping processPacket from non kADU %s")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip), port));
+ return;
+ }
+ // Fine Modifica
//Update connection state only when it changes.
bool curCon = CKademlia::getPrefs()->hasHadContact();
CKademlia::getPrefs()->setLastContact();
@@ -228,6 +242,13 @@ void CKademliaUDPListener::processPacket
void CKademliaUDPListener::addContact( const byte *data, uint32 lenData, uint32 ip, uint16 port, uint16 tport)
{
+ // Stefano Picerno: mod adu
+ if (!AduIsValidKaduAddress( ip ) )
+ {
+ AddDebugLogLineM(false, logKadMain, CFormat(wxT("Skipping addContact non kADU %s")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip), port));
+ return;
+ }
+ // Fine Modifica
CMemFile bio((byte*)data, lenData);
CUInt128 id = bio.ReadUInt128();
bio.ReadUInt32();
@@ -253,10 +274,13 @@ void CKademliaUDPListener::addContact( c
}
}
-void CKademliaUDPListener::addContacts( const byte *data, uint32 lenData, uint16 numContacts)
+bool CKademliaUDPListener::addContacts( const byte *data, uint32 lenData, uint16 numContacts)
{
CMemFile bio((byte*)data, lenData );
CRoutingZone *routingZone = CKademlia::getRoutingZone();
+
+ bool bOnlyFastweb = true;
+
for (uint16 i=0; i<numContacts; i++) {
CUInt128 id = bio.ReadUInt128();
uint32 ip = bio.ReadUInt32();
@@ -266,9 +290,14 @@ void CKademliaUDPListener::addContacts(
byte type = bio.ReadUInt8();
//AddDebugLogLineM(false, logKadMain, wxT("Adding contact(s) with ip ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip),port));
if (IsGoodIPPort(wxUINT32_SWAP_ALWAYS(ip),port)) {
- routingZone->add(id, ip, port, tport, type);
+ if (AduIsValidKaduAddress( ip ))
+ routingZone->add(id, ip, port, tport, type);
+ else
+ bOnlyFastweb = false;
}
}
+
+ return bOnlyFastweb;
}
//KADEMLIA_BOOTSTRAP_REQ
@@ -334,7 +363,12 @@ void CKademliaUDPListener::processBootst
}
// Add these contacts to the list.
- addContacts(packetData+2, lenPacket-2, numContacts);
+ if (!addContacts(packetData+2, lenPacket-2, numContacts))
+ {
+ // This packet did contain NON fastweb addresses
+ //
+ // TODO: Add to blacklist
+ }
// Send sender to alive.
CKademlia::getRoutingZone()->setAlive(ip, port);
}
@@ -398,7 +432,11 @@ void CKademliaUDPListener::processKademl
// bool flag2 = (type >> 7); //Reserved
// bool flag3 = (type >> 8); //Reserved
- type = type & 0x1F;
+ int req=type;
+
+ //type = type & 0x1F;
+ type=std::min((int)type,56);
+
if( type == 0 ) {
throw wxString::Format(wxT("***NOTE: Received wrong type (0x%02x) in "), type) + wxString::FromAscii(__FUNCTION__);
}
@@ -419,10 +457,12 @@ void CKademliaUDPListener::processKademl
CKademlia::getRoutingZone()->getClosestTo(2, target, distance, (int)type, &results);
uint16 count = (uint16)results.size();
+ AddDebugLogLineM(false, logKadRouting, CFormat(wxT("KadRes %s requested: %u max: %u found: %u")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip), port) % req % type % count);
+
// Write response
- // Max count is 32. size 817..
- // 16 + 1 + 25(32)
- CMemFile bio2( 817 );
+ // Max count is 56. size 1417..
+ // 16 + 1 + 25(56)
+ CMemFile bio2( 1417 );
bio2.WriteUInt128(target);
bio2.WriteUInt8((byte)count);
CContact *c;
@@ -462,6 +502,7 @@ void CKademliaUDPListener::processKademl
CMemFile bio((byte*)packetData, lenPacket);
CUInt128 target = bio.ReadUInt128();
uint16 numContacts = bio.ReadUInt8();
+ AddDebugLogLineM(false, logKadRouting, CFormat(wxT("KadRes %s found: %u")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip), port) % numContacts);
// Verify packet is expected size
if (lenPacket != (uint32)(16+1 + (16+4+2+2+1)*numContacts)) {
@@ -480,7 +521,7 @@ void CKademliaUDPListener::processKademl
uint16 contactPort = bio.ReadUInt16();
uint16 tport = bio.ReadUInt16();
byte type = bio.ReadUInt8();
- if(::IsGoodIPPort(wxUINT32_SWAP_ALWAYS(contactIP),contactPort)) {
+ if(::IsGoodIPPort(wxUINT32_SWAP_ALWAYS(contactIP),contactPort) && AduIsValidKaduAddress(contactIP)) {
routingZone->add(id, contactIP, contactPort, tport, type);
results->push_back(new CContact(id, contactIP, contactPort, tport, target));
}
@@ -725,6 +766,7 @@ void CKademliaUDPListener::processSearch
CSearchManager::processResult(target, ip, port, answer, tags);
count--;
}
+ AddDebugLogLineM(false, logKadSearch, wxT("Got result from ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip),port));
}
//KADEMLIA_PUBLISH_REQ
@@ -1191,6 +1233,14 @@ void CKademliaUDPListener::processCallba
void CKademliaUDPListener::sendPacket(const byte *data, uint32 lenData, uint32 destinationHost, uint16 destinationPort)
{
+ // inizio mod Adu
+ if (!AduIsValidKaduAddress( destinationHost ) )
+ {
+ AddDebugLogLineM(false, logKadMain, CFormat(wxT("Skipping sendPacket to non kADU %s")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(destinationHost), destinationPort));
+ return;
+ }
+ // Fine mod Adu
+
//This is temp.. The entire Kad code will be rewritten using CMemFile and send a Packet object directly.
CMemFile mem_data((byte*)data+2,lenData-2);
sendPacket(&mem_data,data[1],destinationHost, destinationPort);
@@ -1198,13 +1248,28 @@ void CKademliaUDPListener::sendPacket(co
void CKademliaUDPListener::sendPacket(const byte *data, uint32 lenData, byte opcode, uint32 destinationHost, uint16 destinationPort)
{
+ // inizio mod Adu
+ if (!AduIsValidKaduAddress( destinationHost ) )
+ {
+ AddDebugLogLineM(false, logKadMain, CFormat(wxT("Skipping sendPacket to non kADU %s")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(destinationHost), destinationPort));
+ return;
+ }
+ // Fine mod Adu
+
CMemFile mem_data((byte*)data,lenData);
sendPacket(&mem_data,opcode,destinationHost, destinationPort);
}
void CKademliaUDPListener::sendPacket(CMemFile *data, byte opcode, uint32 destinationHost, uint16 destinationPort)
{
- CPacket* packet = new CPacket(data, OP_KADEMLIAHEADER, opcode);
+ // inizio mod Adu
+ if (!AduIsValidKaduAddress( destinationHost ) )
+ {
+ AddDebugLogLineM(false, logKadMain, CFormat(wxT("Skipping sendPacket to non kADU %s")) % Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(destinationHost), destinationPort));
+ return;
+ }
+ // Fine mod Adu
+ CPacket* packet = new CPacket(data, theApp.rm->kadOpcode, opcode);
if( packet->GetPacketSize() > 200 ) {
packet->PackPacket();
}
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/net/KademliaUDPListener.h ./src/kademlia/net/KademliaUDPListener.h
--- ../aMule-2.1.3-orig/src/kademlia/net/KademliaUDPListener.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/net/KademliaUDPListener.h 2006-06-12 18:30:05.000000000 +0200
@@ -72,7 +72,8 @@ public:
private:
void addContact (const byte* data, uint32 lenData, uint32 ip, uint16 port, uint16 tport = 0);
- void addContacts(const byte* data, uint32 lenData, uint16 numContacts);
+ // Stefano Picerno: Aggiunto il valore di ritorno. Se e' true, tutti i contatti sono validi e sono stati aggiunti.
+ bool addContacts(const byte* data, uint32 lenData, uint16 numContacts);
static SSearchTerm* CreateSearchExpressionTree(CMemFile& bio, int iLevel);
static void Free(SSearchTerm* pSearchTerms);
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/routing/Contact.cpp ./src/kademlia/routing/Contact.cpp
--- ../aMule-2.1.3-orig/src/kademlia/routing/Contact.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/kademlia/routing/Contact.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -54,6 +54,9 @@ using namespace Kademlia;
CContact::~CContact()
{
theStats::RemoveKadNode();
+
+ if (m_type<3)
+ theStats::RemoveActiveKadNode();
}
CContact::CContact()
@@ -152,11 +155,18 @@ void CContact::checkingType()
m_expires = time(NULL) + MIN2S(2);
m_type++;
+ if (m_type==3)
+ theStats::RemoveActiveKadNode();
+
}
void CContact::updateType()
{
uint32 hours = (time(NULL)-m_created)/HR2S(1);
+
+ if (m_type>2)
+ theStats::AddActiveKadNode();
+
switch(hours) {
case 0:
m_type = 2;
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/routing/RoutingZone.cpp ./src/kademlia/routing/RoutingZone.cpp
--- ../aMule-2.1.3-orig/src/kademlia/routing/RoutingZone.cpp 2006-03-10 05:07:58.000000000 +0100
+++ ./src/kademlia/routing/RoutingZone.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -64,6 +64,13 @@ there client on the eMule forum..
#include "../../Logger.h"
#include "../../NetworkFunctions.h"
#include "../../ArchSpecific.h"
+#include "../../GuiEvents.h"
+#include <wx/stream.h>
+#include "../../HTTPDownload.h" // Needed for CHTTPDownloadThreadBase
+// Stefano Picerno: MOd ADunanza
+#include "../../AdunanzA.h"
+// Fine mod
+
#warning EC
#ifndef AMULE_DAEMON
@@ -140,8 +147,9 @@ CRoutingZone::~CRoutingZone()
void CRoutingZone::readFile(void)
{
+ uint32 numContacts = 0;
+
try {
- uint32 numContacts = 0;
CFile file;
if (file.Open(m_filename, CFile::read)) {
@@ -154,6 +162,7 @@ void CRoutingZone::readFile(void)
byte type = file.ReadUInt8();
if(IsGoodIPPort(wxUINT32_SWAP_ALWAYS(ip),udpPort)) {
if( type < 4) {
+
add(id, ip, udpPort, tcpPort, type);
}
}
@@ -166,6 +175,15 @@ void CRoutingZone::readFile(void)
} catch (const CSafeIOException& e) {
AddDebugLogLineM(false, logKadRouting, wxT("IO error in CRoutingZone::readFile: ") + e.what());
}
+
+ if (numContacts == 0) {
+ wxString strURL(wxT(ADU_NODES_DAT));
+ wxString tmpFile(m_filename + wxT(".download"));
+
+ CHTTPDownloadThread *downloader = new CHTTPDownloadThread(strURL, tmpFile, HTTP_NodesDat);
+ downloader->Create();
+ downloader->Run();
+ }
}
void CRoutingZone::writeFile(void)
@@ -176,7 +194,8 @@ void CRoutingZone::writeFile(void)
CFile file;
if (file.Open(m_filename, CFile::write)) {
ContactList contacts;
- getBootstrapContacts(&contacts, 200);
+ //getBootstrapContacts(&contacts, 200);
+ getAllEntries(&contacts);
file.WriteUInt32((uint32)std::min((int)contacts.size(), CONTACT_FILE_LIMIT));
ContactList::const_iterator it;
for (it = contacts.begin(); it != contacts.end(); ++it) {
@@ -216,9 +235,12 @@ bool CRoutingZone::add(const CUInt128 &i
//AddDebugLogLineM(false, logKadMain, wxT("Adding a contact (routing) with ip ") + Uint32_16toStringIP_Port(wxUINT32_SWAP_ALWAYS(ip),port));
- if (id == me) {
+ // Mod Adu
+ // lupz
+ // l'id tutto nullo non e' valido su kadu
+ if (id == me || id == 0)
return false;
- }
+ // Fine mod Adu
CUInt128 distance(me);
distance.XOR(id);
@@ -573,10 +595,21 @@ uint32 CRoutingZone::getBootstrapContact
if (top.size() > 0) {
ContactList::const_iterator it;
for (it = top.begin(); it != top.end(); ++it) {
- results->push_back(*it);
- retVal++;
- if (retVal == maxRequired) {
- break;
+ // Mod Adu
+ // Emanem
+ // Inserisco un nodo nei risultati se e solo se ha un
+ // IP di FastWeb (occhio che l'IP va rigirato).
+ uint32 ip = (*it)->getIPAddress();
+ // if (AduIsFastWebIP(ntohl((*it)->getIPAddress())))
+ //
+ // Stefano Picerno: Aggiungo un nodo nei risultati solo se e'
+ // valido = fastweb + non bannato
+ if (AduIsValidKaduAddress( ip ) ) {
+ results->push_back(*it);
+ retVal++;
+ if (retVal == maxRequired) {
+ break;
+ }
}
}
}
diff -urdpN ../aMule-2.1.3-orig/src/kademlia/routing/RoutingZone.h ./src/kademlia/routing/RoutingZone.h
--- ../aMule-2.1.3-orig/src/kademlia/routing/RoutingZone.h 2006-03-10 05:07:58.000000000 +0100
+++ ./src/kademlia/routing/RoutingZone.h 2006-06-12 18:30:05.000000000 +0200
@@ -120,7 +120,7 @@ private:
static wxString m_filename;
static CUInt128 me;
- void readFile(void);
+ void readFile();
void writeFile(void);
bool isLeaf(void) const;
diff -urdpN ../aMule-2.1.3-orig/src/KnownFile.cpp ./src/KnownFile.cpp
--- ../aMule-2.1.3-orig/src/KnownFile.cpp 2006-03-24 20:25:20.000000000 +0100
+++ ./src/KnownFile.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -52,6 +52,7 @@
#include "ClientList.h" // Needed for clientlist (buddy support)
#include "ArchSpecific.h"
#include "Logger.h"
+#include "RemoteSettings.h"
#include "kademlia/kademlia/Entry.h"
@@ -618,7 +619,7 @@ bool CKnownFile::LoadTagsFromFile(const
case FT_KADLASTPUBLISHSRC:
SetLastPublishTimeKadSrc( newtag.GetInt(), 0 );
- if(GetLastPublishTimeKadSrc() > (uint32)time(NULL)+KADEMLIAREPUBLISHTIMES) {
+ if(GetLastPublishTimeKadSrc() > (uint32)time(NULL)+theApp.rm->kadRepublishTimeS) {
//There may be a posibility of an older client that saved a random number here.. This will check for that..
SetLastPublishTimeKadSrc(0, 0);
}
@@ -1038,22 +1039,31 @@ CPacket* CKnownFile::CreateSrcInfoPacket
// Updates priority of file if autopriority is activated
void CKnownFile::UpdateAutoUpPriority()
{
+ uint8 priority = PR_NORMAL;
+
+ if (!IsAutoUpPriority())
+ priority = GetUpPriority();
+
+ if ( priority == PR_POWERSHARE && m_nCompleteSourcesCount > 10)
+ priority = PR_VERYHIGH;
+
if (IsAutoUpPriority()) {
uint32 queued = GetQueuedCount();
- uint8 priority = PR_NORMAL;
- if (queued > 20) {
+ if ( m_nCompleteSourcesCount > 0 && m_nCompleteSourcesCount < 8 ) {
+ priority = PR_VERYHIGH;
+ } else if (queued > 20) {
priority = PR_LOW;
} else if (queued > 1) {
priority = PR_NORMAL;
} else {
priority = PR_HIGH;
}
+ }
- if (GetUpPriority() != priority) {
- SetUpPriority(priority, false);
- Notify_SharedFilesUpdateItem(this);
- }
+ if (GetUpPriority() != priority) {
+ SetUpPriority(priority, false);
+ Notify_SharedFilesUpdateItem(this);
}
}
@@ -1063,7 +1073,7 @@ void CKnownFile::SetFileComment(const wx
SetLastPublishTimeKadNotes(0);
wxString strCfgPath = wxT("/") + m_abyFileHash.Encode() + wxT("/");
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
cfg->Write( strCfgPath + wxT("Comment"), strNewComment);
m_strComment = strNewComment;
@@ -1082,7 +1092,7 @@ void CKnownFile::SetFileRating(int8 iNew
if (m_iRating != iNewRating) {
SetLastPublishTimeKadNotes(0);
wxString strCfgPath = wxT("/") + m_abyFileHash.Encode() + wxT("/");
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
cfg->Write( strCfgPath + wxT("Rate"), iNewRating);
m_iRating = iNewRating;
@@ -1113,12 +1123,12 @@ bool CKnownFile::PublishNotes()
}
if(!GetFileComment().IsEmpty()) {
- m_lastPublishTimeKadNotes = (uint32)time(NULL)+KADEMLIAREPUBLISHTIMEN;
+ m_lastPublishTimeKadNotes = (uint32)time(NULL)+theApp.rm->kadRepublishTimeN;
return true;
}
if(GetFileRating() != 0) {
- m_lastPublishTimeKadNotes = (uint32)time(NULL)+KADEMLIAREPUBLISHTIMEN;
+ m_lastPublishTimeKadNotes = (uint32)time(NULL)+theApp.rm->kadRepublishTimeN;
return true;
}
@@ -1134,7 +1144,7 @@ bool CKnownFile::PublishSrc()
if( buddy ) {
lastBuddyIP = theApp.clientlist->GetBuddy()->GetIP();
if( lastBuddyIP != m_lastBuddyIP ) {
- SetLastPublishTimeKadSrc( (uint32)time(NULL)+KADEMLIAREPUBLISHTIMES, lastBuddyIP );
+ SetLastPublishTimeKadSrc( (uint32)time(NULL)+theApp.rm->kadRepublishTimeS, lastBuddyIP );
return true;
}
} else {
@@ -1146,7 +1156,7 @@ bool CKnownFile::PublishSrc()
return false;
}
- SetLastPublishTimeKadSrc((uint32)time(NULL)+KADEMLIAREPUBLISHTIMES,lastBuddyIP);
+ SetLastPublishTimeKadSrc((uint32)time(NULL)+theApp.rm->kadRepublishTimeS,lastBuddyIP);
return true;
}
@@ -1166,11 +1176,11 @@ void CKnownFile::UpdatePartsInfo()
if (flag) {
ArrayOfUInts16 count;
- count.Alloc(m_ClientUploadList.size());
+ //count.Alloc(m_ClientUploadList.size());
SourceSet::iterator it = m_ClientUploadList.begin();
for ( ; it != m_ClientUploadList.end(); it++ ) {
- if ( !(*it)->GetUpPartStatus().empty() && (*it)->GetUpPartCount() == partcount ) {
+ if ( !(*it)->GetUpPartStatus().empty() && (*it)->GetUpPartCount() == partcount && (*it)->IsAduClient() ) {
count.Add( (*it)->GetUpCompleteSourcesCount() );
}
}
@@ -1254,6 +1264,9 @@ void CKnownFile::UpdatePartsInfo()
void CKnownFile::UpdateUpPartsFrequency( CUpDownClient* client, bool increment )
{
+ if (!client->IsAduClient())
+ return;
+
const BitVector& freq = client->GetUpPartStatus();
if ( m_AvailPartFrequency.GetCount() != GetPartCount() ) {
@@ -1312,7 +1325,7 @@ void CKnownFile::LoadComment()
#ifndef CLIENT_GUI
wxString strCfgPath = wxT("/") + m_abyFileHash.Encode() + wxT("/");
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
m_strComment = cfg->Read( strCfgPath + wxT("Comment"), wxEmptyString);
m_iRating = cfg->Read( strCfgPath + wxT("Rate"), 0l);
diff -urdpN ../aMule-2.1.3-orig/src/KnownFileList.cpp ./src/KnownFileList.cpp
--- ../aMule-2.1.3-orig/src/KnownFileList.cpp 2006-02-03 14:11:28.000000000 +0100
+++ ./src/KnownFileList.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -36,7 +36,6 @@
#include <memory>
-
CKnownFileList::CKnownFileList()
{
accepted = 0;
diff -urdpN ../aMule-2.1.3-orig/src/libs/ec/ECCodes.h ./src/libs/ec/ECCodes.h
--- ../aMule-2.1.3-orig/src/libs/ec/ECCodes.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/libs/ec/ECCodes.h 2006-06-12 18:30:05.000000000 +0200
@@ -1329,7 +1329,8 @@ enum {
* May also contain a ::EC_TAG_STAT_NODE_VALUE child, and that will be displayed in brackets after this value.
* This only works for value types that require a \c %s format string.
*/
- EC_TAG_STAT_VALUE_TYPE ///< \c uint8 value describing the value of its parent (::EC_TAG_STAT_NODE_VALUE). See also the ::EC_STATTREE_NODE_VALUE_TYPE enum.
+ EC_TAG_STAT_VALUE_TYPE, ///< \c uint8 value describing the value of its parent (::EC_TAG_STAT_NODE_VALUE). See also the ::EC_STATTREE_NODE_VALUE_TYPE enum.
+ EC_TAG_PARTFILE_ADU_SOURCE_COUNT
};
diff -urdpN ../aMule-2.1.3-orig/src/libs/ec/ECSpecialTags.h ./src/libs/ec/ECSpecialTags.h
--- ../aMule-2.1.3-orig/src/libs/ec/ECSpecialTags.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/libs/ec/ECSpecialTags.h 2006-06-12 18:30:05.000000000 +0200
@@ -207,6 +207,7 @@ class CEC_PartFile_Tag : public CECTag {
wxString FileEd2kLink() { return GetTagByNameSafe(EC_TAG_PARTFILE_ED2K_LINK)->GetStringData(); }
uint8 FileStatus() { return GetTagByNameSafe(EC_TAG_PARTFILE_STATUS)->GetInt8Data(); }
uint16 SourceCount() { return GetTagByNameSafe(EC_TAG_PARTFILE_SOURCE_COUNT)->GetInt16Data(); }
+ uint16 AduSourceCount() { return GetTagByNameSafe(EC_TAG_PARTFILE_ADU_SOURCE_COUNT)->GetInt16Data(); }
uint16 SourceNotCurrCount() { return GetTagByNameSafe(EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT)->GetInt32Data(); }
uint16 SourceXferCount() { return GetTagByNameSafe(EC_TAG_PARTFILE_SOURCE_COUNT_XFER)->GetInt16Data(); }
uint16 SourceCountA4AF() { return GetTagByNameSafe(EC_TAG_PARTFILE_SOURCE_COUNT_A4AF)->GetInt16Data(); }
@@ -234,6 +235,7 @@ class CEC_PartFile_Tag : public CECTag {
void SetFileStatus(uint8 &value) { AssignIfExist(EC_TAG_PARTFILE_STATUS, value); }
void SetSourceCount(uint16 &value) { AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT, value); }
+ void SetAduSourceCount(uint16 &value) { AssignIfExist(EC_TAG_PARTFILE_ADU_SOURCE_COUNT, value); }
void SetSourceNotCurrCount(uint32 &value) { AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT, value); }
void SetSourceXferCount(uint16 &value) { AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, value); }
void SetSourceCountA4AF(uint16 &value) { AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_A4AF, value); }
diff -urdpN ../aMule-2.1.3-orig/src/Makefile.am ./src/Makefile.am
--- ../aMule-2.1.3-orig/src/Makefile.am 2006-01-30 19:53:03.000000000 +0100
+++ ./src/Makefile.am 2006-06-12 18:30:05.000000000 +0200
@@ -66,7 +66,6 @@ libmuleappcommon_a_SOURCES = \
FileFunctions.cpp \
MemFile.cpp \
NetworkFunctions.cpp \
- Packet.cpp \
RLE.cpp \
SafeFile.cpp \
SHA.cpp \
@@ -108,7 +107,6 @@ libmuleappgui_a_SOURCES = \
EditServerListDlg.cpp \
listctrl.cpp \
MuleGifCtrl.cpp \
- MuleListCtrl.cpp \
MuleNotebook.cpp \
MuleTextCtrl.cpp \
FileDetailListCtrl.cpp \
@@ -134,7 +132,6 @@ core_sources = \
ExternalConn.cpp \
Friend.cpp \
FriendList.cpp \
- HTTPDownload.cpp \
IPFilter.cpp \
KnownFileList.cpp \
ListenSocket.cpp \
@@ -164,6 +161,7 @@ gui_sources = \
ClientDetailDialog.cpp \
FileDetailDialog.cpp \
KadDlg.cpp \
+ MuleListCtrl.cpp \
OScopeCtrl.cpp \
PartFileConvert.cpp \
PrefsUnifiedDlg.cpp \
@@ -178,17 +176,20 @@ gui_sources = \
ServerListCtrl.cpp \
SharedFilesCtrl.cpp \
MuleTrayIcon.cpp \
- TransferWnd.cpp
+ TransferWnd.cpp
remote_common_sources = \
OtherFunctions.cpp
common_sources = \
+ AdunanzA.cpp \
+ RemoteSettings.cpp \
ClientCredits.cpp \
ECSpecialMuleTags.cpp \
KnownFile.cpp \
GetTickCount.cpp \
Logger.cpp \
+ Packet.cpp \
PartFile.cpp \
Preferences.cpp \
Proxy.cpp \
@@ -196,6 +197,7 @@ common_sources = \
Statistics.cpp \
StatTree.cpp \
SHAHashSet.cpp \
+ HTTPDownload.cpp \
$(remote_common_sources)
# Libs
diff -urdpN ../aMule-2.1.3-orig/src/Makefile.in ./src/Makefile.in
--- ../aMule-2.1.3-orig/src/Makefile.in 2006-06-11 17:08:58.000000000 +0200
+++ ./src/Makefile.in 2006-06-12 18:30:05.000000000 +0200
@@ -83,8 +83,8 @@ libmuleappcommon_a_AR = $(AR) $(ARFLAGS)
libmuleappcommon_a_LIBADD =
am__libmuleappcommon_a_SOURCES_DIST = CFile.cpp DataToText.cpp \
ED2KLink.cpp FileFunctions.cpp MemFile.cpp \
- NetworkFunctions.cpp Packet.cpp RLE.cpp SafeFile.cpp SHA.cpp \
- Tag.cpp Timer.cpp kademlia/utils/UInt128.cpp CryptoPP.cpp
+ NetworkFunctions.cpp RLE.cpp SafeFile.cpp SHA.cpp Tag.cpp \
+ Timer.cpp kademlia/utils/UInt128.cpp CryptoPP.cpp
@USE_EMBEDDED_CRYPTO_TRUE@am__objects_1 = libmuleappcommon_a-CryptoPP.$(OBJEXT)
am_libmuleappcommon_a_OBJECTS = libmuleappcommon_a-CFile.$(OBJEXT) \
libmuleappcommon_a-DataToText.$(OBJEXT) \
@@ -92,7 +92,6 @@ am_libmuleappcommon_a_OBJECTS = libmulea
libmuleappcommon_a-FileFunctions.$(OBJEXT) \
libmuleappcommon_a-MemFile.$(OBJEXT) \
libmuleappcommon_a-NetworkFunctions.$(OBJEXT) \
- libmuleappcommon_a-Packet.$(OBJEXT) \
libmuleappcommon_a-RLE.$(OBJEXT) \
libmuleappcommon_a-SafeFile.$(OBJEXT) \
libmuleappcommon_a-SHA.$(OBJEXT) \
@@ -126,7 +125,6 @@ am_libmuleappgui_a_OBJECTS = libmuleappg
libmuleappgui_a-EditServerListDlg.$(OBJEXT) \
libmuleappgui_a-listctrl.$(OBJEXT) \
libmuleappgui_a-MuleGifCtrl.$(OBJEXT) \
- libmuleappgui_a-MuleListCtrl.$(OBJEXT) \
libmuleappgui_a-MuleNotebook.$(OBJEXT) \
libmuleappgui_a-MuleTextCtrl.$(OBJEXT) \
libmuleappgui_a-FileDetailListCtrl.$(OBJEXT) \
@@ -150,12 +148,11 @@ am__objects_2 = amule-AICHSyncThread.$(O
amule-DownloadQueue.$(OBJEXT) amule-EMSocket.$(OBJEXT) \
amule-ECSpecialCoreTags.$(OBJEXT) amule-ExternalConn.$(OBJEXT) \
amule-Friend.$(OBJEXT) amule-FriendList.$(OBJEXT) \
- amule-HTTPDownload.$(OBJEXT) amule-IPFilter.$(OBJEXT) \
- amule-KnownFileList.$(OBJEXT) amule-ListenSocket.$(OBJEXT) \
- amule-MuleUDPSocket.$(OBJEXT) amule-SearchList.$(OBJEXT) \
- amule-ServerConnect.$(OBJEXT) amule-ServerList.$(OBJEXT) \
- amule-ServerSocket.$(OBJEXT) amule-ServerUDPSocket.$(OBJEXT) \
- amule-SharedFileList.$(OBJEXT) \
+ amule-IPFilter.$(OBJEXT) amule-KnownFileList.$(OBJEXT) \
+ amule-ListenSocket.$(OBJEXT) amule-MuleUDPSocket.$(OBJEXT) \
+ amule-SearchList.$(OBJEXT) amule-ServerConnect.$(OBJEXT) \
+ amule-ServerList.$(OBJEXT) amule-ServerSocket.$(OBJEXT) \
+ amule-ServerUDPSocket.$(OBJEXT) amule-SharedFileList.$(OBJEXT) \
amule-UploadBandwidthThrottler.$(OBJEXT) \
amule-UploadClient.$(OBJEXT) amule-UploadQueue.$(OBJEXT) \
amule-Kademlia.$(OBJEXT) amule-Search.$(OBJEXT) \
@@ -166,7 +163,8 @@ am__objects_3 = amule-amule-gui.$(OBJEXT
amule-AddFriend.$(OBJEXT) amule-ChatSelector.$(OBJEXT) \
amule-ClientDetailDialog.$(OBJEXT) \
amule-FileDetailDialog.$(OBJEXT) amule-KadDlg.$(OBJEXT) \
- amule-OScopeCtrl.$(OBJEXT) amule-PartFileConvert.$(OBJEXT) \
+ amule-MuleListCtrl.$(OBJEXT) amule-OScopeCtrl.$(OBJEXT) \
+ amule-PartFileConvert.$(OBJEXT) \
amule-PrefsUnifiedDlg.$(OBJEXT) amule-SearchDlg.$(OBJEXT) \
amule-ServerWnd.$(OBJEXT) amule-SharedFilesWnd.$(OBJEXT) \
amule-StatisticsDlg.$(OBJEXT) amule-SearchListCtrl.$(OBJEXT) \
@@ -175,13 +173,15 @@ am__objects_3 = amule-amule-gui.$(OBJEXT
amule-ServerListCtrl.$(OBJEXT) amule-SharedFilesCtrl.$(OBJEXT) \
amule-MuleTrayIcon.$(OBJEXT) amule-TransferWnd.$(OBJEXT)
am__objects_4 = amule-OtherFunctions.$(OBJEXT)
-am__objects_5 = amule-ClientCredits.$(OBJEXT) \
+am__objects_5 = amule-AdunanzA.$(OBJEXT) \
+ amule-RemoteSettings.$(OBJEXT) amule-ClientCredits.$(OBJEXT) \
amule-ECSpecialMuleTags.$(OBJEXT) amule-KnownFile.$(OBJEXT) \
amule-GetTickCount.$(OBJEXT) amule-Logger.$(OBJEXT) \
- amule-PartFile.$(OBJEXT) amule-Preferences.$(OBJEXT) \
- amule-Proxy.$(OBJEXT) amule-Server.$(OBJEXT) \
- amule-Statistics.$(OBJEXT) amule-StatTree.$(OBJEXT) \
- amule-SHAHashSet.$(OBJEXT) $(am__objects_4)
+ amule-Packet.$(OBJEXT) amule-PartFile.$(OBJEXT) \
+ amule-Preferences.$(OBJEXT) amule-Proxy.$(OBJEXT) \
+ amule-Server.$(OBJEXT) amule-Statistics.$(OBJEXT) \
+ amule-StatTree.$(OBJEXT) amule-SHAHashSet.$(OBJEXT) \
+ amule-HTTPDownload.$(OBJEXT) $(am__objects_4)
am_amule_OBJECTS = $(am__objects_2) $(am__objects_3) $(am__objects_5)
amule_OBJECTS = $(am_amule_OBJECTS)
am__DEPENDENCIES_1 =
@@ -204,12 +204,11 @@ am__objects_7 = amuled-AICHSyncThread.$(
amuled-DownloadClient.$(OBJEXT) amuled-DownloadQueue.$(OBJEXT) \
amuled-EMSocket.$(OBJEXT) amuled-ECSpecialCoreTags.$(OBJEXT) \
amuled-ExternalConn.$(OBJEXT) amuled-Friend.$(OBJEXT) \
- amuled-FriendList.$(OBJEXT) amuled-HTTPDownload.$(OBJEXT) \
- amuled-IPFilter.$(OBJEXT) amuled-KnownFileList.$(OBJEXT) \
- amuled-ListenSocket.$(OBJEXT) amuled-MuleUDPSocket.$(OBJEXT) \
- amuled-SearchList.$(OBJEXT) amuled-ServerConnect.$(OBJEXT) \
- amuled-ServerList.$(OBJEXT) amuled-ServerSocket.$(OBJEXT) \
- amuled-ServerUDPSocket.$(OBJEXT) \
+ amuled-FriendList.$(OBJEXT) amuled-IPFilter.$(OBJEXT) \
+ amuled-KnownFileList.$(OBJEXT) amuled-ListenSocket.$(OBJEXT) \
+ amuled-MuleUDPSocket.$(OBJEXT) amuled-SearchList.$(OBJEXT) \
+ amuled-ServerConnect.$(OBJEXT) amuled-ServerList.$(OBJEXT) \
+ amuled-ServerSocket.$(OBJEXT) amuled-ServerUDPSocket.$(OBJEXT) \
amuled-SharedFileList.$(OBJEXT) \
amuled-UploadBandwidthThrottler.$(OBJEXT) \
amuled-UploadClient.$(OBJEXT) amuled-UploadQueue.$(OBJEXT) \
@@ -218,13 +217,15 @@ am__objects_7 = amuled-AICHSyncThread.$(
amuled-Prefs.$(OBJEXT) amuled-RoutingZone.$(OBJEXT) \
amuled-Contact.$(OBJEXT)
am__objects_8 = amuled-OtherFunctions.$(OBJEXT)
-am__objects_9 = amuled-ClientCredits.$(OBJEXT) \
+am__objects_9 = amuled-AdunanzA.$(OBJEXT) \
+ amuled-RemoteSettings.$(OBJEXT) amuled-ClientCredits.$(OBJEXT) \
amuled-ECSpecialMuleTags.$(OBJEXT) amuled-KnownFile.$(OBJEXT) \
amuled-GetTickCount.$(OBJEXT) amuled-Logger.$(OBJEXT) \
- amuled-PartFile.$(OBJEXT) amuled-Preferences.$(OBJEXT) \
- amuled-Proxy.$(OBJEXT) amuled-Server.$(OBJEXT) \
- amuled-Statistics.$(OBJEXT) amuled-StatTree.$(OBJEXT) \
- amuled-SHAHashSet.$(OBJEXT) $(am__objects_8)
+ amuled-Packet.$(OBJEXT) amuled-PartFile.$(OBJEXT) \
+ amuled-Preferences.$(OBJEXT) amuled-Proxy.$(OBJEXT) \
+ amuled-Server.$(OBJEXT) amuled-Statistics.$(OBJEXT) \
+ amuled-StatTree.$(OBJEXT) amuled-SHAHashSet.$(OBJEXT) \
+ amuled-HTTPDownload.$(OBJEXT) $(am__objects_8)
am_amuled_OBJECTS = amuled-amuled.$(OBJEXT) amuled-Timer.$(OBJEXT) \
$(am__objects_7) $(am__objects_9)
amuled_OBJECTS = $(am_amuled_OBJECTS)
@@ -233,7 +234,7 @@ am__objects_10 = amulegui-amule-gui.$(OB
amulegui-ChatSelector.$(OBJEXT) \
amulegui-ClientDetailDialog.$(OBJEXT) \
amulegui-FileDetailDialog.$(OBJEXT) amulegui-KadDlg.$(OBJEXT) \
- amulegui-OScopeCtrl.$(OBJEXT) \
+ amulegui-MuleListCtrl.$(OBJEXT) amulegui-OScopeCtrl.$(OBJEXT) \
amulegui-PartFileConvert.$(OBJEXT) \
amulegui-PrefsUnifiedDlg.$(OBJEXT) \
amulegui-SearchDlg.$(OBJEXT) amulegui-ServerWnd.$(OBJEXT) \
@@ -247,13 +248,16 @@ am__objects_10 = amulegui-amule-gui.$(OB
amulegui-SharedFilesCtrl.$(OBJEXT) \
amulegui-MuleTrayIcon.$(OBJEXT) amulegui-TransferWnd.$(OBJEXT)
am__objects_11 = amulegui-OtherFunctions.$(OBJEXT)
-am__objects_12 = amulegui-ClientCredits.$(OBJEXT) \
+am__objects_12 = amulegui-AdunanzA.$(OBJEXT) \
+ amulegui-RemoteSettings.$(OBJEXT) \
+ amulegui-ClientCredits.$(OBJEXT) \
amulegui-ECSpecialMuleTags.$(OBJEXT) \
amulegui-KnownFile.$(OBJEXT) amulegui-GetTickCount.$(OBJEXT) \
- amulegui-Logger.$(OBJEXT) amulegui-PartFile.$(OBJEXT) \
- amulegui-Preferences.$(OBJEXT) amulegui-Proxy.$(OBJEXT) \
- amulegui-Server.$(OBJEXT) amulegui-Statistics.$(OBJEXT) \
- amulegui-StatTree.$(OBJEXT) amulegui-SHAHashSet.$(OBJEXT) \
+ amulegui-Logger.$(OBJEXT) amulegui-Packet.$(OBJEXT) \
+ amulegui-PartFile.$(OBJEXT) amulegui-Preferences.$(OBJEXT) \
+ amulegui-Proxy.$(OBJEXT) amulegui-Server.$(OBJEXT) \
+ amulegui-Statistics.$(OBJEXT) amulegui-StatTree.$(OBJEXT) \
+ amulegui-SHAHashSet.$(OBJEXT) amulegui-HTTPDownload.$(OBJEXT) \
$(am__objects_11)
am_amulegui_OBJECTS = amulegui-amule-remote-gui.$(OBJEXT) \
$(am__objects_10) $(am__objects_12)
@@ -504,8 +508,8 @@ noinst_LIBRARIES = $(am__append_6) $(am_
# Common to core/gui/monolithic
libmuleappcommon_a_SOURCES = CFile.cpp DataToText.cpp ED2KLink.cpp \
- FileFunctions.cpp MemFile.cpp NetworkFunctions.cpp Packet.cpp \
- RLE.cpp SafeFile.cpp SHA.cpp Tag.cpp Timer.cpp \
+ FileFunctions.cpp MemFile.cpp NetworkFunctions.cpp RLE.cpp \
+ SafeFile.cpp SHA.cpp Tag.cpp Timer.cpp \
kademlia/utils/UInt128.cpp $(am__append_11)
libmuleappcommon_a_CFLAGS = $(WX_CXXFLAGS) -I$(srcdir)/libs
libmuleappcommon_a_CXXFLAGS = $(WX_CXXFLAGS) -I$(srcdir)/libs
@@ -539,7 +543,6 @@ libmuleappgui_a_SOURCES = \
EditServerListDlg.cpp \
listctrl.cpp \
MuleGifCtrl.cpp \
- MuleListCtrl.cpp \
MuleNotebook.cpp \
MuleTextCtrl.cpp \
FileDetailListCtrl.cpp \
@@ -564,7 +567,6 @@ core_sources = \
ExternalConn.cpp \
Friend.cpp \
FriendList.cpp \
- HTTPDownload.cpp \
IPFilter.cpp \
KnownFileList.cpp \
ListenSocket.cpp \
@@ -594,6 +596,7 @@ gui_sources = \
ClientDetailDialog.cpp \
FileDetailDialog.cpp \
KadDlg.cpp \
+ MuleListCtrl.cpp \
OScopeCtrl.cpp \
PartFileConvert.cpp \
PrefsUnifiedDlg.cpp \
@@ -608,17 +611,20 @@ gui_sources = \
ServerListCtrl.cpp \
SharedFilesCtrl.cpp \
MuleTrayIcon.cpp \
- TransferWnd.cpp
+ TransferWnd.cpp
remote_common_sources = \
OtherFunctions.cpp
common_sources = \
+ AdunanzA.cpp \
+ RemoteSettings.cpp \
ClientCredits.cpp \
ECSpecialMuleTags.cpp \
KnownFile.cpp \
GetTickCount.cpp \
Logger.cpp \
+ Packet.cpp \
PartFile.cpp \
Preferences.cpp \
Proxy.cpp \
@@ -626,6 +632,7 @@ common_sources = \
Statistics.cpp \
StatTree.cpp \
SHAHashSet.cpp \
+ HTTPDownload.cpp \
$(remote_common_sources)
@@ -892,6 +899,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-AICHSyncThread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-AddFileThread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-AddFriend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-AdunanzA.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-BaseClient.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-ChatSelector.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-ClientCredits.Po@am__quote@
@@ -924,16 +932,19 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-KnownFileList.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-ListenSocket.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-Logger.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-MuleListCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-MuleTrayIcon.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-MuleUDPSocket.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-OScopeCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-OtherFunctions.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-Packet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-PartFile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-PartFileConvert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-Preferences.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-Prefs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-PrefsUnifiedDlg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-Proxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-RemoteSettings.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-RoutingZone.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-SHAHashSet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amule-Search.Po@am__quote@
@@ -965,6 +976,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulecmd-TextClient.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-AICHSyncThread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-AddFileThread.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-AdunanzA.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-BaseClient.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-ClientCredits.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-ClientCreditsList.Po@am__quote@
@@ -992,10 +1004,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-Logger.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-MuleUDPSocket.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-OtherFunctions.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-Packet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-PartFile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-Preferences.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-Prefs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-Proxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-RemoteSettings.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-RoutingZone.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-SHAHashSet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-Search.Po@am__quote@
@@ -1015,6 +1029,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-amule.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amuled-amuled.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-AddFriend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-AdunanzA.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-ChatSelector.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-ClientCredits.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-ClientDetailDialog.Po@am__quote@
@@ -1024,17 +1039,21 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-FileDetailDialog.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-FriendListCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-GetTickCount.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-HTTPDownload.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-KadDlg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-KnownFile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-Logger.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-MuleListCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-MuleTrayIcon.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-OScopeCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-OtherFunctions.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-Packet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-PartFile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-PartFileConvert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-Preferences.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-PrefsUnifiedDlg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-Proxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-RemoteSettings.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-SHAHashSet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-SearchDlg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amulegui-SearchListCtrl.Po@am__quote@
@@ -1057,7 +1076,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappcommon_a-FileFunctions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappcommon_a-MemFile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappcommon_a-NetworkFunctions.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappcommon_a-Packet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappcommon_a-RLE.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappcommon_a-SHA.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappcommon_a-SafeFile.Po@am__quote@
@@ -1086,7 +1104,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappgui_a-EditServerListDlg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappgui_a-FileDetailListCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappgui_a-MuleGifCtrl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappgui_a-MuleNotebook.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappgui_a-MuleTextCtrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmuleappgui_a-listctrl.Po@am__quote@
@@ -1190,20 +1207,6 @@ libmuleappcommon_a-NetworkFunctions.obj:
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappcommon_a_CXXFLAGS) $(CXXFLAGS) -c -o libmuleappcommon_a-NetworkFunctions.obj `if test -f 'NetworkFunctions.cpp'; then $(CYGPATH_W) 'NetworkFunctions.cpp'; else $(CYGPATH_W) '$(srcdir)/NetworkFunctions.cpp'; fi`
-libmuleappcommon_a-Packet.o: Packet.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappcommon_a_CXXFLAGS) $(CXXFLAGS) -MT libmuleappcommon_a-Packet.o -MD -MP -MF "$(DEPDIR)/libmuleappcommon_a-Packet.Tpo" -c -o libmuleappcommon_a-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libmuleappcommon_a-Packet.Tpo" "$(DEPDIR)/libmuleappcommon_a-Packet.Po"; else rm -f "$(DEPDIR)/libmuleappcommon_a-Packet.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='libmuleappcommon_a-Packet.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappcommon_a_CXXFLAGS) $(CXXFLAGS) -c -o libmuleappcommon_a-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp
-
-libmuleappcommon_a-Packet.obj: Packet.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappcommon_a_CXXFLAGS) $(CXXFLAGS) -MT libmuleappcommon_a-Packet.obj -MD -MP -MF "$(DEPDIR)/libmuleappcommon_a-Packet.Tpo" -c -o libmuleappcommon_a-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libmuleappcommon_a-Packet.Tpo" "$(DEPDIR)/libmuleappcommon_a-Packet.Po"; else rm -f "$(DEPDIR)/libmuleappcommon_a-Packet.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='libmuleappcommon_a-Packet.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappcommon_a_CXXFLAGS) $(CXXFLAGS) -c -o libmuleappcommon_a-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`
-
libmuleappcommon_a-RLE.o: RLE.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappcommon_a_CXXFLAGS) $(CXXFLAGS) -MT libmuleappcommon_a-RLE.o -MD -MP -MF "$(DEPDIR)/libmuleappcommon_a-RLE.Tpo" -c -o libmuleappcommon_a-RLE.o `test -f 'RLE.cpp' || echo '$(srcdir)/'`RLE.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libmuleappcommon_a-RLE.Tpo" "$(DEPDIR)/libmuleappcommon_a-RLE.Po"; else rm -f "$(DEPDIR)/libmuleappcommon_a-RLE.Tpo"; exit 1; fi
@@ -1596,20 +1599,6 @@ libmuleappgui_a-MuleGifCtrl.obj: MuleGif
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappgui_a_CXXFLAGS) $(CXXFLAGS) -c -o libmuleappgui_a-MuleGifCtrl.obj `if test -f 'MuleGifCtrl.cpp'; then $(CYGPATH_W) 'MuleGifCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/MuleGifCtrl.cpp'; fi`
-libmuleappgui_a-MuleListCtrl.o: MuleListCtrl.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappgui_a_CXXFLAGS) $(CXXFLAGS) -MT libmuleappgui_a-MuleListCtrl.o -MD -MP -MF "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Tpo" -c -o libmuleappgui_a-MuleListCtrl.o `test -f 'MuleListCtrl.cpp' || echo '$(srcdir)/'`MuleListCtrl.cpp; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Tpo" "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Po"; else rm -f "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MuleListCtrl.cpp' object='libmuleappgui_a-MuleListCtrl.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappgui_a_CXXFLAGS) $(CXXFLAGS) -c -o libmuleappgui_a-MuleListCtrl.o `test -f 'MuleListCtrl.cpp' || echo '$(srcdir)/'`MuleListCtrl.cpp
-
-libmuleappgui_a-MuleListCtrl.obj: MuleListCtrl.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappgui_a_CXXFLAGS) $(CXXFLAGS) -MT libmuleappgui_a-MuleListCtrl.obj -MD -MP -MF "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Tpo" -c -o libmuleappgui_a-MuleListCtrl.obj `if test -f 'MuleListCtrl.cpp'; then $(CYGPATH_W) 'MuleListCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/MuleListCtrl.cpp'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Tpo" "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Po"; else rm -f "$(DEPDIR)/libmuleappgui_a-MuleListCtrl.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MuleListCtrl.cpp' object='libmuleappgui_a-MuleListCtrl.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappgui_a_CXXFLAGS) $(CXXFLAGS) -c -o libmuleappgui_a-MuleListCtrl.obj `if test -f 'MuleListCtrl.cpp'; then $(CYGPATH_W) 'MuleListCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/MuleListCtrl.cpp'; fi`
-
libmuleappgui_a-MuleNotebook.o: MuleNotebook.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmuleappgui_a_CXXFLAGS) $(CXXFLAGS) -MT libmuleappgui_a-MuleNotebook.o -MD -MP -MF "$(DEPDIR)/libmuleappgui_a-MuleNotebook.Tpo" -c -o libmuleappgui_a-MuleNotebook.o `test -f 'MuleNotebook.cpp' || echo '$(srcdir)/'`MuleNotebook.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libmuleappgui_a-MuleNotebook.Tpo" "$(DEPDIR)/libmuleappgui_a-MuleNotebook.Po"; else rm -f "$(DEPDIR)/libmuleappgui_a-MuleNotebook.Tpo"; exit 1; fi
@@ -1890,20 +1879,6 @@ amule-FriendList.obj: FriendList.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-FriendList.obj `if test -f 'FriendList.cpp'; then $(CYGPATH_W) 'FriendList.cpp'; else $(CYGPATH_W) '$(srcdir)/FriendList.cpp'; fi`
-amule-HTTPDownload.o: HTTPDownload.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-HTTPDownload.o -MD -MP -MF "$(DEPDIR)/amule-HTTPDownload.Tpo" -c -o amule-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-HTTPDownload.Tpo" "$(DEPDIR)/amule-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amule-HTTPDownload.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amule-HTTPDownload.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp
-
-amule-HTTPDownload.obj: HTTPDownload.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-HTTPDownload.obj -MD -MP -MF "$(DEPDIR)/amule-HTTPDownload.Tpo" -c -o amule-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-HTTPDownload.Tpo" "$(DEPDIR)/amule-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amule-HTTPDownload.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amule-HTTPDownload.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`
-
amule-IPFilter.o: IPFilter.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-IPFilter.o -MD -MP -MF "$(DEPDIR)/amule-IPFilter.Tpo" -c -o amule-IPFilter.o `test -f 'IPFilter.cpp' || echo '$(srcdir)/'`IPFilter.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-IPFilter.Tpo" "$(DEPDIR)/amule-IPFilter.Po"; else rm -f "$(DEPDIR)/amule-IPFilter.Tpo"; exit 1; fi
@@ -2282,6 +2257,20 @@ amule-KadDlg.obj: KadDlg.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-KadDlg.obj `if test -f 'KadDlg.cpp'; then $(CYGPATH_W) 'KadDlg.cpp'; else $(CYGPATH_W) '$(srcdir)/KadDlg.cpp'; fi`
+amule-MuleListCtrl.o: MuleListCtrl.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-MuleListCtrl.o -MD -MP -MF "$(DEPDIR)/amule-MuleListCtrl.Tpo" -c -o amule-MuleListCtrl.o `test -f 'MuleListCtrl.cpp' || echo '$(srcdir)/'`MuleListCtrl.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-MuleListCtrl.Tpo" "$(DEPDIR)/amule-MuleListCtrl.Po"; else rm -f "$(DEPDIR)/amule-MuleListCtrl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MuleListCtrl.cpp' object='amule-MuleListCtrl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-MuleListCtrl.o `test -f 'MuleListCtrl.cpp' || echo '$(srcdir)/'`MuleListCtrl.cpp
+
+amule-MuleListCtrl.obj: MuleListCtrl.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-MuleListCtrl.obj -MD -MP -MF "$(DEPDIR)/amule-MuleListCtrl.Tpo" -c -o amule-MuleListCtrl.obj `if test -f 'MuleListCtrl.cpp'; then $(CYGPATH_W) 'MuleListCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/MuleListCtrl.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-MuleListCtrl.Tpo" "$(DEPDIR)/amule-MuleListCtrl.Po"; else rm -f "$(DEPDIR)/amule-MuleListCtrl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MuleListCtrl.cpp' object='amule-MuleListCtrl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-MuleListCtrl.obj `if test -f 'MuleListCtrl.cpp'; then $(CYGPATH_W) 'MuleListCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/MuleListCtrl.cpp'; fi`
+
amule-OScopeCtrl.o: OScopeCtrl.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-OScopeCtrl.o -MD -MP -MF "$(DEPDIR)/amule-OScopeCtrl.Tpo" -c -o amule-OScopeCtrl.o `test -f 'OScopeCtrl.cpp' || echo '$(srcdir)/'`OScopeCtrl.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-OScopeCtrl.Tpo" "$(DEPDIR)/amule-OScopeCtrl.Po"; else rm -f "$(DEPDIR)/amule-OScopeCtrl.Tpo"; exit 1; fi
@@ -2492,6 +2481,34 @@ amule-TransferWnd.obj: TransferWnd.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-TransferWnd.obj `if test -f 'TransferWnd.cpp'; then $(CYGPATH_W) 'TransferWnd.cpp'; else $(CYGPATH_W) '$(srcdir)/TransferWnd.cpp'; fi`
+amule-AdunanzA.o: AdunanzA.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-AdunanzA.o -MD -MP -MF "$(DEPDIR)/amule-AdunanzA.Tpo" -c -o amule-AdunanzA.o `test -f 'AdunanzA.cpp' || echo '$(srcdir)/'`AdunanzA.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-AdunanzA.Tpo" "$(DEPDIR)/amule-AdunanzA.Po"; else rm -f "$(DEPDIR)/amule-AdunanzA.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AdunanzA.cpp' object='amule-AdunanzA.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-AdunanzA.o `test -f 'AdunanzA.cpp' || echo '$(srcdir)/'`AdunanzA.cpp
+
+amule-AdunanzA.obj: AdunanzA.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-AdunanzA.obj -MD -MP -MF "$(DEPDIR)/amule-AdunanzA.Tpo" -c -o amule-AdunanzA.obj `if test -f 'AdunanzA.cpp'; then $(CYGPATH_W) 'AdunanzA.cpp'; else $(CYGPATH_W) '$(srcdir)/AdunanzA.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-AdunanzA.Tpo" "$(DEPDIR)/amule-AdunanzA.Po"; else rm -f "$(DEPDIR)/amule-AdunanzA.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AdunanzA.cpp' object='amule-AdunanzA.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-AdunanzA.obj `if test -f 'AdunanzA.cpp'; then $(CYGPATH_W) 'AdunanzA.cpp'; else $(CYGPATH_W) '$(srcdir)/AdunanzA.cpp'; fi`
+
+amule-RemoteSettings.o: RemoteSettings.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-RemoteSettings.o -MD -MP -MF "$(DEPDIR)/amule-RemoteSettings.Tpo" -c -o amule-RemoteSettings.o `test -f 'RemoteSettings.cpp' || echo '$(srcdir)/'`RemoteSettings.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-RemoteSettings.Tpo" "$(DEPDIR)/amule-RemoteSettings.Po"; else rm -f "$(DEPDIR)/amule-RemoteSettings.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RemoteSettings.cpp' object='amule-RemoteSettings.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-RemoteSettings.o `test -f 'RemoteSettings.cpp' || echo '$(srcdir)/'`RemoteSettings.cpp
+
+amule-RemoteSettings.obj: RemoteSettings.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-RemoteSettings.obj -MD -MP -MF "$(DEPDIR)/amule-RemoteSettings.Tpo" -c -o amule-RemoteSettings.obj `if test -f 'RemoteSettings.cpp'; then $(CYGPATH_W) 'RemoteSettings.cpp'; else $(CYGPATH_W) '$(srcdir)/RemoteSettings.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-RemoteSettings.Tpo" "$(DEPDIR)/amule-RemoteSettings.Po"; else rm -f "$(DEPDIR)/amule-RemoteSettings.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RemoteSettings.cpp' object='amule-RemoteSettings.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-RemoteSettings.obj `if test -f 'RemoteSettings.cpp'; then $(CYGPATH_W) 'RemoteSettings.cpp'; else $(CYGPATH_W) '$(srcdir)/RemoteSettings.cpp'; fi`
+
amule-ClientCredits.o: ClientCredits.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-ClientCredits.o -MD -MP -MF "$(DEPDIR)/amule-ClientCredits.Tpo" -c -o amule-ClientCredits.o `test -f 'ClientCredits.cpp' || echo '$(srcdir)/'`ClientCredits.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-ClientCredits.Tpo" "$(DEPDIR)/amule-ClientCredits.Po"; else rm -f "$(DEPDIR)/amule-ClientCredits.Tpo"; exit 1; fi
@@ -2562,6 +2579,20 @@ amule-Logger.obj: Logger.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-Logger.obj `if test -f 'Logger.cpp'; then $(CYGPATH_W) 'Logger.cpp'; else $(CYGPATH_W) '$(srcdir)/Logger.cpp'; fi`
+amule-Packet.o: Packet.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-Packet.o -MD -MP -MF "$(DEPDIR)/amule-Packet.Tpo" -c -o amule-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-Packet.Tpo" "$(DEPDIR)/amule-Packet.Po"; else rm -f "$(DEPDIR)/amule-Packet.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='amule-Packet.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp
+
+amule-Packet.obj: Packet.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-Packet.obj -MD -MP -MF "$(DEPDIR)/amule-Packet.Tpo" -c -o amule-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-Packet.Tpo" "$(DEPDIR)/amule-Packet.Po"; else rm -f "$(DEPDIR)/amule-Packet.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='amule-Packet.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`
+
amule-PartFile.o: PartFile.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-PartFile.o -MD -MP -MF "$(DEPDIR)/amule-PartFile.Tpo" -c -o amule-PartFile.o `test -f 'PartFile.cpp' || echo '$(srcdir)/'`PartFile.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-PartFile.Tpo" "$(DEPDIR)/amule-PartFile.Po"; else rm -f "$(DEPDIR)/amule-PartFile.Tpo"; exit 1; fi
@@ -2660,6 +2691,20 @@ amule-SHAHashSet.obj: SHAHashSet.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-SHAHashSet.obj `if test -f 'SHAHashSet.cpp'; then $(CYGPATH_W) 'SHAHashSet.cpp'; else $(CYGPATH_W) '$(srcdir)/SHAHashSet.cpp'; fi`
+amule-HTTPDownload.o: HTTPDownload.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-HTTPDownload.o -MD -MP -MF "$(DEPDIR)/amule-HTTPDownload.Tpo" -c -o amule-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-HTTPDownload.Tpo" "$(DEPDIR)/amule-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amule-HTTPDownload.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amule-HTTPDownload.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp
+
+amule-HTTPDownload.obj: HTTPDownload.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-HTTPDownload.obj -MD -MP -MF "$(DEPDIR)/amule-HTTPDownload.Tpo" -c -o amule-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-HTTPDownload.Tpo" "$(DEPDIR)/amule-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amule-HTTPDownload.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amule-HTTPDownload.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -c -o amule-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`
+
amule-OtherFunctions.o: OtherFunctions.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-OtherFunctions.o -MD -MP -MF "$(DEPDIR)/amule-OtherFunctions.Tpo" -c -o amule-OtherFunctions.o `test -f 'OtherFunctions.cpp' || echo '$(srcdir)/'`OtherFunctions.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amule-OtherFunctions.Tpo" "$(DEPDIR)/amule-OtherFunctions.Po"; else rm -f "$(DEPDIR)/amule-OtherFunctions.Tpo"; exit 1; fi
@@ -2954,20 +2999,6 @@ amuled-FriendList.obj: FriendList.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-FriendList.obj `if test -f 'FriendList.cpp'; then $(CYGPATH_W) 'FriendList.cpp'; else $(CYGPATH_W) '$(srcdir)/FriendList.cpp'; fi`
-amuled-HTTPDownload.o: HTTPDownload.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-HTTPDownload.o -MD -MP -MF "$(DEPDIR)/amuled-HTTPDownload.Tpo" -c -o amuled-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-HTTPDownload.Tpo" "$(DEPDIR)/amuled-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amuled-HTTPDownload.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amuled-HTTPDownload.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp
-
-amuled-HTTPDownload.obj: HTTPDownload.cpp
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-HTTPDownload.obj -MD -MP -MF "$(DEPDIR)/amuled-HTTPDownload.Tpo" -c -o amuled-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-HTTPDownload.Tpo" "$(DEPDIR)/amuled-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amuled-HTTPDownload.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amuled-HTTPDownload.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`
-
amuled-IPFilter.o: IPFilter.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-IPFilter.o -MD -MP -MF "$(DEPDIR)/amuled-IPFilter.Tpo" -c -o amuled-IPFilter.o `test -f 'IPFilter.cpp' || echo '$(srcdir)/'`IPFilter.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-IPFilter.Tpo" "$(DEPDIR)/amuled-IPFilter.Po"; else rm -f "$(DEPDIR)/amuled-IPFilter.Tpo"; exit 1; fi
@@ -3248,6 +3279,34 @@ amuled-Contact.obj: kademlia/routing/Con
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-Contact.obj `if test -f 'kademlia/routing/Contact.cpp'; then $(CYGPATH_W) 'kademlia/routing/Contact.cpp'; else $(CYGPATH_W) '$(srcdir)/kademlia/routing/Contact.cpp'; fi`
+amuled-AdunanzA.o: AdunanzA.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-AdunanzA.o -MD -MP -MF "$(DEPDIR)/amuled-AdunanzA.Tpo" -c -o amuled-AdunanzA.o `test -f 'AdunanzA.cpp' || echo '$(srcdir)/'`AdunanzA.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-AdunanzA.Tpo" "$(DEPDIR)/amuled-AdunanzA.Po"; else rm -f "$(DEPDIR)/amuled-AdunanzA.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AdunanzA.cpp' object='amuled-AdunanzA.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-AdunanzA.o `test -f 'AdunanzA.cpp' || echo '$(srcdir)/'`AdunanzA.cpp
+
+amuled-AdunanzA.obj: AdunanzA.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-AdunanzA.obj -MD -MP -MF "$(DEPDIR)/amuled-AdunanzA.Tpo" -c -o amuled-AdunanzA.obj `if test -f 'AdunanzA.cpp'; then $(CYGPATH_W) 'AdunanzA.cpp'; else $(CYGPATH_W) '$(srcdir)/AdunanzA.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-AdunanzA.Tpo" "$(DEPDIR)/amuled-AdunanzA.Po"; else rm -f "$(DEPDIR)/amuled-AdunanzA.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AdunanzA.cpp' object='amuled-AdunanzA.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-AdunanzA.obj `if test -f 'AdunanzA.cpp'; then $(CYGPATH_W) 'AdunanzA.cpp'; else $(CYGPATH_W) '$(srcdir)/AdunanzA.cpp'; fi`
+
+amuled-RemoteSettings.o: RemoteSettings.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-RemoteSettings.o -MD -MP -MF "$(DEPDIR)/amuled-RemoteSettings.Tpo" -c -o amuled-RemoteSettings.o `test -f 'RemoteSettings.cpp' || echo '$(srcdir)/'`RemoteSettings.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-RemoteSettings.Tpo" "$(DEPDIR)/amuled-RemoteSettings.Po"; else rm -f "$(DEPDIR)/amuled-RemoteSettings.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RemoteSettings.cpp' object='amuled-RemoteSettings.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-RemoteSettings.o `test -f 'RemoteSettings.cpp' || echo '$(srcdir)/'`RemoteSettings.cpp
+
+amuled-RemoteSettings.obj: RemoteSettings.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-RemoteSettings.obj -MD -MP -MF "$(DEPDIR)/amuled-RemoteSettings.Tpo" -c -o amuled-RemoteSettings.obj `if test -f 'RemoteSettings.cpp'; then $(CYGPATH_W) 'RemoteSettings.cpp'; else $(CYGPATH_W) '$(srcdir)/RemoteSettings.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-RemoteSettings.Tpo" "$(DEPDIR)/amuled-RemoteSettings.Po"; else rm -f "$(DEPDIR)/amuled-RemoteSettings.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RemoteSettings.cpp' object='amuled-RemoteSettings.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-RemoteSettings.obj `if test -f 'RemoteSettings.cpp'; then $(CYGPATH_W) 'RemoteSettings.cpp'; else $(CYGPATH_W) '$(srcdir)/RemoteSettings.cpp'; fi`
+
amuled-ClientCredits.o: ClientCredits.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-ClientCredits.o -MD -MP -MF "$(DEPDIR)/amuled-ClientCredits.Tpo" -c -o amuled-ClientCredits.o `test -f 'ClientCredits.cpp' || echo '$(srcdir)/'`ClientCredits.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-ClientCredits.Tpo" "$(DEPDIR)/amuled-ClientCredits.Po"; else rm -f "$(DEPDIR)/amuled-ClientCredits.Tpo"; exit 1; fi
@@ -3318,6 +3377,20 @@ amuled-Logger.obj: Logger.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-Logger.obj `if test -f 'Logger.cpp'; then $(CYGPATH_W) 'Logger.cpp'; else $(CYGPATH_W) '$(srcdir)/Logger.cpp'; fi`
+amuled-Packet.o: Packet.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-Packet.o -MD -MP -MF "$(DEPDIR)/amuled-Packet.Tpo" -c -o amuled-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-Packet.Tpo" "$(DEPDIR)/amuled-Packet.Po"; else rm -f "$(DEPDIR)/amuled-Packet.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='amuled-Packet.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp
+
+amuled-Packet.obj: Packet.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-Packet.obj -MD -MP -MF "$(DEPDIR)/amuled-Packet.Tpo" -c -o amuled-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-Packet.Tpo" "$(DEPDIR)/amuled-Packet.Po"; else rm -f "$(DEPDIR)/amuled-Packet.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='amuled-Packet.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`
+
amuled-PartFile.o: PartFile.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-PartFile.o -MD -MP -MF "$(DEPDIR)/amuled-PartFile.Tpo" -c -o amuled-PartFile.o `test -f 'PartFile.cpp' || echo '$(srcdir)/'`PartFile.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-PartFile.Tpo" "$(DEPDIR)/amuled-PartFile.Po"; else rm -f "$(DEPDIR)/amuled-PartFile.Tpo"; exit 1; fi
@@ -3416,6 +3489,20 @@ amuled-SHAHashSet.obj: SHAHashSet.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-SHAHashSet.obj `if test -f 'SHAHashSet.cpp'; then $(CYGPATH_W) 'SHAHashSet.cpp'; else $(CYGPATH_W) '$(srcdir)/SHAHashSet.cpp'; fi`
+amuled-HTTPDownload.o: HTTPDownload.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-HTTPDownload.o -MD -MP -MF "$(DEPDIR)/amuled-HTTPDownload.Tpo" -c -o amuled-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-HTTPDownload.Tpo" "$(DEPDIR)/amuled-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amuled-HTTPDownload.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amuled-HTTPDownload.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp
+
+amuled-HTTPDownload.obj: HTTPDownload.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-HTTPDownload.obj -MD -MP -MF "$(DEPDIR)/amuled-HTTPDownload.Tpo" -c -o amuled-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-HTTPDownload.Tpo" "$(DEPDIR)/amuled-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amuled-HTTPDownload.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amuled-HTTPDownload.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -c -o amuled-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`
+
amuled-OtherFunctions.o: OtherFunctions.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amuled_CXXFLAGS) $(CXXFLAGS) -MT amuled-OtherFunctions.o -MD -MP -MF "$(DEPDIR)/amuled-OtherFunctions.Tpo" -c -o amuled-OtherFunctions.o `test -f 'OtherFunctions.cpp' || echo '$(srcdir)/'`OtherFunctions.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amuled-OtherFunctions.Tpo" "$(DEPDIR)/amuled-OtherFunctions.Po"; else rm -f "$(DEPDIR)/amuled-OtherFunctions.Tpo"; exit 1; fi
@@ -3542,6 +3629,20 @@ amulegui-KadDlg.obj: KadDlg.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-KadDlg.obj `if test -f 'KadDlg.cpp'; then $(CYGPATH_W) 'KadDlg.cpp'; else $(CYGPATH_W) '$(srcdir)/KadDlg.cpp'; fi`
+amulegui-MuleListCtrl.o: MuleListCtrl.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-MuleListCtrl.o -MD -MP -MF "$(DEPDIR)/amulegui-MuleListCtrl.Tpo" -c -o amulegui-MuleListCtrl.o `test -f 'MuleListCtrl.cpp' || echo '$(srcdir)/'`MuleListCtrl.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-MuleListCtrl.Tpo" "$(DEPDIR)/amulegui-MuleListCtrl.Po"; else rm -f "$(DEPDIR)/amulegui-MuleListCtrl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MuleListCtrl.cpp' object='amulegui-MuleListCtrl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-MuleListCtrl.o `test -f 'MuleListCtrl.cpp' || echo '$(srcdir)/'`MuleListCtrl.cpp
+
+amulegui-MuleListCtrl.obj: MuleListCtrl.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-MuleListCtrl.obj -MD -MP -MF "$(DEPDIR)/amulegui-MuleListCtrl.Tpo" -c -o amulegui-MuleListCtrl.obj `if test -f 'MuleListCtrl.cpp'; then $(CYGPATH_W) 'MuleListCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/MuleListCtrl.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-MuleListCtrl.Tpo" "$(DEPDIR)/amulegui-MuleListCtrl.Po"; else rm -f "$(DEPDIR)/amulegui-MuleListCtrl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MuleListCtrl.cpp' object='amulegui-MuleListCtrl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-MuleListCtrl.obj `if test -f 'MuleListCtrl.cpp'; then $(CYGPATH_W) 'MuleListCtrl.cpp'; else $(CYGPATH_W) '$(srcdir)/MuleListCtrl.cpp'; fi`
+
amulegui-OScopeCtrl.o: OScopeCtrl.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-OScopeCtrl.o -MD -MP -MF "$(DEPDIR)/amulegui-OScopeCtrl.Tpo" -c -o amulegui-OScopeCtrl.o `test -f 'OScopeCtrl.cpp' || echo '$(srcdir)/'`OScopeCtrl.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-OScopeCtrl.Tpo" "$(DEPDIR)/amulegui-OScopeCtrl.Po"; else rm -f "$(DEPDIR)/amulegui-OScopeCtrl.Tpo"; exit 1; fi
@@ -3752,6 +3853,34 @@ amulegui-TransferWnd.obj: TransferWnd.cp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-TransferWnd.obj `if test -f 'TransferWnd.cpp'; then $(CYGPATH_W) 'TransferWnd.cpp'; else $(CYGPATH_W) '$(srcdir)/TransferWnd.cpp'; fi`
+amulegui-AdunanzA.o: AdunanzA.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-AdunanzA.o -MD -MP -MF "$(DEPDIR)/amulegui-AdunanzA.Tpo" -c -o amulegui-AdunanzA.o `test -f 'AdunanzA.cpp' || echo '$(srcdir)/'`AdunanzA.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-AdunanzA.Tpo" "$(DEPDIR)/amulegui-AdunanzA.Po"; else rm -f "$(DEPDIR)/amulegui-AdunanzA.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AdunanzA.cpp' object='amulegui-AdunanzA.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-AdunanzA.o `test -f 'AdunanzA.cpp' || echo '$(srcdir)/'`AdunanzA.cpp
+
+amulegui-AdunanzA.obj: AdunanzA.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-AdunanzA.obj -MD -MP -MF "$(DEPDIR)/amulegui-AdunanzA.Tpo" -c -o amulegui-AdunanzA.obj `if test -f 'AdunanzA.cpp'; then $(CYGPATH_W) 'AdunanzA.cpp'; else $(CYGPATH_W) '$(srcdir)/AdunanzA.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-AdunanzA.Tpo" "$(DEPDIR)/amulegui-AdunanzA.Po"; else rm -f "$(DEPDIR)/amulegui-AdunanzA.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AdunanzA.cpp' object='amulegui-AdunanzA.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-AdunanzA.obj `if test -f 'AdunanzA.cpp'; then $(CYGPATH_W) 'AdunanzA.cpp'; else $(CYGPATH_W) '$(srcdir)/AdunanzA.cpp'; fi`
+
+amulegui-RemoteSettings.o: RemoteSettings.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-RemoteSettings.o -MD -MP -MF "$(DEPDIR)/amulegui-RemoteSettings.Tpo" -c -o amulegui-RemoteSettings.o `test -f 'RemoteSettings.cpp' || echo '$(srcdir)/'`RemoteSettings.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-RemoteSettings.Tpo" "$(DEPDIR)/amulegui-RemoteSettings.Po"; else rm -f "$(DEPDIR)/amulegui-RemoteSettings.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RemoteSettings.cpp' object='amulegui-RemoteSettings.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-RemoteSettings.o `test -f 'RemoteSettings.cpp' || echo '$(srcdir)/'`RemoteSettings.cpp
+
+amulegui-RemoteSettings.obj: RemoteSettings.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-RemoteSettings.obj -MD -MP -MF "$(DEPDIR)/amulegui-RemoteSettings.Tpo" -c -o amulegui-RemoteSettings.obj `if test -f 'RemoteSettings.cpp'; then $(CYGPATH_W) 'RemoteSettings.cpp'; else $(CYGPATH_W) '$(srcdir)/RemoteSettings.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-RemoteSettings.Tpo" "$(DEPDIR)/amulegui-RemoteSettings.Po"; else rm -f "$(DEPDIR)/amulegui-RemoteSettings.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RemoteSettings.cpp' object='amulegui-RemoteSettings.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-RemoteSettings.obj `if test -f 'RemoteSettings.cpp'; then $(CYGPATH_W) 'RemoteSettings.cpp'; else $(CYGPATH_W) '$(srcdir)/RemoteSettings.cpp'; fi`
+
amulegui-ClientCredits.o: ClientCredits.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-ClientCredits.o -MD -MP -MF "$(DEPDIR)/amulegui-ClientCredits.Tpo" -c -o amulegui-ClientCredits.o `test -f 'ClientCredits.cpp' || echo '$(srcdir)/'`ClientCredits.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-ClientCredits.Tpo" "$(DEPDIR)/amulegui-ClientCredits.Po"; else rm -f "$(DEPDIR)/amulegui-ClientCredits.Tpo"; exit 1; fi
@@ -3822,6 +3951,20 @@ amulegui-Logger.obj: Logger.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-Logger.obj `if test -f 'Logger.cpp'; then $(CYGPATH_W) 'Logger.cpp'; else $(CYGPATH_W) '$(srcdir)/Logger.cpp'; fi`
+amulegui-Packet.o: Packet.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-Packet.o -MD -MP -MF "$(DEPDIR)/amulegui-Packet.Tpo" -c -o amulegui-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-Packet.Tpo" "$(DEPDIR)/amulegui-Packet.Po"; else rm -f "$(DEPDIR)/amulegui-Packet.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='amulegui-Packet.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-Packet.o `test -f 'Packet.cpp' || echo '$(srcdir)/'`Packet.cpp
+
+amulegui-Packet.obj: Packet.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-Packet.obj -MD -MP -MF "$(DEPDIR)/amulegui-Packet.Tpo" -c -o amulegui-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-Packet.Tpo" "$(DEPDIR)/amulegui-Packet.Po"; else rm -f "$(DEPDIR)/amulegui-Packet.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Packet.cpp' object='amulegui-Packet.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-Packet.obj `if test -f 'Packet.cpp'; then $(CYGPATH_W) 'Packet.cpp'; else $(CYGPATH_W) '$(srcdir)/Packet.cpp'; fi`
+
amulegui-PartFile.o: PartFile.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-PartFile.o -MD -MP -MF "$(DEPDIR)/amulegui-PartFile.Tpo" -c -o amulegui-PartFile.o `test -f 'PartFile.cpp' || echo '$(srcdir)/'`PartFile.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-PartFile.Tpo" "$(DEPDIR)/amulegui-PartFile.Po"; else rm -f "$(DEPDIR)/amulegui-PartFile.Tpo"; exit 1; fi
@@ -3920,6 +4063,20 @@ amulegui-SHAHashSet.obj: SHAHashSet.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-SHAHashSet.obj `if test -f 'SHAHashSet.cpp'; then $(CYGPATH_W) 'SHAHashSet.cpp'; else $(CYGPATH_W) '$(srcdir)/SHAHashSet.cpp'; fi`
+amulegui-HTTPDownload.o: HTTPDownload.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-HTTPDownload.o -MD -MP -MF "$(DEPDIR)/amulegui-HTTPDownload.Tpo" -c -o amulegui-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-HTTPDownload.Tpo" "$(DEPDIR)/amulegui-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amulegui-HTTPDownload.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amulegui-HTTPDownload.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-HTTPDownload.o `test -f 'HTTPDownload.cpp' || echo '$(srcdir)/'`HTTPDownload.cpp
+
+amulegui-HTTPDownload.obj: HTTPDownload.cpp
+@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-HTTPDownload.obj -MD -MP -MF "$(DEPDIR)/amulegui-HTTPDownload.Tpo" -c -o amulegui-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-HTTPDownload.Tpo" "$(DEPDIR)/amulegui-HTTPDownload.Po"; else rm -f "$(DEPDIR)/amulegui-HTTPDownload.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HTTPDownload.cpp' object='amulegui-HTTPDownload.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -c -o amulegui-HTTPDownload.obj `if test -f 'HTTPDownload.cpp'; then $(CYGPATH_W) 'HTTPDownload.cpp'; else $(CYGPATH_W) '$(srcdir)/HTTPDownload.cpp'; fi`
+
amulegui-OtherFunctions.o: OtherFunctions.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(amulegui_CXXFLAGS) $(CXXFLAGS) -MT amulegui-OtherFunctions.o -MD -MP -MF "$(DEPDIR)/amulegui-OtherFunctions.Tpo" -c -o amulegui-OtherFunctions.o `test -f 'OtherFunctions.cpp' || echo '$(srcdir)/'`OtherFunctions.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/amulegui-OtherFunctions.Tpo" "$(DEPDIR)/amulegui-OtherFunctions.Po"; else rm -f "$(DEPDIR)/amulegui-OtherFunctions.Tpo"; exit 1; fi
diff -urdpN ../aMule-2.1.3-orig/src/Makengfile ./src/Makengfile
--- ../aMule-2.1.3-orig/src/Makengfile 2005-03-16 18:27:56.000000000 +0100
+++ ./src/Makengfile 2006-06-12 18:30:05.000000000 +0200
@@ -7,6 +7,7 @@ $(proc add-type-options,c,o, $(CFLAGS))
$(proc add-type-options,cpp,o, -Isrc $(CXXFLAGS))
SOURCES = AddFriend.cpp \
+ AdunanzA.cpp \
animate.cpp \
BarShader.cpp \
BaseClient.cpp \
diff -urdpN ../aMule-2.1.3-orig/src/MuleListCtrl.cpp ./src/MuleListCtrl.cpp
--- ../aMule-2.1.3-orig/src/MuleListCtrl.cpp 2006-01-10 01:06:29.000000000 +0100
+++ ./src/MuleListCtrl.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -36,6 +36,7 @@
#include "MuleListCtrl.h" // Interface declarations
#include "OPCodes.h" // Needed for MP_LISTCOL_1
#include "GetTickCount.h" // Needed for GetTickCount()
+#include "amule.h"
#include <cctype> // Needed for isprint() and tolower
@@ -107,7 +108,7 @@ void CMuleListCtrl::SaveSettings()
return;
}
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
// Save sorting, column and order
cfg->Write(wxT("/eMule/TableSorting") + m_name, (long)(m_sort_column | m_sort_order));
@@ -131,7 +132,7 @@ void CMuleListCtrl::LoadSettings()
return;
}
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
// Load sort order (including sort-column)
long setting = cfg->Read(wxT("/eMule/TableSorting") + m_name, 0l);
diff -urdpN ../aMule-2.1.3-orig/src/muuli_wdr.cpp ./src/muuli_wdr.cpp
--- ../aMule-2.1.3-orig/src/muuli_wdr.cpp 2006-05-02 05:28:53.000000000 +0200
+++ ./src/muuli_wdr.cpp 2006-06-12 19:20:49.000000000 +0200
@@ -50,6 +50,9 @@
#include "PartFileConvert.h"
#include "KadDlg.h"
+#include "amuleDlg.h"
+#include "AdunanzA.h"
+
// Implement window functions
@@ -199,7 +202,7 @@ wxSizer *searchDlg( wxWindow *parent, bo
{
_("Local Search"),
_("Global Search"),
- _("Kad"),
+ _("KAdu"),
_("FileHash (WWW)")
};
wxChoice *item9 = new wxChoice( parent, ID_SEARCHTYPE, wxDefaultPosition, wxDefaultSize, 4, strs9, 0 );
@@ -1596,7 +1599,7 @@ wxSizer *PreferencesGeneralTab( wxWindow
wxStaticBox *item6 = new wxStaticBox( parent, -1, _("Nick") );
wxStaticBoxSizer *item5 = new wxStaticBoxSizer( item6, wxVERTICAL );
- CMuleTextCtrl *item7 = new CMuleTextCtrl( parent, IDC_NICK, _("http://www.aMule.org - the Linux Mule"), wxDefaultPosition, wxSize(90,-1), 0 );
+ CMuleTextCtrl *item7 = new CMuleTextCtrl( parent, IDC_NICK, _("http://www.adunanza.net"), wxDefaultPosition, wxSize(90,-1), 0 );
item7->SetToolTip( _("This is the name that other users will see when connecting to you.") );
item5->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );
@@ -1755,7 +1758,7 @@ wxSizer *PreferencesConnectionTab( wxWin
wxBoxSizer *item16 = new wxBoxSizer( wxHORIZONTAL );
- wxSpinCtrl *item17 = new wxSpinCtrl( parent, IDC_SLOTALLOC, wxT("2"), wxDefaultPosition, wxSize(100,-1), 0, 1, 30, 2 );
+ wxSpinCtrl *item17 = new wxSpinCtrl( parent, IDC_SLOTALLOC, wxT("2"), wxDefaultPosition, wxSize(100,-1), 0, 1, 500, 2 );
item16->Add( item17, 0, wxALIGN_CENTER_VERTICAL, 5 );
wxStaticText *item18 = new wxStaticText( parent, ID_TEXT, _("kB/s"), wxDefaultPosition, wxDefaultSize, 0 );
@@ -2270,11 +2273,12 @@ wxSizer *PreferencesStatisticsTab( wxWin
_("Active downloads"),
_("Active uploads"),
_("Systray Icon Speedbar"),
+ _("Kad-nodes active"),
_("Kad-nodes current"),
_("Kad-nodes running"),
_("Kad-nodes session")
};
- wxChoice *item14 = new wxChoice( parent, IDC_COLORSELECTOR, wxDefaultPosition, wxDefaultSize, 15, strs14, 0 );
+ wxChoice *item14 = new wxChoice( parent, IDC_COLORSELECTOR, wxDefaultPosition, wxDefaultSize, 16, strs14, 0 );
item13->Add( item14, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
wxButton *item15 = new wxButton( parent, IDC_COLOR_BUTTON, _("Select"), wxDefaultPosition, wxDefaultSize, 0 );
@@ -3212,7 +3216,7 @@ wxSizer *KadDlg( wxWindow *parent, bool
item5->SetName( wxT("nodesListLabel") );
item3->Add( item5, 0, wxADJUST_MINSIZE|wxALIGN_CENTER|wxLEFT|wxRIGHT, 5 );
- CMuleTextCtrl *item6 = new CMuleTextCtrl( parent, IDC_NODESLISTURL, _("http://download.overnet2000.de/nodes.dat"), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
+ CMuleTextCtrl *item6 = new CMuleTextCtrl( parent, IDC_NODESLISTURL, _(ADU_NODES_DAT), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
item6->SetToolTip( _("Enter the url to a nodes.dat file here and press the button to the left to update the list of known nodes.") );
item3->Add( item6, 1, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_HORIZONTAL|wxLEFT, 5 );
@@ -3221,7 +3225,7 @@ wxSizer *KadDlg( wxWindow *parent, bool
wxStaticBox *item8 = new wxStaticBox( parent, -1, _("Nodes stats") );
wxStaticBoxSizer *item7 = new wxStaticBoxSizer( item8, wxVERTICAL );
- wxWindow *item9 = new COScopeCtrl(3,0,GRAPH_KAD,parent);
+ wxWindow *item9 = new COScopeCtrl(4,0,GRAPH_KAD,parent);
item9->SetName(wxT("kadScope"));
wxASSERT( item9 );
item7->Add( item9, 1, wxGROW, 5 );
@@ -3232,11 +3236,22 @@ item9->SetName(wxT("kadScope"));
wxBoxSizer *item11 = new wxBoxSizer( wxHORIZONTAL );
- wxWindow *item12 = new CColorFrameCtrl(parent,IDC_C0,20,14);
+ wxWindow *item12 = new CColorFrameCtrl(parent,IDC_C1,20,14);
wxASSERT( item12 );
item11->Add( item12, 0, wxFIXED_MINSIZE|wxALIGN_CENTER, 5 );
- wxStaticText *item13 = new wxStaticText( parent, ID_TEXT, _("Current"), wxDefaultPosition, wxDefaultSize, 0 );
+ wxStaticText *item13 = new wxStaticText( parent, ID_TEXT, _("Current Active"), wxDefaultPosition, wxDefaultSize, 0 );
+ item11->Add( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTER|wxLEFT, 5 );
+
+ item10->Add( item11, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+ item11 = new wxBoxSizer( wxHORIZONTAL );
+
+ item12 = new CColorFrameCtrl(parent,IDC_C0,20,14);
+ wxASSERT( item12 );
+ item11->Add( item12, 0, wxFIXED_MINSIZE|wxALIGN_CENTER, 5 );
+
+ item13 = new wxStaticText( parent, ID_TEXT, _("Current"), wxDefaultPosition, wxDefaultSize, 0 );
item11->Add( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTER|wxLEFT, 5 );
item10->Add( item11, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
@@ -4009,6 +4024,7 @@ void muleToolbar( wxToolBar *parent )
parent->AddTool( ID_BUTTONSHARED, _("Shared Files"), amuleDlgImages( 23 ), wxNullBitmap, wxITEM_CHECK, _("Shared Files Window") );
parent->AddTool( ID_BUTTONMESSAGES, _("Messages"), amuleDlgImages( 24 ), wxNullBitmap, wxITEM_CHECK, _("Messages Window") );
parent->AddTool( ID_BUTTONSTATISTICS, _("Statistics"), amuleDlgImages( 25 ), wxNullBitmap, wxITEM_CHECK, _("Statistics Graph Window") );
+ parent->AddTool( ID_IRC, _("Chat/Supporto"), amuleDlgImages( 930 ), wxNullBitmap, wxITEM_NORMAL, _("Informazioni e Aiuto") );
parent->AddSeparator();
parent->AddTool( ID_BUTTONNEWPREFERENCES, _("Preferences"), amuleDlgImages( 26 ), wxNullBitmap, wxITEM_NORMAL, _("Preferences Settings Window") );
parent->AddTool( ID_BUTTONIMPORT, _("Import"), amuleDlgImages( 32 ), wxNullBitmap, wxITEM_NORMAL, _("The partfile importer tool") );
@@ -5062,6 +5078,109 @@ wxBitmap clientImages( size_t index )
wxBitmap bitmap( image );
return bitmap;
}
+
+ // Stefano Picerno: Aggiunte due immagini
+ if (index == Client_Adunanza_Flag)
+ { // Adunanza FLAG
+ /* XPM */
+ static const char *xpm_data[] = {
+ /* columns rows colors chars-per-pixel */
+ "16 16 6 1",
+ " c None",
+ "a c Black",
+ "b c #101010",
+ "c c #FF0000",
+ "e c #222222",
+ "f c #0D0D0D",
+ /* pixels */
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " aa ",
+ " acca ",
+ " acccca ",
+ " accaacca",
+ " accaacca",
+ " acccccca",
+ " accaacca",
+ " accaacca",
+ " aa aa "
+ };
+
+ wxBitmap bitmap( xpm_data );
+ return bitmap;
+ }
+ if (index == Client_Fastweb_Flag)
+ { // Fastweb FLAG
+ /* XPM */
+ static const char *xpm_data[] = {
+ /* columns rows colors chars-per-pixel */
+ "16 16 6 1",
+ " c None",
+ "a c Black",
+ "b c #101010",
+ "c c #0000FF",
+ "e c #222222",
+ "f c #0D0D0D",
+ /* pixels */
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " aaaaa ",
+ " accccca",
+ " accccca",
+ " accaa ",
+ " acccca ",
+ " acccca ",
+ " accaa ",
+ " acca ",
+ " aa "
+ };
+ wxBitmap bitmap( xpm_data );
+ return bitmap;
+ }
+ if (index == Client_Fiber_Flag)
+ { // Fiber FLAG
+ /* XPM */
+ static const char *xpm_data[] = {
+ /* columns rows colors chars-per-pixel */
+ "16 16 6 1",
+ " c None",
+ "a c Black",
+ "b c #003070",
+ "c c #A0A0A0",
+ "e c #FFFFFF",
+ "f c #0D0D0D",
+ /* pixels */
+ " aa ",
+ " aeea ",
+ " aaeaea ",
+ " abbaeea ",
+ " abbbbaa ",
+ "abbbbba ",
+ "abbbba ",
+ " abba ",
+ " aa ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ };
+ wxBitmap bitmap( xpm_data );
+ return bitmap;
+ }
+ // Fine
return wxNullBitmap;
}
@@ -5236,6 +5355,8 @@ wxBitmap dlStatusImages( size_t index )
wxBitmap bitmap( xpm_data );
return bitmap;
}
+
+
return wxNullBitmap;
}
@@ -6624,6 +6745,8 @@ wxBitmap amuleSpecial( size_t index )
wxBitmap bitmap( image );
return bitmap;
}
+
+
return wxNullBitmap;
}
@@ -9480,6 +9603,259 @@ wxBitmap amuleDlgImages( size_t index )
wxBitmap bitmap( image );
return bitmap;
}
+
+ if (index == 930)
+ {
+ static const char *xpm_data[] = {
+"32 32 211 2",
+" c None",
+". c #043F8A",
+"+ c #1659A2",
+"@ c #3A92FF",
+"# c #77A6CD",
+"$ c #547C67",
+"% c #2479F1",
+"& c #084B9A",
+"* c #003C83",
+"= c #00397C",
+"- c #2A5865",
+"; c #727476",
+"> c #116CC9",
+", c #4A7CAD",
+"' c #1558A7",
+") c #3B95DB",
+"! c #54AFED",
+"~ c #74C2FA",
+"{ c #7EC6FB",
+"] c #83C9FB",
+"^ c #75B8EE",
+"/ c #71A6DA",
+"( c #245F9F",
+"_ c #003572",
+": c #F1F0EF",
+"< c #1960AC",
+"[ c #003F8A",
+"} c #1B65AE",
+"| c #4997D8",
+"1 c #75BCF3",
+"2 c #95CCFB",
+"3 c #9CD1FB",
+"4 c #BEE1FD",
+"5 c #B4D9F7",
+"6 c #AFD5F3",
+"7 c #9DC5EE",
+"8 c #34659B",
+"9 c #D1BDA1",
+"0 c #1A559A",
+"a c #00408B",
+"b c #2774C4",
+"c c #8EC3FD",
+"d c #B5DCFB",
+"e c #D4EBFE",
+"f c #E7F4FF",
+"g c #FDFFFF",
+"h c #EAF6FF",
+"i c #95B3D7",
+"j c #3F6EA2",
+"k c #00326C",
+"l c #0C498E",
+"m c #4B6389",
+"n c #EEF8FF",
+"o c #C3E5FF",
+"p c #23558D",
+"q c #035AB3",
+"r c #276BB8",
+"s c #F2F2F1",
+"t c #E3E5EA",
+"u c #DEE0E6",
+"v c #D4DCE6",
+"w c #CADAEA",
+"x c #C6D6E6",
+"y c #CDE2F4",
+"z c #BDDEFB",
+"A c #7B97BA",
+"B c #6485AE",
+"C c #000000",
+"D c #4182C7",
+"E c #FF8080",
+"F c #D90000",
+"G c #FFFFE0",
+"H c #D9D900",
+"I c #9ECBFC",
+"J c #5384BD",
+"K c #5BA4E1",
+"L c #B7CFE6",
+"M c #FF0504",
+"N c #B50001",
+"O c #BC0003",
+"P c #FFFF00",
+"Q c #B2B200",
+"R c #79AEE9",
+"S c #18529C",
+"T c #F3FAFF",
+"U c #FF6262",
+"V c #8ABFFB",
+"W c #CEE9FF",
+"X c #ADCAE6",
+"Y c #688DBA",
+"Z c #C1DDF4",
+"` c #ACD6FE",
+" . c #83BBF9",
+".. c #C20000",
+"+. c #8AA2C1",
+"@. c #95AFCE",
+"#. c #ACCBE9",
+"$. c #76B1F7",
+"%. c #3A85E8",
+"&. c #A6D2FE",
+"*. c #A5C6E6",
+"=. c #4D79AF",
+"-. c #B3D4F3",
+";. c #CBE7FF",
+">. c #95C6FC",
+",. c #63A4F6",
+"'. c #377FE6",
+"). c #002D62",
+"!. c #7BB4F9",
+"~. c #4E94F2",
+"{. c #256CD0",
+"]. c #6CA9F7",
+"^. c #3E89ED",
+"/. c #114D9C",
+"(. c #642909",
+"_. c #A3C5EA",
+":. c #FFFFA8",
+"<. c #A0A50B",
+"[. c #A5AA0B",
+"}. c #A9AC0B",
+"|. c #5B9DF4",
+"1. c #2F76D7",
+"2. c #D48D4E",
+"3. c #DAA16C",
+"4. c #CE8240",
+"5. c #AE6327",
+"6. c #8DBBF0",
+"7. c #C67530",
+"8. c #B4682C",
+"9. c #EBC999",
+"0. c #E4B886",
+"a. c #D38E52",
+"b. c #9B5522",
+"c. c #96BEE6",
+"d. c #9EC2E6",
+"e. c #4389F2",
+"f. c #2D70CD",
+"g. c #783910",
+"h. c #E0AE7D",
+"i. c #D69557",
+"j. c #86461A",
+"k. c #858588",
+"l. c #8E4B1B",
+"m. c #675B63",
+"n. c #8192AF",
+"o. c #A0CEFD",
+"p. c #7FBDF9",
+"q. c #4289EC",
+"r. c #914C1B",
+"s. c #BA6C2C",
+"t. c #67A9F8",
+"u. c #6DAAF8",
+"v. c #1857B1",
+"w. c #0A4083",
+"x. c #A55C25",
+"y. c #5A2D12",
+"z. c #EED2AE",
+"A. c #B67038",
+"B. c #0D51A5",
+"C. c #1462D2",
+"D. c #2171E8",
+"E. c #2F82F0",
+"F. c #3684F1",
+"G. c #4490F2",
+"H. c #77B2F9",
+"I. c #DDDBD7",
+"J. c #45312A",
+"K. c #32373E",
+"L. c #014499",
+"M. c #0657C6",
+"N. c #7E98B6",
+"O. c #6F310D",
+"P. c #CF874A",
+"Q. c #F6E7DA",
+"R. c #9A9794",
+"S. c #48494C",
+"T. c #A7602A",
+"U. c #D1B28B",
+"V. c #E5DCD2",
+"W. c #BDBDB6",
+"X. c #DCA25C",
+"Y. c #CA7B38",
+"Z. c #C27739",
+"`. c #C68338",
+" + c #686A6D",
+".+ c #171614",
+"++ c #B4B4B1",
+"@+ c #AD6228",
+"#+ c #BE7D3F",
+"$+ c #AAAAA7",
+"%+ c #A0A09E",
+"&+ c #E3E3E0",
+"*+ c #CD813F",
+"=+ c #D99A61",
+"-+ c #D4CDC2",
+";+ c #E8E8E6",
+">+ c #EFEFED",
+",+ c #054EB0",
+"'+ c #D89C47",
+")+ c #B68B67",
+"!+ c #C9C2B9",
+"~+ c #7C4D2D",
+"{+ c #CBCBC7",
+"]+ c #97511E",
+"^+ c #833F14",
+"/+ c #682B09",
+"(+ c #3F3330",
+"_+ c #6D7072",
+":+ c #C37A31",
+"<+ c #E49C3F",
+"[+ c #D48C38",
+" . . . . . . ",
+" . . + @ # $ % & * * * * * = = = = = ",
+" . - ; > @ , * * * ' ) ! ~ { ] { ^ / ( = _ _ ",
+" . $ : < > [ * } | 1 2 3 4 4 4 4 4 4 5 6 7 / 8 _ _ ",
+" . 9 0 a [ b | c d e f g g g g g g g g g h e 4 i j _ k ",
+". l m a ' ) ~ d e g g g g g g g g g g g g g g n e o i p k ",
+". q a r ) ~ d s t u v w w w x x x x w w w v v u t y z 7 j k ",
+". [ } ) { 4 s A [ [ [ [ B [ [ [ [ [ [ B [ [ [ [ [ A y z / p k ",
+"C a D ~ z g w [ E E E F [ E E E E E F [ G G G G H [ t e I J k ",
+"a r K d h n L [ E g M N [ E g M M M O [ P P P P Q [ v n d R S k ",
+"a D c z T e L [ U N N N [ E M M N N O [ P Q Q Q Q [ w T d V r k ",
+"[ K 2 z T W X [ [ [ [ [ [ E M M N [ [ [ P [ [ [ [ Y Z n ` .D k ",
+"[ ^ I z n o X [ E E E ..[ E M M N [ G P P [ +.@.i #.z f ` $.%.k ",
+"[ K &.` W 4 *.[ E g M N [ E M M N [ G P P [ [ [ [ =.-.;.>.,.'.).",
+"* J I &.4 z *.[ E M M N [ E M M N [ G P P G G G H [ #.4 !.~.{.).",
+"[ ( / &.d z *.[ E M M N [ E M M N [ G P P P P P Q [ *.&.].^./.k ",
+" * D (.(.(._.[ (.(.(.(.(.(.(.N N [ :.<.[.[.[.[.}.[ _.V |.1.). ",
+" * (.2.(.I (.(.3.2.4.4.5.(.[ [ [ =.[ [ [ [ [ [ [ J 6.|.^./.). ",
+" (.7.8.(.(.9.0.a.4.b.(.(.7 c.c.7 7 _.*.*.*.*.d.7 6.|.e.f.). ",
+" (.8.g.4.h.i.2.j.(.k.I &.&.&.&.&.&.&.d z z z ` >.~.'.f.S ). ",
+"(.(.l.4.2.4.5.(.m.n.!.c c c c c c c >.o.d d d p.|.q.r /.). ",
+" (.r.s.5.5.g.b.(.b ^.,.t.u.].u.u.u.!.V I ` .~.q.v.w.k ",
+"(.(.x.s.7.y.h.z.A.(._ B.C.D.E.F.F.G.,.H.>.V ~.'.' k k ",
+" (.s.7.7.3.g I.C l.(.J.K.K._ k k L.M.,. .,.D.' k N. ",
+"(.O.7.4.7.P.Q.R.S.T.U.V.s W.K. k L.C.|.F.' k ",
+"(.r.2.X.i.Y.P.i.Z.`.U. +.+s ++K. k M.F.M.). ",
+"(.5.2.z.h.2.Y.8.@+#+++$+%+s &+K. k M.C.k ",
+"(.r.*+=+3.2.Y.s.@+A.-+;+s g >+K. k ,+k ",
+"(.O.8.*+*+'+7.s.x.)+!+I.;+>+;+K. ).k ",
+"(.g.(.x.x.x.x.b.~+%+{+ +{+I.k.K. k ",
+"O.l.]+^+/+(.y.(+K._+R.++S.K.K. ",
+"O.r.:+<+[+@+(. K.K.K.K. "};
+ wxBitmap bitmap( xpm_data );
+ return bitmap;
+ }
+
+
return wxNullBitmap;
}
diff -urdpN ../aMule-2.1.3-orig/src/muuli_wdr.h ./src/muuli_wdr.h
--- ../aMule-2.1.3-orig/src/muuli_wdr.h 2005-12-11 08:32:01.000000000 +0100
+++ ./src/muuli_wdr.h 2006-06-12 18:30:05.000000000 +0200
@@ -530,6 +530,7 @@ const int ID_BUTTONSTATISTICS = 10383;
const int ID_BUTTONNEWPREFERENCES = 10384;
const int ID_BUTTONIMPORT = 10385;
const int ID_ABOUT = 10386;
+const int ID_IRC = 99910387;
void muleToolbar( wxToolBar *parent );
// Declare bitmap functions
diff -urdpN ../aMule-2.1.3-orig/src/NetworkFunctions.cpp ./src/NetworkFunctions.cpp
--- ../aMule-2.1.3-orig/src/NetworkFunctions.cpp 2006-03-13 01:07:00.000000000 +0100
+++ ./src/NetworkFunctions.cpp 2006-06-12 18:30:05.000000000 +0200
@@ -110,7 +110,7 @@ const IPRange ranges[] = {
// Acording to RFC3330, 24.* and 14.* must be parsed as normal ips.
//{ wxT("14.0.0.0"), 8, false }, // Public-Data Networks [RFC1700, page 181]
//{ wxT("24.0.0.0"), 8, false }, // Cable Television Networks --
-{ wxT("39.0.0.0"), 8, false }, // Reserved but subject
+//{ wxT("39.0.0.0"), 8, false }, // Reserved but subject
// to allocation [RFC1797]
{ wxT("80.239.200.0"), 8, false },
{ wxT("127.0.0.0"), 8, false }, // Loopback [RFC1700, page 5]
diff -urdpN ../aMule-2.1.3-orig/src/OPCodes.h ./src/OPCodes.h
--- ../aMule-2.1.3-orig/src/OPCodes.h 2006-06-11 16:58:19.000000000 +0200
+++ ./src/OPCodes.h 2006-06-12 18:57:50.000000000 +0200
@@ -72,12 +72,6 @@ enum {
//#define __CVS__
-#ifdef __CVS__
- #define MOD_VERSION_LONG wxT("aMule CVS")
-#else
- #define MOD_VERSION_LONG wxT("aMule 2.1.3")
-#endif
-
#define VERSION_MJR 2
#define VERSION_MIN 1
#define VERSION_UPDATE 3
@@ -117,17 +111,17 @@ enum EClientSoftware {
#define MAX_CLIENTCONNECTIONTRY 2
#define CONNECTION_TIMEOUT 40000 // set this lower if you want less connections at once, set it higher if you have enough sockets (edonkey has its own timout too, so a very high value won't effect this)
#define FILEREASKTIME 1300000 // 1300000 <- original value ***
-#define SERVERREASKTIME 800000 // don't set this too low, it wont speed up anything, but it could kill amule or your internetconnection
+#define SERVERREASKTIME MIN2MS(8) // don't set this too low, it wont speed up anything, but it could kill amule or your internetconnection
#define UDPSERVERREASKTIME 1300000 // 1300000 <- original value ***
#define SOURCECLIENTREASKS MIN2MS(40) //40 mins
#define SOURCECLIENTREASKF MIN2MS(5) //5 mins
#define KADEMLIAASKTIME SEC2MS(1) //1 second
-#define KADEMLIATOTALFILE 7 //Total files to search sources for.
-#define KADEMLIAREASKTIME HR2MS(1) //1 hour
+#define KADEMLIATOTALFILE 15 //Total files to search sources for.
+#define KADEMLIAREASKTIME MIN2MS(3) //1 hour
#define KADEMLIAPUBLISHTIME SEC(2) //2 second
#define KADEMLIATOTALSTORENOTES 1 //Total hashes to store.
-#define KADEMLIATOTALSTORESRC 2 //Total hashes to store.
-#define KADEMLIATOTALSTOREKEY 1 //Total hashes to store.
+#define KADEMLIATOTALSTORESRC 2*6 //Total hashes to store.
+#define KADEMLIATOTALSTOREKEY 1*3 //Total hashes to store.
#define KADEMLIAREPUBLISHTIMES HR2S(5) //5 hours
#define KADEMLIAREPUBLISHTIMEN HR2S(24) //24 hours
#define KADEMLIAREPUBLISHTIMEK HR2S(24) //24 hours
@@ -138,6 +132,11 @@ enum EClientSoftware {
#define KADEMLIAMAXNOTESPERFILE 50 //Max number of notes per entry in index.
#define KADEMLIABUDDYTIMEOUT MIN2MS(10) // 10 min to receive the buddy
+#define KADEMLIAFRESHGUESS_TOLERANCE 0.25f
+#define KADEMLIAFRESHGUESS_WEIGHT 0.4f
+#define KADEMLIAFRESHGUESS_LOWNORMSOURCES 16
+#define KADEMLIAFRESHGUESS_NONORMSOURCES 8
+
#define ED2KREPUBLISHTIME MIN2MS(1) //1 min
#define MINCOMMONPENALTY 4
#define UDPSERVERSTATTIME SEC2MS(5) //5 secs
@@ -146,14 +145,14 @@ enum EClientSoftware {
#define UDPMAXQUEUETIME SEC2MS(30) //30 Seconds
#define RSAKEYSIZE 384 //384 bits
#define MAX_SOURCES_FILE_SOFT 500
-#define MAX_SOURCES_FILE_UDP 50
+#define MAX_SOURCES_FILE_UDP 500
#define SESSIONMAXTRANS (9.3*1024*1024) // 9.3 Mbytes. "Try to send complete chunks" always sends this amount of data
#define SESSIONMAXTIME HR2MS(1) //1 hour
#define MAXFILECOMMENTLEN 50
#define MIN_UP_CLIENTS_ALLOWED 2 // min. clients allowed to download regardless UPLOAD_CLIENT_DATARATE or any other factors. Don't set this too high
// MOD Note: end
-#define MAXCONPER5SEC 20
+#define MAXCONPER5SEC 75
#define MAXCON5WIN9X 10
#define UPLOAD_CHECK_CLIENT_DR 1000
#define UPLOAD_LOW_CLIENT_DR 2400 // uploadspeed per client in bytes - you may want to adjust
@@ -398,6 +397,34 @@ enum OP_ClientToServer {
#define FT_AICH_HASH 0x27
#define FT_COMPLETE_SOURCES 0x30 // nr. of sources which share a complete version
//of the associated file (supported by eserver 16.46+)
+
+#define TAG_COMPLETE_SOURCES "\x30"
+
+#define FT_KADFIRSTPUBLISH 0x36 // <uint32>
+#define TAG_KADFIRSTPUBLISH "\x36" // <uint32>
+
+#define FT_KADSOURCES 0x37 // <float32>
+#define TAG_KADSOURCES "\x37" // <float32>
+
+#define FT_KADLASTPUBLISH 0x38 // <uint32>
+#define TAG_KADLASTPUBLISH "\x38" // <uint32>
+#define FT_KADREPUBLISHTIMEK 0x39 // <uint32>
+#define TAG_KADREPUBLISHTIMEK "\x39" //
+
+#define FT_ADUCONNECTION 0x40 // <uint8> 0 o assente sconosciuto, 1 dsl, 2 fibra
+#define TAG_ADUCONNECTION "\x40" // <uint8>
+
+#define FT_KADCOMPLETE 0x41 // <uint32>
+#define TAG_KADCOMPLETE "\x41" // <uint32>
+
+#define FT_KADCOMPLETE_SOURCES 0x42 // <uint32>
+#define TAG_KADCOMPLETE_SOURCES "\x42" // <uint32>
+
+#define FT_KADCOMPLETE_FIRSTPUBLISH 0x43 // <uint32>
+#define TAG_KADCOMPLETE_FIRSTPUBLISH "\x43" // <uint32>
+#define FT_KADCOMPLETE_LASTPUBLISH 0x44 // <uint32>
+#define TAG_KADCOMPLETE_LASTPUBLISH "\x44" // <uint32>
+
// statistic
#define FT_ATTRANSFERED 0x50 // <uint32>
#define FT_ATREQUESTED 0x51 // <uint32>
@@ -676,10 +703,21 @@ enum MuleTags {
#define KADEMLIA_FINDBUDDY_RES 0x5A // <TCPPORT (sender) [2]>
// KADEMLIA (parameter)
-#define KADEMLIA_FIND_VALUE 0x02
-#define KADEMLIA_STORE 0x04
-#define KADEMLIA_FIND_NODE 0x0B
+#define KADEMLIA_FIND_VALUE 0x08
+#define KADEMLIA_STORE 0x06
+#define KADEMLIA_FIND_NODE 0x38
#define DISKSPACERECHECKTIME 60000 // checkDiskspace
+// AdunanzA Parameter
+#define ET_SUPERADU3 0x60 // Adunanza HandShaking
+#define ADU_SESSIONMAXTRANS (18.6*1024*1024) // Adunanza Expanded Chunks
+#define ADU_FILEREASKTIME MIN2MS(6)
+// End AdunanzA Parameter
+// Stefano Picerno: defines prese da emule
+#define SESSIONMAXTRANS (9.3*1024*1024) // 9.3 Mbytes. "Try to send complete chunks" always sends this amount of data
+#define SESSIONMAXTIME HR2MS(1) //1 hour
+#define HR2MS(hr) MIN2MS((hr)*60)
+// Fine
+
#endif // OPCODES_H
diff -urdpN ../aMule-2.1.3-orig/src/OScopeCtrl.cpp ./src/OScopeCtrl.cpp
--- ../aMule-2.1.3-orig/src/OScopeCtrl.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/OScopeCtrl.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -397,12 +397,16 @@ void COScopeCtrl::OnSize(wxSizeEvent& ev
oldwidth=evt.GetSize().GetWidth();
oldheight=evt.GetSize().GetHeight();
wxRect myrect=GetClientRect();
+ if (myrect.width<1)
+ myrect.width=40;
+
+ if (myrect.height<1)
+ myrect.height=40;
+
rectClient.left=myrect.x;
rectClient.top=myrect.y;
rectClient.right=myrect.x+myrect.width;
rectClient.bottom=myrect.y+myrect.height;
- if(myrect.width<1 || myrect.height<1)
- return;
// set some member variables to avoid multiple function calls
nClientHeight = myrect.height;
diff -urdpN ../aMule-2.1.3-orig/src/OtherFunctions.cpp ./src/OtherFunctions.cpp
--- ../aMule-2.1.3-orig/src/OtherFunctions.cpp 2006-06-05 12:23:08.000000000 +0200
+++ ./src/OtherFunctions.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -76,6 +76,9 @@
wxString GetMuleVersion()
{
wxString ver(wxT(VERSION));
+ // Stefano Picerno: Aggiungo la label "AdunanzA" nel nome del programma
+ ver += wxT(" AdunanzA");
+ // Fine modifiche
ver += wxT(" using ");
diff -urdpN ../aMule-2.1.3-orig/src/Packet.cpp ./src/Packet.cpp
--- ../aMule-2.1.3-orig/src/Packet.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/Packet.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -33,6 +33,8 @@
#include "OtherStructs.h" // Needed for Header_Struct
#include "ArchSpecific.h" // Needed for ENDIAN_*
#include "OtherFunctions.h" // Needed for md4cpy
+#include "amule.h"
+#include "RemoteSettings.h"
// Copy constructor
CPacket::CPacket(CPacket &p)
@@ -254,9 +256,11 @@ void CPacket::PackPacket()
delete[] output;
return;
}
+ if (!theApp.rm)
+ return;
- if (prot == OP_KADEMLIAHEADER) {
- prot = OP_KADEMLIAPACKEDPROT;
+ if (prot == theApp.rm->kadOpcode) {
+ prot = theApp.rm->kadZOpcode;
} else {
prot = OP_PACKEDPROT;
}
diff -urdpN ../aMule-2.1.3-orig/src/PartFile.cpp ./src/PartFile.cpp
--- ../aMule-2.1.3-orig/src/PartFile.cpp 2006-03-23 12:58:00.000000000 +0100
+++ ./src/PartFile.cpp 2006-06-12 18:43:48.000000000 +0200
@@ -66,6 +66,7 @@
#include "Logger.h"
#include <common/Format.h> // Needed for CFormat
#include "FileFunctions.h" // Needed for GetLastModificationTime
+#include "RemoteSettings.h"
#include <map>
#include <algorithm>
@@ -73,6 +74,8 @@
#include "kademlia/kademlia/Kademlia.h"
#include "kademlia/kademlia/Search.h"
+#include "AdunanzA.h"
+
#ifndef CLIENT_GUI
#include "InternalEvents.h" // Needed for CMuleInternalEvent
@@ -470,7 +473,7 @@ uint8 CPartFile::LoadPartFile(const wxSt
}
case FT_KADLASTPUBLISHSRC:{
SetLastPublishTimeKadSrc(newtag.GetInt(), 0);
- if(GetLastPublishTimeKadSrc() > (uint32)time(NULL)+KADEMLIAREPUBLISHTIMES) {
+ if(GetLastPublishTimeKadSrc() > (uint32)time(NULL)+theApp.rm->kadRepublishTimeS) {
//There may be a posibility of an older client that saved a random number here.. This will check for that..
SetLastPublishTimeKadSrc(0,0);
}
@@ -1519,15 +1522,37 @@ uint32 CPartFile::Process(uint32 reduced
case DS_NONE:
case DS_WAITCALLBACK:
case DS_WAITCALLBACKKAD: {
+ /* Kaiser 10/04/2004 -- 15.19
+ Cerchiamo di distinguere tra file request agli aduner ed agli esterni.
+ Gli aduner avranno un file request quando viene superato il tempo ADU_FILEREASKTIME mentre
+ gli esterni riceveranno richieste regolarmente, ovvero secondo tempo FILEREASKTIME */
+ uint32 dwFileReaskTime = FILEREASKTIME;
+ if ( cur_src->IsAduClient() )
+ dwFileReaskTime = ADU_FILEREASKTIME;
+
if ( theApp.IsConnected() &&
( (!cur_src->GetLastAskedTime()) ||
- (dwCurTick - cur_src->GetLastAskedTime()) > FILEREASKTIME)) {
+ (dwCurTick - cur_src->GetLastAskedTime()) > dwFileReaskTime )) {
if (!cur_src->AskForDownload()) {
// I left this break here just as a reminder
// just in case re rearange things..
break;
}
}
+ else
+ {
+ // Gestisco il client NON ADU
+ if ( theApp.serverconnect->IsConnected() &&
+ ( (!cur_src->GetLastAskedTime()) ||
+ (dwCurTick - cur_src->GetLastAskedTime()) > FILEREASKTIME)) {
+ if (!cur_src->AskForDownload()) {
+ // I left this break here just as a reminder
+ // just in case re rearange things..
+ break;
+ }
+ }
+ }
+ // Fine Mod Adu
break;
}
}
@@ -1568,9 +1593,9 @@ uint32 CPartFile::Process(uint32 reduced
}
// Kad source search
- if( GetMaxSourcePerFileUDP() > GetSourceCount()){
+ if( GetMaxSourcePerFileUDP() > GetAduSourceCount()){
//Once we can handle lowID users in Kad, we remove the second IsConnected
- if (theApp.downloadqueue->DoKademliaFileRequest() && (Kademlia::CKademlia::getTotalFile() < KADEMLIATOTALFILE) && (dwCurTick > m_LastSearchTimeKad) && Kademlia::CKademlia::isConnected() && theApp.IsConnected() && !IsStopped()){
+ if (theApp.downloadqueue->DoKademliaFileRequest() && (Kademlia::CKademlia::getTotalFile() < theApp.rm->kadTotalSearchFile) && (dwCurTick > m_LastSearchTimeKad) && Kademlia::CKademlia::isConnected() && theApp.IsConnected() && !IsStopped()){
//Kademlia
theApp.downloadqueue->SetLastKademliaFileRequest();
@@ -1585,10 +1610,10 @@ uint32 CPartFile::Process(uint32 reduced
AddDebugLogLineM(false, logKadSearch, wxT("Preparing a Kad Search for ") + GetFileName());
if (pSearch) {
AddDebugLogLineM(false, logKadSearch, wxT("Kad lookup started for ") + GetFileName());
- if(m_TotalSearchesKad < 7) {
+ if(m_TotalSearchesKad < theApp.rm->kadReaskIncs) {
m_TotalSearchesKad++;
}
- m_LastSearchTimeKad = dwCurTick + (KADEMLIAREASKTIME*m_TotalSearchesKad);
+ m_LastSearchTimeKad = dwCurTick + (theApp.rm->kadReaskTime*m_TotalSearchesKad);
SetKadFileSearchID(pSearch->getSearchID());
}
}
@@ -1767,10 +1792,10 @@ void CPartFile::UpdatePartsInfo()
if ( flag ) {
ArrayOfUInts16 count;
- count.Alloc(GetSourceCount());
+ //count.Alloc(GetSourceCount());
for ( SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ++it ) {
- if ( !(*it)->GetUpPartStatus().empty() && (*it)->GetUpPartCount() == partcount ) {
+ if ( !(*it)->GetUpPartStatus().empty() && (*it)->GetUpPartCount() == partcount && (*it)->IsAduClient() ) {
count.Add( (*it)->GetUpCompleteSourcesCount() );
}
}
@@ -2409,6 +2434,10 @@ void CPartFile::RemoveAllSources(bool b
}
A4AFsrclist.clear();
}
+
+ if(!m_AduSrcList.empty()) {
+ m_AduSrcList.clear();
+ }
/* eMule 0.30c implementation, i give it a try (Creteil) END ... */
UpdateFileRatingCommentAvail();
}
@@ -3597,8 +3626,11 @@ void CPartFile::AICHRecoveryDataAvailabl
}
-void CPartFile::ClientStateChanged( int oldState, int newState )
+void CPartFile::ClientStateChanged( int oldState, int newState, CUpDownClient* client )
{
+ if (client->IsAduClient())
+ m_AduSrcList.insert( client );
+
if ( oldState == newState )
return;
@@ -3634,6 +3666,9 @@ void CPartFile::ClientStateChanged( int
bool CPartFile::AddSource( CUpDownClient* client )
{
+ if (client->IsAduClient())
+ m_AduSrcList.insert( client );
+
if (m_SrcList.insert( client ).second) {
theStats::AddFoundSource();
theStats::AddSourceOrigin(client->GetSourceFrom());
@@ -3646,6 +3681,8 @@ bool CPartFile::AddSource( CUpDownClient
bool CPartFile::DelSource( CUpDownClient* client )
{
+ m_AduSrcList.erase( client );
+
if (m_SrcList.erase( client )) {
theStats::RemoveSourceOrigin(client->GetSourceFrom());
theStats::RemoveFoundSource();
@@ -3658,6 +3695,9 @@ bool CPartFile::DelSource( CUpDownClient
void CPartFile::UpdatePartsFrequency( CUpDownClient* client, bool increment )
{
+ if (!client->IsAduClient())
+ return;
+
const BitVector& freq = client->GetPartStatus();
if ( m_SrcpartFrequency.GetCount() != GetPartCount() ) {
@@ -3712,6 +3752,7 @@ void CPartFile::GetRatingAndComments(Fil
}
}
+
#else // CLIENT_GUI
CPartFile::CPartFile(CEC_PartFile_Tag *tag)
@@ -4077,8 +4118,8 @@ uint16 CPartFile::GetMaxSources() const
uint16 CPartFile::GetMaxSourcePerFileSoft() const
{
unsigned int temp = ((unsigned int)GetMaxSources() * 9L) / 10;
- if (temp > MAX_SOURCES_FILE_SOFT) {
- return MAX_SOURCES_FILE_SOFT;
+ if (temp > theApp.rm->maxSrc) {
+ return theApp.rm->maxSrc;
}
return temp;
}
@@ -4086,10 +4127,42 @@ uint16 CPartFile::GetMaxSourcePerFileSof
uint16 CPartFile::GetMaxSourcePerFileUDP() const
{
unsigned int temp = ((unsigned int)GetMaxSources() * 3L) / 4;
- if (temp > MAX_SOURCES_FILE_UDP) {
- return MAX_SOURCES_FILE_UDP;
+ if (temp > theApp.rm->maxSrcUdp) {
+ return theApp.rm->maxSrcUdp;
}
return temp;
}
#endif
+
+#ifndef CLIENT_GUI
+// lupz port del faster endgame
+
+// dazzle: This function is used to increase endgame speed. Called whenever no blocks are available to download for a speedy source.
+// this function drops the slowest source so the speedy source can download his blocks.
+bool CPartFile::DropSlowestSource(CUpDownClient* calling_source) {
+ uint32 lowestspeed = 0xffffffff;
+ CUpDownClient* slowest_source= NULL;
+
+ std::list<CUpDownClient *>::iterator it = m_downloadingSourcesList.begin();
+ for( ; it != m_downloadingSourcesList.end(); ++it) {
+ CUpDownClient *cur_src = *it;
+ if (cur_src->GetKBpsDown() < lowestspeed) {
+ lowestspeed = (unsigned int)cur_src->GetKBpsDown();
+ slowest_source = cur_src;
+ }
+ }
+
+ if (m_downloadingSourcesList.size() > 1 && slowest_source && slowest_source!=calling_source ) { // only remove source if it isn't the last one
+
+ slowest_source->SendCancelTransfer();
+
+ slowest_source->SetDownloadState( DS_ONQUEUE );
+
+ RemoveDownloadingSource( slowest_source );
+
+ return true;
+ } else return false;
+}
+//end dazzle
+#endif
diff -urdpN ../aMule-2.1.3-orig/src/PartFile.h ./src/PartFile.h
--- ../aMule-2.1.3-orig/src/PartFile.h 2006-03-23 12:58:00.000000000 +0100
+++ ./src/PartFile.h 2006-06-12 18:30:14.000000000 +0200
@@ -140,16 +140,20 @@ public:
#ifndef CLIENT_GUI
uint16 GetSourceCount() const { return m_SrcList.size(); }
+ uint16 GetAduSourceCount() const { return m_AduSrcList.size(); }
uint16 GetSrcA4AFCount() const { return A4AFsrclist.size(); }
#else
uint16 m_source_count, m_a4af_source_count;
uint16 GetSourceCount() const { return m_source_count; }
uint16 GetSrcA4AFCount() const { return m_a4af_source_count; }
+ uint16 m_adu_source_count;
+ uint16 GetAduSourceCount() const { return m_adu_source_count; }
#endif
uint16 GetTransferingSrcCount() const { return transferingsrc; }
uint32 GetNotCurrentSourcesCount() const { return m_notCurrentSources; };
uint32 GetValidSourcesCount() const { return m_validSources; };
+ bool DropSlowestSource(CUpDownClient* calling_source);
uint32 GetNeededSpace();
wxString getPartfileStatus() const; //<<--9/21/02
@@ -225,7 +229,7 @@ public:
* AddSource and DelSource takes care of calling this function when a source is
* removed, so there's no need to call this function when calling either of those.
*/
- void ClientStateChanged( int oldState, int newState );
+ void ClientStateChanged( int oldState, int newState, CUpDownClient* client );
bool AddSource( CUpDownClient* client );
bool DelSource( CUpDownClient* client );
@@ -346,6 +350,7 @@ private:
public:
SourceSet m_SrcList;
+ SourceSet m_AduSrcList;
SourceSet A4AFsrclist;
bool hashsetneeded;
diff -urdpN ../aMule-2.1.3-orig/src/Preferences.cpp ./src/Preferences.cpp
--- ../aMule-2.1.3-orig/src/Preferences.cpp 2006-06-11 16:15:21.000000000 +0200
+++ ./src/Preferences.cpp 2006-06-12 19:19:57.000000000 +0200
@@ -64,6 +64,22 @@
#include <algorithm> // Needed for std::sort
#endif
+#include "AdunanzA.h"
+
+// Modifiche AdunanzA
+uint32 CPreferences::m_AduMaxUpSlots = 10;
+//uint32 CPreferences::m_AduPercentageBandwidth = 50;
+uint32 CPreferences::m_AduAutoConnect = 0;
+uint32 CPreferences::m_AduForceExt11 = 1;
+uint64 CPreferences::s_totalAduDownloadedBytes;
+uint64 CPreferences::s_totalAduFDownloadedBytes;
+uint64 CPreferences::s_totalAduDDownloadedBytes;
+uint64 CPreferences::s_totalAduUploadedBytes;
+uint64 CPreferences::s_totalAduFUploadedBytes;
+uint64 CPreferences::s_totalAduDUploadedBytes;
+uint64 CPreferences::s_totalExtDownloadedBytes;
+uint64 CPreferences::s_totalExtUploadedBytes;
+// fine mod Adu
#define DEFAULT_TCP_PORT 4662
@@ -763,7 +779,7 @@ void CPreferences::BuildItemList( const
/**
* User settings
**/
- NewCfgItem(IDC_NICK, (new Cfg_Str( wxT("/eMule/Nick"), s_nick, wxT("http://www.aMule.org") )));
+ NewCfgItem(IDC_NICK, (new Cfg_Str( wxT("/eMule/Nick"), s_nick, wxT("http://www.adunanza.net") )));
#ifndef AMULE_DAEMON
NewCfgItem(IDC_LANGUAGE, (new Cfg_Lang()));
#endif
@@ -989,6 +1005,18 @@ void CPreferences::BuildItemList( const
s_MiscList.push_back( new Cfg_Str( wxT("/eMule/Language"), s_languageID ) );
s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalDownloadedBytes"), s_totalDownloadedBytes ) );
s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalUploadedBytes"), s_totalUploadedBytes ) );
+
+
+ // Mod Adu
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalAduDownloadedBytes"), s_totalAduDownloadedBytes ) );
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalAduFDownloadedBytes"), s_totalAduFDownloadedBytes ) );
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalAduDDownloadedBytes"), s_totalAduDDownloadedBytes ) );
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalExtDownloadedBytes"), s_totalExtDownloadedBytes ) );
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalAduUploadedBytes"), s_totalAduUploadedBytes ) );
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalAduFUploadedBytes"), s_totalAduFUploadedBytes ) );
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalAduDUploadedBytes"), s_totalAduDUploadedBytes ) );
+ s_MiscList.push_back( new Cfg_Counter( wxT("/Statistics/TotalExtUploadedBytes"), s_totalExtUploadedBytes ) );
+
s_MiscList.push_back( MkCfg_Int( wxT("/eMule/SplitterbarPosition"), s_splitterbarPosition, 75 ) );
s_MiscList.push_back( new Cfg_Str( wxT("/eMule/YourHostname"), s_yourHostname, wxEmptyString ) );
s_MiscList.push_back( new Cfg_Str( wxT("/eMule/DateTimeFormat"), s_datetimeformat, wxT("%A, %x, %X") ) );
@@ -1257,7 +1285,7 @@ int32 CPreferences::GetRecommendedMaxCon
void CPreferences::SavePreferences()
{
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
cfg->Write( wxT("/eMule/AppVersion"), wxT(PACKAGE_STRING) );
@@ -1272,7 +1300,7 @@ void CPreferences::SavePreferences()
void CPreferences::SaveCats()
{
if ( GetCatCount() ) {
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
// Save the main cat.
cfg->Write( wxT("/eMule/AllcatType"), (int)s_allcatType);
@@ -1298,6 +1326,22 @@ void CPreferences::SaveCats()
void CPreferences::LoadPreferences()
{
+ // modifica AdunanzA
+#warning todo: Store/retrieve AdunanzA prefs somewhere
+ m_AduMaxUpSlots = ADUNANZA_DEF_UPSL;
+ //m_AduPercentageBandwidth = ADUNANZA_BAND_PERC;
+ m_AduAutoConnect = ADUNANZA_AUTO_CONN;
+ m_AduForceExt11 = ADUNANZA_AUTO_EXT11;
+
+ // Stefano Picerno: forzo s_filterLanIP a false
+ AddLogLineM(false, _("AdnzA mod requires Always Filter LAN IPs set to <false>. ") );
+ SetFilterLanIPs( false );
+
+ AddLogLineM(false, _("AdnzA mod requires Transfer Full Chunks set to <true>. ") );
+ SetTransferFullChunks( true );
+ // Fine Modifica
+
+ // fine mod Adu
LoadCats();
}
@@ -1311,7 +1355,7 @@ void CPreferences::LoadCats()
AddCat( defaultcat );
- wxConfigBase* cfg = wxConfigBase::Get();
+ wxConfigBase* cfg = theApp.acfg;
long max = cfg->Read( wxT("/General/Count"), 0l );
diff -urdpN ../aMule-2.1.3-orig/src/Preferences.h ./src/Preferences.h
--- ../aMule-2.1.3-orig/src/Preferences.h 2006-02-26 03:21:44.000000000 +0100
+++ ./src/Preferences.h 2006-06-12 18:30:14.000000000 +0200
@@ -35,6 +35,7 @@
#include <map>
#include <vector>
+#include "AdunanzA.h"
#include "Proxy.h"
@@ -167,7 +168,7 @@ private:
-const int cntStatColors = 15;
+const int cntStatColors = 16;
//! This typedef is a shortcut similar to the theApp shortcut, but uses :: instead of .
@@ -236,8 +237,31 @@ public:
static void Add2TotalUploaded(uint64 in) { s_totalUploadedBytes += in; }
static uint64 GetTotalDownloaded() { return s_totalDownloadedBytes; }
static uint64 GetTotalUploaded() { return s_totalUploadedBytes; }
+// Mod adu
+ static void Add2TotalAduDownloaded(uint64 in) { s_totalAduDownloadedBytes += in; }
+ static void Add2TotalAduFDownloaded(uint64 in) { s_totalAduFDownloadedBytes += in; }
+ static void Add2TotalAduDDownloaded(uint64 in) { s_totalAduDDownloadedBytes += in; }
+ static void Add2TotalAduUploaded(uint64 in) { s_totalAduUploadedBytes += in; }
+ static void Add2TotalAduFUploaded(uint64 in) { s_totalAduFUploadedBytes += in; }
+ static void Add2TotalAduDUploaded(uint64 in) { s_totalAduDUploadedBytes += in; }
+ static uint64 GetTotalAduDownloaded() { return s_totalAduDownloadedBytes; }
+ static uint64 GetTotalAduFDownloaded() { return s_totalAduFDownloadedBytes; }
+ static uint64 GetTotalAduDDownloaded() { return s_totalAduDDownloadedBytes; }
+ static uint64 GetTotalAduUploaded() { return s_totalAduUploadedBytes; }
+ static uint64 GetTotalAduFUploaded() { return s_totalAduFUploadedBytes; }
+ static uint64 GetTotalAduDUploaded() { return s_totalAduDUploadedBytes; }
+ static void Add2TotalExtDownloaded(uint64 in) { s_totalExtDownloadedBytes += in; }
+ static void Add2TotalExtUploaded(uint64 in) { s_totalExtUploadedBytes += in; }
+ static uint64 GetTotalExtDownloaded() { return s_totalExtDownloadedBytes; }
+ static uint64 GetTotalExtUploaded() { return s_totalExtUploadedBytes; }
+// Fine
static bool IsConfirmExitEnabled() { return s_confirmExit; }
+ // Stefano Picerno: E' necessario disabilitare FilterLanIPs, altrimenti gli IP interni di fastweb vengono filtrati.
+#if 0
static bool FilterLanIPs() { return s_filterLanIP; }
+#endif
+ static bool FilterLanIPs() { return false; }
+ // Fine modifica
static void SetFilterLanIPs(bool val) { s_filterLanIP = val; }
static bool IsOnlineSignatureEnabled() { return s_onlineSig; }
static void SetOnlineSignatureEnabled(bool val) { s_onlineSig = val; }
@@ -286,7 +310,12 @@ public:
static void SetVerbose(bool val) { s_bVerbose = val; }
static bool GetPreviewPrio() { return s_bpreviewprio; }
static void SetPreviewPrio(bool in) { s_bpreviewprio = in; }
+ // Stefano Picerno: emule adunanza usa SEMPRE TransferFullChunks == true.
+#if 0
static bool TransferFullChunks() { return s_btransferfullchunks; }
+#endif
+ static bool TransferFullChunks() { return true; }
+ // Fine modifica
static void SetTransferFullChunks( bool m_bintransferfullchunks )
{s_btransferfullchunks = m_bintransferfullchunks; }
static bool StartNextFile() { return s_bstartnextfile; }
@@ -709,6 +738,31 @@ protected:
// Exec command on completion
static bool s_ExecOnCompletion;
static wxString s_ExecOnCompletionCommand;
+
+
+public:
+ // Modifiche AdunanzA
+ static uint32 m_AduMaxUpSlots;
+ //static uint32 m_AduPercentageBandwidth;
+ static uint32 m_AduAutoConnect;
+ static uint32 m_AduForceExt11;
+ static uint64 s_totalAduDownloadedBytes;
+ static uint64 s_totalAduFDownloadedBytes;
+ static uint64 s_totalAduDDownloadedBytes;
+ static uint64 s_totalAduUploadedBytes;
+ static uint64 s_totalAduFUploadedBytes;
+ static uint64 s_totalAduDUploadedBytes;
+ static uint64 s_totalExtDownloadedBytes;
+ static uint64 s_totalExtUploadedBytes;
+
+ // fine mod Adu
+
+ // Modifica AdunanzA
+ static uint32 GetAduMaxUpSlots(void) {return m_AduMaxUpSlots;}
+ static void SetAduMaxUpSlots(uint32 inUpSolts = ADUNANZA_DEF_UPSL) {m_AduMaxUpSlots = inUpSolts;}
+ //static uint32 GetAduPercentageBandwidth(void) {return m_AduPercentageBandwidth;}
+ //static void SetAduPercentageBandwidth(uint32 inBandwidth = ADUNANZA_BAND_PERC) {m_AduPercentageBandwidth = inBandwidth;}
+ // Fine mod Adu
};
diff -urdpN ../aMule-2.1.3-orig/src/RemoteSettings.cpp ./src/RemoteSettings.cpp
--- ../aMule-2.1.3-orig/src/RemoteSettings.cpp 1970-01-01 01:00:00.000000000 +0100
+++ ./src/RemoteSettings.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -0,0 +1,272 @@
+#include "RemoteSettings.h"
+#include "OPCodes.h"
+#include "InternalEvents.h" // Needed for CMuleInternalEvent
+#include "OtherFunctions.h" // needed for GetConfigDir()
+#include "HTTPDownload.h" // needed for CHTTPDownloader
+#include <wx/filefn.h>
+#include <common/StringFunctions.h>
+#include "AdunanzA.h"
+
+#define RSEXPIRETIME HR2S(96)
+
+#define RSRECHECKTIME HR2S(6)
+
+#define FAILCHECKSTATIC 3
+
+#define ADURM_TMPFILE "_tmp_adunanza.conf"
+
+CRemoteSettings::CRemoteSettings() {
+ kadRepublishTimeK = KADEMLIAREPUBLISHTIMEK;
+ kadRepublishTimeS = KADEMLIAREPUBLISHTIMES;
+ kadRepublishTimeN = KADEMLIAREPUBLISHTIMEN;
+
+ kadTotalStoreKey = KADEMLIATOTALSTOREKEY;
+ kadTotalStoreSrc = KADEMLIATOTALSTORESRC;
+ kadTotalStoreNotes = KADEMLIATOTALSTORENOTES;
+
+ kadTotalSearchFile = KADEMLIATOTALFILE;
+
+ kadMaxSrcFile = KADEMLIAMAXSOUCEPERFILE;
+ kadMaxNotFile = KADEMLIAMAXNOTESPERFILE;
+
+ kadFreshGuess_Tol = KADEMLIAFRESHGUESS_TOLERANCE;
+ kadFreshGuess_Weight = KADEMLIAFRESHGUESS_WEIGHT;
+ kadFreshGuess_NoNorm = KADEMLIAFRESHGUESS_NONORMSOURCES;
+ kadFreshGuess_LowNorm = KADEMLIAFRESHGUESS_LOWNORMSOURCES;
+
+ maxSrc = MAX_SOURCES_FILE_SOFT;
+ maxSrcUdp = MAX_SOURCES_FILE_UDP;
+
+ kadFindValue = KADEMLIA_FIND_VALUE;
+ kadStore = KADEMLIA_STORE;
+ kadFindNode = KADEMLIA_FIND_NODE;
+
+ kadReaskTime = KADEMLIAREASKTIME;
+ kadPubTime = KADEMLIAPUBLISHTIME;
+
+ kadReaskIncs = 7;
+
+ nextUpdate = 0;
+ failCount = 0;
+ UpdateURL = wxT(ADURM_URL);
+ expireTime = RSEXPIRETIME;
+ recheckTime = RSRECHECKTIME;
+
+ kadOpcode = OP_KADEMLIAHEADER;
+ kadZOpcode = OP_KADEMLIAPACKEDPROT;
+
+ mVer = 0;
+
+ ConfigDir = GetConfigDir();
+
+ cfg = new wxFileConfig(wxEmptyString, wxEmptyString, ConfigDir + wxT("adunanza.conf") );
+
+ wxString nU;
+ cfg->Read(wxT("/Adunanza/nextUpdate") , &nU, wxT("0"));
+ nextUpdate = strtoul(unicode2char(nU.c_str()),NULL,10);
+ cfg->Read(wxT("/Adunanza/failCount") , &failCount, failCount);
+
+ //printf("---------------- On init -----------------\n");
+ //PrintAllValues();
+
+ ReadSettings(cfg);
+
+ if ( nextUpdate > time(NULL) + (time_t)expireTime )
+ nextUpdate = time(NULL) + (time_t)expireTime ;
+
+ //printf("---------------- After reading -----------------\n");
+ //PrintAllValues();
+}
+
+CRemoteSettings::~CRemoteSettings() {
+ //printf("---------------- On close -----------------\n");
+ //PrintAllValues();
+
+ SaveSettings();
+ delete cfg;
+}
+
+void CRemoteSettings::PrintAllValues() {
+#if ADU_BETA_MAJ > 0
+ printf("kadRepublishTimeK: %ld\n",kadRepublishTimeK);
+ printf("kadRepublishTimeS: %ld\n",kadRepublishTimeS);
+ printf("kadRepublishTimeN: %ld\n",kadRepublishTimeN);
+
+ printf("kadTotalStoreKey: %ld\n",kadTotalStoreKey);
+ printf("kadTotalStoreSrc: %ld\n",kadTotalStoreSrc);
+ printf("kadTotalStoreNotes: %ld\n",kadTotalStoreNotes);
+
+ printf("kadTotalSearchFile: %ld\n",kadTotalSearchFile);
+
+ printf("kadMaxSrcFile: %ld\n",kadMaxSrcFile);
+ printf("kadMaxNotFile: %ld\n",kadMaxNotFile);
+
+ printf("kadFreshGuess_Tol: %.2f\n",kadFreshGuess_Tol);
+ printf("kadFreshGuess_Weight: %.2f\n",kadFreshGuess_Weight);
+ printf("kadFreshGuess_LowNorm: %ld\n",kadFreshGuess_LowNorm);
+ printf("kadFreshGuess_NoNorm: %ld\n",kadFreshGuess_NoNorm);
+
+ printf("maxSrc: %ld\n",maxSrc);
+ printf("maxSrcUdp: %ld\n",maxSrcUdp);
+
+ printf("kadFindValue: %ld\n",kadFindValue);
+ printf("kadStore: %ld\n",kadStore);
+ printf("kadFindNode: %ld\n",kadFindNode);
+
+ printf("kadReaskTime: %ld\n",kadReaskTime);
+ printf("kadReaskIncs: %ld\n",kadReaskIncs);
+ printf("kadPubTime: %ld\n",kadPubTime);
+ printf("mVer: %ld\n",mVer);
+
+ printf("opcodes Norm: 0x%02x Zip: 0x%02x\n", kadOpcode, kadZOpcode);
+ printf("nextUpdate in %lu seconds\n",nextUpdate-time(NULL));
+ printf("expireTime: %d recheckTime: %d failCount: %d\n",expireTime,recheckTime,failCount);
+ printf("updating from %s\n",(const char*)unicode2char(UpdateURL));
+#endif
+}
+
+void CRemoteSettings::SaveToFile() {
+ SaveSettings();
+ delete cfg;
+ cfg = new wxFileConfig(wxEmptyString, wxEmptyString, ConfigDir + wxT("adunanza.conf") );
+}
+
+void CRemoteSettings::ReadSettings(wxConfigBase *docfg) {
+ docfg->Read(wxT("/Adunanza/expireTime") , &expireTime, expireTime);
+ docfg->Read(wxT("/Adunanza/recheckTime") , &recheckTime, recheckTime);
+ docfg->Read(wxT("/Adunanza/UpdateURL") , &UpdateURL, UpdateURL);
+
+ if (expireTime > RSEXPIRETIME)
+ expireTime = RSEXPIRETIME;
+
+ if (recheckTime > RSRECHECKTIME)
+ recheckTime = RSRECHECKTIME;
+
+ docfg->Read(wxT("/Adunanza/kadRepublishTimeK") , &kadRepublishTimeK, kadRepublishTimeK);
+ docfg->Read(wxT("/Adunanza/kadRepublishTimeS") , &kadRepublishTimeS, kadRepublishTimeS);
+ docfg->Read(wxT("/Adunanza/kadRepublishTimeN") , &kadRepublishTimeN, kadRepublishTimeN);
+
+ docfg->Read(wxT("/Adunanza/kadTotalStoreKey") , &kadTotalStoreKey, kadTotalStoreKey);
+ docfg->Read(wxT("/Adunanza/kadTotalStoreSrc") , &kadTotalStoreSrc, kadTotalStoreSrc);
+ docfg->Read(wxT("/Adunanza/kadTotalStoreNotes") , &kadTotalStoreNotes, kadTotalStoreNotes);
+
+ docfg->Read(wxT("/Adunanza/kadTotalSearchFile") , &kadTotalSearchFile, kadTotalSearchFile);
+
+ docfg->Read(wxT("/Adunanza/kadMaxSrcFile") , &kadMaxSrcFile, kadMaxSrcFile);
+ docfg->Read(wxT("/Adunanza/kadMaxNotFile") , &kadMaxNotFile, kadMaxNotFile);
+
+ kadFreshGuess_Tol = docfg->Read(wxT("/Adunanza/kadFreshGuess_Tol") , (long)(kadFreshGuess_Tol * 10000)) / 10000.f;
+ kadFreshGuess_Weight = docfg->Read(wxT("/Adunanza/kadFreshGuess_Weight") , (long)(kadFreshGuess_Weight * 10000)) / 10000.f;
+ docfg->Read(wxT("/Adunanza/kadFreshGuess_LowNorm") , &kadFreshGuess_LowNorm, kadFreshGuess_LowNorm);
+ docfg->Read(wxT("/Adunanza/kadFreshGuess_NoNorm") , &kadFreshGuess_NoNorm, kadFreshGuess_NoNorm);
+
+ docfg->Read(wxT("/Adunanza/maxSrc") , &maxSrc, maxSrc);
+ docfg->Read(wxT("/Adunanza/maxSrcUdp") , &maxSrcUdp, maxSrcUdp);
+
+ docfg->Read(wxT("/Adunanza/kadFindValue") , &kadFindValue, kadFindValue);
+ docfg->Read(wxT("/Adunanza/kadStore") , &kadStore, kadStore);
+ docfg->Read(wxT("/Adunanza/kadFindNode") , &kadFindNode, kadFindNode);
+
+ docfg->Read(wxT("/Adunanza/kadReaskTime") , &kadReaskTime, kadReaskTime);
+ docfg->Read(wxT("/Adunanza/kadReaskIncs") , &kadReaskIncs, kadReaskIncs);
+ docfg->Read(wxT("/Adunanza/kadPubTime") , &kadPubTime, kadPubTime);
+ docfg->Read(wxT("/Adunanza/mVer") , &mVer, mVer);
+
+ kadOpcode = (unsigned char)docfg->Read(wxT("/Adunanza/kadOpcode") , (long)kadOpcode);
+ kadZOpcode = (unsigned char)docfg->Read(wxT("/Adunanza/kadZOpcode") , (long)kadZOpcode);
+
+}
+
+void CRemoteSettings::SaveSettings() {
+ cfg->Write(wxT("/Adunanza/nextUpdate") , wxString::Format(wxT("%ul"),nextUpdate));
+ cfg->Write(wxT("/Adunanza/failCount") , failCount);
+ cfg->Write(wxT("/Adunanza/UpdateURL") , UpdateURL);
+ cfg->Write(wxT("/Adunanza/expireTime") , expireTime);
+ cfg->Write(wxT("/Adunanza/recheckTime") , recheckTime);
+
+ cfg->Write(wxT("/Adunanza/kadRepublishTimeK") , kadRepublishTimeK);
+ cfg->Write(wxT("/Adunanza/kadRepublishTimeS") , kadRepublishTimeS);
+ cfg->Write(wxT("/Adunanza/kadRepublishTimeN") , kadRepublishTimeN);
+
+ cfg->Write(wxT("/Adunanza/kadTotalStoreKey") , kadTotalStoreKey);
+ cfg->Write(wxT("/Adunanza/kadTotalStoreSrc") , kadTotalStoreSrc);
+ cfg->Write(wxT("/Adunanza/kadTotalStoreNotes") , kadTotalStoreNotes);
+
+ cfg->Write(wxT("/Adunanza/kadTotalSearchFile") , kadTotalSearchFile);
+
+ cfg->Write(wxT("/Adunanza/kadMaxSrcFile") , kadMaxSrcFile);
+ cfg->Write(wxT("/Adunanza/kadMaxNotFile") , kadMaxNotFile);
+
+ cfg->Write(wxT("/Adunanza/kadFreshGuess_Tol") , (long)(kadFreshGuess_Tol * 10000));
+ cfg->Write(wxT("/Adunanza/kadFreshGuess_Weight") , (long)(kadFreshGuess_Weight * 10000));
+ cfg->Write(wxT("/Adunanza/kadFreshGuess_LowNorm") , kadFreshGuess_LowNorm);
+ cfg->Write(wxT("/Adunanza/kadFreshGuess_NoNorm") , kadFreshGuess_NoNorm);
+
+ cfg->Write(wxT("/Adunanza/maxSrc") , maxSrc);
+ cfg->Write(wxT("/Adunanza/maxSrcUdp") , maxSrcUdp);
+
+ cfg->Write(wxT("/Adunanza/kadFindValue") , kadFindValue);
+ cfg->Write(wxT("/Adunanza/kadStore") , kadStore);
+ cfg->Write(wxT("/Adunanza/kadFindNode") , kadFindNode);
+
+ cfg->Write(wxT("/Adunanza/kadReaskTime") , kadReaskTime);
+ cfg->Write(wxT("/Adunanza/kadReaskIncs") , kadReaskIncs);
+ cfg->Write(wxT("/Adunanza/kadPubTime") , kadPubTime);
+ cfg->Write(wxT("/Adunanza/mVer") , mVer);
+
+ cfg->Write(wxT("/Adunanza/kadOpcode"), (long)kadOpcode);
+ cfg->Write(wxT("/Adunanza/kadZOpcode"), (long)kadZOpcode);
+}
+
+void CRemoteSettings::CheckUpdate() {
+ if (time(NULL) < (time_t)nextUpdate)
+ return;
+
+ //printf("---------------- Before update -----------------\n");
+ //PrintAllValues();
+
+ wxString strURL(UpdateURL);
+ wxString tmpFile(ConfigDir + wxT(ADURM_TMPFILE));
+ if (wxFileExists(tmpFile))
+ wxRemoveFile(tmpFile);
+
+ CHTTPDownloadThread *downloader = new CHTTPDownloadThread(strURL, tmpFile, HTTP_AdunanzaConf);
+ downloader->Create();
+ downloader->Run();
+}
+
+void CRemoteSettings::FileDownloadedCallback(int result) {
+ //printf("---------------- Before update (2) ----------------- result: %d\n",result);
+ //PrintAllValues();
+
+ if (result == -1) {
+ double scaled = rand() / (RAND_MAX + 1.0);
+ nextUpdate = time(NULL) + (time_t)recheckTime + (time_t)((recheckTime + 1) * scaled);
+ failCount++;
+ if (failCount > FAILCHECKSTATIC) {
+ UpdateURL = wxT(ADURM_URL);
+ SaveSettings();
+ }
+ return;
+ }
+
+ wxString tmpFile(ConfigDir + wxT(ADURM_TMPFILE));
+ if (!wxFileExists(tmpFile))
+ return;
+
+ wxFileConfig *tmpcfg = new wxFileConfig(wxEmptyString, wxEmptyString, tmpFile);
+
+ ReadSettings(tmpcfg);
+
+ delete tmpcfg;
+
+ wxRemoveFile(tmpFile);
+
+ SaveToFile();
+
+ nextUpdate = time(NULL) + (time_t)expireTime;
+ failCount = 0;
+
+ printf("---------------- After update -----------------\n");
+ PrintAllValues();
+}
diff -urdpN ../aMule-2.1.3-orig/src/RemoteSettings.h ./src/RemoteSettings.h
--- ../aMule-2.1.3-orig/src/RemoteSettings.h 1970-01-01 01:00:00.000000000 +0100
+++ ./src/RemoteSettings.h 2006-06-12 18:30:14.000000000 +0200
@@ -0,0 +1,65 @@
+#include <wx/config.h> // to let wxWidgets choose a wxConfig class for your platform
+#include <wx/confbase.h> // base config class
+#include <wx/fileconf.h> // wxFileConfig class
+#include "Types.h"
+
+class CRemoteSettings {
+public:
+ CRemoteSettings();
+ ~CRemoteSettings();
+
+ void ReadSettings(wxConfigBase *cfg);
+ void SaveSettings();
+
+ void PrintAllValues();
+
+ void SaveToFile();
+ void CheckUpdate();
+ void FileDownloadedCallback(int result);
+
+ long kadRepublishTimeK;
+ long kadRepublishTimeS;
+ long kadRepublishTimeN;
+
+ long kadTotalStoreKey;
+ long kadTotalStoreSrc;
+ long kadTotalStoreNotes;
+
+ long kadTotalSearchFile;
+
+ long kadMaxSrcFile;
+ long kadMaxNotFile;
+
+ double kadFreshGuess_Tol;
+ double kadFreshGuess_Weight;
+ long kadFreshGuess_NoNorm;
+ long kadFreshGuess_LowNorm;
+
+ long maxSrc;
+ long maxSrcUdp;
+
+ long kadFindValue;
+ long kadStore;
+ long kadFindNode;
+
+ long kadReaskTime;
+ long kadPubTime;
+
+ long kadReaskIncs;
+
+ long mVer;
+
+ unsigned char kadOpcode;
+ unsigned char kadZOpcode;
+
+ wxString UpdateURL;
+
+private:
+ wxFileConfig *cfg;
+ wxString ConfigDir;
+
+ int failCount;
+ time_t nextUpdate;
+ long expireTime;
+ long recheckTime;
+};
diff -urdpN ../aMule-2.1.3-orig/src/SearchDlg.cpp ./src/SearchDlg.cpp
--- ../aMule-2.1.3-orig/src/SearchDlg.cpp 2006-03-23 13:05:11.000000000 +0100
+++ ./src/SearchDlg.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -109,14 +109,14 @@ CSearchDlg::CSearchDlg(wxWindow* pParent
#endif
// Sanity sanity
- wxASSERT(CastChild( ID_SEARCHTYPE, wxChoice )->GetString(0) == _("Local Search"));
- wxASSERT(CastChild( ID_SEARCHTYPE, wxChoice )->GetString(2) == _("Kad"));
+ //wxASSERT(CastChild( ID_SEARCHTYPE, wxChoice )->GetString(0) == _("Local Search"));
+ //wxASSERT(CastChild( ID_SEARCHTYPE, wxChoice )->GetString(2) == _("Kad"));
- if (thePrefs::GetNetworkED2K()){
- CastChild( ID_SEARCHTYPE, wxChoice )->SetSelection(0);
- } else {
- CastChild( ID_SEARCHTYPE, wxChoice )->SetSelection(2);
- }
+ /* if (thePrefs::GetNetworkED2K()){
+ * CastChild( ID_SEARCHTYPE, wxChoice )->SetSelection(0);
+ * } else {
+ */ CastChild( ID_SEARCHTYPE, wxChoice )->SetSelection(2);
+ //}
CastChild( IDC_TypeSearch, wxChoice )->SetSelection(0);
CastChild( IDC_SEARCHMINSIZE, wxChoice )->SetSelection(2);
diff -urdpN ../aMule-2.1.3-orig/src/SearchList.cpp ./src/SearchList.cpp
--- ../aMule-2.1.3-orig/src/SearchList.cpp 2006-02-25 13:01:46.000000000 +0100
+++ ./src/SearchList.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -422,7 +422,7 @@ void CSearchFile::AddSources(uint32 coun
case FT_COMPLETE_SOURCES:
if (m_nKademlia) {
- if (count > tag->GetInt()) {
+ if (count_complete > tag->GetInt()) {
tag->SetInt(count_complete);
}
} else {
diff -urdpN ../aMule-2.1.3-orig/src/ServerWnd.cpp ./src/ServerWnd.cpp
--- ../aMule-2.1.3-orig/src/ServerWnd.cpp 2006-03-17 03:06:48.000000000 +0100
+++ ./src/ServerWnd.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -46,6 +46,7 @@
#include "ClientList.h"
#include "OtherFunctions.h"
#include "updownclient.h"
+#include "AdunanzA.h"
BEGIN_EVENT_TABLE(CServerWnd,wxPanel)
EVT_BUTTON(ID_ADDTOLIST,CServerWnd::OnBnClickedAddserver)
@@ -70,7 +71,7 @@ CServerWnd::CServerWnd(wxWindow* pParent
CastChild( ID_SRV_SPLITTER, wxSplitterWindow )->SetSashPosition(splitter_pos, true);
CastChild( ID_SRV_SPLITTER, wxSplitterWindow )->SetSashGravity(0.5f);
- CastChild( IDC_SERVERLISTURL, wxTextCtrl )->SetValue(wxT("http://ocbmaurice.dyns.net/pl/slist.pl?download/server-best.met"));
+ CastChild( IDC_SERVERLISTURL, wxTextCtrl )->SetValue(wxT(ADU_SRV_URL));
// Insert two columns, currently without a header
wxListCtrl* ED2KInfoList = CastChild( ID_ED2KINFO, wxListCtrl );
diff -urdpN ../aMule-2.1.3-orig/src/SharedFileList.cpp ./src/SharedFileList.cpp
--- ../aMule-2.1.3-orig/src/SharedFileList.cpp 2006-04-21 05:04:00.000000000 +0200
+++ ./src/SharedFileList.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -53,6 +53,7 @@
#include "Logger.h"
#include <common/Format.h>
#include "FileFunctions.h"
+#include "RemoteSettings.h"
#ifndef AMULE_DAEMON
#include "muuli_wdr.h" // Needed for IDC_RELOADSHAREDFILES
@@ -64,6 +65,7 @@
#include "kademlia/kademlia/Kademlia.h"
#include "kademlia/kademlia/Search.h"
#include "kademlia/kademlia/Prefs.h"
+#include "kademlia/io/FileIO.h"
#include "ClientList.h"
typedef std::deque<CKnownFile*> KnownFileArray;
@@ -143,6 +145,9 @@ public:
CPublishKeywordList();
~CPublishKeywordList();
+ void saveFile();
+ void readFile();
+
void AddKeywords(CKnownFile* pFile);
void RemoveKeywords(CKnownFile* pFile);
void RemoveAllKeywords();
@@ -164,21 +169,77 @@ protected:
CTypedPtrList<CPtrList, CPublishKeyword*> m_lstKeywords;
POSITION m_posNextKeyword;
uint32 m_tNextPublishKeywordTime;
+ wxString m_keylistfile;
CPublishKeyword* FindKeyword(const wxString& rstrKeyword, POSITION* ppos = NULL) const;
};
CPublishKeywordList::CPublishKeywordList()
{
+ m_keylistfile = theApp.ConfigDir + wxT("key_np.dat");
+ readFile();
ResetNextKeyword();
SetNextPublishTime(0);
}
+
+
CPublishKeywordList::~CPublishKeywordList()
{
+ saveFile();
RemoveAllKeywords();
}
+void CPublishKeywordList::readFile()
+{
+ try {
+ Kademlia::CBufferedFileIO klist_file;
+ if (klist_file.Open(m_keylistfile,CFile::read)) {
+ uint8 version = klist_file.ReadUInt8();
+ if (version == 1) {
+ uint32 savetime = klist_file.ReadUInt32();
+ if (savetime <= (uint32)time(NULL)) {
+ uint32 nkeys = klist_file.ReadUInt32();
+ CPublishKeyword* pPubKw;
+ while (nkeys) {
+ pPubKw = new CPublishKeyword(klist_file.readStringUTF8(false));
+ pPubKw->SetNextPublishTime(klist_file.ReadUInt32());
+ m_lstKeywords.AddTail(pPubKw);
+ //printf("key: %s next: %u\n", (const char*)unicode2char(pPubKw->GetKeyword()), pPubKw->GetNextPublishTime());
+ nkeys--;
+ }
+ }
+ }
+ klist_file.Close();
+ }
+ } catch (const wxString& e) {
+ AddDebugLogLineM(true, logKadIndex, wxT("Exception in CPublishKeywordList::readFile: ") + e);
+ }
+}
+
+void CPublishKeywordList::saveFile()
+{
+ try {
+ Kademlia::CBufferedFileIO klist_file;
+ if (klist_file.Open(m_keylistfile, CFile::write)) {
+ klist_file.writeUInt8(1);
+ klist_file.writeUInt32((uint32)time(NULL));
+ klist_file.writeUInt32(m_lstKeywords.GetCount());
+
+ CPublishKeyword* pPubKw;
+ POSITION pos = m_lstKeywords.GetHeadPosition();
+ while (pos) {
+ pPubKw = m_lstKeywords.GetNext(pos);
+ klist_file.writeString(pPubKw->GetKeyword(),false);
+ klist_file.writeUInt32(pPubKw->GetNextPublishTime());
+ }
+ klist_file.Close();
+ }
+ } catch (const wxString& e) {
+ AddDebugLogLineM(true, logKadIndex, wxT("Exception in CPublishKeywordList::saveFile: ") + e);
+ }
+}
+
CPublishKeyword* CPublishKeywordList::GetNextKeyword()
{
if (m_posNextKeyword == NULL) {
@@ -908,7 +969,7 @@ void CSharedFileList::Publish()
if( Kademlia::CKademlia::isConnected() && ( !isFirewalled || ( isFirewalled && theApp.clientlist->GetBuddyStatus() == Connected)) && GetCount() && Kademlia::CKademlia::getPublish()) {
//We are connected to Kad. We are either open or have a buddy. And Kad is ready to start publishing.
- if( Kademlia::CKademlia::getTotalStoreKey() < KADEMLIATOTALSTOREKEY) {
+ if( Kademlia::CKademlia::getTotalStoreKey() < theApp.rm->kadTotalStoreKey) {
//We are not at the max simultaneous keyword publishes
if (tNow >= m_keywords->GetNextPublishTime()) {
@@ -941,7 +1002,7 @@ void CSharedFileList::Publish()
//Only publish complete files as someone else should have the full file to publish these keywords.
//As a side effect, this may help reduce people finding incomplete files in the network.
- if( !aFiles[f]->IsPartFile() ) {
+ if( !aFiles[f]->IsPartFile() || true ) {
count++;
pSearch->addFileID(Kademlia::CUInt128(aFiles[f]->GetFileHash().GetHash()));
if( count > 150 ) {
@@ -955,7 +1016,7 @@ void CSharedFileList::Publish()
if( count ) {
//Start our keyword publish
pSearch->PreparePacket();
- pPubKw->SetNextPublishTime(tNow+(KADEMLIAREPUBLISHTIMEK));
+ pPubKw->SetNextPublishTime(tNow+(theApp.rm->kadRepublishTimeK));
pPubKw->IncPublishedCount();
Kademlia::CSearchManager::startSearch(pSearch);
} else {
@@ -965,11 +1026,11 @@ void CSharedFileList::Publish()
}
}
}
- m_keywords->SetNextPublishTime(KADEMLIAPUBLISHTIME+tNow);
+ m_keywords->SetNextPublishTime(theApp.rm->kadPubTime+tNow);
}
}
- if( Kademlia::CKademlia::getTotalStoreSrc() < KADEMLIATOTALSTORESRC) {
+ if( Kademlia::CKademlia::getTotalStoreSrc() < theApp.rm->kadTotalStoreSrc) {
if(tNow >= m_lastPublishKadSrc) {
if(m_currFileSrc > GetCount()) {
m_currFileSrc = 0;
@@ -988,11 +1049,11 @@ void CSharedFileList::Publish()
// even if we did not publish a source, reset the timer so that this list is processed
// only every KADEMLIAPUBLISHTIME seconds.
- m_lastPublishKadSrc = KADEMLIAPUBLISHTIME+tNow;
+ m_lastPublishKadSrc = theApp.rm->kadPubTime+tNow;
}
}
- if( Kademlia::CKademlia::getTotalStoreNotes() < KADEMLIATOTALSTORENOTES) {
+ if( Kademlia::CKademlia::getTotalStoreNotes() < theApp.rm->kadTotalStoreNotes) {
if(tNow >= m_lastPublishKadNotes) {
if(m_currFileNotes > GetCount()) {
m_currFileNotes = 0;
@@ -1010,7 +1071,7 @@ void CSharedFileList::Publish()
// even if we did not publish a source, reset the timer so that this list is processed
// only every KADEMLIAPUBLISHTIME seconds.
- m_lastPublishKadNotes = KADEMLIAPUBLISHTIME+tNow;
+ m_lastPublishKadNotes = theApp.rm->kadPubTime+tNow;
}
}
}
diff -urdpN ../aMule-2.1.3-orig/src/Statistics.cpp ./src/Statistics.cpp
--- ../aMule-2.1.3-orig/src/Statistics.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/Statistics.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -155,6 +155,26 @@ CStatTreeItemBase* CStatistics::s_statT
// Uptime
CStatTreeItemTimer* CStatistics::s_uptime;
+// Adu mod
+CStatTreeItemUlDlCounter* CStatistics::s_sessionAduUpload;
+CStatTreeItemUlDlCounter* CStatistics::s_sessionAduFUpload;
+CStatTreeItemUlDlCounter* CStatistics::s_sessionAduDUpload;
+CStatTreeItemUlDlCounter* CStatistics::s_sessionAduDownload;
+CStatTreeItemUlDlCounter* CStatistics::s_sessionAduFDownload;
+CStatTreeItemUlDlCounter* CStatistics::s_sessionAduDDownload;
+CStatTreeItemUlDlCounter* CStatistics::s_sessionExtUpload;
+CStatTreeItemUlDlCounter* CStatistics::s_sessionExtDownload;
+CStatTreeItemCounter* CStatistics::s_totAduUpload;
+CStatTreeItemCounter* CStatistics::s_totAduFUpload;
+CStatTreeItemCounter* CStatistics::s_totAduDUpload;
+CStatTreeItemCounter* CStatistics::s_totAduDownload;
+CStatTreeItemCounter* CStatistics::s_totAduFDownload;
+CStatTreeItemCounter* CStatistics::s_totAduDDownload;
+CStatTreeItemCounter* CStatistics::s_totExtUpload;
+CStatTreeItemCounter* CStatistics::s_totExtDownload;
+CStatTreeItemCounter* CStatistics::s_totUpload;
+CStatTreeItemCounter* CStatistics::s_totDownload;
+
// Upload
CStatTreeItemUlDlCounter* CStatistics::s_sessionUpload;
CStatTreeItemPacketTotals* CStatistics::s_totalUpOverhead;
@@ -216,6 +236,7 @@ CStatTreeItemCounter* CStatistics::s_si
// Kad
uint64 CStatistics::s_kadNodesTotal;
uint16 CStatistics::s_kadNodesCur;
+uint16 CStatistics::s_kadActiveNodesCur;
CStatistics::CStatistics()
@@ -368,6 +389,8 @@ void CStatistics::RecordHistory()
s_kadNodesTotal += s_kadNodesCur;
phr->kadNodesTotal = s_kadNodesTotal;
phr->kadNodesCur = s_kadNodesCur;
+ phr->kadActiveNodesCur = s_kadActiveNodesCur;
+
}
@@ -559,9 +582,10 @@ void CStatistics::ComputeAverages(
// now compute averages in returned arrays, starting with the earliest values
float *pf1 = *ppf++ + cntFilled - 1; // holds session avg
float *pf2 = *ppf++ + cntFilled - 1; // holds running avg
- float *pf3 = *ppf + cntFilled - 1; // holds current rate
+ float *pf3 = *ppf++ + cntFilled - 1; // holds current rate
+ float *pf4 = *ppf + cntFilled - 1; // holds current active rate for kad graph
- for (int cnt=cntFilled; cnt>0; cnt--, pf1--, pf2--, pf3--) {
+ for (int cnt=cntFilled; cnt>0; cnt--, pf1--, pf2--, pf3--, pf4--) {
HR *phr = *(--pphr);
if (which_graph == GRAPH_DOWN) {
kValueRun = phr->kBytesReceived;
@@ -572,6 +596,7 @@ void CStatistics::ComputeAverages(
} else {
kValueRun = phr->kadNodesTotal;
*pf3 = phr->kadNodesCur;
+ *pf4 = phr->kadActiveNodesCur;
}
*pf1 = kValueRun / phr->sTimestamp;
@@ -612,6 +637,7 @@ GraphUpdateInfo CStatistics::GetPointsFo
update.kadnodes[0] = phr->kadNodesTotal / phr->sTimestamp;
update.kadnodes[1] = m_graphRunningAvgKad.GetRate() / 1024.0;
update.kadnodes[2] = phr->kadNodesCur;
+ update.kadnodes[3] = phr->kadActiveNodesCur;
return update;
}
@@ -629,6 +655,80 @@ void CStatistics::InitStatsTree()
s_uptime = (CStatTreeItemTimer*)s_statTree->AddChild(new CStatTreeItemTimer(wxTRANSLATE("Uptime: %s")));
tmpRoot1 = s_statTree->AddChild(new CStatTreeItemBase(wxTRANSLATE("Transfer"), stSortChildren));
+ // Adu mod
+ tmpRoot2 = tmpRoot1->AddChild(new CStatTreeItemBase(wxTRANSLATE("AdunanzA")), 3);
+ s_sessionAduUpload = (CStatTreeItemUlDlCounter*)tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("AdunanzA uploaded [session (total)]: %s"), thePrefs::GetTotalAduUploaded, stSortChildren | stSortByValue),1);
+
+ s_sessionAduFUpload = (CStatTreeItemUlDlCounter*)s_sessionAduUpload->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("fibra [session (total)]: %s"), thePrefs::GetTotalAduFUploaded, stSortChildren | stSortByValue),1);
+ s_sessionAduDUpload = (CStatTreeItemUlDlCounter*)s_sessionAduUpload->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("dsl [session (total)]: %s"), thePrefs::GetTotalAduDUploaded, stSortChildren | stSortByValue),2);
+
+
+ s_sessionAduDownload = (CStatTreeItemUlDlCounter*)tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("AdunanzA downloaded [session (total)]: %s"), thePrefs::GetTotalAduDownloaded, stSortChildren | stSortByValue),2);
+
+ s_sessionAduFDownload = (CStatTreeItemUlDlCounter*)s_sessionAduDownload->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("fibra [session (total)]: %s"), thePrefs::GetTotalAduFDownloaded, stSortChildren | stSortByValue),1);
+ s_sessionAduDDownload = (CStatTreeItemUlDlCounter*)s_sessionAduDownload->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("dsl [session (total)]: %s"), thePrefs::GetTotalAduDDownloaded, stSortChildren | stSortByValue),2);
+
+ s_sessionExtUpload = (CStatTreeItemUlDlCounter*)tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("Esterni uploaded [session (total)]: %s"), thePrefs::GetTotalExtUploaded, stSortChildren | stSortByValue),3);
+ s_sessionExtDownload = (CStatTreeItemUlDlCounter*)tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("Esterni downloaded [session (total)]: %s"), thePrefs::GetTotalExtDownloaded, stSortChildren | stSortByValue),4);
+
+
+ CStatTreeItemBase *tmpAduRoot,*tmpAduRoot2,*tmpAduRoot3;
+ s_totAduUpload=new CStatTreeItemCounter(wxTRANSLATE("Total AdunanzA upload"));
+ s_totAduFUpload=new CStatTreeItemCounter(wxTRANSLATE("Total fibra upload"));
+ s_totAduDUpload=new CStatTreeItemCounter(wxTRANSLATE("Total dsl upload"));
+ s_totAduDownload=new CStatTreeItemCounter(wxTRANSLATE("Total AdunanzA download"));
+ s_totAduFDownload=new CStatTreeItemCounter(wxTRANSLATE("Total fibra download"));
+ s_totAduDDownload=new CStatTreeItemCounter(wxTRANSLATE("Total dsl download"));
+ s_totExtUpload=new CStatTreeItemCounter(wxTRANSLATE("Total Esterni upload"));
+ s_totExtDownload=new CStatTreeItemCounter(wxTRANSLATE("Total Esterni download"));
+ s_totUpload=new CStatTreeItemCounter(wxTRANSLATE("Total upload"));
+ s_totDownload=new CStatTreeItemCounter(wxTRANSLATE("Total download"));
+
+ (*s_totAduDownload) = thePrefs::GetTotalAduDownloaded();
+ (*s_totAduFDownload) = thePrefs::GetTotalAduFDownloaded();
+ (*s_totAduDDownload) = thePrefs::GetTotalAduDDownloaded();
+ (*s_totExtDownload) = thePrefs::GetTotalExtDownloaded();
+ (*s_totDownload) = thePrefs::GetTotalDownloaded();
+
+ (*s_totAduUpload) = thePrefs::GetTotalAduUploaded();
+ (*s_totAduFUpload) = thePrefs::GetTotalAduFUploaded();
+ (*s_totAduDUpload) = thePrefs::GetTotalAduDUploaded();
+ (*s_totExtUpload) = thePrefs::GetTotalExtUploaded();
+ (*s_totUpload) = thePrefs::GetTotalUploaded();
+
+ tmpAduRoot=tmpRoot2->AddChild(new CStatTreeItemBase(wxTRANSLATE("Ratio sessione")), 5);
+ tmpAduRoot2=tmpAduRoot->AddChild(new CStatTreeItemBase(wxTRANSLATE("Esterni")), 1);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Up ADU:Ext %s"), s_sessionAduUpload, s_sessionExtUpload), 1);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Down ADU:Ext %s"), s_sessionAduDownload, s_sessionExtDownload), 2);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Esterni UL:DL %s"), s_sessionExtUpload, s_sessionExtDownload), 3);
+
+ tmpAduRoot2=tmpAduRoot->AddChild(new CStatTreeItemBase(wxTRANSLATE("AdunanzA")), 2);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Up Fib:Dsl %s"), s_sessionAduFUpload, s_sessionAduDUpload), 1);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Down Fib:Dsl %s"), s_sessionAduFDownload, s_sessionAduDDownload), 2);
+
+ tmpAduRoot3=tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("AdnzA UL:DL %s"), s_sessionAduUpload, s_sessionAduDownload), 3);
+ tmpAduRoot3->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Fibra UL:DL %s"), s_sessionAduFUpload, s_sessionAduFDownload), 1);
+ tmpAduRoot3->AddChild(new CStatTreeItemRatio(wxTRANSLATE("DSL UL:DL %s"), s_sessionAduDUpload, s_sessionAduDDownload), 2);
+
+ tmpAduRoot=tmpRoot2->AddChild(new CStatTreeItemBase(wxTRANSLATE("Ratio totali")), 6);
+ tmpAduRoot2=tmpAduRoot->AddChild(new CStatTreeItemBase(wxTRANSLATE("Esterni")), 1);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Up ADU:Ext %s"), s_totAduUpload, s_totExtUpload), 1);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Down ADU:Ext %s"), s_totAduDownload, s_totExtDownload), 2);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Esterni UL:DL %s"), s_totExtUpload, s_totExtDownload), 3);
+
+ tmpAduRoot2=tmpAduRoot->AddChild(new CStatTreeItemBase(wxTRANSLATE("AdunanzA")), 2);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Up Fib:Dsl %s"), s_totAduFUpload, s_totAduDUpload), 1);
+ tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Down Fib:Dsl %s"), s_totAduFDownload, s_totAduDDownload), 2);
+
+ tmpAduRoot3=tmpAduRoot2->AddChild(new CStatTreeItemRatio(wxTRANSLATE("AdnzA UL:DL %s"), s_totAduUpload, s_totAduDownload), 3);
+ tmpAduRoot3->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Fibra UL:DL %s"), s_totAduFUpload, s_totAduFDownload), 1);
+ tmpAduRoot3->AddChild(new CStatTreeItemRatio(wxTRANSLATE("DSL UL:DL %s"), s_totAduDUpload, s_totAduDDownload), 2);
+
+ tmpAduRoot->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Totale UL:DL %s"), s_totUpload, s_totDownload), 13);
+
+
+ // Fine
+
tmpRoot2 = tmpRoot1->AddChild(new CStatTreeItemBase(wxTRANSLATE("Uploads")), 2);
s_sessionUpload = (CStatTreeItemUlDlCounter*)tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("Uploaded Data (Session (Total)): %s"), thePrefs::GetTotalUploaded, stSortChildren | stSortByValue));
@@ -664,7 +764,7 @@ void CStatistics::InitStatsTree()
s_foundSources = (CStatTreeItemNativeCounter*)tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Found Sources: %s"), stSortChildren | stSortByValue));
s_activeDownloads = (CStatTreeItemNativeCounter*)tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Active Downloads (chunks): %s")));
- tmpRoot1->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Session UL:DL Ratio (Total): %s"), s_sessionUpload, s_sessionDownload), 3);
+ tmpRoot1->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Session UL:DL Ratio (Total): %s"), s_sessionUpload, s_sessionDownload), 4);
tmpRoot1 = s_statTree->AddChild(new CStatTreeItemBase(wxTRANSLATE("Connection")));
tmpRoot1->AddChild(new CStatTreeItemAverageSpeed(wxTRANSLATE("Average Downloadrate (Session): %s"), s_sessionDownload, s_uptime));
@@ -784,9 +884,9 @@ uint32 GetSoftID(uint8 SoftType)
}
}
-void CStatistics::AddDownloadFromSoft(uint8 SoftType, uint32 bytes)
+void CStatistics::AddDownloadFromSoft(uint8 SoftType, uint32 bytes, uint32 adubytes, uint32 adufiberbytes)
{
- AddReceivedBytes(bytes);
+ AddReceivedBytes(bytes,adubytes,adufiberbytes);
uint32 id = GetSoftID(SoftType);
diff -urdpN ../aMule-2.1.3-orig/src/StatisticsDlg.cpp ./src/StatisticsDlg.cpp
--- ../aMule-2.1.3-orig/src/StatisticsDlg.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/StatisticsDlg.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -42,7 +42,7 @@
COLORREF CStatisticsDlg::getColors(unsigned num)
{
- wxCHECK(num < 15, RGB(0, 0, 0));
+ wxCHECK(num < 16, RGB(0, 0, 0));
return acrStat[num];
}
diff -urdpN ../aMule-2.1.3-orig/src/StatisticsDlg.h ./src/StatisticsDlg.h
--- ../aMule-2.1.3-orig/src/StatisticsDlg.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/StatisticsDlg.h 2006-06-12 18:30:14.000000000 +0200
@@ -65,7 +65,7 @@ public:
COScopeCtrl* GetConnScope() { return pscopeConn; };
protected:
- static COLORREF acrStat[15];
+ static COLORREF acrStat[16];
COScopeCtrl* pscopeDL,*pscopeUL,*pscopeConn;
wxTreeCtrl* stattree;
CStatistics* m_stats;
diff -urdpN ../aMule-2.1.3-orig/src/Statistics.h ./src/Statistics.h
--- ../aMule-2.1.3-orig/src/Statistics.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/Statistics.h 2006-06-12 18:30:14.000000000 +0200
@@ -50,7 +50,7 @@ typedef struct UpdateInfo {
float downloads[3];
float uploads[3];
float connections[3];
- float kadnodes[3];
+ float kadnodes[4];
} GraphUpdateInfo;
typedef struct HistoryRecord {
@@ -63,6 +63,7 @@ typedef struct HistoryRecord {
uint16 cntUploads;
uint16 cntConnections;
uint16 kadNodesCur;
+ uint16 kadActiveNodesCur;
uint64 kadNodesTotal;
} HR;
@@ -286,6 +287,17 @@ class CStatistics {
static uint32 GetDownloadingSources() { return (*s_activeDownloads); }
static double GetDownloadRate() { return s_downloadrate->GetRate(); }
+ // Adu
+ static uint64 GetAduSessionSentBytes() { return (*s_sessionAduUpload); }
+ static uint64 GetAduFSessionSentBytes() { return (*s_sessionAduFUpload); }
+ static uint64 GetAduDSessionSentBytes() { return (*s_sessionAduDUpload); }
+ static uint64 GetAduSessionReceivedBytes() { return (*s_sessionAduDownload); }
+ static uint64 GetAduFSessionReceivedBytes() { return (*s_sessionAduFDownload); }
+ static uint64 GetAduDSessionReceivedBytes() { return (*s_sessionAduDDownload); }
+ static uint64 GetExtSessionSentBytes() { return (*s_sessionExtUpload); }
+ static uint64 GetExtSessionReceivedBytes() { return (*s_sessionExtDownload); }
+ // Fine
+
// Connection
static CStatTreeItemTimer* GetServerConnectTimer() { return s_sinceConnected; }
static void AddReconnect() { ++(*s_reconnects); }
@@ -324,12 +336,14 @@ class CStatistics {
// Kad nodes
static void AddKadNode() { ++s_kadNodesCur; }
static void RemoveKadNode() { --s_kadNodesCur; }
+ static void AddActiveKadNode() { ++s_kadActiveNodesCur; }
+ static void RemoveActiveKadNode() { --s_kadActiveNodesCur; }
// Other
static void CalculateRates();
- static void AddReceivedBytes(uint32 bytes)
+ static void AddReceivedBytes(uint32 bytes, uint32 adubytes, uint32 adufiberbytes)
{
if (!s_sinceFirstTransfer->IsRunning()) {
s_sinceFirstTransfer->StartTimer();
@@ -337,9 +351,21 @@ class CStatistics {
(*s_sessionDownload) += bytes;
(*s_downloadrate) += bytes;
+
+// Mod adu
+ (*s_sessionAduDownload) += adubytes;
+ (*s_sessionExtDownload) += bytes-adubytes;
+
+ (*s_sessionAduFDownload) += adufiberbytes;
+ (*s_sessionAduDDownload) += adubytes-adufiberbytes;
+
+ (*s_totAduDownload) += adubytes;
+ (*s_totExtDownload) += bytes-adubytes;
+ (*s_totDownload) += bytes;
+// Fine
}
- static void AddSentBytes(uint32 bytes)
+ static void AddSentBytes(uint32 bytes, uint32 adubytes, uint32 adufiberbytes)
{
if (!s_sinceFirstTransfer->IsRunning()) {
s_sinceFirstTransfer->StartTimer();
@@ -347,9 +373,21 @@ class CStatistics {
(*s_sessionUpload) += bytes;
(*s_uploadrate) += bytes;
+
+// Mod adu
+ (*s_sessionAduUpload) += adubytes;
+ (*s_sessionExtUpload) += bytes-adubytes;
+
+ (*s_sessionAduFUpload) += adufiberbytes;
+ (*s_sessionAduDUpload) += adubytes-adufiberbytes;
+
+ (*s_totAduUpload) += adubytes;
+ (*s_totExtUpload) += bytes-adubytes;
+ (*s_totUpload) += bytes;
+// Fine
}
- static void AddDownloadFromSoft(uint8 SoftType, uint32 bytes);
+ static void AddDownloadFromSoft(uint8 SoftType, uint32 bytes, uint32 adubytes, uint32 adufiberbytes);
static void AddUploadToSoft(uint8 SoftType, uint32 bytes);
// EC
@@ -406,6 +444,26 @@ class CStatistics {
// Uptime
static CStatTreeItemTimer* s_uptime;
+ // Adu mod
+ static CStatTreeItemUlDlCounter* s_sessionAduUpload;
+ static CStatTreeItemUlDlCounter* s_sessionAduFUpload;
+ static CStatTreeItemUlDlCounter* s_sessionAduDUpload;
+ static CStatTreeItemUlDlCounter* s_sessionAduDownload;
+ static CStatTreeItemUlDlCounter* s_sessionAduFDownload;
+ static CStatTreeItemUlDlCounter* s_sessionAduDDownload;
+ static CStatTreeItemUlDlCounter* s_sessionExtUpload;
+ static CStatTreeItemUlDlCounter* s_sessionExtDownload;
+ static CStatTreeItemCounter* s_totAduUpload;
+ static CStatTreeItemCounter* s_totAduFUpload;
+ static CStatTreeItemCounter* s_totAduDUpload;
+ static CStatTreeItemCounter* s_totAduDownload;
+ static CStatTreeItemCounter* s_totAduFDownload;
+ static CStatTreeItemCounter* s_totAduDDownload;
+ static CStatTreeItemCounter* s_totExtUpload;
+ static CStatTreeItemCounter* s_totExtDownload;
+ static CStatTreeItemCounter* s_totUpload;
+ static CStatTreeItemCounter* s_totDownload;
+
// Upload
static CStatTreeItemUlDlCounter* s_sessionUpload;
static CStatTreeItemPacketTotals* s_totalUpOverhead;
@@ -467,6 +525,7 @@ class CStatistics {
// Kad nodes
static uint64 s_kadNodesTotal;
static uint16 s_kadNodesCur;
+ static uint16 s_kadActiveNodesCur;
};
#else /* EC_REMOTE == CLIENT_GUI */
@@ -509,6 +568,10 @@ class CStatistics {
static void UpdateStats(const CECPacket* stats);
+ static uint64 GetAduSessionSentBytes() { return 0; } // TODO
+ static uint64 GetAduSessionReceivedBytes() { return 0; } // TODO
+
+
void UpdateStatsTree();
void SetAverageMinutes(uint8 minutes) { average_minutes = minutes; }
@@ -526,6 +589,7 @@ class CStatistics {
CRemoteConnect* m_conn;
};
+
#endif /* !EC_REMOTE / EC_REMOTE */
diff -urdpN ../aMule-2.1.3-orig/src/TransferWnd.cpp ./src/TransferWnd.cpp
--- ../aMule-2.1.3-orig/src/TransferWnd.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/TransferWnd.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -103,9 +103,8 @@ CTransferWnd::CTransferWnd( wxWindow* pP
m_menu = NULL;
m_splitter = 0;
-
- wxConfigBase *config = wxConfigBase::Get();
-
+ wxConfigBase *config = theApp.acfg;
+
// Check if the clientlist is hidden
bool show = true;
config->Read( wxT("/GUI/TransferWnd/ShowClientList"), &show, true );
@@ -123,8 +122,15 @@ CTransferWnd::CTransferWnd( wxWindow* pP
CTransferWnd::~CTransferWnd()
{
- wxConfigBase *config = wxConfigBase::Get();
+#ifndef CLIENT_GUI
+ wxConfigBase *config = theApp.acfg;
+#else
+ wxConfigBase *config = NULL;
+#endif
+ if (!config)
+ return;
+
if ( clientlistctrl->GetListView() == vtNone ) {
// Save the splitter position
config->Write( wxT("/GUI/TransferWnd/Splitter"), m_splitter );
@@ -298,11 +304,21 @@ void CTransferWnd::OnSetDefaultCat( wxCo
downloadlistctrl->SortList();
}
-
+#if defined(AMULE_DAEMON) || defined(CLIENT_GUI)
+#else
+#include <UploadQueue.h>
+#endif
void CTransferWnd::ShowQueueCount(uint32 number)
{
+#if defined(AMULE_DAEMON) || defined(CLIENT_GUI)
wxString str = wxString::Format( wxT("%u (%u %s)"), number, theStats::GetBannedCount(), _("Banned") );
+ #warning "SP: **NON** Mostro il numero di client adu in coda"
+#else
+ #warning "SP: Mostro il numero di client adu in coda"
+ wxString str = wxString::Format( wxT("%u (%u %s, %d AdunanzA)"), number, theStats::GetBannedCount(), _("Banned"), theApp.uploadqueue->GetAdunanzAUserCount() );
+#endif
+
wxStaticText* label = CastChild( ID_CLIENTCOUNT, wxStaticText );
label->SetLabel( str );
diff -urdpN ../aMule-2.1.3-orig/src/updownclient.h ./src/updownclient.h
--- ../aMule-2.1.3-orig/src/updownclient.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/updownclient.h 2006-06-12 18:30:14.000000000 +0200
@@ -35,6 +35,7 @@
#include "MD4Hash.h"
#include <common/StringFunctions.h>
#include "NetworkFunctions.h"
+#include "AdunanzA.h"
#include <map>
#include <vector>
@@ -385,6 +386,8 @@ public:
bool DeleteFileRequest(CPartFile* file);
void DeleteAllFileRequests();
void SendBlockRequests();
+ void CreateBlockRequests(int iMaxBlocks);
+
void ProcessBlockPacket(const char* packet, uint32 size, bool packed = false);
#ifndef CLIENT_GUI
@@ -411,7 +414,7 @@ public:
uint8 GetFileRating() const { return m_iRating; }
const wxString& GetSoftStr() const { return m_clientSoftString; }
- const wxString& GetSoftVerStr() const { return m_clientVerString; }
+ const wxString& GetSoftVerStr() const { return m_clientVersionString; }
uint16 GetKadPort() const { return m_nKadPort; }
void SetKadPort(uint16 nPort) { m_nKadPort = nPort; }
@@ -488,8 +491,12 @@ public:
*
* @return True if the socket exists and the packet was sent, false otherwise.
*/
+ // Stefano Picerno: Aggiunto il parametro actualPayloadSize
+#if 0
bool SendPacket(CPacket* packet, bool delpacket = true, bool controlpacket = true);
-
+#endif
+ bool SendPacket(CPacket* packet, bool delpacket = true, bool controlpacket = true, uint32 actualPayloadSize = 0 );
+ // Fine
/**
* Safe function for setting the download limit of the socket.
*
@@ -790,6 +797,32 @@ private:
uint8 m_byKadVersion;
uint32 m_dwLastBuddyPingPongTime;
+ // Modifica AdunanzA
+ //
+ // Emanem 6/4/2004 - 13:25
+ // Metodi per gestire la variabile "isAduSoftware"
+public :
+ uint32 GetIsAduSoftware(void) const {return isAduSoftware;}
+ void SetIsAduSoftware(uint32 in = 0){isAduSoftware = in;}
+
+ bool IsOldAdu(uint32 oldver = ADU_VER_CODE(ADU_VER_MAJ,ADU_VER_MIN,0)) const {return isAduSoftware && aduver < oldver;}
+ // Metodo che informa se il client e' sia Adu
+ // che nella rete FastWeb Italiana. Dichiarato qui ma
+ // definito nel file AdunanzA.cpp
+ uint32 GetClientAduType(void) const;
+ void SetClientFWCity(void);
+ const wxString& GetClientFWCity(void) const {return m_FWCity;}
+ bool HasFastwebIP(void) const { return m_dwUserIP && AduIsFastWebIP(m_dwUserIP); }
+
+ bool IsAduClient() const;
+ bool IsAduFiber() const;
+ bool sentadu;
+private:
+ uint32 aduver;
+ uint32 isAduSoftware;
+ wxString m_FWCity;
+ // fine mod Adu
+
//! This keeps track of aggressive requests for files.
uint16 m_Aggressiveness;
//! This tracks the time of the last time since a file was requested
diff -urdpN ../aMule-2.1.3-orig/src/UploadBandwidthThrottler.cpp ./src/UploadBandwidthThrottler.cpp
--- ../aMule-2.1.3-orig/src/UploadBandwidthThrottler.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/UploadBandwidthThrottler.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -36,6 +36,7 @@
#include <algorithm>
#include <limits>
+#include <cmath>
#ifdef _UI64_MAX
#undef _UI64_MAX
@@ -314,8 +315,19 @@ void* UploadBandwidthThrottler::Entry()
sint64 realBytesToSpend = 0;
uint32 allowedDataRate = 0;
uint32 rememberedSlotCounter = 0;
- uint32 lastTickReachedBandwidth = ::GetTickCountFullRes();
- uint32 extraSleepTime = TIME_BETWEEN_UPLOAD_LOOPS;
+ uint32 lastTickReachedBandwidth = lastLoopTick;
+ uint32 extraSleepTime = 0;
+ uint32 nextPrint = 0; // needed for debugging
+ uint32 lastSpent = lastLoopTick;
+ uint64 spentBytes = 0;
+ uint64 spentOverhead = 0;
+ sint64 estSendBytesT = 0;
+ uint32 timeSinceLastSpent = 0;
+ uint32 nextEstSBT = 0;
+
+ const uint32 maxScale = 1200 * 1024, minScale = 6 * 1024, minFragments = 2, maxFragments = 128;
+ const float factor = (float)(maxFragments - minFragments) / 2 / (maxScale - minScale);
+ const uint16 avgPeriod = 10;
while (m_doRun) {
uint32 timeSinceLastLoop = ::GetTickCountFullRes() - lastLoopTick;
@@ -330,11 +342,15 @@ void* UploadBandwidthThrottler::Entry()
allowedDataRate = (uint32)(-1);
}
} else {
- allowedDataRate = thePrefs::GetMaxUpload() * 1024;
+ allowedDataRate = (uint32)thePrefs::GetMaxUpload() * 1024;
}
uint32 minFragSize = 1300;
- uint32 doubleSendSize = minFragSize*2; // send two packages at a time so they can share an ACK
+
+ // Linearly scaling fragments number
+ uint16 nFragments = (uint16)( factor * ( ( allowedDataRate < maxScale ? allowedDataRate : maxScale ) - minScale ) + minFragments/2 + .5 ) * 2;
+
+ uint32 doubleSendSize = minFragSize*nFragments;
if (allowedDataRate < 6*1024) {
minFragSize = 536;
doubleSendSize = minFragSize; // don't send two packages at a time at very low speeds to give them a smoother load
@@ -350,7 +366,7 @@ void* UploadBandwidthThrottler::Entry()
sleepTime = std::max((uint32)ceil((double)(-realBytesToSpend + 1000)/allowedDataRate), TIME_BETWEEN_UPLOAD_LOOPS);
}
- if(timeSinceLastLoop < sleepTime) {
+ if(timeSinceLastLoop < sleepTime && sleepTime) {
Sleep(sleepTime-timeSinceLastLoop);
}
@@ -373,9 +389,39 @@ void* UploadBandwidthThrottler::Entry()
lastLoopTick = thisLoopTick - timeSinceLastLoop;
}
+
realBytesToSpend += allowedDataRate*timeSinceLastLoop;
+ // keep in mind that we don't count the IP overhead (~ +3% [~ 1500/1460])
+ // and we're prone to understimate using an EWMA (~ +2% [simulation])
+ if ((uint32)(estSendBytesT/avgPeriod*1.05f) > allowedDataRate)
+ realBytesToSpend = 0;
+
bytesToSpend = realBytesToSpend/1000;
+
+#if ADU_BETA_MAJ > 0
+ // debug message
+ if (nextPrint < time(NULL)) {
+ AddDebugLogLineM(false, logGeneral, wxString::Format(wxT(
+ "dLL: %u dLS: %u TS: %lld realTS: %lld SB: %lld DR: %u MaxUpload: %u dSS: %u eSBT: %lld eSR: %lld nFrag: %u ST: %u"),
+ timeSinceLastLoop,
+ timeSinceLastSpent,
+ bytesToSpend,
+ realBytesToSpend,
+ spentBytes,
+ allowedDataRate,
+ thePrefs::GetMaxUpload(),
+ doubleSendSize,
+ estSendBytesT,
+ estSendBytesT/10,
+ nFragments,
+ sleepTime
+ ));
+
+ nextPrint=time(NULL)+2;
+ }
+#endif
+
} else {
realBytesToSpend = _I64_MAX;
bytesToSpend = _I32_MAX;
@@ -386,10 +432,10 @@ void* UploadBandwidthThrottler::Entry()
}
lastLoopTick = thisLoopTick;
+ spentBytes = 0;
+ spentOverhead = 0;
if(bytesToSpend >= 1) {
- uint64 spentBytes = 0;
- uint64 spentOverhead = 0;
wxMutexLocker sendLock(m_sendLocker);
@@ -485,9 +531,12 @@ void* UploadBandwidthThrottler::Entry()
rememberedSlotCounter++;
}
+ // Old behaviour:
// Any bandwidth that hasn't been used yet are used first to last.
+ // New behaviour:
+ // The old one wasn't fair, in this way we share more the bandwidth across sockets in a more fair way
for(uint32 slotCounter = 0; slotCounter < m_StandardOrder_list.size() && bytesToSpend > 0 && spentBytes < (uint64)bytesToSpend; slotCounter++) {
- ThrottledFileSocket* socket = m_StandardOrder_list[ slotCounter ];
+ ThrottledFileSocket* socket = m_StandardOrder_list[ ( slotCounter + rememberedSlotCounter ) % m_StandardOrder_list.size() ];
if(socket != NULL) {
uint32 bytesToSpendTemp = bytesToSpend-spentBytes;
@@ -528,11 +577,34 @@ void* UploadBandwidthThrottler::Entry()
m_SentBytesSinceLastCall += spentBytes;
m_SentBytesSinceLastCallOverhead += spentOverhead;
- if ((spentBytes == 0) and (spentOverhead == 0)) {
- extraSleepTime = std::min<uint32>(extraSleepTime * 5, 1000); // 1s at most
- } else {
- extraSleepTime = TIME_BETWEEN_UPLOAD_LOOPS;
- }
+ // This one is another important change
+ // if you send the thread to sleep you will never get good performances
+ // the cpu is already freed by the system calls (like read and write on the sockets)
+ // When implemented this you will also get even less cpu usage by the throttling thread
+ // This is happening because switching between sleep and run a lot of times
+ // could have high impact on the scheds and paging optimizations of the so.
+ extraSleepTime = 0;
+
+ } else {
+ if (extraSleepTime == 0)
+ extraSleepTime=1;
+
+ extraSleepTime = std::min<uint32>(extraSleepTime * 5, 1000); // 1s at most
+ }
+
+ estSendBytesT += spentBytes + spentOverhead;
+
+ if (nextEstSBT < thisLoopTick) {
+
+ timeSinceLastSpent = thisLoopTick - lastSpent;
+ lastSpent = thisLoopTick;
+
+
+ sint64 estSendBytesTOld = estSendBytesT;
+ estSendBytesT -= (sint64)(estSendBytesT*(float)timeSinceLastSpent/(1000*avgPeriod));
+
+ //printf("eSBT: %lld eSBTO: %lld tSLL: %u Rate: %.2f\n", estSendBytesT, estSendBytesTOld, timeSinceLastSpent, (float)estSendBytesT/(1024*avgPeriod));
+ nextEstSBT = thisLoopTick + 250;
}
}
diff -urdpN ../aMule-2.1.3-orig/src/UploadClient.cpp ./src/UploadClient.cpp
--- ../aMule-2.1.3-orig/src/UploadClient.cpp 2006-02-11 02:43:26.000000000 +0100
+++ ./src/UploadClient.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -51,6 +51,12 @@
#include "Logger.h"
#include <common/Format.h>
+#include "AdunanzA.h"
+
+#ifndef AMULE_DAEMON
+ #include "TransferWnd.h" // Needed for CTransferWnd
+#endif
+
// members of CUpDownClient
// which are mainly used for uploading functions
@@ -118,7 +124,7 @@ uint32 CUpDownClient::GetScore(bool sysv
filepriority = 2500;
break; //end
case PR_VERYHIGH:
- filepriority = 18;
+ filepriority = 70;
break;
case PR_HIGH:
filepriority = 9;
@@ -161,6 +167,12 @@ uint32 CUpDownClient::GetScore(bool sysv
if( (IsEmuleClient() || GetClientSoft() < 10) && m_byEmuleVersion <= 0x19) {
fBaseValue *= 0.5f;
}
+
+#if 0
+ if ( IsOldAdu() )
+ fBaseValue *= 0.5f;
+#endif
+
return (uint32)fBaseValue;
}
#endif
@@ -826,8 +838,15 @@ void CUpDownClient::CheckForAggressive()
return;
}
+ // Mod Adunanza
+#if 0
// Is this an aggressive request?
if ( ( cur_time - m_LastFileRequest ) < MIN_REQUESTTIME ) {
+#endif
+
+ // Is this an aggressive request? ( And NOT an Adu3 )
+ if ( ( ( cur_time - m_LastFileRequest ) < MIN_REQUESTTIME ) && ( !IsAduClient() )) {
+ // Fine Mod Adunanza
m_Aggressiveness += 3;
// Is the client EVIL?
diff -urdpN ../aMule-2.1.3-orig/src/UploadQueue.cpp ./src/UploadQueue.cpp
--- ../aMule-2.1.3-orig/src/UploadQueue.cpp 2006-01-01 06:17:25.000000000 +0100
+++ ./src/UploadQueue.cpp 2006-06-12 18:30:14.000000000 +0200
@@ -59,6 +59,9 @@
#include <common/Format.h>
#include "UploadBandwidthThrottler.h"
+// Mod adu
+
+
#include <numeric>
//TODO rewrite the whole networkcode, use overlapped sockets
@@ -68,19 +71,78 @@ CUploadQueue::CUploadQueue()
m_nLastStartUpload = 0;
lastupslotHighID = true;
+ // mod Adu
+ // Emanem
+ // Inizializzo il numero di clients Adu
+ m_AduClientsNum = 0;
+ // fine mod Adu
}
-void CUploadQueue::AddUpNextClient(CUpDownClient* directadd)
+void CUploadQueue::AddUpNextClient(CUpDownClient* directadd, uint32 tC)
{
POSITION toadd = 0;
POSITION toaddlow = 0;
sint64 bestscore = -1;
sint64 bestlowscore = -1;
+ // Mod Adu
+ // lupz
+ // capisco cosa voglio
+ uint32 typeClient = AduNextClient();
+ //AddDebugLogLineM(false, logClient, CFormat(wxT("voglio: %u")) % typeClient);
+ if (typeClient == ADUNANZA_NONE)
+ return;
+ // Fine mod Adu
+
+ // Mod Adu
+ // Emanem
+ // Forziamo che il rapporto 1:1 sia rispettato
+ //if (thePrefs.m_AduForceExt11 &&
+ // ADUNANZA_FASTWEB == AduGetTypeBand(0) &&
+ // 0 == m_AduClientsNum)
+
+ // lupz: aggiorno alla nuova logica
+
+ // lupz: sistemo anche il criterio
+ // il vecchio criterio causava frequenti coda piena
+
+ if (directadd) {
+ switch(typeClient) {
+ case ADUNANZA_FASTWEB:
+ if (!directadd->IsAduClient())
+ return;
+ break;
+ case ADUNANZA_EXTERN:
+ if (directadd->IsAduClient())
+ return;
+ break;
+ }
+ } else if (!directadd) {
+ switch(typeClient) {
+ case ADUNANZA_FASTWEB:
+ if (!m_AduClientsNum)
+ return;
+ break;
+ case ADUNANZA_EXTERN:
+ if (m_AduClientsNum >= waitinglist.GetCount())
+ return;
+ break;
+ }
+ }
+
+ // fine mod Adu
+
CUpDownClient* newclient;
// select next client or use given client
if (!directadd) {
+ // mod Adu
+ // Emanem
+ // Risistemo il valore temporaneo del numero di clients
+ // AdunanzA
+ uint32 _tmp_m_AduClientsNum = 0;
+ // fine mod Adu
+
// Track if we purged any clients from the queue, as to only send one notify in total
bool purged = false;
@@ -109,19 +171,64 @@ void CUploadQueue::AddUpNextClient(CUpDo
continue;
}
// finished clearing
-
- sint64 cur_score = cur_client->GetScore(true);
- if (cur_score > bestscore) {
- bestscore = cur_score;
- toadd = pos2;
- } else {
- cur_score = cur_client->GetScore(false);
- if ((cur_score > bestlowscore) && !cur_client->m_bAddNextConnect){
- bestlowscore = cur_score;
- toaddlow = pos2;
+
+ // Codice AdunanzA
+ // Emanem 18:15 4/4/2004
+ //
+ // In questo caso, in base al tipo di typeClient
+ // in input si sceglie su che clients fare la "classifica"
+ /// di priorita'
+ uint32 cur_score = cur_client->GetScore(true);
+
+ // valore temporaneo per sapere se un client e' AdunanzA
+ // o no
+ uint32 aduResult = cur_client->GetClientAduType();
+ // nel caso incremento il contatore temporaneo
+ if (cur_client->IsAduClient())
+ _tmp_m_AduClientsNum++;
+ // Se il tipo di client non e' disponibile
+ // allora prendo il primo che mi capita
+ if (typeClient == ADUNANZA_FASTWEB)
+ {
+ if (!m_AduClientsNum) typeClient = ADUNANZA_ANY;
+ }
+ if (typeClient == ADUNANZA_EXTERN)
+ {
+ if (m_AduClientsNum >= waitinglist.GetCount()) typeClient = ADUNANZA_ANY;
+ }
+
+ bool doit = false;
+ switch(typeClient)
+ {
+ case ADUNANZA_EXTERN:
+ doit = cur_client->IsAduClient() == false;
+ break;
+ case ADUNANZA_FASTWEB:
+ doit = cur_client->IsAduClient() == true;
+ break;
+ default:
+ case ADUNANZA_ANY:
+ doit = true;
+ break;
+ };
+
+ if (doit) {
+ if ( cur_score > bestscore){
+ bestscore = cur_score;
+ toadd = pos2;
+ } else {
+ cur_score = cur_client->GetScore(false);
+ if ((cur_score > bestlowscore) && !cur_client->m_bAddNextConnect){
+ bestlowscore = cur_score;
+ toaddlow = pos2;
+ }
}
}
}
+ // mod Adu
+ // Emanem
+ // risistemo il numero di clients AdunanzA
+ m_AduClientsNum = _tmp_m_AduClientsNum;
// Update the count on GUI if any clients were purged
if (purged) {
@@ -173,6 +280,11 @@ void CUploadQueue::AddUpNextClient(CUpDo
theApp.uploadBandwidthThrottler->AddToStandardList(uploadinglist.GetCount(), newclient->GetSocket());
uploadinglist.AddTail(newclient);
+ // Mod Adu
+ // lupz
+ if (newclient->IsAduClient())
+ aduuploadinglist.AddTail(newclient);
+ // Fine mod Adu
theStats::AddUploadingClient();
// Statistic
@@ -186,13 +298,23 @@ void CUploadQueue::AddUpNextClient(CUpDo
void CUploadQueue::Process()
{
- if (AcceptNewClient() && waitinglist.GetCount()) {
+ if (AcceptNewClient(AduNextClient() == ADUNANZA_FASTWEB) && waitinglist.GetCount()) {
m_nLastStartUpload = ::GetTickCount();
+ // Modifica AdunanzA
+#if 0
AddUpNextClient();
+#endif
+ //
+ // Solo quando devo scegliere un client
+ // a caso scelgo uno secondo "AduGetType"
+ AddUpNextClient(NULL, AduGetTypeBand());
+ // fine mod adu
}
// The loop that feeds the upload slots with data.
POSITION pos = uploadinglist.GetHeadPosition();
+ uint64 aduSentBytes = 0, fakeSentBytes = 0, aduFiberSentBytes = 0;
+
while (pos != NULL) {
// Get the client. Note! Also updates pos as a side effect.
CUpDownClient* cur_client = uploadinglist.GetNext(pos);
@@ -203,7 +325,14 @@ void CUploadQueue::Process()
cur_client->Safe_Delete();
}
} else {
- cur_client->SendBlockData();
+ uint32 sentBytes = cur_client->SendBlockData();
+
+ if (cur_client->IsAduClient()) {
+ aduSentBytes += sentBytes;
+ if (cur_client->IsAduFiber())
+ aduFiberSentBytes += sentBytes;
+ }
+ fakeSentBytes += sentBytes;
}
}
@@ -213,12 +342,29 @@ void CUploadQueue::Process()
// Update statistics
if (sentBytes) {
- theStats::AddSentBytes(sentBytes);
+ theStats::AddSentBytes(fakeSentBytes,aduSentBytes,aduFiberSentBytes);
}
}
-bool CUploadQueue::AcceptNewClient()
+bool CUploadQueue::AcceptNewClient(bool isAduClient)
{
+
+ uint32 typeClient = AduNextClient();
+
+ switch (typeClient) {
+ case ADUNANZA_NONE:
+ return false;
+ break;
+ case ADUNANZA_FASTWEB:
+ if (!isAduClient)
+ return false;
+ break;
+ case ADUNANZA_EXTERN:
+ if (isAduClient)
+ return false;
+ break;
+ }
+
// check if we can allow a new client to start downloading from us
if (::GetTickCount() - m_nLastStartUpload < 1000 || uploadinglist.GetCount() >= MAX_UP_CLIENTS_ALLOWED) {
return false;
@@ -231,7 +377,8 @@ bool CUploadQueue::AcceptNewClient()
return true;
}
} else {
- uint16 nMaxSlots = 0;
+ uint16 nMaxSlots = AduGetMaxUploadSlots();
+#if 0
if (thePrefs::GetMaxUpload() >= 10) {
nMaxSlots = (uint16)floor((float)thePrefs::GetMaxUpload() / kBpsUpPerClient + 0.5);
// floor(x + 0.5) is a way of doing round(x) that works with gcc < 3 ...
@@ -241,6 +388,9 @@ bool CUploadQueue::AcceptNewClient()
} else {
nMaxSlots = MIN_UP_CLIENTS_ALLOWED;
}
+#endif
+
+ //AddDebugLogLineM(false, logClient, CFormat(wxT("in up: %u massimi: %u")) % (uint32)uploadinglist.GetCount() % nMaxSlots);
if ((uint32)uploadinglist.GetCount() < nMaxSlots) {
return true;
@@ -288,11 +438,21 @@ POSITION CUploadQueue::GetDownloadingCli
void CUploadQueue::AddClientToQueue(CUpDownClient* client)
{
+// Mod Adu
+// Emanem
+// Questa mod serve a supportare piu' di 50 clients se
+// connessi con un low-id
+#if 0
if (theApp.serverconnect->IsConnected() && theApp.serverconnect->IsLowID() && !theApp.serverconnect->IsLocalServer(client->GetServerIP(),client->GetServerPort()) && client->GetDownloadState() == DS_NONE && !client->IsFriend() && theStats::GetWaitingUserCount() > 50) {
- // Well, all that issues finish in the same: don't allow to add to the queue
+#endif
+ if (theApp.serverconnect->IsConnected() && theApp.serverconnect->IsLowID() && !theApp.serverconnect->IsLocalServer(client->GetServerIP(),client->GetServerPort()) && client->GetDownloadState() == DS_NONE && !client->IsFriend() && theStats::GetWaitingUserCount() > theApp.glob_prefs->GetQueueSize() ) {
+ // Well, all that issues finish in the same: don't allow to add to the queue
return;
}
+ // fine mod Adu
+
+
if ( client->IsBanned() ) {
return;
}
@@ -309,7 +469,13 @@ void CUploadQueue::AddClientToQueue(CUpD
CUpDownClient* cur_client = *it;
if ( cur_client == client ) {
+ // Stefano Picerno: aggiunto && (uploadinglist.GetCount() < AduGetMaxUploadSlots())
+#if 0
if ( client->m_bAddNextConnect && ( ( uploadinglist.GetCount() < thePrefs::GetMaxUpload() ) || ( thePrefs::GetMaxUpload() == UNLIMITED ) ) ) {
+#endif
+ //AddDebugLogLineM(false, logClient, CFormat(wxT("in up: %u massimi: %u")) % (uint32)uploadinglist.GetCount() % AduGetMaxUploadSlots());
+
+ if ( client->m_bAddNextConnect && ( ( uploadinglist.GetCount() < thePrefs::GetMaxUpload() ) || ( thePrefs::GetMaxUpload() == UNLIMITED ) ) && (uploadinglist.GetCount() < AduGetMaxUploadSlots()) ) {
if (lastupslotHighID) {
client->m_bAddNextConnect = false;
RemoveFromWaitingQueue(client, true);
@@ -378,6 +544,9 @@ void CUploadQueue::AddClientToQueue(CUpD
}
// TODO find better ways to cap the list
+
+ //AddDebugLogLineM(false, logClient, CFormat(wxT("in coda: %u massimi: %u")) % (uint32)waitinglist.GetCount() % thePrefs::GetQueueSize());
+
if ( (uint32)waitinglist.GetCount() >= (thePrefs::GetQueueSize())) {
return;
}
@@ -390,7 +559,7 @@ void CUploadQueue::AddClientToQueue(CUpD
return;
}
- if (waitinglist.IsEmpty() && AcceptNewClient()) {
+ if (waitinglist.IsEmpty() && AcceptNewClient(client->IsAduClient())) {
AddUpNextClient(client);
m_nLastStartUpload = ::GetTickCount();
} else {
@@ -398,6 +567,12 @@ void CUploadQueue::AddClientToQueue(CUpD
theStats::AddWaitingClient();
client->ClearWaitStartTime();
client->ClearAskedCount();
+ // mod Adu
+ // Emanem
+ // se un client e' Adu incremento il conteggio
+ if (client->IsAduClient())
+ m_AduClientsNum++;
+ // fine mod Adu
client->SetUploadState(US_ONUPLOADQUEUE);
client->SendRankingInfo();
Notify_QlistAddClient(client);
@@ -414,6 +589,12 @@ bool CUploadQueue::RemoveFromUploadQueue
Notify_UploadCtrlRemoveClient(client);
}
uploadinglist.RemoveAt(pos);
+ // Mod Adu
+ // lupz
+ POSITION adupos=aduuploadinglist.Find(client);
+ if (adupos)
+ aduuploadinglist.RemoveAt(adupos);
+ // Fine mod Adu
theStats::RemoveUploadingClient();
if( client->GetTransferredUp() ) {
theStats::AddSuccessfulUpload();
@@ -430,25 +611,91 @@ bool CUploadQueue::RemoveFromUploadQueue
bool CUploadQueue::CheckForTimeOver(CUpDownClient* client)
{
- if (thePrefs::TransferFullChunks()) {
- if( client->GetUpStartTimeDelay() > 3600000 ) { // Try to keep the clients from downloading forever.
+ // Mod Adu
+ // Emanem
+ // Se il client e' AdunanzA lo si lascia connesso
+ // al max per 1 ora. Se e' esterno al max per
+ // 10 minuti.
+ if ( client && client->IsAduClient() )
+ {
+ if( client->GetUpStartTimeDelay() > SESSIONMAXTIME ){ // Try to keep the clients from downloading for ever.
+ if (thePrefs::GetVerbose())
+ AddDebugLogLineM(false, logClient, wxString::Format(_("%s: Upload session ended due to max time %s."), client->GetUserName().c_str(), CastSecondsToHM(SESSIONMAXTIME/1000).c_str() ));
return true;
}
- // For some reason, some clients can continue to download after a chunk size.
- // Are they redownloading the same chunk over and over????
- if( client->GetSessionUp() > 10485760 ) {
+ }
+ else
+ {
+ if( client->GetUpStartTimeDelay() > MIN2MS(10) ) { // Try to keep the clients from downloading for ever.
return true;
}
- } else {
- for (POSITION pos = waitinglist.GetHeadPosition();pos != 0; ) {
- if (client->GetScore(true,true) < waitinglist.GetNext(pos)->GetScore(true,false)) {
+ }
+ // Fine mod Adu
+
+ if (thePrefs::TransferFullChunks()) {
+ // Allow the client to download a specified amount per session
+ if ( client->IsAduClient() )
+ {
+ /* Kaiser -- 08/04/2004 - 15.43
+ Se è un ext lo "stacca" dopo SESSIONMAXTRANS (9,3mb) altrimenti cerca
+ di staccarlo dopo ADU_SESSIONMAXTRANS (18,6mb) ovvero il doppio.
+ In questo modo possiamo favorire lo scambio tra aduner senza dover
+ modificare i tempi di reask e rischiando quindi meno ban! */
+ if( client->GetQueueSessionPayloadUp() > ADU_SESSIONMAXTRANS){
+ // Inoltre se la prossima slot deve essere AdunanzA e non ho altri Adu in coda
+ // non lo butto giu' per poi riprenderlo in coda di upload.
+ // Quindi se la prossima slot e' non adunanza lo butto giu'.
+ // Condizioni sufficiente per buttare giu' un client sono:
+ // - Avere altri Adu in coda di attesa
+ // - Che il prossimo client non sia Adu
+ if ((theApp.uploadqueue->GetAdunanzAUserCount() > 0) || (ADUNANZA_FASTWEB != AduGetTypeBand()))
+ {
+ if (thePrefs::GetVerbose())
+ AddDebugLogLineM(false, logClient, wxString::Format(_("%s: Upload session ended due to max transfered amount. %s"), client->GetUserName().c_str(), CastItoXBytes(ADU_SESSIONMAXTRANS).c_str() ) );
+ return true;
+ }
+ }
+ }
+ else
+ {
+ if( client->GetQueueSessionPayloadUp() > SESSIONMAXTRANS || AduMaxTrans() ){
+ if (thePrefs::GetVerbose())
+ AddDebugLogLineM(false, logClient, wxString::Format(_("%s: Upload session ended due to max transfered amount. %s"), client->GetUserName().c_str(), CastItoXBytes(SESSIONMAXTRANS).c_str() ));
return true;
}
}
+ } else {
+ // Stefano Picerno: emule adunanza usa sempre TransferFullChunks = true !!!!!
+ AddDebugLogLineM(false, logGeneral, _("ERROR: aMule adunanza assumes that TransferFullChunks is TRUE, but now it's false !!!." ) );
+ // Fine modifica
}
return false;
}
+// Stefano Picerno: Metodo mancante
+void CUploadQueue::UpdateMaxClientScore()
+{
+ m_imaxscore=0;
+ // Inizio mod Adu
+ m_AduImaxscore = 0;
+ m_ExtImaxscore = 0;
+ for(POSITION pos = waitinglist.GetHeadPosition(); pos != 0; ) {
+ CUpDownClient* client = waitinglist.GetNext(pos);
+ uint32 score = client->GetScore(true, false);
+ if(score > m_imaxscore )
+ m_imaxscore=score;
+
+ if (client->IsAduClient())
+ if (score > m_AduImaxscore)
+ m_AduImaxscore = score;
+ else
+ if (score > m_ExtImaxscore)
+ m_ExtImaxscore = score;
+ }
+ // fine mod Adu
+}
+// Fine
+
uint16 CUploadQueue::GetWaitingPosition(CUpDownClient* client)
{
if ( !IsOnUploadQueue(client) ) {
@@ -529,6 +776,12 @@ bool CUploadQueue::RemoveFromWaitingQueu
void CUploadQueue::RemoveFromWaitingQueue(POSITION pos)
{
CUpDownClient* todelete = waitinglist.GetAt(pos);
+ // mod Adu
+ // Emanem
+ // se il client era adu decremento il contatore
+ if (todelete->IsAduClient())
+ m_AduClientsNum--;
+ // fine mod Adu
waitinglist.RemoveAt(pos);
theStats::RemoveWaitingClient();
if( todelete->IsBanned() ) {
diff -urdpN ../aMule-2.1.3-orig/src/UploadQueue.h ./src/UploadQueue.h
--- ../aMule-2.1.3-orig/src/UploadQueue.h 2006-01-01 06:17:25.000000000 +0100
+++ ./src/UploadQueue.h 2006-06-12 18:30:14.000000000 +0200
@@ -50,7 +50,14 @@ public:
POSITION GetFirstFromUploadList() {return uploadinglist.GetHeadPosition();}
CUpDownClient* GetNextFromUploadList(POSITION &curpos) {return uploadinglist.GetNext(curpos);}
CUpDownClient* GetQueueClientAt(POSITION &curpos) {return uploadinglist.GetAt(curpos);}
-
+ // mod Adu
+ // Emanem
+ int GetAdunanzAUserCount() {return m_AduClientsNum;}
+ // mod Adu
+ // lupz
+ uint16 GetAduUploadCount() const { return aduuploadinglist.GetCount(); }
+ uint16 GetUploadCount() const { return uploadinglist.GetCount(); }
+ // fine mod Adu
POSITION GetFirstFromWaitingList() {return waitinglist.GetHeadPosition();}
CUpDownClient* GetNextFromWaitingList(POSITION &curpos) {return waitinglist.GetNext(curpos);}
CUpDownClient* GetWaitClientAt(POSITION &curpos) {return waitinglist.GetAt(curpos);}
@@ -61,17 +68,45 @@ public:
uint16 GetWaitingPosition(CUpDownClient* client);
void SuspendUpload( const CMD4Hash& );
void ResumeUpload( const CMD4Hash& );
-
+
+ // Stefano Picerno: metodi presi da emule
+ void UpdateMaxClientScore();
+ uint32 GetMaxClientScore() { return m_imaxscore; }
+ // fine
+ uint32 lastmax;
protected:
void RemoveFromWaitingQueue(POSITION pos);
POSITION GetWaitingClient(CUpDownClient* client);
POSITION GetDownloadingClient(CUpDownClient* client);
- bool AcceptNewClient();
+ bool AcceptNewClient(bool isAduClient = false);
+ // Attenzione: verisone modificata per AdunanzA
+ // il parametro "typeClient" e' settato di base al valore ADUNANZA_ANY
+#if 0
void AddUpNextClient(CUpDownClient* directadd = 0);
+#endif
+ void AddUpNextClient(CUpDownClient* directadd = 0, uint32 typeClient = 0);
+
+ // Inizio mod Adu
+ uint32 GetAduMaxClientScore() {return m_AduImaxscore;}
+ uint32 GetExtMaxClientScore() {return m_ExtImaxscore;}
+ // fine mod Adu
+private:
+ // Stefano Picerno: preso da emule
+ uint32 m_imaxscore;
+ // Fine
+ // Mod Adu
+ uint32 m_AduImaxscore;
+ uint32 m_ExtImaxscore;
+ uint32 m_AduClientsNum;
+ // fine mod Adu
private:
CTypedPtrList<CPtrList, CUpDownClient*> waitinglist;
CTypedPtrList<CPtrList, CUpDownClient*> uploadinglist;
+ // Mod Adu
+ // lupz
+ CTypedPtrList<CPtrList, CUpDownClient*> aduuploadinglist;
+ // Fine Mod Adu
typedef std::list<CMD4Hash> suspendlist;
suspendlist suspended_uploads_list; //list for suspended uploads
uint32 m_nLastStartUpload;