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 +Packager: lupz +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 +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 , 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 +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 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 + +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 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\fP and +.\" \fI\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 . +.PP +This manual page was written by Stefano Picerno , +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 @@ + 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. + + --> + + + FIRSTNAME"> + SURNAME"> + + October 10, 2004"> + + SECTION"> + stefanopp@libero.it"> + + AMULE-ADUNANZA"> + + + Debian"> + GNU"> + GPL"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2003 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + program to do something + + + + &dhpackage; + + + + + + + + DESCRIPTION + + This manual page documents briefly the + &dhpackage; and bar + commands. + + 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; + Info format; see below. + + &dhpackage; is a program that... + + + + 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. + + + + + + + + Show summary of options. + + + + + + + + Show version of program. + + + + + + SEE ALSO + + bar (1), baz (1). + + The programs are documented fully by The Rise and + Fall of a Fooish Bar available via the + Info system. + + + AUTHOR + + 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. + + + On Debian systems, the complete text of the GNU General Public + License can be found in /usr/share/common-licenses/GPL. + + + +
+ + + + 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 @@ + +.
will be generated. You may view the +manual page with: nroff -man .
| 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. + +--> + + + FIRSTNAME"> + SURNAME"> + + October 10, 2004"> + + SECTION"> + stefanopp@libero.it"> + + AMULE-ADUNANZA"> + + + Debian"> + GNU"> + GPL"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2003 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + program to do something + + + + &dhpackage; + + + + + + + + DESCRIPTION + + This manual page documents briefly the + &dhpackage; and bar + commands. + + 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; + Info format; see below. + + &dhpackage; is a program that... + + + + 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. + + + + + + + + Show summary of options. + + + + + + + + Show version of program. + + + + + + SEE ALSO + + bar (1), baz (1). + + The programs are documented fully by The Rise and + Fall of a Fooish Bar available via the + Info system. + + + AUTHOR + + 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. + + + On Debian systems, the complete text of the GNU General Public + License can be found in /usr/share/common-licenses/GPL. + + + +
+ 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 +This manpage was written by Julien Delange for Debian 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 +This manpage was written by Julien Delange for Debian 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 +This manpage was written by Julien Delange for Debian 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 , ainsi que de nombreux contributeurs. +Cette page de manuel a été écrite par Julien Delange . 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 , ainsi que de nombreux contributeurs. +Cette page de manuel a été écrite par Julien Delange . 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 , ainsi que de nombreux contributeurs. +Cette page de manuel a été écrite par Julien Delange . 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 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 . 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 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 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 , 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() + { + 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 +#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 + +#include "AdunanzA.h" +#include "RemoteSettings.h" + +// Inclusi per il parsing sul file per Updater +#include +#include +#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 +#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 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 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 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 #include +#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(update.kadnodes[2]); + unsigned activeNodeCount = static_cast(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 #include "../kademlia/Tag.h" #include "../io/FileIO.h" #include "../io/IOException.h" #include "amule.h" #include "Preferences.h" #include "Logger.h" +#include //for pow in debug +#include "../../NetworkFunctions.h" //needed still for debug +#include "RemoteSettings.h" #include @@ -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 +#include +#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 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 #include "../../Preferences.h" +#include "../../RemoteSettings.h" + +// Stefano Picerno: ADunanzaA Mod +#include "../../AdunanzA.h" +// FIne mod #include #include @@ -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; iadd(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 +#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 - 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 // 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 // +#define TAG_KADFIRSTPUBLISH "\x36" // + +#define FT_KADSOURCES 0x37 // +#define TAG_KADSOURCES "\x37" // + +#define FT_KADLASTPUBLISH 0x38 // +#define TAG_KADLASTPUBLISH "\x38" // +#define FT_KADREPUBLISHTIMEK 0x39 // +#define TAG_KADREPUBLISHTIMEK "\x39" // + +#define FT_ADUCONNECTION 0x40 // 0 o assente sconosciuto, 1 dsl, 2 fibra +#define TAG_ADUCONNECTION "\x40" // + +#define FT_KADCOMPLETE 0x41 // +#define TAG_KADCOMPLETE "\x41" // + +#define FT_KADCOMPLETE_SOURCES 0x42 // +#define TAG_KADCOMPLETE_SOURCES "\x42" // + +#define FT_KADCOMPLETE_FIRSTPUBLISH 0x43 // +#define TAG_KADCOMPLETE_FIRSTPUBLISH "\x43" // +#define FT_KADCOMPLETE_LASTPUBLISH 0x44 // +#define TAG_KADCOMPLETE_LASTPUBLISH "\x44" // + // statistic #define FT_ATTRANSFERED 0x50 // #define FT_ATREQUESTED 0x51 // @@ -676,10 +703,21 @@ enum MuleTags { #define KADEMLIA_FINDBUDDY_RES 0x5A // // 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 // Needed for CFormat #include "FileFunctions.h" // Needed for GetLastModificationTime +#include "RemoteSettings.h" #include #include @@ -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::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 // 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 . ") ); + SetFilterLanIPs( false ); + + AddLogLineM(false, _("AdnzA mod requires Transfer Full Chunks set to . ") ); + 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 #include +#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 +#include +#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 // to let wxWidgets choose a wxConfig class for your platform +#include // base config class +#include // 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 #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 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 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 +#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 #include "NetworkFunctions.h" +#include "AdunanzA.h" #include #include @@ -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 #include +#include #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(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(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 +#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 #include "UploadBandwidthThrottler.h" +// Mod adu + + #include //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 waitinglist; CTypedPtrList uploadinglist; + // Mod Adu + // lupz + CTypedPtrList aduuploadinglist; + // Fine Mod Adu typedef std::list suspendlist; suspendlist suspended_uploads_list; //list for suspended uploads uint32 m_nLastStartUpload;