1. 08 Dec, 2017 2 commits
  2. 16 Nov, 2017 1 commit
    • Nick Mathewson's avatar
      Fix a traceback when closing a blocked connection "immediately". · 95238eb9
      Nick Mathewson authored
      When we close a connection via connection_close_immediately, we kill
      its events immediately. But if it had been blocked on bandwidth
      read/write, we could try to re-add its (nonexistent) events later
      from connection_bucket_refill -- if we got to that callback before
      we swept the marked connections.
      
      Fixes bug 24167.  Fortunately, this hasn't been a crash bug since we
      introduced connection_check_event in 0.2.9.10, and backported it.
      
      This is a bugfix on commit 89d42291, I believe, which
      appeared in Tor 0.1.0.1-rc.
      95238eb9
  3. 09 Nov, 2017 1 commit
    • Nick Mathewson's avatar
      Audit all of the "is the network turned off" checks. · 0c6eabf0
      Nick Mathewson authored
      DisableNetwork is a subset of net_is_disabled(), which is (now) a
      subset of should_delay_dir_fetches().
      
      Some of these changes are redundant with others higher or lower in
      the call stack.  The ones that I think are behavior-relevant are
      listed in the changes file.  I've also added comments in a few
      places where the behavior is subtle.
      
      Fixes bug 12062; bugfix on various versions.
      0c6eabf0
  4. 02 Nov, 2017 1 commit
  5. 18 Oct, 2017 1 commit
  6. 19 Sep, 2017 1 commit
  7. 15 Sep, 2017 1 commit
  8. 14 Sep, 2017 1 commit
  9. 13 Sep, 2017 1 commit
  10. 05 Sep, 2017 6 commits
    • Nick Mathewson's avatar
      Add support for HTTP Connect tunnels · 4b30ae15
      Nick Mathewson authored
      4b30ae15
    • Nick Mathewson's avatar
      Refactor buffer APIs to put a buf_t first. · 6ec50597
      Nick Mathewson authored
      By convention, a function that frobs a foo_t should be called
      foo_frob, and it should have a foo_t * as its first argument.  But
      for many of the buf_t functions, the buf_t was the final argument,
      which is silly.
      6ec50597
    • Nick Mathewson's avatar
      Repair wide lines from previous commit. · d61da9e6
      Nick Mathewson authored
      d61da9e6
    • Nick Mathewson's avatar
      Repair buffer API so everything starts with buf_. · 4a7e90ad
      Nick Mathewson authored
      Our convention is that functions which manipulate a type T should be
      named T_foo.  But the buffer functions were super old, and followed
      all kinds of conventions.  Now they're uniform.
      
      Here's the perl I used to do this:
      
      \#!/usr/bin/perl -w -i -p
      
      s/read_to_buf\(/buf_read_from_socket\(/;
      s/flush_buf\(/buf_flush_to_socket\(/;
      s/read_to_buf_tls\(/buf_read_from_tls\(/;
      s/flush_buf_tls\(/buf_flush_to_tls\(/;
      s/write_to_buf\(/buf_add\(/;
      s/write_to_buf_compress\(/buf_add_compress\(/;
      s/move_buf_to_buf\(/buf_move_to_buf\(/;
      s/peek_from_buf\(/buf_peek\(/;
      s/fetch_from_buf\(/buf_get_bytes\(/;
      s/fetch_from_buf_line\(/buf_get_line\(/;
      s/fetch_from_buf_line\(/buf_get_line\(/;
      s/buf_remove_from_front\(/buf_drain\(/;
      s/peek_buf_startswith\(/buf_peek_startswith\(/;
      s/assert_buf_ok\(/buf_assert_ok\(/;
      4a7e90ad
    • Nick Mathewson's avatar
      150089cb
    • Nick Mathewson's avatar
      Move protocol-specific functions out of buffers.c · 234c5015
      Nick Mathewson authored
      This commit does not change the implementation of any function: it
      only moves code and adds new includes as necessary.  Part of #23149.
      234c5015
  11. 30 Aug, 2017 1 commit
  12. 24 Aug, 2017 1 commit
  13. 07 Jul, 2017 1 commit
  14. 30 May, 2017 1 commit
  15. 17 Apr, 2017 3 commits
  16. 28 Mar, 2017 1 commit
    • Nick Mathewson's avatar
      Refactor the directory spool implementation · 8aa69a1b
      Nick Mathewson authored
      The old implementation had duplicated code in a bunch of places, and
      it interspersed spool-management with resource management.  The new
      implementation should make it easier to add new resource types and
      maintain the spooling code.
      
      Closing ticket 21651.
      8aa69a1b
  17. 15 Mar, 2017 1 commit
  18. 27 Jan, 2017 2 commits
  19. 08 Jan, 2017 1 commit
  20. 16 Dec, 2016 2 commits
  21. 08 Dec, 2016 1 commit
  22. 01 Dec, 2016 1 commit
    • overcaffeinated's avatar
      Fix memory leak in bug 20716 · 3b6da3f9
      overcaffeinated authored and Nick Mathewson's avatar Nick Mathewson committed
      newconn->address is strdup'ed twice when new_type == CONN_TYPE_AP
      and conn->socket_family == AF_UNIX. Whilst here, juggle code to
      make sure newconn->port is assigned from an initialised value in
      the above case.
      3b6da3f9
  23. 30 Nov, 2016 2 commits
    • Nick Mathewson's avatar
      Use the new guard notification/selection APIs throughout Tor · dbbaa515
      Nick Mathewson authored
      This patch doesn't cover every case; omitted cases are marked with
      "XXXX prop271", as usual.  It leaves both the old interface and the
      new interface for guard status notification, since they don't
      actually work in the same way: the new API wants to be told when a
      circuit has failed or succeeded, whereas the old API wants to know
      when a channel has failed or succeeded.
      
      I ran into some trouble with directory guard stuff, since when we
      pick the directory guard, we don't actually have a circuit to
      associate it with.  I solved that by allowing guard states to be
      associated with directory connections, not just circuits.
      dbbaa515
    • Nick Mathewson's avatar
      Split bridge functions into a new module. · 8da24c99
      Nick Mathewson authored
      This patch is just:
         * Code movement
         * Adding headers here and there as needed
         * Adding a bridges_free_all() with a call to it.
      
      It breaks compilation, since the bridge code needed to make exactly
      2 calls into entrynodes.c internals.  I'll fix those in the next
      commit.
      8da24c99
  24. 04 Nov, 2016 1 commit
    • David Goulet's avatar
      hs: Refactor rend_data_t for multi version support · 8293356a
      David Goulet authored
      
      
      In order to implement proposal 224, we need the data structure rend_data_t to
      be able to accomodate versionning that is the current version of hidden
      service (2) and the new version (3) and future version.
      
      For that, we implement a series of accessors and a downcast function to get
      the v2 data structure. rend_data_t becomes a top level generic place holder.
      
      The entire rend_data_t API has been moved to hs_common.{c|h} in order to
      seperate code that is shared from between HS versions and unshared code (in
      rendcommon.c).
      
      Closes #19024
      Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
      Signed-off-by: default avatarGeorge Kadianakis <desnacked@riseup.net>
      8293356a
  25. 18 Oct, 2016 1 commit
  26. 26 Aug, 2016 1 commit
  27. 25 Aug, 2016 1 commit
  28. 20 Aug, 2016 2 commits