Das anonyme P2P Programm - The Owner Free File System auch für Linux erhältlich

Hier kann jeder Nachrichten posten - von einem Satz mit URL bis hin zu ausgefeilten Artikeln.
Message
Author
Reality81

#31 Post by Reality81 »

Changes:
0.18.15


Fixed bug where the same URL could appear as several results in
the same srch (was checking the wrong map for existing results).

Tidied the recent STL code and removed the previous containing lists,
which until now were #ifdef'd out.

CRITICAL: fixed several crashers in the non-pool comms with firewalled
nodes. This code is not currently executed often at present as most
nodes are using the multiplexing pool cnxns, but will become more
important as node numbers increase. Upgrades are strongly recommended
as this somewhat prehistoric module will be tested further over the
next few versions. (The current testing probably crashed a bunch
of you - sorry about that.)



Changes:
0.18.16


CRITICAL: fixed an invalid read crasher when uptating the block requests for a download



Changes:
0.18.17


Fixed crasher in repair of inserts from other local URLs.

Improved error checking in loading of downloads.

(Rolled forward CRITICAL fix from 18.16 to win 32 builds, there
was no 18.16 release for MSW)



Changes:
0.18.18


Fixed bug where the changes from renaming or replacing URLs would not be
propagated to the global srch results list.

Advanced download progress bars are now available from the view menu.
Descriptor blocks are not yet handled by the progress bar in advanced
view, but will be at some stage.

Node ranks in blk request records are no longer held as they can be
gleaned from the map key.

Same with node ranks and node IDs in srch records.

FBR request records are now held in a PtrMap with the rank of the
requesting node as the key.

The Downloads context menu now contains an option to cancel the dl and
delete the corresponding URL from local URLs.

Implemented some generic fns for posting gui events which shorten and
tidy the GUIFrame code a (little) bit.

A delay can now be set between tuples when retrieving a file from the
Local URLs config box, this can take a value between 0 and 1000 milliseconds
and is recommmended you find that retrieves hammer the hard disk too much.

Fixed bug where the disabled Dynamic Descriptors slider would revive when
the Preferences dialog was closed.

OFFSpinCtrl now contains the min and max values and some generic methods
for increment/decrement and scan the text. This allows some repeated code
to be removed from a few places in the GUI.

OFFSpinCtrl now holds its sizer internally instead of requiring a pointless
external declaration.

Fixed bug where all srch results from a concatenated insert were incorrectly
flagged as local if one or more of the URLs from that insert were
already local.

Fixed bug where the the advertised srch id would not be changed if
several srches were performed one at a time, clearing the srches in between.
This meant that other nodes would not recognise these as distinct srches.

Fixed false size mis-match message when a file from a cancatenated insert
is retrieved.

Did some tidying of the options panel and tree event tables.

Implemented a derived textctrl in the OFFSpinCtrl class to intercept
focus loss events.

SpinCtrls in the preferences dialog should now check the value for validity
only when enter is pressed or the ctrl loses focus. The text changed event
is intercepted only to prevent non-numerical characters being entered (the
panel spins still allow this for now).

Fixed bug where the max number of simultaneous pings could be set to zero.

Implemented derived textctrl, checkbox and choice classes to allow
certain events to be captured before the main options controls event
handlers.

Controls in the preferences dialogs, and editable fields in the options tabs
that have not yet been set, are now highlighted in different colours. (The
highlight colours can be set from the colours dialog.)

Checking of non-numerical characters in text fields has been moved down
into the OFFTextCtrl class, before it was at the top of the event
hierarchy.

OFFTextCtrl (and hence OFFSpinCtrl) is now aware of whether it should allow
float values or negative values and will intercept '.' or '-' accordingly.

Tidied the event identifier names for the config controls.

Cleaned up the horrendous event hierarchy in the preferences dialog where
events were passed up to the top level frames and then back down again
through wrapper functions (due some rather incestuous parenting of the
dialog components). Config ctrl events are now handled entirely withen
the new OptTreePanel class, which inherits OFFControls.

