AMIGIFT v2.0 PRE-Release (new builds!)
Date 31-Jul-2006 7:09:18
Topic: Software News
A new full set of updated archives have been uploaded here:
This includes giFTMui #115 and amigift.library v2.114
( If you wonder what AMIGIFT is... It is a p2p application *under development*.
Look for more info at http://sourceforge.net/projects/amigift/ )
The list of changes since the last build(s) are as follows:
* Fixed a bug on the Online Updater which failed to update some files
due a CRC Checksum error reported by not analyzing the correct
chunk of data...
* To reload the daemon from giFTMui a timeout-Timer for daemon
shutdown checkout is created, if such timer cannot be created for
any reason a 'failed assertion' causes the interface to exit
completely; this has been changed to avoid the assert()'ion
check and instead trying to bind the daemon port should let us know
as well when daemon isn't running to be reloaded. Also, such
timeout-Timer calls a dispatcher on intervals of 300000 micro
seconds, that value has been changed to 700K as well.
* On a failed assertion situation, the chat tries to re-connect
itself to the server, due to a common method from the chat custom
class being invoked, this will no longer happen if such method is
invoked disposing the class.
* Recent Ares versions don't report real stats, it's not a bug, at
least not on our part. alas, giftd doesn't allow plugins *not* to
provide stats, so we just return what the supernode tells us if
it's an old supernode then it'll work, if it's not, it won't ...
* Stats window will no longer be activated while it is opened/updated
* Added new options to the giFTMui's MUI Settings, you can now
load the settings from disk, save them to disk, restore current
settings to the last saved, and restore and/or reset the settings
to the defaults.
* Fixed a parser error which has made the Gnutella HTTP requests to
be incomplete/truncated causing the supernodes to ignore us and
hence there was the problem with this plugin not being able to
connect on the latest build.
Unfortunatelly there is somewhere some other issue which makes
the plugin to take a long time to reconnect on shutdown connections...
we should assume the problem comes from the "complicated" input
and event notifications mechanism; which seems to be (or probably) not
properly ported on the new shared libraries fashion, any help ?...
* optimized/improved a bit gift.library's logging facility, while
using GLOB_STDERR and GLOB_STDOUT we'll check if pr_COS and
pr_CES (which fail back to pr_COS when isn't available) these aren't
the same and hence avoid logging to both filehandlers.
Also giftd.log filesize was checked on each write, making an
unnecessary/possible overload... now only every 1000 writes will
be checked, which should be ok as the filesize limit is 10MB ...
* How FastTrack loads it's banlist file and Gnutella loads it's
hostiles.txt file has been improved. Previously it was just
Open()'ing the file and reading line-by-line, to read each line
gift.library/file_read_line() was used, which function does
"free-old-buffer > read-line-from-file > dup-line-to-memory",
NOW we just "slurp" the whole file into memory and process it
later internally in one step.
PROS: should be working faster
CONS: it needs the filesize's memory at once (about ~500KB)
* The maximun number of connections which OpenFT guesses at startup
has been down to 30 (it was 255) ... you can always override
that value by using the appropiate option (max_active)
* How to request network statistics and how to launch the inspector
has been changed... there may be now a bit more overload from
the GUI but it will no longer require two standalone-signals on
connection for the timers we used...
* Searches by realm should be now working fine for all networks.
* VerifyIncoming tool must be performed while the daemon isnt
running, and giFTMui had not checked for that, Fixed.
* Optimized how data is received from the daemon... For information,
previously we were receiving line-by-line and then processed each
line/packet, that data was received reading byte-by-byte until a
CRLF is found, furthermore we checked if that was a multi-line
string (coming from a "malformed" META data though), which slowed
even more the process... NOW we just receive all data available
at once, and the data received are procesed internally without
congesting the socket...
* There may be some situations where a Inspector could not work
properly or fail without notice, those are RARE cases though!
What we have noticed is a little problem on the inspector process
while a method is pushed to select the next entry on the downloads
list, if in the process the user de-select the active entry or
select an entry from the uploads list (this action automatically
disables any active entry on the downloads list) once the pushed
method take action on the next app loop the inspector will fail
to continue as it was unable to get the information needed (from
the active entry on the list) to launch a locator, at this step
the inspector stopped working internally, but to the user eyes it
is running (but doing nothing), and thats the only thing we have
found buggy on the inspector procedure (at least for now), now if
that happens the inspector will be properly fully aborted and in
addition the user will be warned of the issue.
* Ghosting of the Stop button when it is clicked didn't work
properly so to be re-enabled while using multi-lists, Fixed.
* Searches directed to the Ares network (by using giFTMui's protocol
checkmark) and Locators launched for this same network, wasn't
working properly due a very stupid bug... the protocol name to be
used on a search request and the check for online plugin state
is fetched/detected given the network's HASH type, Ares uses
"SHA1" and Gnutella "SHA", and on both functions we checked for
the three first bytes of the Gnutella hash before than the Ares
hash, making request directed to the Ares network interpreted
like if what we wanted is about the Gnutella network, FIXED!
* Sometimes a Locator cannot establish the connection to the daemon
due the connect event not being notifyed... fixed... (hopefully! And
hopefully without side effects..)
* Fixed some string mismatch issues at giFTMui.cd, where updated
strings at the build-in laungage wasn't at his time adapted as
well on the catalog descriptor. Most important are string
numbers #447, #417, #407, #380, #323, #321 where a formatting
was changed (%s to %ld or viceversa), also strings #595, #593,
#585, #593, #553, #166, #145, #142, #54 and #5 was minimal
corrected for typos.
* Some users reported a issue about the OpenFT nodes file ends
with 0 bytes of size and making on the next run unable to connect
to the network, with the need of the user manually replacing the
file. Well, first we need to mention that this happens due to the fact OpenFT
do not stores nodes where we were unable to connect, but theres some
factors to consider which that plugin leave out... (ie, dynamic IPs,
not a 24/7 node, etc.) Also I should mention that I'm in doubt if
theres a bug somewhere since that behaviour did not happen from the
first porting of the plugin, or it wasn't reported on the very
firsts builds IIRC, so there will be two workarounds for now to address
that issue, 1) the nodes file size will be checked and deleted if
it's size is 0, forcing the plugin to copy the nodes from the data
dir (amigift:daemon/data/openft/). 2) the plugin will check for the
enviroment variable DONT_PURGE_OPENFT_NODES before updating the
nodes to disk; if such a variable is found it will NOT try to leave
out nodes where it was unable to connect.
NOTE this way of "fixing" that issue is TOO lame and hence
subject to change...
* Added a new giftd command-line option: TASKPRI/N
Obviously it's behaviour is to change the daemon task priority,
giFTMui has a new slider object to change it as well.
* giFTMui has been translated to the Italian language. Thanks a lot
to Samir Hawamdeh for his work.
* German and Swedish catalogs contains some issues and have been
renamed on the packages until they are fixed...
* bzlib.library can be now loaded from amigift:libs/ as well
* Starting a new search - we will check now if any/some of the networks
are online, warning the user if there is no online network and therefore not
proceding with the search at that time.
* Default Ares port for giFTMui settings was missing, Fixed.
* Requesters Timeout handling and downcheck was enabled by default,
where the appropiate is to have both disabled at a first run.
* some very little internal fixes...
NOTE that to use the giFTMui's Online Updater you should install the latest
amigift.library or you'll get crc checksum errors on the binary files... also
note that this way of updating installs 68020 version of the files atm.
PS: dont forget to click once on the Google Advert, thanks