2000-08-22: Deluge-0.9.11

    - big delay.  testing ended, i went on vacation, tried to write the
    final report, blah blah blah.

    - added "allow_secure" switch to Mcp.

    - added histograms and over-times for DTIM to dlg_eval.  Now we
    can see when the attack machines are (er, were) getting slowed down.

    - removed "users_per_proc" from example.dcf.  with the way the
    queue has evolved, having multiple processes is the worst thing
    you can do.

    - removed "temp_dir" from example.dcf.  never needed it.

2000-07-27: Deluge-0.9.10

    - playback users with zero instances won't have their scripts
    compiled.

    - variable insertion doesn't happen at compile time, because that's
    stupid.  (every instance of a def had the same variables.)  now it
    happens just before registration.

    - renamed dbg_level to debug_level.  (the "debug - oh, no!" thing
    wasn't in emacs, it was in Zoc.  evil evil evil.)  didn't rename it
    to just "debug" because it's not just a flag, it's a dial.

    - dump_responses won't try to dump images.  (they were coming out as
    empty files, anyway, since i don't preserve content from image
    requests.)

    - "Running queue of size X" now prints correct value.  It could have
    been off before due to illegal requests or secure requests.

    - handles multi-part POSTs a little better.

    - image loading is much smarter: as soon as the user gets a page that
    requires images, the image requests are sent to the agent.  no more
    waiting for the whole loop to come around.

    - robots encountering secure links will now move them out of the
    parallel queue correctly, instead of blocking.  (damn that parallel
    agent!)

    - a new log entry has been added: DTIM (208).  it shows how long
    after the user's sleep finished before it actually got to request a
    page.  this is good for knowing if your processes are overloaded.


2000-07-27: Deluge-0.9.9

    - patched UserAgent.pm with timeout correction from libwww mailing list.

2000-07-27: Deluge-0.9.8

    - changed main attack loop to be hybrid between 0.9.7 and 0.9.6.  it
    still needs more tweaking; it's not sleeping when it should.  but
    it's much better about preventing request spikes.  queue_max_delay 
    is now the actual limiting factor; threads_per_proc has to be very
    low to have any effect.  faster CPUs will change this, of course.  :)

    - playback scripts now get precompiled into the def user.  instanced
    users clone the prereqs out of their def user.  much faster.

    - parsing of responses is now about as limited as it's going to get.
    playback responses only get parsed when there are unresolved
    translators, or the config file says they have to be.

    - onsite debugging: added "playback_errors" flag to User.pm.

    - "Code X on URL:" printout only happens with dbg_level 1 or higher.

    - dump_responses flag names server files with ".html" now, for ease
    of checking.

    - onsite debugging: added "dump_responses" flag to be separate
    from dbg_level.

    - onsite debugging: 'debug' flag changed to 'dbg_level' due to
    some weirdness in my xemacs that puts "oh no!" after every
    instance of "debug" that you type.  infuriating as hell.

2000-07-24: Deluge-0.9.7

    - added "debug" and "verbose_logs" flags to the Mcp and example.dcf.
    put lots of checks in for these, mainly in Mcp.pm, User.pm, and
    Prereq.pm (surprise... those three really need to get split out into
    several more).  Hopefully this should mean less code hacking during a
    test.

    - VERY preliminary version of dlg_eval is in.  it's enough to get
    quick feedback on how an attack fared.  involved the creation of
    Histogram.pm, which is already misnamed, since it can contain
    derivative information as well.

    - added docs for script_file in example.dcf.  forgot that last rev.

    - added eval_per_url, eval_hist_time_buckets, and
    eval_hist_value_buckets.

2000-07-23: Deluge-0.9.6

    - cleaned out some debugging code, and cut down on the amount of
    logging going on.  the logging has only been commented out; i'll
    probably add switches later to control the volume of the logs.

    - compare_content now controls comparison of all playback data:
    return code, size, and content.  probably should change the name of
    that switch.

    - removed limit_urls_traversed dial.  got limit_pages_traversed and
    limit_depth working correctly.

    - put the useragent callback stuff back in to get better timings on
    individual items.  fixed the timing for pages at the same time.

    - rewrote the main loop to be a little more balanced for lots of
    users in an overloaded system, and easier to read.

    - made small change to PUA::Protocol.pm that means it's in the
    parallel directory along with UserAgent.pm.  symbolic links for
    everyone!

    - added mandatory script_file flag.  _playback_ isn't necessary now.

2000-07-21: Deluge-0.9.5

    - i just broke variable replacement.

    - won't sleep less than 0.1 seconds now.

    - page load times now measured more accurately.

    - sessionid has been broadened out to the translators, so you can do
    more broad URL editing.

    - fixed bugs with Translators and Variables not getting cold resets.

    - trimmed down what gets logged in a playback attack.

    - a bunch of other stuff.  note that 0.9.4 is gone from the
    changelog, because i've gotten bad about keeping track of stuff.

2000-07-20: Deluge-0.9.3

    - hostname can now be set in the .dcf file, effectively overriding
    what the system thinks its name should be.

    - added two new system variables:  __HOST and __PID.

    - simplified up-pointers: Prereq only points to User (not Mcp), 
    User now points to Mcp.  significantly decreased the number of
    parameters flying around.

    - aha.  found the real bug behind duplicate instanced users going
     "idle".  also corrected the related sleeping problem.