Removed the filter "Set" buttons from the preferences dialog since
they don't actually do anything.

Added Reset buttons to incoming and outgoing filter options which set
the editable filter text back to the current filter string.

Tidied the event tables of the OFFControls derived classes.

Implemented a class to manage internal prioritisation of traffic.
Any message can be assigned a priority of Low, Normal or High,
if N bytes are available to be (say) written in a given iteration,
then a canonical bytes-per-message parameter, a, is calculated
according to the formula:
a=N/(nL*fL+nN*fN+nH*fH)
where,
n(L,N,H) are the numbers of messages of each priority currently
being written,
f(L,N,H) are fractions which are defined in terms of a "percentage
priority contrast", cp, as follows:
fL=(100-cp)/100,
fN=1
fH=(100+cp)/100.
The number of bytes assigned to any message in that iteration is then
simply determined by its priority as:
a(L,N,H)=a*f(L,N,H)
The priority contrast is allowed values between 20 and 80 inclusive. A
brief (probably too brief) analysis shows this approach to have qualitatively
correct properties, but as always it was made up on the fly and is
subject to change.

Added a new page to the config tabs for network options, the Network box
has been moved from Advanced Options to this new page and there are two
new boxes for upload and download traffic options. The LocalURLs and
Dynamic Descriptors (disabled) boxes have been moved from Options to
Advanced Options.

The value of the priority contrast can be set independently for upload and
download traffic in the Network tab. (NOTE: The slider for download traffic
is disabled for now, it will eventually affect the priority of downloads
but the protocol and block srch modules require more work before adding this
complication.) The priority of trim and disperse pushes can be set in
the Upload Traffic box - increasing the priority of these msgs is
recommended if trimming does not seem to reduce the cache size (trim pushes)
or dispersing of files is slow (disperse pushes).

Fixed crasher on exit after targetted store (or on a second targetted store).

Gave the GUIFrame class and a few external windows something of a
spring cleaning.

Fixed bug where the FBR list was not checked for blocks which arrive
via pushes, this could cause the relayed blocks list to get clogged
with blocks that are actually local, hence causing new relayed requests to
bounce until the core gets around to requesting the relayed blocks and
discovering which ones are local. In the test network this seemed to
help with the "last few blocks" problem, let's hope it also does so
in the wild.

Fixed bug where download progress would be displayed inaccurately due
to blocks which were found local as a result of incoming pushes or
reqs from another download were not counted.

Made a small change that stopped NOD32 from flagging the offsystem.exe
program as a virus - I could describe this in greater detail but
I will not as children and those who have led sheltered lives may
be psychologically damaged by the necessary adjectives.

All node updates to the pool cnxns now operate directly on the
pool_cnxns list, the update list has been removed.

Disabled the mutex lock on the pool cnxn map as all access is now through
the ACH thread.

Same with the non-pool skt list in OFFCnxnPool

Same with active block requests in NodeCache.

Wrote a small class to encapsulate an std::set<int>, this is mow used
instead of a linked list for: i) the record of current active block requests,
ii) the record of current active block pushes, iii) the record of current
active srch requests. These changes were made to speed lookup time in these
lists.

Version numbers are now stored in Node in a small char array which
cuts down on string parsing whenever we need to check the version.



Changes:
0.18.19


Added a new tab for network behaviour. The following controls have been
moved to this tab: i) "Max Simultaneous Pings", from Nodelist Management,
ii) "Max Relayed Searches", from Network, iii) Max Relayed Block Requests",
from Network.

Two new controls have been added to the Behaviour tab: i) "Max simultaneous
pushes", this value was previously fixed at 10 and can now be varied
between 10 and 100. ii) "Total Relayed Blocks", this is the maximum number
of requests from other nodes that OFF will "remember", it was previously
fixed at 1000 and now can be 1000 and 10000. It is also (and has been
forever) should in the status bar.

