Commits on Nov 22, 2008
  1. CPAN upload 0.025

    sanko committed Nov 22, 2008
Commits on Jul 2, 2008
  1. Fast Peers: The Revenge (Chapter III)

    sanko committed Jul 2, 2008
    + [fix] Re-enable N::B::S::Peer::_parse_packet_allowed_fast and N::B::S::Peer::_parse_packet_reject in the packet dispatch table.
    + [fix] Data::Dumper usage in N::B::S::Peer and N::B::DHT
    + [fix] Non-critical bug in N::B::S::Peer when the peer goes ((poof)) in the middle of something.
    + [etc] I knew I was forgetting something.
Commits on Jul 1, 2008
  1. CPAN-ready DHT commit (Chapter II)

    sanko committed Jul 1, 2008
    + [fix] Replaced carp calls with proper log callbacks
    + [fix] HAVEALL and HAVENONE packets were sending the wrong packet length...
            - Which didn't matter seeing as FastPeers was disabled until now
    + [etc] Changed default conns_per_client: 300 => 200
    + [etc] Changed N::B::new() arguments:
          Old                           New
          maximum_peers_per_client      conns_per_client
          maximum_peers_per_session     conns_per_session
          kbps_down                     max_dl_rate
          kbps_up                       max_ul_rate
          maximum_peers_half_open       max_halfopen
          maximum_buffer_size           max_buffer_per_conn
          maximum_requests_size         ul_slot_size
          maximum_requests_per_peer     ul_slots_per_session
    + [etc] Changed accessors (incomplete list):
         Old Mutator                Getter                   Setter
         maximum_buffer_size       get_max_buffer_per_conn set_max_buffer_per_conn
         kbps_down                 get_max_dl_rate          set_max_dl_rate
         kbps_up                   get_max_ul_rate          set_max_ul_rate
         maximum_peers_per_client  get_conns_per_client     set_conns_per_client
         maximum_peers_per_session get_conns_per_session    set_conns_per_session
         maximum_peers_half_open   get_max_halfopen         set_max_halfopen
         debug_level               get_debug_level          set_debug_level
         maximum_requests_per_peer get_ul_slots_per_session set_ul_slots_per_session
         maximum_requests_size     get_ul_slot_size         get_ul_slot_size
         peer_id                   get_peer_id              --NA--
         sockport                  get_sockport             --NA--
         sockaddr                  get_sockaddr             --NA--
         sessions                  get_sessions             --NA--
         check                     get_cached_integrity
         verify                    get_verified_integrity
    + [etc] Removed accessors:
            - N::B->timeout( [NEWVAL] )
              This was the select timeout used in N::B::do_one_loop().  It has
              been removed completely in favor of an optional parameter passed to
              N::B::do_one_loop() itself.
    + [fix] t/data/torrents/miniswarm.torrent was badly broken. Now hand made
    + [new] t/data/etc/ now takes a third param: timeout
    + [fix] t/500_full_swarm/* are now stable enough to be standard tests?
    + [etc] Several swarm tests have been removed.
            - Why was I going out of my way to be redundant?
    + [fix] DHT deals with socket open() failures a little better (UDP is fickle.)
    + [new] "Smart" Developer/Unstable build numbers and peer_id generation
    + [fix] N::B::S::Peer would sometimes (randomly) 'forget' to request the last
              piece (zero based problem)
    + [etc] Module::Build's create_makefile_pl set to traditional (disabled)
    + [etc] README updated to new API and added link to homepage in Bugs
    + [fix] Documentation has been brought up to date with current API and all
             internal and external links have been validated.
    + [fix] N::B::DHT workaround for
    + [new] N::B::S::Tracker::add_url() and N::B::S::Tracker::remove_url()
    + [etc] CPAN!
Commits on Jun 18, 2008
  1. Alpha DHT commit (Chapter I)

    sanko committed Jun 18, 2008
    + [fix] Stop modifying hash inside for loop in N::B::process_timers()
    + [fix] N::B::Util::bdecode() has been rewritten.  Again.  This time, to
               handle escaped chars and work around the regex engine's hard limit
               on bracket-quantified matches
    + [fix] silly typo in N::B::S::Peer
    + [new] New DHT-related callback: peer_outgoing_port
    + [etc] This is a very very very unstable commit. DHT support is pre-pre-alpha
    + [etc] No more tags for every CPAN upload.  Only for major/important
              upgrades; It's a waste of revision numbers.
Commits on May 24, 2008
  1. + [etc] All POD now have a properly cased NAME section... silly searc…

    sanko committed May 24, 2008
    + [fix] N::B::S::Tracker is go for callbacks.
    + [fix] t/000_basic/010_load_prerequisites.t now tests a more complete list of modules
    + [etc] scripts/ - very few varied (and untested) fixes
    + [etc] CPAN
Commits on May 22, 2008
  1. + [etc] Layout tweaks and inline comments moving toward some sort of …

    sanko committed May 22, 2008
    + [fix] more .torrent integrity checks during piece read/write (fixes issue #1)
    + [etc] author tests now use $ENV{RELEASE_TESTING} to comply with The Oslo
              Consensus.  See
    + [fix] experimental kbps_up and kbps_down methods and parameters have been
              correctly renamed kBps_up and kBps_down.
    + [etc] added all needed test modules to build_requires and
              recommends when $ENV{RELEASE_TESTING} is true
    + [new] New N::B::process_connections() method.  And N::B's internals open up
              just a little more.
    + [etc] default N::B::timeout changed from 5 to 1 second
    + [fix] Plenty-o-utf8/Unicode fixes in N::B::Session and N::B::File.  It works
              as it should now.  ...on Win32 at least.
    + [fix] N::B::use_unicode() mutator has been removed.  Unicode filenames are
              handled automatically on Win32.
    + [new] t/200_classes/220_NBS/225_unicode.t - Tests UTF-8 filenames in .torrent
    + [new] N::B::Session::name() - see docs
    + [new] scripts/ - µTorrent WebUI-based demo of Net::BitTorrent's
              "new" alternative event processing
    + [fix] N::B::_locate_session() is now case-insensitive
    + [new] Notes.pod - Annotated guide to the ins and outs of Net::BitTorrent
      - It's a work in progress.  And without a real home in the distribution yet.
    + [del] N::B::PeerID.pod - Incorporated into Notes.pod
    + [del] N::B::FAQ - Incorporated into Notes.pod
    + [etc] Renamed Todo => Todo.pod
    + [fix] Now we verify data before filling the request.
    + [etc] CPAN
Commits on Apr 25, 2008
  1. + [fix] Internal scheduling has been centralized in expectation of th…

    sanko committed Apr 25, 2008
    …ings to come
    + [etc] After a brief detour, everything is back on track
    + [etc] Old style set_callback_* API is depreciated
    + [new] Client-wide up/down transfer rate limits
    + [etc] Documentation updates 
      - README 
        + Example code changed to reflect current API
      - lib/Net/
        + Spellcheck.  Ha.
        + New kbps_up and kbps_down methods and parameters
        + Example code changed to reflect current API
    + [etc] CPAN
Commits on Apr 19, 2008
  1. + [fix] N::B::S::File is now taint safe

    sanko committed Apr 19, 2008
      - ...I think.
    + [etc] perl 5.8.1 required
      - This value is based solely on current CPAN Reporter PASS tests
    + [fix] N::B::S::Peer had a left over call to a now defunct method
    + [etc] build_requires modules are now listed as requires as well.
Commits on Apr 12, 2008
  1. + [etc] No code change but upgrade is recommended to fix bad M::B dist.

    sanko committed Apr 12, 2008
            Something fishy going on with the gzip'd file.  Some systems
            (like PAUSE) properly extract directories and some (like the cpan
            shell) extract it all into the base directory causing build
Commits on Apr 11, 2008
  1. + [fix] N::B::S::Tracker::_tcp_parse_data and N::B::Session::new

    sanko committed Apr 11, 2008
      - bdecode call was being called in array context for no reason at all
    + [new] -skip_hashcheck is now documented as a param for scripts/
    + [fix] ExtProtocol off by default
    + [etc] CPAN
    + [etc] Revised TODO
Commits on Apr 10, 2008
  1. + [etc] POD fixes in /lib/Net/

    sanko committed Apr 10, 2008
    + [fix] removed unused dependancies from Build.PL
      - Moved some to build_requires and the Win32 stuff to recommends
    + [fix] /t/000_basic/005_signature.t was rewritten
      - was using a bad plan
      - svn:keywords was missing
    + [fix] idiot mistake with the callback system
    + [fix] N::B::S::File::_open() bug that missed preexisting file handles
    + [new] Debug levels: TRACE FATAL ERROR WARN INFO DEBUG
      - Import from Net::BitTorrent::Util individually or as :log
    + [fix] N::B::S::Tracker objects are now blessed
    + [del] removed peer_outgoing_packet callback
    + [fix] refactored most of N::B::S::Peer in anticipation of extensions :D
      - Looking forward is fun.
Commits on Apr 5, 2008
  1. + [etc] moved from ExtUtils::MakeMaker to Module::Build

    sanko committed Apr 5, 2008
    + [etc] Pod Coverage rated at 100%
    + [fix] relocated docs/PeerID_spec.pod => /lib/Net/BitTorrent/PeerID.pod
      - PAUSE was ignoring it as documentation (but used its abstract to
        describe N::B itself) and I'm not interested enough to figure out
        how to force it to properly index the /doc/ directory.
    + [etc] Updated svn:keywords properties for all files.
    + [fix] Changed all abstracts to less c+p-like "BitTorrent client class"
      - kicks self
    + [fix] Removed ex-dependancies from Makefile.PL's PREREQ_PM
      - English (was used by t/900_etc/921_perlcritic.t)
      - Class::ISA ( idea where that came from.)
    + [fix] Made Encode a Win32-only prerequisite
      - is only used on Win32.  For now.
    + [fix] Removed silly $Net::BitTorrent::DEBUG variable from packages
      - replaced them all with on_call callbacks
    + [fix] changed most carp and all croak calls to on_log callbacks
      - ...why was I using croak?
    + [fix] changed maximum_buffer_size from the almost random value of 98304 to 131072 (2**17)
    + [etc] rename t/000_basic/002_load.t => t/000_basic/020_load.t
    + [etc] rename t/000_basic/001_load_prerequisites.t => t/000_basic/010_load_prerequisites.t
    + [new] t/000_basic/005_signature.t
      - Checks gpg signature
    + [del] Net::BitTorrent#Notes/TAGS
    + [fix] removed Net::BitTorrent::Session::set_block_size()
    + [fix] converted Net::BitTorrent::Session::block_size() to a mutator
Commits on Apr 1, 2008
  1. CPAN

    sanko committed Apr 1, 2008
  2. + [fix] removed spurious use of non-core module

    sanko committed Apr 1, 2008
      - t/100_data_parsing/111_compact.t
      - t/100_data_parsing/112_compact_bad.t
      - t/100_data_parsing/116_uncompact.t
      - t/100_data_parsing/117_uncompact_bad.t
    + [fix] paths changed to reflect new test suite layout
      - t/200_classes/220_NBS/221_new.t
    + [fix] *nix friendly non-blocking tcp
      - Net::BitTorrent::Session::Tracker
    + [etc] Rewording of 500 tests prompt to reflect how unnecessary the are
      - Makefile.PL
    + [fix] More pod coverage changes (private subs w/o leading underscore) in nearly all packages
    + [fix] N::B was using Time::HiRes::usleep() rather than Time::HiRes::sleep()
      - "...why is N::B eating my processor?" D'oh!
    + [etc] Ready for CPAN? Hmmmm...
Commits on Mar 31, 2008
  1. + [new] Test suite organization

    sanko committed Mar 31, 2008
    + [etc] Loads of changes mostly perlcritic-y fluff... I mean stuff.
Commits on Mar 24, 2008
  1. + [fix] Relocated several modules

    sanko committed Mar 24, 2008
      - Net::BitTorrent::Tracker => Net::BitTorrent::Session::Tracker
      - Net::BitTorrent::Peer => Net::BitTorrent::Session::Peer
      - Net::BitTorrent::Peer::Request => Net::BitTorrent::Session::Peer::Request
      - ...what was I thinking?
    + [etc] Documentation updates (still incomplete)
      - Net::BitTorrent::Session
      - Net::BitTorrent::Session::File
      - Net::BitTorrent::Session::Peer
      - Net::BitTorrent::Session::Peer::Request
      - Net::BitTorrent::Session::Piece
      - Net::BitTorrent::Session::Piece::Block
      - Net::BitTorrent::Session::Tracker
      - Net::BitTorrent::Util
      - Net::BitTorrent::FAQ
      - /docs/PeerID_spec.pod
Commits on Mar 20, 2008
  1. - [fix] number of working pieces in N::B::Session changed

    sanko committed Mar 20, 2008
      + new formula: $max_working = (scalar($current_working) + (($free_blocks < $open_slots) ? 1 : 0))
    - [fix] /t/etc/ now only grabs jpg files
    - [new] /t/etc/miniswarm/seed/2183742557_5c9a91727d_m.jpg
      + /t/etc/miniswarm/seed/credit.txt has been updated
    - [new] N::B::Peer::outgoing_requests()
    - [fix] /t/etc/miniswarm.torrent svn:mime-type changed to application/x-bittorrent
Commits on Mar 16, 2008
  1. - [new] Endgame mode begins automatically (un[der]tested)

    sanko committed Mar 16, 2008
      + for now, we wait until the session has 10 pieces left before completion
      + in the future, this will vary based on the overall size of the torrent
    - [new] N::B::Peer::cancel_old_requests() [tentative name]
      + called by N::B::Peer::pulse()
    - [new] All classes have at least stub as_string() subs
      + N::B::S::P::Block::as_string() used to {die;} ...what was I thinking?
    - [etc] new tidy rules (for better or worse...)
      + has made even unedited files appear to be modified...
    - [new] /scripts/ has a new -skip_hashcheck parameter (for now)
    - [fix] /scripts/ no longer sets block sizes or file priorities for new sessions
      + block sizes were usually too large (>=32k) and requests were often ignored or delayed
      + priority was being set only to test functionality
Commits on Mar 5, 2008
  1. - [fix] *nix-friendly stuff tested on clean Kubuntu 6.06 (what I had …

    sanko committed Mar 5, 2008
    …lying around)
      + /t/etc/miniswarm/seed/credit.txt svn:eol-style property changed to LF
      + non-blocking connect in N::B::Peer::new() using fcntl(...,F_SETFL,...)
      + removed silly Win32 warning from N::B::use_unicode()
    - [fix] N::B::Tracker::announce() was calling N::B::LocalPort()
    - [etc] still tinkering with /t/etc/miniswarm.t
      + older TAP doesn't like when tests ok() "out of order"
      + path for seeds changed