2000-07-19: Deluge-0.9.2

    - a nice general version of session id replacement is in and
    appears to be working.

2000-07-19: Deluge-0.9.1

    - a feature for playback script hacking: DLG-Delete-Cookies and
    DLG-Delete-Cache.  see the new "_script_hacks_" file for info.

    - some changes to the README and _info_ files to make them pass
    better for documentation.

    - secure transactions are working, albeit outside of the parallel
    agent.  PUA doesn't seem to be able to handle secure transactions,
    so i intercept them and process them immediately.  it's going to
    hurt the latency numbers a bit, but i don't have much of a choice.
    at least we're sure that the trick of hacking the playback script
    to switch to secure transactions will work.

    - moved the "timeout" tag to be global instead of user-specific.

    - variable replacement is in.  this includes system defined variables
    and user defined variables.  see the _script_hacks_ file for details.
    (don't get too excited: finishing the _script_hacks_ file is one of
    the things on the _todo_ list.)

    - cleaned up the _todo_ list for things necessary for the ideaforest
    launch.

2000-07-15: Deluge-0.9.0

    - i'm reversing the order of the changelog to be latest first.

    - fixed some bugs in general attacks that messed with the order of
    requests and logs.

    - fixed some bugs related to sleeping.  again.  damn.

    - playback has much improved: all GETs are being processed in the
    right order, and restarts work.  now i need to work on POSTs,
    comparing results, variable substitution, and probably a bunch of
    other stuff.  but at least i can playback a script.

    - from what i can tell, i'm now back at the place i was before the
    user-centric rewrite.  besides the user features (and there are a
    bunch), the only other thing i seem to have gained is multithreading,
    which is nice, but oh so depressing.  so i've inc'ed the secondary
    version level, and reset the tertiary.  oh the fun i have!

2000-07-15: Deluge-0.8.4

    - recording now saves a copy of all non-image requests, and makes a
    note in the playback file to show which request goes with which
    comparison file.  since playback still isn't working, no actual
    comparison is made.

    - added compare_comment to example.dcf, so you can shut off the
    comparison.

    - created Script.pm, which handles a bunch of the playback script
    stuff.  i'd really like to pull more stuff out of User.pm.  i wonder
    how i could break it down.

    - hm, playback is kind of working.  it doesn't seem to be pulling
    down the pages in the right order, it's completely ignoring a bunch
    of the playback events outright, it's not doing comparisons of size
    or of content, and probably a bunch of other stuff.  but it's kind of
    working!  and i'm tired, it's bedtime.

    - new indenting style in the _changelog_, because i'm tired of
    fighting emacs, and i don't want to try and fix it right now.  bah.

2000-07-14: Deluge-0.8.3

    - recording is finally working again.  GETs *and* POSTs!  now for
      playback...
    - all uses of MODE_* are back in User.pm, so the MODE_* constants
      are no longer available globally.  let's keep it that way.  (now
      if i could just do the same with the LOG_* codes.  yeah, right.)
    - found a bug where the defname of users was never getting set.
      the defname is now also getting logged.
    - had to create Agent.pm, a subclass of LWP::UserAgent.  note that
      it's NOT a subclass of LWP::Parallel::UserAgent, since there are
      issues with that class and POST methods, supposedly.

2000-07-14: Deluge-0.8.2

    - major code cleanup: AUTOLOADS, protecting private data, removed
      references to higher methods from inside lower ones, blah blah blah.
    - more changes to Parallel::UserAgent; now you can specify an agent
      id on a per request basis.  this was needed so that playbacks would
      be able to have the id from the recording, not the Deluge id.
    - put "NOT FINISHED" tags in the example.dcf to remind me what still
      needs to be done.
    - Deluge now trims urls with # signs in them, so it doesn't reload
      the same page accidentally.  this will expand out to a full url
      cooking center (stove? oven? microwave?) where things like the
      session_id_tag fix can happen.
    - cleaned up logs a little; no redundancy, data no longer missing.

2000-07-13: Deluge-0.8.1

    - added queue_max_delay.
    - added restart_time/restart_delay, got all idles/sleeps/restarts 
      working.
    - wander mode is now working.
    - shut down happens a little cleaner
    - unused prereqs don't get logged.

2000-07-13: Deluge-0.8.0

    This is the first release that's moderately useful or distributable.
    Multi-threaded, goes right in .../site_perl/5.6.0/Deluge, blah blah
    blah.  It would have been here much sooner, but the rewrite for the
    user-centric stuff really took a lot of time.  The closest
    approximation to documentation can be found in the example.dcf file,
    and the _info_ file.  Good luck.

------

    At this point, a nearly complete rewrite of the code occurred.
Originally, Deluge attacked on a per-hit basis, with no attention
payed to the type of pseudo-user, association of hits-per-page, or
any of the other stuff that makes it a useful tool.

    As such, the changelog was cleared from this point back.  It's
not a major loss; I hadn't been keeping good notes up until the
user-centric rewrite, anyway.