Blocks in the push list are now ordered, disperse pushes come first,
then trim pushes and then all other types. This means that pushes
have that general priority, in terms of when they are handled, and should
solve the problem of trims "stalling" because the trim pushes must
wait for a lot of onward or bucket overflow pushes to be handled.
(NOTE: this is unlikely to completely solve the problem of caches growing
while trims are in progress, but is a step in the right direction.)

OFF will now check for updates from the sourceforge server. First it
tries to GET the following file:

http://offsystem.sourceforge.net/latest_versions.txt

which is in the following format:

linux 0.20.20
mac 0.20.20
win32 0.20.20
-

OFF will srch the text before the '-' for a matching OS tag and then
parse out the version numbers and compare them with the instant version.
If the version from the file is later then a dialog opens which offers
to open this URL:

https://sourceforge.net/project/showfil ... p_id=96735

The update checks can be disabled from the Behaviour tab or the
startup wizard. The frequency of the checks can also be set from
the Behaviour tab and can vary between 1 and 72 hours (defaulting to 6).

Download Version 0.18.19
https://sourceforge.net/project/showfil ... p_id=96735

Reality81

#32 Post by Reality81 »

Changes:
0.19.00


Some tidying of the Node class.

Added a checkbox to the Blockcache tab to set the cache limit as "hard".
This will suspend downloads if the cache is oversize until the excess
blocks can be trimmed out. We may later make the option refuse pushes
as well, but lets see how it goes before we do that. WARNING: if the
cache has too many preserved blocks then OFF will be unable to trim
and if the hard limit is set downloads will just stop until the user
intervenes to unpreserve some inserts, increase the cache size or
disable the hard limit. This option should be used with caution.

Mitigated a bug that causes inaccurate sorting of filesizes greater than
2GB, this is a symptom of the fact that wxListCtrl on-board sorting
only allows sorting by a long value. Hence such large sizes will still not
be ordered correctly but at least now appear at the large files end of the
sort. At somepoint, this will be changed to some kind of alphabetical sort
that will sort all filesizes correctly.

Declared stable, minor version number change.

Switched to new makefile for building on linux. It will now link against system installed wxWidgets libaries. The path will be autodetected so most users just need to run "make"
If you want to statically link against a local wxWidgets build like before run "make LOCALWXPATH=/path/to/wx/build/"

Changes:
0.19.01


Added a help menu to the menubar. This currently contains links to the
wiki, the source forge page and the web chat client, also the About
dialog (moved from the File menu).

Fixed debug assert of nodes context menu in novice mode.

Fixed bug where the popup menu was inadvertently created in the
target window list, this caused a wxW assert on shutdown if the gui mode
was changed.

Fixed a bug where pool reads could falsely time out because another
messages was being read from the same pool cnxn very slowly. The fix
involves waiting for several (currently a max of 10, since this is the
number of pool channels) different messages to be read from the cnxn
before starting the timeout timer. The message change check is a little
hackish as it consists of watching the number of bytes read from the
currently reading message, a proper solution will no doubt present itself
at some point.

Added the beginnings of a translation module. This consists of a
std::map<string,string> with the english text as the key and the
translated text as the data. If the module encounters some text for
which it does not have a translation then it adds an entry to
the map with the data as <add translation here> (but that placeholder
will not be displayed in the program), when the translation map is
saved then the dedicated user could insert the correct translation
into the file. Languages are saved in $OFF/lang as text files with
the format |english text|#|translated text|\n for each entry.
Note that tabs and line breaks must be literal within the text,
\t and \n will not do. There is a new language sub menu under View
from which the language can be set or the default returned to, the
current language can also be saved and reloaded to aid those involved
in translation. The main menu bar will switch language at runtime,
other objects will require a little recoding but eventually all
translations will switch at runtime (for now a restart may be necessary).
NOTE: not all the strings in OFF have yet been placed inside the
translation wrappers. please be patient with us over the next few
versions, because there are a very large number of such strings and
this task is boooorrrrrinnnngggg....

