V1.5
beta2 (build 405)
- All this changes below were made by
Md5Chap...
- Fixed the license dialog which was stalling for a few
seconds when opened..
- Minor cosmetic gui
changes
V1.5
beta1 (build 394)
- All this changes below were made by
Md5Chap...
- Added nick coloring in the
chat.
- Added a more generic and configurable logging
facility.
Added a class that knows levels of logging. you decide what to
log.
- I have completely converted the code to C++, including
the RSA sources.
I have also made it compatible for some other source
editors.
- I have introduced RSA blinding to prevent RSA timing
attacks.
- I have put my own blowfish implementation c++ class to
waste.
It's easier to use because it's a template
class.
- I have introduced "stealth mode". This mode should make
it harder to passively detect a waste client. It makes it invisible to
p2pwatchdog.com. It also significantly increases security and DOS-attack
resistance.
Handshake packets have random length in this mode.
The
connection sequence code was partially recoded to have a better handling of
the current state of the handshake.
you could call it pre shared key mode
although this one is even more.
- If not in "stealth mode" a warning is printed to the
logfile if someone tries to connect to you with valid private key but wrong
network password.
In "stealth mode" this is not possible, because using
wrong passwords leads to random data. You will see unknown pubkey messages in
the log with changing pubkey hashes for every connect you might assume someone
with bad password or simply someone connecting to you not using
waste.
- Protocol is sligtly modified when using network hashes
to prevent offline cracking of network
password.
- I have fixed several exploitable
holes.
- I have introduced limiting of incoming
connections.
You can choose between limiting all incoming connections
regardless of the clients or
you can choose to limit the connections each
client can open(each client is identified by its public key). Shortly said if
two waste clients share one private key, you must set the incoming connection
limit per host to two in order to have both clients connected.
You can also
have both limits active.
- At logging level of 5 the public key hash of a client
is also logged when there are connection problems. You will see the hashes of
clients that try to connect to you and
were not allowed to.
- I have spent lots of time cleaning out bad coded crap
from waste.
I have made it more unified.. You can compile for linux as
server, which code is nearly the same now as for windows except some small
part in the startup code.
Unfortunately some parts of the waste protocol
depends on the gui.(really stupid problem). The linux server has a command
line do make it daemon. (run in background without a logged on
user).
- You can also compile a Windows waste command line
server which is functionally equal to the linux version. Mainly for
testing!
But you could also make it windows service with the SrvAny tool
from the Windows resource kit.
Small modification would make it native
windows service capable....
- I have made a special chat room $$broadcast to send
messages to all users.
- You can now send chat to either clientid or public key
hash or username. This is a commandline only fearure from the chat window.
Don't bog me making this gui.
You can also use /whois [pubkeyhash] for
example.
- Now waste honors hidden file attributes and on linux
".filename".(dotted filenames)
- Uploads and Downloads to clients are optionally
"unique". An option download only once forces a file being unique in a
directory. Up and download feature! This should prevent you to upload a file
to a user several thousand times ;)
- You may have problems using the download list from the
alpha2+ clients. It may happen that they are not fully imported. Simply
re-download them and they will be
resumed!
- Usernames are persisted on downloads as they were when
the download started.
- Usernames with beginning dot is now handles correctly
as "invisible client". This is no new function. It is bug fixed. It is nearly
the same as if you have no nick, but you may chat with this dotted name. Such
users are not seen on the userlist. On the browse such user is shown as the
clientid.
- Linux server now knows signals HUP and USR1 and
INT.
HUP does dynamic reload of keys and config. USR1 flushes logs. INT
shuts down.
I have put my batch scripts to the
distribution.
- I have introduced dynamic Ip support (called auto-mode)
and fixed the other option dyn dns support to resolve addresses on reconnect
when completely disconnected.
Now Waste is able to keep a dynamic network
up if you have auto reconnect activated on your dialup
connection.
- The dyn dns is resolved every time a waste client
switches from "network down" to active
state(connecting)
- I have made chat rooms pop up on incoming messages when
you have sent it to tray. This is a configurable
option.
- I have added sounds to incoming chats. This is a
configurable option.
- I have added chat logging. You can select what kind of
chats you want to log.
You can select private, room or broadcast.
Every
context(chat room) is saved to a single file with
timestamp.
- Changing pass phrase of private key now works. Did
someone notice that it hasn't worked????
- I have made access lists work. That code behind was
completely buggy. I have made several functions that handles IP
better.
- Waste now also enumerates the local subnets from
adapters to determine if an address on local subets may be reachable. This
should avoid connecting to unreachable clients and sending private IPs to the
internet.
- well tons of that old code was modified by me. I have
introduced templates, rewritten the Blowfish engine(it's now a c++ template
class with automatic termination of keys when the object is being
unreferenced). I have also made it a bit
faster...
- I have fixed the Random number generation which was
very very buggy and could have been determined on older waste versions easier
than intended.
- Although the inner protocol is compatible to older
clients, I have made them incompatible by forcing another sync sequence.
Because older clients have security issues this step is really
needed.
- I have fixed the connection list, so that clients die
after more that 100 tries and when connected clients die 8 times faster. That
was intended but did not work.
- I have made all configuration parameters declared in
one c++ header file. All network parameters in another
file.
- I have changed some configuration defaults. (maintain
connections is default 0 in my version, coz I don't like auto-connecting
clients, although the value is still persisted as before). Another one was the
stupid upload 160 files at once crap(now 16). I have also fixed the bug in
that limiter.
- I have cleaned up the whole source code and made it
better readable.
- I have closed several buffer overflow
conditions.
- The hashing of files is now only done when a client
initially starts a download. This should prevent lockups of waste when users
resume downloads.
The hashing should be either asynchronous or
pre-calculated, but it's difficult to implement. When you experience stalled
waste for several seconds, this is due to hashing uploads. Deactivate hashing
on send preferences to avoid waste consuming much
resources.
- The handling of IP's has been improved. The private
172.16.0.0/12 network has also been added to be
known.
- A small bug that may happen on slow connections
sporadically refusing to connect has been
solved.
- Several parts in the handshake sequence were non-random
looking. Now everything is optionally padded with random
crap.
- Tons of bugs in the chat have been fixed. Lines can now
be up to one 1024 chars.
- The time before a nick starves has been doubled to
prevent messages of stalled or slow
clients.
- The database has scanned the drive on startup whatever
you have configured in the preferences. That has been fixed. Only cached data
is read on startup.
- Several memory leaks have been fixed through all parts
of waste.
- Many parts in the source code have been revised and
duplicate code parts merged and
optimized.
- When you have your download path and parts of your
shared uploads in one directory, the other waste clients won't see that file
unless it's complete. Shortly said a file that has a ".wastestate" file
belonging to it is not seen to other clients. This should prevent others
reading incomplete files. This is necessary because waste is currently unable
to handle partial downloads like emule or gnutella does. For that reason you
should use a tool like winrar to split files, like those people in the ftp
scene do.
- Closed a bug in the memory management of chat functions
that could have crashed waste.
- Optimized the code to make it easier to
debug.
- Now clients try to maintain direct connections on
transfers if configured. You can choose if your client permits this and if
your client actively tries to open a direct connection. It is now done
regardless if you are uploader or downloader. This should fix many problems in
the waste network because of routing
traffic.
- Your local Ip is only sent to other clients if it was
correctly resolved. This should prevent bad ip's on the network lists. Please
remember that it is still your responsibility to make the waste port
connectable. If you use a router you must set a rule that the TCP-port is
forwarded to you. Otherwise other clients cannot connect. Same as for every
other application...
- The title bar of network connection should now be
updated correctly to show the active
connections.
- The preferences have got a big rework. It's slightly
bigger in size and where appropriate I have split the options to more tabs to
make it easier to read. Too much information on one tab might confuse
users.
- I have fixed so many bugs in file transfers and in
other parts, that I simply forgot most of
them....