Fixed crasher in OFFGUILog() and OFFGUILogD() for very long messages.

Instead of simply auto-pinging every offline node at 5 minute intervals
we now apply a variable interval to each node. If a node fails to
respond to a ping then that nodes ping interval doubles from the
initial value of 5 mins to a max of 6 hours. If a node comes online
and then goes offline again, then the interval is reset to 5 mins.
This should pick up nodes which are really there but have gone offline
due to network errors (read bugs) within a few minutes, while avoiding
the effort of continually kicking the corpses of long dead nodes.

Added an option to detect the system language to the Language submenu.

Added an option to create a new translation to the Language submenu.

Added file version information to the head of the translation table files.
This is only added when OFF loads and subsequently saves one of the files.

New src files added:
gui/translation.cxx,
gui/translation.h

Changes:
0.19.02


Fixed bug that stopped non-pool online nodes being checked to see if a pool
cnxn could be added.

Fixed the version check to be a proper (if minimal) HTTP 1.1 GET.

Finalised a lot of #ifdef'd code from previous versions.

Chat bans no longer use the node username, only the IP and node ID.

Added more gui strings to the translation table.

More node tasks are now scheduled and performed by the ACH thread:
sending chat messages, starting chat with a node, import and export
of nodelists.

OFF Dir URLs are now automatically mapped when added. This may only
be useful during testing or we may later want to do the same with all
URLs. We'll see.

Directories can now be stored by selecting "Directory Store" from the
File Menu. Each sub directory will be recursively stored as an OFF dir.
The top level OFF dir is the only one that will be added to Local URLs.
Directory Store will refuse to store if: i) the selected directory tree
is deeper than 10 levels, ii) there are fewer files than directory levels,
iii) the store will reduce the disk free space to below that set in
the BlockCache tab. Despite this (and it will get hopefully smarter later),
this is not something to use if you don't know what you are doing.

If the default store setting is to disperse, then Directory Store will
also disperse all inserts resulting from the store.

Added an "Extract OFFDir" option to the Local URLs context menu, this
is the same as selecting Add All from the offdir dialog, but saves the
hassle of opening that dialog.

Children of an offdir are node shown indented in the local URLs list.
The number of indent spaces per offdir level can be set from the
Local URLs context menu. Alphabetical sorting is now by the toplevel offdir
and thence within each subsequent offdir sublevel.

OFFDir indenting can now be toggled from the Local URLs context menu,
if this is disabled the filename sort ignores offdir paths. For those
who dislike the offdir indenting, selecting this should make everything
as it was before.

Added an option ("Gather Children") to collect any children of an OFFDir
that are not actually connected in the OFF dir directory structure to the
Local URLs context menu (this situation can arise if say, a child URL is
downloaded from a search or pasted into Local URLs). NOTE: this will not
yet rearrange the position of the children in the list, you must use the
filename sort manually to do that. OFFDirs in the Local URL list will
(somehow) be made easier to use in the next few versions but the current
focus is to get the core functionality in place and working.

Added an option ("Kill Children") to delete any child URLs of the selected
OFF dir, it will also recursively kill the children of any children that
are OFF dirs.

Fixed string crasher in the fatal error dialog - which is kind of
ironic really.

When an OFFDir is removed from the Local URLs list, any child URLs
become toplevel URLs.

OFFDirs no longer unpreserve automatically on retrieve or disperse.
They must be unpreserved manually - I think this is the lesser of
two evils.

Removed about 400 bytes (roughly 30%) of the RAM used by a node object,
by replacing some fixed size arrays with string objects. Each instance
of this object now costs about 0.8kB. Further reductions are planned,
but I doubt it will go much below 5-600 bytes.

Fixed invalid memory read when mimetypes were calculated for file
extensions longer than 6 characters. Refactored handling of file extensions
to deal with any extension length and no longer use a temporary string to
hold the extension.

Fixed bug where pool cnxn transfer times would not be updated if a
message was read in less than the update interval. The transfer time
is now updated on msg completion in this case. This could cause
false timeouts on pool cnxns.


Semantic changes in the gui labels:
Local URLs context menu:
"Key Files" replaced with "Backups"
"Save Key File" replaced with "Backup Selected"
"Load Key File" replaced with "Load Backup File"
"Save All Keys" replaced with "Backup All"
"Load All Keys" replaced with "Load All Backups"

Changes:
0.19.03


Added a "Check Now" button to the updated checking part of Network Behaviour
wich basically does what it says on the tin.

When OFF dir indenting is set in local URLs the children should now always
appear below their parents when a filename sort is performed.

Implemented the alphabetical sort of file sizes so that inserts of files
larger than 2GB are now sorted correctly.

Fixed similar bug in sorting by offset.

Fixed assert failure and crasher on store. This only happened if the index
of a randomly chosen block was exactly equal to the total number of blocks
in the cache. The range for the random int should have been 0 -> nblocks-1.

Rearranged the checkboxes in Display a little (more under MSW than GTK)

Fixed bug where a disperse would not pick up on changes in the max number
of pushes while it was in progress.

Sorting of Local URLs (when OFFDir indenting is set) is not locked to
within the parent directories. So, for example, a size sort will result
in the children of each offdir being sorted as a separate group. Then the
level above that is sorted, etc, and so on to the top level. (This is
not actually the underlying code behaviour - it just looks that way!)
To toggle this behaviour (i.e. allow sorting to split OFFDirs or not)
select "Lock Sorting to OFF Dirs"/"Unlock Sorting From OFF Dirs" from
the OFFDir submenu of the URLs context menu.

When URLs are added to the gui they now appear below any parent offdir
they may have - if indenting is enabled.

Write time is now reset when a pool msg is unqueued.

Added 2 new themes to the windows installer: KDECrystal_1.0 and
NuvolOFF_1.0. I think the can lose the Men and Women themes for
now - lovely though they are.

German translation has been recoded to de_DE.ISO8859-1 for windows,
the translation should look better now.

Semantic changes in the gui labels:
Display tab:
removed " (requires restart)" from the Daemon and Command Line mode
checkboxes in Display. (They still require a restart BTW)

GUI Mode changes:

Downloads list columns:
Replies : not shown in Novice mode.
Filtered : not shown in Novice mode.
Descriptor Hash : not shown in Novice mode.
Search Number (dbg) : only shown in Dev mode.
Result Number (dbg) : only shown in Dev mode.
Offset/Size/Stream Length : not shown in Novice mode.
Search ID (dbg) : only shown in Dev mode.
Blacklisted (dbg) : only shown in Dev mode..

Downloads list columns:
Descriptor Hash : not shown in Novice mode.
Requested (secs, dbg) : only shown in Dev mode.
DLSum (dbg) : only shown in Dev mode.
Image ID (dbg) : only shown in Dev mode.
Progress Text (dbg) : only shown in Dev mode.

Known nodes list columns:
Bucket radius : only shown in Dev mode.
Ham Dist : only shown in Dev mode.
Mean Pool Upload Speed : only shown in Dev mode.
Mean Block Return Time : only shown in Dev mode.
most columns labelled (dbg) : only shown in Dev mode.
Node ID : not shown in Novice mode.
AES key : not shown in Novice mode.

Local URLs list columns:
Descriptors In : not shown in Novice mode.
URL Version : not shown in Novice mode.
Host Tag : not shown in Novice mode.
Descriptor Hash : not shown in Novice mode.
When Acquired (secs) : only shown in Dev mode.
Offset/Size/Stream Length : not shown in Novice mode.
How Obtained (int, for colours etc) : only shown in Dev mode.
Parent Rank : only shown in Dev mode.
Depth : only shown in Dev mode.

New src files added:
gui/posted_gui_events.cxx,
gui/posted_gui_events.h
gui/progress_view.cxx

Post Reply