Commit Graph

1758 Commits

Author SHA1 Message Date
Roger Dingledine
5dd9e60231 doxygen markup for common/*.h
svn:r1840
2004-05-10 07:54:13 +00:00
Roger Dingledine
341d6f2cab more cleanup, including fleshing out or.h more
svn:r1839
2004-05-10 07:37:10 +00:00
Nick Mathewson
720281b32e Close rogue <b>s
svn:r1838
2004-05-10 07:27:29 +00:00
Roger Dingledine
d9fa234fd9 comments and doxygen markup on circuit.c
svn:r1837
2004-05-10 07:02:58 +00:00
Nick Mathewson
3bf2c572ad Doxygen most of or.h
svn:r1836
2004-05-10 06:52:01 +00:00
Nick Mathewson
ae2a2072b9 Doxygenate config.c
svn:r1834
2004-05-10 04:48:13 +00:00
Roger Dingledine
4845fe7197 comment and doxygenate connection_edge.c
svn:r1833
2004-05-10 04:42:22 +00:00
Nick Mathewson
81922a125c More doxygenation.
svn:r1832
2004-05-10 04:34:48 +00:00
Roger Dingledine
397466a23d give connection.c a skeletal file/brief header
svn:r1831
2004-05-10 03:56:58 +00:00
Roger Dingledine
658873eb01 tweak comment in connection_or
svn:r1830
2004-05-10 03:54:33 +00:00
Nick Mathewson
c0ea93337d Doxygenate common.
svn:r1829
2004-05-10 03:53:24 +00:00
Roger Dingledine
9968f1da98 doxygen for tor_main.c
svn:r1828
2004-05-10 02:43:41 +00:00
Roger Dingledine
a26265c3cc remove an orphan function declaration
svn:r1827
2004-05-10 02:39:48 +00:00
Roger Dingledine
21e094a5d3 function header comments for onion.c, including doxygen markup
svn:r1826
2004-05-10 02:36:04 +00:00
Roger Dingledine
8f6aa6688f function header comments for connection.c, including doxygen markup
svn:r1825
2004-05-10 01:32:57 +00:00
Roger Dingledine
c6d4a00c5f more doxygen markup
plenty more remains


svn:r1824
2004-05-09 16:47:25 +00:00
Roger Dingledine
b384c5a18d bugfix: do directory_send_command only after we've established a socket
also many comments, cleaning, etc


svn:r1823
2004-05-09 16:33:04 +00:00
Nick Mathewson
93576d5289 Add doxygen markup for util and buffers
svn:r1820
2004-05-07 17:04:12 +00:00
Roger Dingledine
fa3db976df comment the functions in connection_or.c
svn:r1818
2004-05-07 08:53:40 +00:00
Roger Dingledine
f1fc4ce22b comment the functions in command.c
this is one of the files nick regarded as scary, so hopefully
these will help.


svn:r1817
2004-05-07 08:07:41 +00:00
Roger Dingledine
d4efa475a1 forward-port header-length-increase patch
svn:r1814
2004-05-06 22:47:48 +00:00
Roger Dingledine
e45fd6cec1 forward-port built-in dirservers string
svn:r1813
2004-05-06 22:47:15 +00:00
Roger Dingledine
f34b600764 forward-port dirservers file
svn:r1812
2004-05-06 22:46:42 +00:00
Nick Mathewson
6cfa2835a1 Fix bug in stream position adjustment
svn:r1801
2004-05-06 19:51:50 +00:00
Nick Mathewson
ebe8fa0d62 Use correct aes-ctr implementation in mainline, too.
svn:r1800
2004-05-06 19:41:33 +00:00
Roger Dingledine
9bf9ca4d09 bugfix: add a circ->resolving_streams field, and make dns resolving streams not actually in the connection_array until they're done resolving.
bugfix: actually complain if we duplicate mark-for-close a circuit

add more logging for relay ends that claim dns resolve failed, so we can
find out why they're not being retried.


svn:r1798
2004-05-06 11:08:04 +00:00
Nick Mathewson
e6477a8e16 Document the rest of main.c
svn:r1797
2004-05-05 21:35:12 +00:00
Nick Mathewson
682a805092 Comments for nearly all non-tricky files
svn:r1796
2004-05-05 21:32:43 +00:00
Nick Mathewson
6cfdc90d92 Use intptr_t when playing with void*s
svn:r1795
2004-05-05 20:27:20 +00:00
Nick Mathewson
8aebd83a0e Add intptr_t and uintptr_t to torint.h
svn:r1794
2004-05-05 20:26:35 +00:00
Nick Mathewson
e6ac85a8cc Fix compilation warnings on 64-bit platforms
svn:r1793
2004-05-05 20:09:06 +00:00
Nick Mathewson
44defa4b1a Never list unapproved servers as recommended
svn:r1790
2004-05-05 04:55:00 +00:00
Nick Mathewson
924f60288a More documentation; fix for compilation warning
svn:r1789
2004-05-05 02:50:38 +00:00
Nick Mathewson
2ba0776b02 Only connection_add connections once they have conn->s sett; refactor code around this. Should make stuff more bulletproof.
svn:r1788
2004-05-05 01:26:57 +00:00
Nick Mathewson
d49d3dcc7b Make non-fake tor_poll robust against -1 fds
svn:r1787
2004-05-05 01:01:34 +00:00
Roger Dingledine
608c156820 must close marked connections at the end of run_scheduled_events.
otherwise they might have a socket -1, and if we leave them around
they'll muck up poll/select.

i think this was the cause of our win32 and os x fakepoll crashes,
and probably would cause other errors down the road.


svn:r1786
2004-05-05 00:59:42 +00:00
Nick Mathewson
efdb356a81 More documentation
svn:r1785
2004-05-05 00:30:43 +00:00
Roger Dingledine
fa6e9efcd0 accept port 81 by default also, since people have been asking for it
svn:r1784
2004-05-04 22:46:19 +00:00
Nick Mathewson
89275e7806 Comment router*.c
svn:r1783
2004-05-04 18:17:45 +00:00
Nick Mathewson
08ac3c7190 Fix mac compile
svn:r1782
2004-05-04 18:17:28 +00:00
Nick Mathewson
e6f3bf2a68 tor_assert(), not assert()
svn:r1777
2004-05-02 20:27:48 +00:00
Nick Mathewson
3dd1ef8783 Fix windows compile.
svn:r1776
2004-05-02 20:23:35 +00:00
Nick Mathewson
af08c4f878 Working strerror for windows socket errors, plus some snide comments.
svn:r1775
2004-05-02 20:18:21 +00:00
Nick Mathewson
a187d3e0b6 Assert that we never try to fakepoll on sock -1.
svn:r1774
2004-05-02 20:17:43 +00:00
Nick Mathewson
a16ec39800 Windows version is 0.0.6 too
svn:r1771
2004-05-02 19:29:59 +00:00
Nick Mathewson
d055ac4709 Bump windows version to 0.0.6rc4
svn:r1767
2004-05-02 03:38:31 +00:00
Roger Dingledine
bbbc063ed9 stop the circuit_receive_relay_cell warning
mark the circ for close if circuit_extend fails because the next
hop is not up yet; don't just return -1


svn:r1765
2004-05-02 03:32:00 +00:00
Roger Dingledine
25909c2c29 patches on patches
svn:r1763
2004-05-02 03:15:55 +00:00
Roger Dingledine
1558fb7650 some patches on the patches
svn:r1761
2004-05-01 23:29:20 +00:00
Nick Mathewson
f6fe336ad4 Documenmt buffers.c; remove function that nobody ever calls.
svn:r1760
2004-05-01 22:08:43 +00:00
Nick Mathewson
4dc30ea3c8 Remove bogus */ so util.c compiles
svn:r1759
2004-05-01 21:50:53 +00:00
Nick Mathewson
9a041591ac Finish documenting the functions in common
svn:r1758
2004-05-01 21:41:23 +00:00
Nick Mathewson
6fa2ded74c Fix windows compile
svn:r1757
2004-05-01 20:55:31 +00:00
Nick Mathewson
908ccb9dcd Handle windows socket errors correctly; comment most of common.
svn:r1756
2004-05-01 20:46:28 +00:00
Roger Dingledine
ac4cb9bdd1 fix a seg fault (whoops)
svn:r1755
2004-04-30 16:35:48 +00:00
Roger Dingledine
2b5e6aef15 note another bug to be fixed sometime
svn:r1754
2004-04-30 05:42:52 +00:00
Roger Dingledine
18f250c364 update the built-in dirservers default
svn:r1750
2004-04-29 08:10:13 +00:00
Roger Dingledine
4b316b4a7d some cosmetic fixes
svn:r1747
2004-04-29 02:52:49 +00:00
Nick Mathewson
5a9b144092 Oops -- the Windows function is closesocket, not socketclose
svn:r1746
2004-04-28 21:17:42 +00:00
Nick Mathewson
9322641710 Use socketclose on windows as appropriate; end pid files with newline
svn:r1745
2004-04-28 21:14:56 +00:00
Roger Dingledine
dd335d9bb2 use tor_lookup_hostname for binding local addresses too
svn:r1744
2004-04-28 20:57:03 +00:00
Nick Mathewson
3a66f523a1 Regenerate windows orconfig.h to match current autoheader generated orconfig.h
svn:r1743
2004-04-28 20:43:30 +00:00
Nick Mathewson
ddb15b8f67 Remove IVs from cipher code, since AES-ctr has none.
svn:r1742
2004-04-28 20:31:32 +00:00
Roger Dingledine
5d1510883e use nick's _ARRAYSIZE abstraction
svn:r1741
2004-04-28 20:22:37 +00:00
Roger Dingledine
47dc5cd1c8 nick, is this what you meant?
svn:r1740
2004-04-28 20:18:22 +00:00
Nick Mathewson
7055f837ab Make Tor build on win32 with VC6 without warnings.
svn:r1739
2004-04-28 20:13:21 +00:00
Roger Dingledine
ca8d50abeb bug resolved (hopefully), so remove comment
svn:r1738
2004-04-28 20:12:44 +00:00
Roger Dingledine
22c0cd8a14 clean dns.c better
svn:r1737
2004-04-28 20:11:37 +00:00
Roger Dingledine
25d5425fdb fix a bug in dns.c, note but don't fix another one
svn:r1735
2004-04-28 19:55:20 +00:00
Nick Mathewson
ac622d94dc Workarounds for a couple of pieces of windows strangeness.
svn:r1734
2004-04-28 19:35:12 +00:00
Roger Dingledine
8cc9001391 clean some dead code (right?)
svn:r1733
2004-04-28 00:05:56 +00:00
Roger Dingledine
4e0dd5bd33 some compilers don't like an array of length zero
nick: should we remove support for IVs for now, since we don't
use them and don't plan to use them?


svn:r1732
2004-04-27 23:50:35 +00:00
Roger Dingledine
158e2cf536 set Content-Type on the directory and hidserv descriptor
svn:r1731
2004-04-27 21:48:37 +00:00
Roger Dingledine
9965bd8387 make my assumption explicit
svn:r1730
2004-04-27 11:28:45 +00:00
Roger Dingledine
505bb2f4a0 it was the second bug that was nailing us.
periodically we expire some circuits if we already have
enough, and we were counting rend circs in that number.

(the first one wasn't a bug after all)


svn:r1729
2004-04-27 11:23:56 +00:00
Roger Dingledine
8e8af6aaee don't expire joined-rend circs that have an exit connection attached
and don't expire non-general excess circuits


svn:r1728
2004-04-27 10:16:31 +00:00
Nick Mathewson
873564ea9c Some versions of openssl have an SSL_pending function that erroneously
returns bytes when there is a non-application record pending.

I have no idea when/why this would even happen, but let's catch it and
make sure tor_tls_get_pending_bytes stays correct.


svn:r1727
2004-04-26 23:19:21 +00:00
Nick Mathewson
06624df622 Log number of bytes pending after read.
svn:r1726
2004-04-26 23:05:58 +00:00
Roger Dingledine
d7f4b82373 rendmid says it drops but actually sends nack
fix log messages


svn:r1725
2004-04-26 23:02:20 +00:00
Nick Mathewson
d6d4b93863 Remove spurious semi
svn:r1724
2004-04-26 23:01:15 +00:00
Nick Mathewson
ad07c62938 Add a macro to catch unhandled openssl errors.
svn:r1723
2004-04-26 23:00:07 +00:00
Roger Dingledine
e34c201bb3 and other debugs
svn:r1722
2004-04-26 22:22:18 +00:00
Roger Dingledine
719bb5c0f3 log debug so nick can see it too
svn:r1721
2004-04-26 22:22:11 +00:00
Peter Palfrader
750211259b The dots are there so you see test doing something. Therefore we should flush them after printing
svn:r1720
2004-04-26 22:12:13 +00:00
Roger Dingledine
80d0b634a4 add a debugging entry, to find the wants-to-read-but-can't bug
svn:r1719
2004-04-26 21:15:06 +00:00
Nick Mathewson
337f7a981f Include strerror(errno) with tls syscall errors
svn:r1718
2004-04-26 18:11:58 +00:00
Nick Mathewson
f6dbe5a0d4 Refactor crypto error handling to be more like TLS error handling:
crypto_perror is a no-no, since an operation can set more than one
error.

Also, fix a bug in the unix crypto_seed_rng: mixing stdio with
/dev/urandom is a bad idea, since fopen can make all kinds of weird
extraneous syscalls (mmap, fcntl, stat64, etc.) and since fread tends
to buffer data in big chunks, thus depleting the entropy pool.


svn:r1717
2004-04-26 18:09:50 +00:00
Nick Mathewson
b410dff6c0 Log pending TLS errors in a couple more places, in case they are possible.
svn:r1716
2004-04-26 16:52:47 +00:00
Roger Dingledine
fff89216a9 tell us when we're rotating things
svn:r1712
2004-04-26 09:32:51 +00:00
Roger Dingledine
fb2279b90b since we don't support truncateds much, don't bother sending them;
just close the circ.

(this wasn't relevant before, because we were mis-handling destroys.)


svn:r1711
2004-04-26 04:32:01 +00:00
Roger Dingledine
bd38df8472 fix a bug that's been lurking since 27 may 03 (!)
when passing back a destroy cell, we would use the wrong circ id.
how the heck did this work?


svn:r1710
2004-04-26 03:42:41 +00:00
Nick Mathewson
0355d29e12 Call tls_log_errors at a more appropriate location; we can remove the other calls in tor_tls_verify once we are sure they never happen.
svn:r1709
2004-04-26 03:09:17 +00:00
Nick Mathewson
75dc76eb3e Better error msg on unknown circuit id.
svn:r1708
2004-04-26 03:00:33 +00:00
Nick Mathewson
cb465160da Very blunt debugging code: log pending errors at start and end of tor_tls_verify
svn:r1707
2004-04-26 02:33:12 +00:00
Roger Dingledine
10f3b74cb9 tell us the nickname of the OR that hung up on us
svn:r1706
2004-04-26 01:50:08 +00:00
Nick Mathewson
568a4d187a Check for machine/limits.h in addition to sys/limits.h
svn:r1705
2004-04-25 23:47:26 +00:00
Roger Dingledine
9e5d2ad91c don't crash, if a conn that sent a begin has suddenly lost its circuit
svn:r1704
2004-04-25 22:48:47 +00:00
Roger Dingledine
482d7e7cd3 resolve a double-mark-for-close when things die inside connection_handle_write
svn:r1702
2004-04-25 22:23:54 +00:00
Roger Dingledine
dccbbaa88a give us a new dirservers file
svn:r1700
2004-04-25 21:56:52 +00:00
Roger Dingledine
28f034e10a now assume all routers support rendezvous cells
svn:r1699
2004-04-25 21:32:04 +00:00
Roger Dingledine
25d54257fb use tor_assert
remove obsolete BUF_OK macro


svn:r1697
2004-04-25 20:37:37 +00:00
Roger Dingledine
37192bd25e use tor_assert and PUBLIC_KEY_OK
but don't use tor_assert inside log.c, to avoid loops


svn:r1696
2004-04-25 19:59:38 +00:00
Nick Mathewson
e062ca046b Add a tor_assert macro that logs failed assertions.
svn:r1695
2004-04-25 19:37:39 +00:00
Nick Mathewson
70bbd0cafa Add assert on crypto_pk_write_private_key,and macros to make sure we have real keys
svn:r1694
2004-04-25 19:21:44 +00:00
Nick Mathewson
0fca143ea1 Remove onion_pkey from connection, since onion keys can change more often than connections. Also add more log messages
svn:r1693
2004-04-25 19:04:11 +00:00
Nick Mathewson
cb3897e5ab remove spurious router_rebuild_descriptor
svn:r1692
2004-04-25 19:01:49 +00:00
Roger Dingledine
7fbc35c136 don't build and upload a new desc twice in a row
svn:r1691
2004-04-25 05:19:03 +00:00
Roger Dingledine
e355ed0e15 log correctly if decoding onion failed
svn:r1690
2004-04-25 04:49:11 +00:00
Roger Dingledine
6a45028ccb don't warn when private_decrypt_hybrid fails
svn:r1689
2004-04-25 04:32:59 +00:00
Roger Dingledine
7e2a2a7f81 bugfix: when rotating onion key, do it (more) correctly
svn:r1688
2004-04-25 03:38:19 +00:00
Roger Dingledine
0b31d0d4e8 more touch-ups
svn:r1687
2004-04-24 23:32:24 +00:00
Nick Mathewson
3ace033c0c Spurious link-key should not be an error
svn:r1686
2004-04-24 22:50:09 +00:00
Nick Mathewson
220e859912 Note router addr:port in log messages
svn:r1685
2004-04-24 22:40:32 +00:00
Nick Mathewson
2e47a0f009 Compare nicknames casei.
svn:r1684
2004-04-24 22:34:31 +00:00
Nick Mathewson
c44016e86e Merge flagday into main branch.
svn:r1683
2004-04-24 22:17:50 +00:00
Roger Dingledine
3c250a2fed only expire wedged dir conns that haven't already been expired
svn:r1676
2004-04-20 17:27:54 +00:00
Roger Dingledine
06a60c4fbb use the real socketpair if we've got it
now it's just windows that has to use the kludged one


svn:r1675
2004-04-19 21:31:32 +00:00
Roger Dingledine
a3200f79cd the socketpair bug is no longer a bug
now it is a documented behavior


svn:r1674
2004-04-19 21:25:48 +00:00
Roger Dingledine
5cfec379ae expire wedged dir conns after 5min without write, not simply after 5min
svn:r1673
2004-04-19 20:08:42 +00:00
Roger Dingledine
d40e9f453f give wedged dir conns a last chance to flush
svn:r1671
2004-04-19 01:59:20 +00:00
Roger Dingledine
c4b72a254f tmp patch to also expire old clean rend_ready circs for now
will have to be fixed once we build-and-open rend circs preemptively


svn:r1668
2004-04-18 09:27:05 +00:00
Roger Dingledine
e9ebefc8bf bugfix: you mean we're supposed to reuse fresh descriptors and
refetch stale ones, not reuse stale ones and refetch fresh ones?


svn:r1667
2004-04-18 09:04:37 +00:00
Roger Dingledine
bce1fc43a2 when you get an intro ack, don't also count it as an intro nack
svn:r1666
2004-04-18 08:38:40 +00:00
Roger Dingledine
3fa2925a6a if an intro circ waiting for an ack dies before getting one, then
count it as a nack


svn:r1665
2004-04-18 07:37:16 +00:00
Roger Dingledine
8d86f8abf5 reverse the logic, captain
svn:r1664
2004-04-18 06:42:13 +00:00
Roger Dingledine
7a7baf0552 expire dir connections that live for more than 5 minutes
svn:r1663
2004-04-18 06:35:31 +00:00
Roger Dingledine
14c30fe9fa bugfix: give dir_conn a state before building the bridge, so it has
a state if things fail


svn:r1660
2004-04-17 20:19:43 +00:00
Roger Dingledine
65d507b980 log n_circ_ids when attaching rend streams
svn:r1657
2004-04-17 10:25:38 +00:00
Roger Dingledine
26dd5c68b0 a ! goes a long way toward more helpful debug messages
svn:r1656
2004-04-17 10:04:00 +00:00
Roger Dingledine
bd4a776576 include sys/limits.h if it's found
svn:r1654
2004-04-17 06:35:18 +00:00
Roger Dingledine
a54ded2879 util.c uses LONG_MAX, needs another include on fbsd 5.x
svn:r1653
2004-04-17 06:35:03 +00:00
Roger Dingledine
01e594e512 clean up some warnings
svn:r1651
2004-04-17 06:34:20 +00:00
Roger Dingledine
0e94b9ff77 more useful logs to track weasel's bug
svn:r1649
2004-04-17 05:17:40 +00:00
Roger Dingledine
f5427463f5 more debugging to hunt for a bug
svn:r1647
2004-04-17 01:33:04 +00:00
Roger Dingledine
8d62a36256 bugfix: when you sleep your hidden-service laptop, as soon
as it wakes up it tries to upload a service descriptor, but
socketpair fails for some reason (localhost not up yet?)

now we simply give up on that upload, and we'll try again later.


svn:r1646
2004-04-17 00:46:05 +00:00
Roger Dingledine
f36d7b8fea fix another rare bug: when we had tried all the intro
points for a hidden service, we fetched the descriptor
again, but we left our introcirc thinking it had already
sent an intro, so it kept waiting for a response...


svn:r1644
2004-04-16 14:35:28 +00:00
Roger Dingledine
ed24a4f807 fix a pair of duplicate mark-for-closes
svn:r1643
2004-04-16 14:26:23 +00:00
Roger Dingledine
f84fa39d87 when alice uses a port that the hidden service doesn't accept,
it now sends back an end cell (denied by exit policy). otherwise
alice would just have to wait to time out.


svn:r1642
2004-04-16 13:49:14 +00:00
Roger Dingledine
a0a6ed85d1 more useful logging for rend services and clients
svn:r1641
2004-04-16 11:48:03 +00:00
Roger Dingledine
359c1fb9aa wait a minute, weasel said there was a memory-stomping bug here
let's see if we find it


svn:r1639
2004-04-16 08:49:14 +00:00
Roger Dingledine
9c1470840f i was wrong about one of my invariants
now it's commented
this should fix asserts when you try an intro point, get a nack,
and try a second one and it works.


svn:r1637
2004-04-16 08:21:35 +00:00
Roger Dingledine
598d8b8f79 put in an extra assert, might find a bug these way
svn:r1636
2004-04-16 04:41:07 +00:00
Roger Dingledine
4c2de3a2b6 compress end-of-second summary into one line
svn:r1635
2004-04-15 22:09:14 +00:00
Roger Dingledine
4d380ea902 quiet a -l info that should be -l debug
svn:r1634
2004-04-15 22:08:37 +00:00
Nick Mathewson
880ffd8f64 Must detach before attaching, or else we infinite-loop
svn:r1632
2004-04-15 03:48:26 +00:00
Nick Mathewson
f6dd710aff Strings need room for a NUL.
svn:r1630
2004-04-15 02:02:46 +00:00
Nick Mathewson
3f352719f3 Add a missing return -1
svn:r1629
2004-04-15 01:23:43 +00:00
Roger Dingledine
26c1c8f173 make unattached rend streams expire after a while (60s)
(they were darned persistent)

also make intro circs that are waiting for acks expire after a while (20s)


svn:r1628
2004-04-15 01:08:59 +00:00
Roger Dingledine
ac38746b3b narrow in closer
svn:r1627
2004-04-15 00:03:48 +00:00
Roger Dingledine
b51561f7fb prune abandoned circs better
add debugging info for the bug weasel found


svn:r1626
2004-04-14 23:52:29 +00:00
Nick Mathewson
37255d24bc Retry non-final-hop rendezvous failures
svn:r1625
2004-04-14 21:40:50 +00:00
Nick Mathewson
94f126bca3 Never ever leave ri.platform unset.
svn:r1624
2004-04-14 19:51:57 +00:00
Roger Dingledine
cda782bac0 make rendezvous points work again
(yay. now time to mess them up again.)


svn:r1619
2004-04-14 05:18:21 +00:00
Roger Dingledine
49f5e5b4ae handle more purposes in new_route_len
svn:r1618
2004-04-14 05:06:08 +00:00
Roger Dingledine
465f0e528a call circuit_build_failed() even when the failure is immediate
svn:r1617
2004-04-14 04:32:49 +00:00
Nick Mathewson
ddd45a7c0a Do not segfault on missing intro points.
svn:r1616
2004-04-14 04:19:12 +00:00
Roger Dingledine
f07d880f38 remove unused variable
svn:r1615
2004-04-13 23:01:10 +00:00
Roger Dingledine
1d7979b460 let introcircs receive acks. rend streams now deal correctly again.
(i think)


svn:r1614
2004-04-13 22:56:24 +00:00
Nick Mathewson
5514ad715b Scan list of servers in directory after reloading fingerprint list; remove any servers that are no longer recognized.
svn:r1613
2004-04-13 20:06:08 +00:00
Nick Mathewson
baaf58fe1d only consider uploading descriptors every 5 sec
svn:r1612
2004-04-13 19:53:25 +00:00
Nick Mathewson
867832cd07 or, not and
svn:r1610
2004-04-13 18:44:42 +00:00
Nick Mathewson
d19abb2402 Handle END_STREAM_REASON_{EXITPOLICY|RESOLVEFAILED}
svn:r1609
2004-04-13 17:49:41 +00:00
Nick Mathewson
11ca973d26 Mark service descriptors as dirty when we have lost an intro point
svn:r1608
2004-04-13 17:20:41 +00:00
Nick Mathewson
a2ece0fc08 Separate "start-establishing-introduction" from "upload descriptors"; only upload descriptors containing fully established intro points.
svn:r1607
2004-04-13 17:16:47 +00:00
Roger Dingledine
e0ce205a76 clean up circuit rebuilding some; fix some bugs we hadn't hit yet
svn:r1606
2004-04-13 05:20:52 +00:00
Nick Mathewson
c9b5ca39de Handle the rendezvous-circ elements of retrying introductions.
svn:r1604
2004-04-13 03:19:58 +00:00
Nick Mathewson
a4d25bdbd9 <arma> you should make r and i and use r for r and i for i
svn:r1603
2004-04-13 02:36:37 +00:00
Nick Mathewson
e53ba59250 Handle introduce naks. Arma: Is this right?
svn:r1602
2004-04-13 02:31:52 +00:00
Nick Mathewson
8483bace65 Get the rest of intro-ack/nak handling in ... except for the tricky "pick a new intro and re-extend and re-try" part.
svn:r1601
2004-04-13 01:41:39 +00:00
Nick Mathewson
9cd163f6ff Have find_intro_circuit return non-open circs
svn:r1600
2004-04-13 01:15:06 +00:00
Nick Mathewson
5af7e27c62 Re-number the new relay command so as to maintain backward compatibility. Doh!
svn:r1598
2004-04-13 00:38:16 +00:00
Nick Mathewson
a5bfe84509 ACK/NAK INTRODUCE1 requests. (We do no useful processing on them yet)
svn:r1597
2004-04-12 23:33:47 +00:00
Roger Dingledine
f4ff5a75c1 break circuit_build_needed_circs into its own func
svn:r1596
2004-04-12 22:47:12 +00:00
Roger Dingledine
c5052bec95 normal circs are 3 hops, but rend/intro circs are 4, because
the initiator doesn't get to choose the last hop


svn:r1595
2004-04-12 18:40:14 +00:00
Nick Mathewson
fc5a766298 Use service IDs in rendmid. (rendclient and common require no changes, it seems)
svn:r1594
2004-04-12 18:10:28 +00:00
Roger Dingledine
2321d21b3b bump allowed rend desc skew from 60 mins to 90 mins
svn:r1593
2004-04-12 09:44:38 +00:00
Nick Mathewson
306adfc8bd Fix two dumb leaks in crypto.c
svn:r1592
2004-04-12 05:27:38 +00:00
Nick Mathewson
1dbf61e7e6 Use service id instead of hex id in rendservice.c log messages. Rendcommon and rendclient will follow tomorrow.
svn:r1591
2004-04-12 05:12:50 +00:00
Nick Mathewson
c024745bd4 Cosmetic patch for arma's fix for The Bug: Don't set the state to
RESOLVEFAILED if the resolve didn't fail; set it to CONNECTING
instead.


svn:r1590
2004-04-11 17:07:45 +00:00
Roger Dingledine
d8c954e156 continue beating at pieces of The Bug
svn:r1588
2004-04-09 21:31:09 +00:00
Roger Dingledine
23c193c065 if dns resolve is valid, but our exit policy rejects it or
the connect attempt fails immediately, we were trying to
double-remove it from the dns pending list.

i think this might have been The Bug.
(thanks weasel!)


svn:r1587
2004-04-09 21:06:14 +00:00
Roger Dingledine
8f8d185f4b give better instructions than just 'mail arma'
svn:r1586
2004-04-09 20:23:25 +00:00
Roger Dingledine
48e0228f1e expire old CIRCUIT_PURPOSE_C_REND_READY circs too
svn:r1585
2004-04-09 20:08:13 +00:00
Nick Mathewson
4e1b65f53d Dump introduction point status on kill -USR1
svn:r1584
2004-04-09 20:02:16 +00:00
Nick Mathewson
f9ade70cf9 Resolve init-services-in-do-hup issue
svn:r1583
2004-04-09 19:37:50 +00:00
Roger Dingledine
c80b42e17c don't call rend_services_init right before we fetch the
dir, because we call it right after now.


svn:r1582
2004-04-09 19:34:55 +00:00
Roger Dingledine
c5bef32d95 call directory_has_arrived has arrived every time we get
a new directory, not just the first time


svn:r1581
2004-04-09 19:30:38 +00:00
Nick Mathewson
c256f2c3a1 Make comment more sensible. Still uncertain about when to call rend_services_init, though.
svn:r1580
2004-04-09 17:54:20 +00:00
Nick Mathewson
e6964ed7e6 set rend exit connection state _before_ calling rend_service_set_connection_addr_port and maybe eventually assert_connection_ok. This solves the other half of the bug weasel found.
svn:r1579
2004-04-09 17:51:57 +00:00
Nick Mathewson
facb5d4221 Reload rendezvous service keys on sighup; otherwise, we wind up with a
bunch of half-initialized services.  This should solve half of
weasel's current bug.  The crash is the other half.

(arma: should we also call rend_services_init on hup?)


svn:r1578
2004-04-09 17:48:09 +00:00
Peter Palfrader
a1a4c5be19 Update cvsignores
svn:r1577
2004-04-09 13:14:52 +00:00
Roger Dingledine
4011906b6b get more serious about hunting The Bug
(it has been haunting us since the days of 0.0.2preX)


svn:r1576
2004-04-09 09:39:42 +00:00
Nick Mathewson
9b436c7f7a remove a stray printf
svn:r1575
2004-04-08 20:59:48 +00:00
Nick Mathewson
aa7cfd93e5 Fix base32 implementation; make base32 implementation follow standard; add more tests for base32
svn:r1574
2004-04-08 20:56:33 +00:00
Nick Mathewson
d237692396 Fix unit tests (now that platform code works differently)
svn:r1573
2004-04-08 20:22:01 +00:00
Roger Dingledine
3b97a54226 when rend_cache_store warns, give more detail
svn:r1572
2004-04-08 20:13:28 +00:00
Nick Mathewson
aa2189b406 note which preexisting or connection we found.
svn:r1571
2004-04-08 19:49:55 +00:00
Roger Dingledine
eb9f5a561e circuit-level sendmes weren't working, because the exit
thought it was an exit.

i overhauled the edge_type mechanism. hopefully this will help.


svn:r1570
2004-04-08 09:41:28 +00:00
Roger Dingledine
8e686d0c72 we added more AP conns, oops
svn:r1569
2004-04-08 07:25:54 +00:00
Roger Dingledine
4122e2de11 stop being so eager to have rend_cache_store reject the
service descriptor


svn:r1566
2004-04-08 05:08:27 +00:00
Nick Mathewson
bb46d782ab Be endianly-correct for rendezvous functionality
svn:r1565
2004-04-08 04:47:39 +00:00
Roger Dingledine
15de201041 log which intro points we picked
svn:r1564
2004-04-08 04:36:13 +00:00
Nick Mathewson
2a01e3ad10 Launch intro services after launching connections; allow ORs to build circuits through as-yet-unconnectd ORs
svn:r1562
2004-04-08 03:53:39 +00:00
Roger Dingledine
299df7117c don't try to circuit_log_path if you're at the exit edge of a circ
svn:r1561
2004-04-08 03:30:47 +00:00
Nick Mathewson
ede1d3e42d Invert strcasecmp check for supports-rendezvous
svn:r1560
2004-04-08 03:21:15 +00:00
Roger Dingledine
3e7c8a40bc bugfix: alice would crash if bob advertised 0 intro points
svn:r1559
2004-04-08 03:18:03 +00:00
Nick Mathewson
024c059fae Force tor_malloc(0) to always be sane
svn:r1558
2004-04-08 03:05:08 +00:00
Nick Mathewson
40f7324eea Allow service descriptors with no intro points
svn:r1557
2004-04-08 03:02:50 +00:00
Nick Mathewson
8351847afd Nothing is good enough for you, is it?
svn:r1556
2004-04-08 02:50:34 +00:00
Nick Mathewson
14e31fbd71 Use CIRCUIT_IS_ORIGIN in favor of boolean circ->cpath
svn:r1555
2004-04-08 02:24:06 +00:00
Roger Dingledine
ad2192c90f only call circuit_build_failed when we're circ's origin
svn:r1554
2004-04-08 02:22:26 +00:00
Roger Dingledine
36d7cc8529 make the max buf size 10 megabytes, not 1 megabyte
need to implement flexible buffer sizes soon


svn:r1553
2004-04-08 02:19:35 +00:00
Roger Dingledine
4d194ef13f clean up rend_client_get_random_intro
svn:r1552
2004-04-08 02:11:49 +00:00
Nick Mathewson
46c82e7dbe Set rend_query on exiting streams
svn:r1551
2004-04-08 02:10:43 +00:00
Roger Dingledine
584350feb8 don't log info when we asked for log warn
svn:r1548
2004-04-08 01:59:31 +00:00
Nick Mathewson
60772ec90c Split out major functionality of circuit_get_best; rephrase a few booleans
svn:r1547
2004-04-08 01:55:21 +00:00
Nick Mathewson
eaf7c61ebc Do not crash when no desc is found
svn:r1546
2004-04-08 01:54:02 +00:00
Roger Dingledine
9d38311ae3 allow for directories >8192 bytes
svn:r1545
2004-04-08 01:47:33 +00:00
Roger Dingledine
47488fa525 allow 90 minutes of clock skew, not 30
svn:r1544
2004-04-08 01:08:56 +00:00
Roger Dingledine
e32668ab13 clean up torrc.sample more
svn:r1543
2004-04-08 00:49:28 +00:00
Roger Dingledine
6cf584b765 clean up choose_good_exit_server()
svn:r1542
2004-04-07 23:31:29 +00:00
Roger Dingledine
63cde97253 don't try to build intro circs until you've fetched the directory
svn:r1541
2004-04-07 22:48:06 +00:00
Roger Dingledine
e79a578fec if the rend desc cache entry was fetched more than 15 mins ago,
then try to fetch a new one. but if the new fetch fails, use the
old one.


svn:r1540
2004-04-07 22:41:00 +00:00
Nick Mathewson
09e66bbd14 Freeing the same variable twice in rapid succession can sometimes cause a double-free
svn:r1539
2004-04-07 22:25:37 +00:00
Nick Mathewson
6649645f09 Insert a *copy* of our routerinfo into the routerlist.
svn:r1538
2004-04-07 22:18:57 +00:00
Nick Mathewson
b1537e7943 Rebuild and re-upload service descriptors every 15 minutes
svn:r1537
2004-04-07 22:06:54 +00:00
Nick Mathewson
b07b2cef29 Remember when we received which service desc.
svn:r1536
2004-04-07 22:00:54 +00:00
Nick Mathewson
4d14b786da Make sure we have our own keys before we initialize our routerlist
svn:r1535
2004-04-07 21:44:46 +00:00
Nick Mathewson
10b48fee28 Generating data does no good if you make no use of it
svn:r1534
2004-04-07 21:44:24 +00:00
Nick Mathewson
8169da5c30 Don't use Tor version 0.0.5 for intro/rendezvous points. (We don't need
to worry about 0.0.4 or earlier, because nobody is running them any more.)


svn:r1533
2004-04-07 21:36:03 +00:00
Roger Dingledine
93801ac40d don't pick myself or my twins as hops when building circuits
svn:r1531
2004-04-07 21:12:54 +00:00
Nick Mathewson
2633d353d7 Carefully increment failure counts when appropriate
svn:r1530
2004-04-07 20:59:38 +00:00
Roger Dingledine
4df06ab5bb let bob replenish his intro points and republish service desc
as necessary


svn:r1528
2004-04-07 20:47:50 +00:00
Roger Dingledine
505797e998 expire open-but-not-yet-acked circs if they're too old
svn:r1526
2004-04-07 20:38:23 +00:00
Roger Dingledine
650d483bea convince ourselves that circuit_failed doesn't have to be any smarter
svn:r1525
2004-04-07 20:23:59 +00:00
Nick Mathewson
789df20e7d There is no need to cast void* to other pointer types.
svn:r1524
2004-04-07 20:11:28 +00:00
Nick Mathewson
dfb009febb Repair whitespace in windows orconfig.h
svn:r1523
2004-04-07 20:01:51 +00:00
Nick Mathewson
3d60cd1d61 Delete trailing whitespace and expand tabs; remove unused aes decrypt code
svn:r1522
2004-04-07 19:57:40 +00:00
Nick Mathewson
75c19716a8 Put ourself in router list; act accordingly.
svn:r1521
2004-04-07 19:46:27 +00:00
Roger Dingledine
4a9587a486 we were uploading our server descriptor to each the dirservers
when we boot, and then also on the first iteration of the main loop


svn:r1520
2004-04-07 19:30:22 +00:00
Roger Dingledine
3c683a9e7c let alice reuse recent rendjoin circs
svn:r1519
2004-04-07 19:22:55 +00:00
Roger Dingledine
1f0769c470 mark a rend circ dirty when you attach to it
svn:r1518
2004-04-07 19:14:45 +00:00
Roger Dingledine
cf67520e95 when counting how many being-built circs will handle a stream,
don't count ones that are too old


svn:r1517
2004-04-07 19:14:33 +00:00
Roger Dingledine
90caa94662 routerinfo->addr is host order
svn:r1515
2004-04-07 06:17:27 +00:00
Nick Mathewson
fdb58e8ea3 Set routerinfo->addr properly for own routerinfo; do casei routerinfo compare
svn:r1514
2004-04-06 22:23:12 +00:00
Nick Mathewson
f24519e4b9 Set correct address and port mappings on outgoing rendezvous connections
svn:r1513
2004-04-06 22:05:49 +00:00
Roger Dingledine
95f0e36f08 alice just fetched bob's hidden webpage.
yay.


svn:r1512
2004-04-06 21:52:01 +00:00
Roger Dingledine
d473cf7ee9 set the circ windows on the middle hop of the rend circs
svn:r1511
2004-04-06 21:25:11 +00:00
Nick Mathewson
8b371c2aa5 router_choose_random_node wants a smartlist of routers, not of nicknames.
svn:r1510
2004-04-06 21:19:59 +00:00
Nick Mathewson
2fc106d210 Force hybrid encryption on for key negotiation
svn:r1509
2004-04-06 20:55:46 +00:00
Nick Mathewson
40a5d6055e Stupid sizeof operator!
svn:r1508
2004-04-06 20:45:44 +00:00
Nick Mathewson
2446996f97 Remove vestigial variable
svn:r1507
2004-04-06 20:42:25 +00:00
Roger Dingledine
5eca39cdb4 checkpoint commit: rend closer to working, still not there yet
svn:r1506
2004-04-06 20:25:18 +00:00
Nick Mathewson
ef438b894c Set handshake_state to NULL before appending cpath hops
svn:r1505
2004-04-06 20:23:58 +00:00
Nick Mathewson
6290d027c9 Continue attack on magic numbers; use new crypto wrappers where possible
svn:r1504
2004-04-06 20:16:12 +00:00
Nick Mathewson
ce51a30adc Remove the last tab in non-contributed code
svn:r1503
2004-04-06 03:46:37 +00:00
Nick Mathewson
257d509b91 Document stuff, reduce magic numbers, add emacs magic
svn:r1502
2004-04-06 03:44:36 +00:00
Roger Dingledine
6e6cbaad95 fix the bob-can't-decode-relays bug
now alice can send the begin and bob can receive it.


svn:r1499
2004-04-05 23:40:59 +00:00
Roger Dingledine
077f133257 don't detach-and-retry rendezvous streams
svn:r1498
2004-04-05 22:43:01 +00:00
Nick Mathewson
0f74b68edd make router_get_by_nickname consider this router.
svn:r1497
2004-04-05 22:22:42 +00:00
Roger Dingledine
2bb18e62cb make rend apconn send to the right cpath layer
and fix circuit_log_path to know about rend circs


svn:r1496
2004-04-05 22:01:35 +00:00
Nick Mathewson
62b7ae6c9d More symbolic constants for checking rendezvous1 cell lengths
svn:r1495
2004-04-05 21:40:22 +00:00
Nick Mathewson
283593ca1b Use correct payload lengths when sending RENDEZVOUS1 cells
svn:r1494
2004-04-05 21:39:47 +00:00
Nick Mathewson
d371dda8f9 Spec conformance: KH|"INTRODUCE" is only for establishing intro pt
svn:r1493
2004-04-05 21:39:18 +00:00
Nick Mathewson
536a9b6c28 Add a missing offset
svn:r1492
2004-04-05 21:31:53 +00:00
Nick Mathewson
5033c366e1 Use symbolic constants; make padding types match.
svn:r1491
2004-04-05 21:15:14 +00:00
Nick Mathewson
04e8dc9026 Implement response to RENDEZVOUS2 cell.
svn:r1490
2004-04-05 20:53:50 +00:00
Nick Mathewson
b1a8b208ca Make init_cpath_crypto able to handle both sides of handshake, by adding a "reverse" flag
svn:r1489
2004-04-05 20:53:04 +00:00
Nick Mathewson
34633c1122 add more constants
svn:r1488
2004-04-05 20:52:16 +00:00
Nick Mathewson
2d3aea40a4 It's amazing how wrong things look when you invert the booleans on your
sanity checks.


svn:r1487
2004-04-05 20:34:58 +00:00
Nick Mathewson
7b1939db2d Slightly more helpful msg on mismatched service pk digest in INTRODUCE2 cell
svn:r1486
2004-04-05 20:33:29 +00:00
Nick Mathewson
eafb8186e5 Do first half of Alice-side of DH handshake.
svn:r1485
2004-04-05 20:30:53 +00:00
Roger Dingledine
27126e5007 oaep uses 42 more bytes -- stop clobbering buffers
also maybe fix some constants here and there -- nick?


svn:r1484
2004-04-05 18:22:00 +00:00
Roger Dingledine
92bb5b2860 strdup the intro point when you pick it, so you
don't free it and then return it


svn:r1483
2004-04-05 17:56:34 +00:00
Roger Dingledine
ac84512489 complain early if we get an unrecognized nickname from
bob's rend service descriptor


svn:r1482
2004-04-05 17:51:00 +00:00
Nick Mathewson
12ede0a2c4 use the right variable when comparing hashes; maybe fix "Hash of session" bug
svn:r1481
2004-04-05 17:36:30 +00:00
Nick Mathewson
41387bea08 Expect a 20-byte nul-padded-and-terminated nickname
svn:r1480
2004-04-05 17:28:48 +00:00
Nick Mathewson
1e2b008700 Add some temporary log calls to try to debug the "Hash of session info was not as expected" problem
svn:r1479
2004-04-05 17:20:57 +00:00
Nick Mathewson
84b9e90d5f i2d_RSAPublicKey advances the pointer it receives past the ASN1-encoded string.
svn:r1478
2004-04-05 17:10:48 +00:00
Roger Dingledine
cebf16eaf0 if a rend stream has already been attached to a rend circ,
then don't attach it again (and again, and again, and...)


svn:r1477
2004-04-05 15:24:03 +00:00
Roger Dingledine
8a209bc4d3 send a destroy after we send an introduce
svn:r1476
2004-04-05 15:17:34 +00:00
Roger Dingledine
5b6099e8a2 more alice-side infrastructure
handle rendezvous acks,
do rend begin cells right,
send an introduction cell (sort of)
receive a rendezvous2 cell (sort of)


svn:r1475
2004-04-05 07:41:31 +00:00
Roger Dingledine
7793078dff alice can now look up bob's service descriptor,
choose an intro point, connect to it,
choose a rend point, connect to it and establish a cookie,
get an ack from the rendezvous point,
and know when both circs are ready for her.

APConns don't use conn->purpose anymore

don't initiate a renddesc lookup if one is already in progress

also fix a buffer overflow in nickname parsing (only exploitable
by the operator though)


svn:r1471
2004-04-05 00:47:48 +00:00
Nick Mathewson
a9813f0210 Implement acks
svn:r1470
2004-04-03 04:55:22 +00:00
Nick Mathewson
3af1191023 Add func to generate,set,and send rend cookie
svn:r1469
2004-04-03 04:22:22 +00:00
Nick Mathewson
82cde03ddc Make it build on linux
svn:r1468
2004-04-03 04:08:54 +00:00
Roger Dingledine
86f2ddc88d nick, can you make and send the rendezvous cookie?
svn:r1467
2004-04-03 04:05:30 +00:00
Nick Mathewson
b3c2b62a14 Make "common" no longer depend on or.h
svn:r1466
2004-04-03 04:05:12 +00:00
Nick Mathewson
cb07e2ad27 Strdup hates finding 0 bytes.
svn:r1465
2004-04-03 03:39:31 +00:00
Nick Mathewson
d93ff0b82f Handle rendezvous relay cells
svn:r1464
2004-04-03 03:37:11 +00:00
Roger Dingledine
7eaa655b6d publish and fetch the right rendezvous urls
svn:r1463
2004-04-03 03:33:57 +00:00
Nick Mathewson
ba196a9d17 Use (set|get)_uint(16|32) in lieu of memcpy where reasonable.
svn:r1462
2004-04-03 03:07:25 +00:00
Roger Dingledine
8a1ad2b84e more progress on alice's side
svn:r1461
2004-04-03 03:06:06 +00:00
Nick Mathewson
7451de5d97 Loops work better when they terminate. Non-terminating loops are easier
to diagnose when they don't trash the stack.


svn:r1460
2004-04-03 02:55:42 +00:00
Nick Mathewson
ffc58cd91a Build without warnings against openssl 0.9.6
svn:r1459
2004-04-03 02:43:09 +00:00
Nick Mathewson
137b577bbd Refactor the heck out of crypto interface: admit that we will stick with one ciphersuite at a time, make const things const, and stop putting openssl in the headers.
svn:r1458
2004-04-03 02:40:30 +00:00
Roger Dingledine
3dc3d0c4cc it's HiddenServiceDir
svn:r1457
2004-04-03 02:37:13 +00:00
Roger Dingledine
4e996a4ce8 tabs
svn:r1456
2004-04-03 02:14:20 +00:00
Roger Dingledine
8c19d6e3d7 alice can intercept y.onion requests, do a lookup on them via tor,
and receive a 404


svn:r1455
2004-04-03 01:59:53 +00:00
Roger Dingledine
15036380a8 no underscores in nicknames
svn:r1454
2004-04-03 01:48:22 +00:00
Nick Mathewson
99dc566c18 Add examples for hidden services
svn:r1453
2004-04-03 01:44:24 +00:00
Nick Mathewson
88e2a09c22 Startup without crashing.
svn:r1452
2004-04-03 01:11:04 +00:00
Nick Mathewson
fc4d15baf6 Hide smartlist internals
svn:r1451
2004-04-03 00:58:54 +00:00
Roger Dingledine
bbc9484957 fix some bugs; more remain
svn:r1450
2004-04-03 00:55:53 +00:00
Roger Dingledine
06c812c2de remember to lower-case the y in y.onion
svn:r1449
2004-04-03 00:27:33 +00:00
Roger Dingledine
2202c2c7ec AP conns use conn->rend_query now too
expose connection_ap_handshake_attach_circuit()


svn:r1448
2004-04-02 23:54:48 +00:00
Nick Mathewson
2bc2f1ed03 Finish renaming rend_service field
svn:r1447
2004-04-02 23:44:46 +00:00
Roger Dingledine
a8d805e292 break out circ->rend_service
(this breaks the compile; must fix things)

let alice react when she learns a new rendezvous descriptor

let alice launch intro and rend circuits and mark them with her query


svn:r1446
2004-04-02 23:38:26 +00:00
Nick Mathewson
e8345bfced refactor; start adding debugging logs to midpoint rend stuff
svn:r1445
2004-04-02 23:30:54 +00:00
Nick Mathewson
25a9bc594f Finish missing comment :p
svn:r1444
2004-04-02 23:04:10 +00:00
Nick Mathewson
08d748b6b3 Implement rennd_services_init
svn:r1443
2004-04-02 23:01:00 +00:00
Roger Dingledine
fc3d7383e7 router_choose_random_node can take a smartlist of nodes to exclude
svn:r1442
2004-04-02 22:30:39 +00:00
Roger Dingledine
f34e6da3e7 now circuit_get_newest returns an appropriate circ for your purpose
connection_ap_handshake_attach_circuit attaches to a circ of the
right purpose

add a skeletal rendclient.c


svn:r1441
2004-04-02 22:23:15 +00:00
Nick Mathewson
4cb21bab48 Make preferred/excluded intro points configurable
svn:r1440
2004-04-02 22:06:46 +00:00
Nick Mathewson
a981c4099a Implement midpoint functionality for rendezvous points.
svn:r1439
2004-04-02 21:56:52 +00:00
Nick Mathewson
79fc52170e For hidden services: handle INTRODUCE2, send ESTABLISH_INTRO, RENDEZVOUS1.
Also:
- Add a pending final cpath element to build_state
- Rename S_RENDEZVOUSING to S_CONNECT_REND
- Add [CS]_REND_JOINED
- Split out logic to initialize cpath crypto objects.
- Have circuits/cpaths remember the KH element from their handshake, so they
  can use it for other authentication later. (As in ESTABLISH_INTRO)


svn:r1438
2004-04-01 22:21:01 +00:00
Nick Mathewson
6b958494f3 refactor to use new digest/checksig wrapper, add emacs magic, untabify
svn:r1437
2004-04-01 22:12:00 +00:00
Nick Mathewson
cbbd13f789 Add new functions to wrap digest and sign/checksig.
svn:r1436
2004-04-01 22:10:33 +00:00
Roger Dingledine
64cb3a027f teach directory servers to handle renddesc responses
svn:r1434
2004-04-01 21:32:01 +00:00
Roger Dingledine
05b99bcf7d alice chooses her rendezvous node from all running routers
and she can set preferences in her options


svn:r1433
2004-04-01 20:33:29 +00:00
Nick Mathewson
103b8ead40 Finish implementing what-bob-does-on-INTRODUCE2
svn:r1432
2004-04-01 20:05:57 +00:00
Nick Mathewson
56b3d67149 Separate "generate-DH-key" from "get-DH-key" without breaking old interface
svn:r1431
2004-04-01 20:04:54 +00:00
Roger Dingledine
f05937355e teach alice to recognize y.onion addresses
svn:r1430
2004-04-01 19:39:11 +00:00
Nick Mathewson
7993382ba1 Add some hooks to handle rendezvous-related cells at ORs
svn:r1429
2004-04-01 04:07:09 +00:00
Roger Dingledine
cc3c4245cb let the circuit-launcher choose the exit node (if he wants)
svn:r1428
2004-04-01 03:44:49 +00:00
Nick Mathewson
9feb44d3c4 Make it compile.
svn:r1427
2004-04-01 03:43:54 +00:00
Nick Mathewson
c671b10695 Add a (also fragmentary) function to handle introduction requests
svn:r1426
2004-04-01 03:34:05 +00:00
Roger Dingledine
d01497cf3c outline what bob does to initialize his hidden services
let circuit_launch_new return the circ it just made


svn:r1424
2004-04-01 03:23:28 +00:00
Nick Mathewson
35f531b94f Add helpful hybrid encryption functions
svn:r1423
2004-04-01 03:08:35 +00:00
Roger Dingledine
36ff23209b let alice recognize a y.onion address and, uhm, do something
svn:r1422
2004-04-01 02:41:41 +00:00
Roger Dingledine
d13857a3f0 put in hooks for alice and bob logic when circuits finish/fail
let you specify the purpose of circuits you launch

bugfix: we used to be declaring the first successful circuit too                               early -- when the first hop finished. now we're more accurate.


svn:r1421
2004-04-01 01:57:22 +00:00
Nick Mathewson
6d8be5e6f6 Add relay command types for rendezvous
svn:r1419
2004-04-01 01:11:28 +00:00
Roger Dingledine
ee45ae575d allow conns to demand to be attached to a clean circuit
(nobody uses this yet)


svn:r1417
2004-03-31 23:06:16 +00:00
Roger Dingledine
d7cb4d0ae6 make changes that ben laurie suggested
(ben, was this what you had in mind?)


svn:r1415
2004-03-31 22:41:25 +00:00
Roger Dingledine
a0b0d16981 Add an ap_bridge function to do a socketpair and skip socks.
This allows us to do a directory connection *through* tor just
as if we're doing it as an application.

Make ap_conns tolerate it when the application sends stuff before
The socks handshake is done (it just buffers it).

Tell directory_initiate_command the length of the payload (because
it might include nuls).

Add a directory_has_arrived function to, for example, start building
the rendezvous service descriptor.


svn:r1412
2004-03-31 22:02:13 +00:00
Nick Mathewson
28adda81e6 Add missing file
svn:r1411
2004-03-31 21:54:56 +00:00
Nick Mathewson
bf83b1e345 Add code to configure hidden services, parse configuration, generate keys and service IDs, and store/load them from disk
svn:r1410
2004-03-31 21:35:23 +00:00
Nick Mathewson
157cd7fe15 Fix warning
svn:r1409
2004-03-31 20:58:35 +00:00
Roger Dingledine
b4a61d1ab1 better way: always nul-terminate. then sometimes use it, sometimes not.
svn:r1408
2004-03-31 05:10:34 +00:00
Roger Dingledine
87dbd36a3c let fetch_from_buf_http tolerate nuls in the http body
teach directory.c about which places it needs to nul-terminate
body before it uses it, and which places it must not


svn:r1407
2004-03-31 05:01:30 +00:00
Nick Mathewson
8fedefe6cb rename hidserv_xx
svn:r1406
2004-03-31 04:10:10 +00:00
Nick Mathewson
b32440a028 Implement hidserv_XX functions; there is still an XXX in directory_handle_command
svn:r1404
2004-03-31 03:42:56 +00:00
Nick Mathewson
6ea61d5e0d Parse and generate service descriptors
svn:r1403
2004-03-31 02:07:38 +00:00
Roger Dingledine
670aeb6c8d add and use stubs for hidserv lookup and store
svn:r1402
2004-03-30 23:41:24 +00:00
Nick Mathewson
93ab51e9ac Make smartlist Do What Arma Expects.
svn:r1401
2004-03-30 22:59:00 +00:00
Roger Dingledine
2d3ac08633 Refactor directory servers
* read all the time (before we would ignore eof sometimes, oops)
* we can handle different urls now
* send back 404 for an un-handled url
* commands initiated by the client can handle payloads now
* introduce conn->purpose to avoid exponential state-space explosion


svn:r1400
2004-03-30 22:57:49 +00:00
Nick Mathewson
919a8f236e Resolve type-punning warnings
svn:r1399
2004-03-30 22:50:49 +00:00
Nick Mathewson
c31f5505da Jump through a hoop, suppress a warning
svn:r1398
2004-03-30 22:42:26 +00:00
Nick Mathewson
96a86ef14d Remove maximum-size field from smartlists
svn:r1397
2004-03-30 20:05:52 +00:00
Nick Mathewson
0ba9ab5fb0 Add rendezvous-related metadata and code to circuits. Initially, we
thought that a complicated adjunct structure would be necessary, but
it doesn't look that way anymore.

Of course, I might have forgotten something.


svn:r1396
2004-03-30 19:52:42 +00:00
Nick Mathewson
6ea95488d2 Add more key manipulation functions, and base32 functions, to crypto
svn:r1395
2004-03-30 19:47:32 +00:00
Nick Mathewson
abcf3d9341 Make smartlists start small and grow as needed.
svn:r1394
2004-03-30 19:25:43 +00:00
Roger Dingledine
524312494b use 'notice' loglevel for things the operator should hear
but that aren't warnings


svn:r1384
2004-03-30 03:15:53 +00:00
Roger Dingledine
0864d3f484 add in a 'notice' log level
svn:r1383
2004-03-30 03:15:23 +00:00
Roger Dingledine
f796957182 don't freak people out as much with the warning message
svn:r1378
2004-03-30 00:06:59 +00:00
Roger Dingledine
c09b185f03 re-enable recommendedversion checking (oops, thanks weasel)
svn:r1376
2004-03-30 00:02:52 +00:00
Roger Dingledine
ce200ae133 rename torrc to torrc.sample
now by default no torrc will be installed, so we'll just
use the built-in defaults (we already do this on windows)


svn:r1375
2004-03-30 00:01:03 +00:00
Roger Dingledine
83c88c55fd old or skewed descriptor doesn't mean we failed to parse it
svn:r1373
2004-03-29 23:23:01 +00:00
Roger Dingledine
ce08baba1b refactor directories a smidgen
svn:r1371
2004-03-29 22:18:05 +00:00
Roger Dingledine
9723061dd9 first guess at a set of circuit purposes
svn:r1370
2004-03-29 22:14:19 +00:00
Roger Dingledine
bcda3ebaef bugfix: we were closing socks-request connections immediately, rather
than flushing them, if they were timing out before we marked them


svn:r1366
2004-03-29 20:04:09 +00:00
Roger Dingledine
7118c6177d clean up a few more bugs
svn:r1365
2004-03-29 19:57:50 +00:00
Roger Dingledine
155c777a84 fix typo
svn:r1364
2004-03-29 19:53:53 +00:00
Roger Dingledine
0edf0ea7cc make normal exit nodes less likely to crash from the conn-munging bug
but leave dirservers just as likely to crash


svn:r1363
2004-03-29 19:51:39 +00:00
Nick Mathewson
6a79b1cb57 Re-enable unit tests for directory generation.
svn:r1362
2004-03-29 19:50:59 +00:00
Nick Mathewson
0e6084d751 Remove descriptors that are older than 24 hours from the directory. Use strlcat instead of strncat to generate directories.
svn:r1361
2004-03-29 19:28:16 +00:00
Nick Mathewson
47b9d4439a Possible fix for c99 aliasing warnings
svn:r1360
2004-03-29 06:18:04 +00:00
Roger Dingledine
8c3999c964 make it less noisy for normal ORs when a server uses a false nickname
svn:r1359
2004-03-28 21:35:02 +00:00
Roger Dingledine
4a5586b8e3 make dns resolves a lot faster
(but only enable this once we've found the bug)


svn:r1358
2004-03-28 21:16:52 +00:00
Roger Dingledine
2ba9901cb4 oh, i forgot to enable the find-munged-conn function
svn:r1357
2004-03-28 21:14:05 +00:00
Roger Dingledine
e6a2e03524 hold socks reply open until flushed (if possible)
svn:r1356
2004-03-28 09:48:21 +00:00
Roger Dingledine
f241fdfc73 there is yet another dns-pending-conn-clobbering bug
somewhere


svn:r1354
2004-03-28 04:54:36 +00:00
Roger Dingledine
56dfc3151f work around a tsocks bug
when an AP connection dies early, be sure to do a socks reject
for it. if you just hang up, tsocks goes into an infinite loop.


svn:r1352
2004-03-27 05:45:52 +00:00
Roger Dingledine
9ab5f3c067 fix an assert trigger where an OP would fail to handshake, and we'd
expect it to have a nickname.


svn:r1351
2004-03-27 01:28:14 +00:00
Roger Dingledine
47b40de0aa only build circuits after we've fetched the directory
this resolves a subtle bug where tor clients were preferentially using
the directory servers, since when they start building circuits they
know only about the directory servers

on the other hand, it now takes longer after startup before there's
a working circuit. so it goes.


svn:r1350
2004-03-27 00:15:09 +00:00
Roger Dingledine
f2a692081f make it less noisy to consider exit policies
svn:r1349
2004-03-27 00:13:27 +00:00
Roger Dingledine
32e268c61b oops, 0.0.4 is more broken than 0.0.3
maybe this will fix it


svn:r1347
2004-03-26 23:37:13 +00:00
Roger Dingledine
45699bb5ee clean up some 'warn' messages while i'm at it
svn:r1342
2004-03-26 22:28:16 +00:00
Roger Dingledine
9c69f14a49 fix two assert triggers (darn it, I hate releasing software)
when connecting to a dirserver or OR and the network is down,
we would crash.


svn:r1340
2004-03-26 22:07:45 +00:00
Roger Dingledine
4d747cd954 a missing comma could wreak all sorts of havoc.
svn:r1335
2004-03-26 18:29:05 +00:00
Nick Mathewson
d44e3ad809 Remove unused open circuits when there are too many, not when they are too old.
svn:r1332
2004-03-21 06:33:57 +00:00
Nick Mathewson
b3f6b55ea1 Dont expire circuits we didnt originate. This may be redundant somehow, but better safe than sorry.
svn:r1331
2004-03-21 05:01:06 +00:00
Nick Mathewson
b69f5f3e1b Add an autoconf test for whether unaligned int access is permitted.
It works on macos, and works correctly when I twiddle the test code to
generate a spurious segfault.  Will it work anywhere else?


svn:r1329
2004-03-21 04:14:06 +00:00
Nick Mathewson
f608b85ddf Replace all connection_removes outsice of main.c with connection_mark_for_close
svn:r1328
2004-03-21 03:18:45 +00:00
Nick Mathewson
b7c2b18bd6 Add a RunTesting option to try to learn link state by creating test circuits, even when SocksPort is off.
svn:r1327
2004-03-21 03:03:10 +00:00
Nick Mathewson
0d8feba6d8 Add macros and functions to wrap memcpy/alignment logic.
svn:r1326
2004-03-21 02:01:17 +00:00
Roger Dingledine
3d2c6c7cfa catch signals in a more portable way, so solaris can catch them too
svn:r1324
2004-03-20 23:27:22 +00:00
Roger Dingledine
d10fcc89ec make uname() more likely to work on solaris
(linux says 0 is success, solaris says 1 is success)


svn:r1322
2004-03-20 21:22:16 +00:00
Roger Dingledine
ed0ef86c0e make OR not crash when non-OR connection dies
svn:r1319
2004-03-20 20:37:49 +00:00
Roger Dingledine
568a4e0a04 warn and fail if server chose a nickname with illegal characters
svn:r1318
2004-03-20 20:28:53 +00:00
Roger Dingledine
4f0bad280d make servers not crash when they rep-hist-note circuits that don't start at them
svn:r1317
2004-03-20 20:21:20 +00:00
Roger Dingledine
66f878513f deal with hardware word alignment
this was causing the seg faults on sparc processors

i wonder if i got them all.


svn:r1314
2004-03-20 09:30:30 +00:00
Nick Mathewson
2ba2f02181 Integrate the new "rephist" [rep(utation) hist(ory)] module to trace
successful/failed connections, successful/failed extends, and
connection uptimes.

It's still not done: more tests are needed, and not everything calls
connection/circuit_mark_for_close properly.  This skews the results.

Also, there needs to be a 'testing' mode for non-OP ORs, where they
periodically build circuits just to test whether extends work.


svn:r1313
2004-03-20 04:59:29 +00:00
Nick Mathewson
da9d5ccfda Add initial history-tracking backend code for reputation module. Not called or tested yet.
svn:r1310
2004-03-20 01:48:05 +00:00
Nick Mathewson
b0ef4e1143 Use strmap code for client DNS.
svn:r1309
2004-03-20 01:21:19 +00:00
Nick Mathewson
9199696182 Add some wrappers around SPLAY_* for the common map-from-string-to-X case.
It will probably be less blindingly fast than using SPLAY_* directly, but
only slightly so.


svn:r1306
2004-03-19 22:07:24 +00:00
Roger Dingledine
df3f37b84f getpid returns a pid_t. we all know that's an int. but solaris doesn't know.
svn:r1305
2004-03-19 21:34:04 +00:00
Roger Dingledine
c195f69058 isspace and friends take an int. solaris cares.
svn:r1303
2004-03-19 20:50:12 +00:00
Roger Dingledine
6438a5db08 ship strlcat and strlcpy with the tarball, but don't compile them
svn:r1297
2004-03-19 06:39:52 +00:00
Roger Dingledine
7648c6c0ea define INADDR_NONE so we compile on solaris
svn:r1295
2004-03-18 19:59:39 +00:00
Roger Dingledine
208625ae31 clean up some presentation and comments
svn:r1294
2004-03-18 19:22:56 +00:00
Nick Mathewson
971b002d93 Include strlcpy and strlcat where not available, so our string ops can be less error-prone.
svn:r1289
2004-03-17 07:28:09 +00:00
Roger Dingledine
a346889e94 make directory format tests quiet again
svn:r1287
2004-03-15 05:13:25 +00:00
Roger Dingledine
0b9c140102 make it warn about internal IPs not only if we had to guess,
but also if they used a hostname rather than an IP


svn:r1285
2004-03-15 04:57:24 +00:00
Roger Dingledine
70cc557a18 only complain about private IPs if we had to guess
svn:r1279
2004-03-15 04:04:16 +00:00
Roger Dingledine
be18884765 and another one
svn:r1278
2004-03-15 04:00:14 +00:00
Roger Dingledine
6a2821a7ff fix a byte order bug
svn:r1277
2004-03-15 04:00:11 +00:00
Roger Dingledine
fdc5751c60 bugfix: address that strcat vulnerability in circuit.c
svn:r1273
2004-03-14 22:47:11 +00:00
Roger Dingledine
5d41346b67 prevent servers from publishing an internal IP as their address
svn:r1272
2004-03-14 18:12:59 +00:00
Roger Dingledine
f55ff5b8d2 teach us to recognize internal IPs
svn:r1271
2004-03-14 18:07:46 +00:00
Roger Dingledine
74ef3a63ae bugfix: decrement OR connections from global_bucket too
bugfix: don't return immediately for has_pending_tls_data unless
        the conn is allowed to read


svn:r1270
2004-03-14 17:06:29 +00:00
Roger Dingledine
703b2d3cf8 refactor bandwidth-control token buckets
this is a checkpoint commit; there still remain some
bugs, er, somewhere.


svn:r1269
2004-03-14 16:00:52 +00:00
Roger Dingledine
3ccd545c9a crash when our logs go bad
nick, can you think of a better response here?


svn:r1268
2004-03-14 15:50:00 +00:00
Roger Dingledine
1ae45b771e don't close all the fd's when you spawn a thread, only when you fork
svn:r1267
2004-03-12 21:52:15 +00:00
Roger Dingledine
965a73dc71 bugfix: we were caching transient dns failures
svn:r1266
2004-03-12 18:45:42 +00:00
Roger Dingledine
45a3f6b97c more pesky tabs
svn:r1265
2004-03-12 13:02:16 +00:00
Roger Dingledine
87797bcde5 get rid of those pesky tabs
svn:r1264
2004-03-12 13:00:34 +00:00
Roger Dingledine
6af8d0606f inform unapproved servers when we reject their descriptors
svn:r1263
2004-03-12 12:43:13 +00:00
Roger Dingledine
623cb0e311 more details when a conn is closed before it's done flushing
svn:r1262
2004-03-12 08:16:48 +00:00
Roger Dingledine
52e813951a start tracking the 'broken pipe' error
svn:r1261
2004-03-11 20:15:53 +00:00
Nick Mathewson
976bacae94 Make all the other read/writes into recv/sends, except when they shouldn't be.
svn:r1260
2004-03-11 06:35:03 +00:00
Nick Mathewson
060d721554 UnDOSify CRLF->LF.
svn:r1259
2004-03-11 06:22:53 +00:00
Nick Mathewson
9b4203266e Make OP work on windows! (Also misc logging tweaks)
svn:r1258
2004-03-11 06:19:08 +00:00
Nick Mathewson
59e2c77824 Get entropy in windows.
svn:r1257
2004-03-11 05:14:06 +00:00
Roger Dingledine
8e4f1f67fa actually, if recommendedversions is required for dirservers,
then require it.


svn:r1253
2004-03-10 07:44:31 +00:00
Roger Dingledine
3ba392e69f give a useful error message to clients when the dirserver hasn't
defined any recommended versions


svn:r1252
2004-03-10 07:02:56 +00:00
Nick Mathewson
2f103ccf6f Some stuff *should* be signed
svn:r1251
2004-03-10 06:57:57 +00:00
Nick Mathewson
d877aac5ad Make windows version correct; initialize windows foolishness so that gethostbyname works.
svn:r1250
2004-03-10 06:26:38 +00:00
Nick Mathewson
c230132562 Fix some bugs in parse_time
svn:r1249
2004-03-09 22:17:35 +00:00
Nick Mathewson
0e5a134709 Fix DOS line endings; autoconfize checks for strptime and inet_aton
svn:r1248
2004-03-09 22:09:13 +00:00
Nick Mathewson
2da54de968 Make tor build on windows again. More work still needed
svn:r1247
2004-03-09 22:01:17 +00:00
Roger Dingledine
30969421d3 stop troubling router operators with unapproved router connect attempts
but give the dirserver operator more information


svn:r1246
2004-03-09 14:53:00 +00:00
Roger Dingledine
416993afc1 bugfix: only set conn->hold_open_until_flushed after marking
svn:r1245
2004-03-08 01:19:57 +00:00
Roger Dingledine
6e22801e0f when you get a desc from an unknown router, log its fingerprint
svn:r1244
2004-03-08 00:15:40 +00:00
Roger Dingledine
20f11f1800 clarifying comment for crypto_pk_get_fingerprint
svn:r1243
2004-03-08 00:11:37 +00:00
Roger Dingledine
0ab367ed91 re-try streams at most 4 times
svn:r1242
2004-03-07 23:50:15 +00:00
Roger Dingledine
694d287774 improve comments for server operators (maybe)
svn:r1241
2004-03-07 10:18:15 +00:00
Roger Dingledine
10cee8b7f7 fix a rare race condition: when we send a cell and then
mark an OR connection expired, we might close it before
finishing a flush if the other side isn't reading.


svn:r1240
2004-03-06 06:05:00 +00:00
Roger Dingledine
516ef41ac1 if a stream times out after 15s without a connected cell,
don't try that circuit again.


svn:r1239
2004-03-06 05:10:07 +00:00
Roger Dingledine
c362ed877d if the directory client hangs up before getting the directory,
then give up on him


svn:r1238
2004-03-06 05:09:33 +00:00
Roger Dingledine
6c9d78b319 stop asserting that computers always go forward in time
it's simply not true


svn:r1236
2004-03-06 01:43:37 +00:00
Nick Mathewson
1e5b7bc6f1 New, more flexible directory parsing backend. Uses a bit more RAM, but implements the new spec. Uses more RAM, but not so you would notice.
svn:r1235
2004-03-05 05:48:28 +00:00
Roger Dingledine
01e06148a1 make workers explain their death better when tor dies
and make them say it at log level info rather than err


svn:r1232
2004-03-04 21:26:23 +00:00
Roger Dingledine
8fe504fee6 bugfix: don't pass complex things to the connection_mark_for_close macro
svn:r1231
2004-03-04 20:49:38 +00:00
Nick Mathewson
c03e9206ae Clean up dns->connection_mark_for_close->dns_remove path
svn:r1230
2004-03-04 18:43:44 +00:00
Roger Dingledine
89d9d80e76 Store options->Address as IP, not hostname
And figure it out while reading config, not every time you
rebuild the descriptor


svn:r1226
2004-03-04 01:53:56 +00:00
Nick Mathewson
b7633e2e67 Try to find out early if buffers get trashed or double-freed.
svn:r1225
2004-03-03 22:49:15 +00:00
Roger Dingledine
5e2e6555a2 and a minor patch
svn:r1215
2004-03-03 08:48:32 +00:00
Roger Dingledine
419a672222 holding until flush was borked
we were never writing anything when hold_open_until_flushed was set,
since conn_write returns early if marked_for_conn is set.

seems a bit better now.


svn:r1214
2004-03-03 08:46:18 +00:00
Roger Dingledine
6022bfea11 better debugging for lonely flushes
svn:r1213
2004-03-03 07:26:58 +00:00
Roger Dingledine
d8e5f3a3a2 close immediately when write() fails too, else things will turn bad
svn:r1212
2004-03-03 07:26:34 +00:00
Roger Dingledine
dbdd2eaa2a don't mark_for_close again when the destroy arrives after the end cell
svn:r1211
2004-03-03 07:24:53 +00:00
Roger Dingledine
3c71d09402 use conn->hold_open_until_flushed for streams
and also note/fix a variety of other stream-based bugs


svn:r1210
2004-03-03 06:26:34 +00:00
Nick Mathewson
f4e4dac801 Implement hold_open_until_flushed. I may have missed something important.
svn:r1209
2004-03-03 05:08:01 +00:00
Roger Dingledine
8275e2302c make socks5 not give a spurious warning
also rename AP_CONN_STATE_CONNECTING to _CONNECT_WAIT


svn:r1208
2004-03-03 04:54:16 +00:00
Roger Dingledine
77bb3e054e reenable part of assert_circuit_ok, leave some still disabled
svn:r1207
2004-03-03 04:11:18 +00:00
Roger Dingledine
de146de0c5 make circuit-building less noisy when a node in your exclude/exit/entrynodes is down
svn:r1206
2004-03-03 03:02:06 +00:00
Nick Mathewson
20ecb66c7d Fix (maybe) assert_circuit_ok. leave it disabled till arma confirms
svn:r1205
2004-03-03 02:24:17 +00:00
Nick Mathewson
5a053a6a81 remove redundant check
svn:r1204
2004-03-03 02:14:35 +00:00
Nick Mathewson
6379dbbe2a warn more when losing data on closed/marked connections.
svn:r1203
2004-03-03 02:07:57 +00:00
Roger Dingledine
49281424ae bugfix: close_immediate called buf_clear but listeners don't have bufs
svn:r1202
2004-03-03 01:58:45 +00:00
Nick Mathewson
5985aef18a Nth time is the charm on list manip.
svn:r1201
2004-03-03 01:37:54 +00:00
Roger Dingledine
4f6cf727b9 fix a pair of lurking segfaults
svn:r1198
2004-03-02 18:08:07 +00:00
Nick Mathewson
6f3c6d1289 Split out mark_for_close with circuits. Seems to work for me.
svn:r1197
2004-03-02 17:48:17 +00:00
Nick Mathewson
a1e4c6dc85 Fix assertion failure spotted by arma.
Apparently, when a DNS failure was already cached, then when we tried
to mark the exit connection as closed, we'd try to remove it from the
pending queue anyway, and hit an assert.  Now, we put failed-resolve
connections in a separate state so that mark_for_close does the right
thing.


svn:r1196
2004-03-02 07:24:11 +00:00
Roger Dingledine
b961732246 add --version, note that --help is probably obsolete
svn:r1195
2004-03-02 05:19:01 +00:00
Roger Dingledine
1147289dc0 make config_assign fail rather than warn for unrecognized config options
svn:r1194
2004-03-02 05:00:50 +00:00
Roger Dingledine
08346f13f0 make parse_line_from_file fail rather than warn for malformed lines
svn:r1193
2004-03-02 04:59:52 +00:00
Roger Dingledine
f81ad1550e note an assert trigger bug
nick, want to fix this? :)


svn:r1192
2004-03-01 12:37:45 +00:00
Nick Mathewson
5072488a95 make 'make test' exit(1) if a test fails.
svn:r1190
2004-03-01 06:45:32 +00:00
Roger Dingledine
2c341cd032 put switch_id and start_daemon earlier
svn:r1188
2004-02-29 22:34:38 +00:00
Roger Dingledine
e2881631cf fix duplicate call to connection_mark_for_close
svn:r1187
2004-02-29 22:07:44 +00:00
Roger Dingledine
2ac37c64f2 bugfix: we were checking the wrong thing to see if 'reason'
was out of range


svn:r1186
2004-02-29 22:04:52 +00:00
Roger Dingledine
8e5c1921fc when a stream is 15s late, print out the circuit at -l warn
svn:r1180
2004-02-29 09:15:29 +00:00
Roger Dingledine
ef5f917e9e print a statement when the first circ is finished,
so the user knows it's working


svn:r1179
2004-02-29 03:52:38 +00:00
Roger Dingledine
4716d4d871 bugfix: only warn about an unrouter router after we've fetched a directory
svn:r1178
2004-02-29 01:31:33 +00:00
Roger Dingledine
b4338ce704 disable buffer tests, until we rewrite them (one of them fails)
svn:r1177
2004-02-29 00:15:20 +00:00
Roger Dingledine
195ee8c845 create a separate connection_edge_destroy() function
svn:r1176
2004-02-29 00:11:37 +00:00
Roger Dingledine
62d3df8633 bugfix: when we time out on a stream and detach, send an end first
svn:r1175
2004-02-28 23:56:50 +00:00
Roger Dingledine
ae67c48805 bugfix: in some cases, connection_mark_for_close wasn't marking the conn
svn:r1174
2004-02-28 23:52:56 +00:00
Roger Dingledine
3fb9c869a8 clearer warning message
svn:r1173
2004-02-28 23:31:15 +00:00
Roger Dingledine
c058f87513 disallow changing from ORPort==0 to ORPort>0 on hup
svn:r1172
2004-02-28 23:30:41 +00:00
Roger Dingledine
928db6dadc cwd to datadir if it's defined, rather than /
this way people can get cores if they want to


svn:r1171
2004-02-28 23:23:06 +00:00
Roger Dingledine
5cf0b6224b bugfix: stop trying to write to a stderr that may not be there
also, tell start_daemon our desired cwd


svn:r1170
2004-02-28 23:21:29 +00:00
Roger Dingledine
5701cc2359 fix the function comment
svn:r1169
2004-02-28 22:34:47 +00:00
Nick Mathewson
0a673f4491 Split dns_cancel_pending_resolve into dns_cancel_pending_resolve (kill a
resolve in response to a DNS worker dying) and connection_dns_remove (remove
a pending connection from the resolve structure.)


svn:r1168
2004-02-28 22:23:44 +00:00
Roger Dingledine
9a55700747 add a log_warn to notify us of yet another potential dns.c bug
svn:r1167
2004-02-28 22:13:58 +00:00
Nick Mathewson
833d14246d Make dns_cancel_pending_resolve less agressive.
svn:r1166
2004-02-28 22:06:59 +00:00
Nick Mathewson
55174d1cb0 Fix bug on dns_found_answer from mark_to_close stuff.
svn:r1165
2004-02-28 21:52:58 +00:00
Roger Dingledine
fadfd26188 remove assert from dns.c that's no longer true:
typically the resolve will be pending, but it could be failed if it
just failed and we're working through the 'pending' list, or it could
be valid if some other dnsworker raced us to fill in the entry.


svn:r1164
2004-02-28 21:49:10 +00:00
Nick Mathewson
f039eca658 Stop trying to flush on broken sockets marked for close.
svn:r1163
2004-02-28 19:14:11 +00:00
Roger Dingledine
80410fa8dc some comments to point nick at the latest bugs
svn:r1162
2004-02-28 11:48:22 +00:00
Roger Dingledine
d1deb753db better explain exit policies in the torrc
svn:r1161
2004-02-28 11:44:07 +00:00
Roger Dingledine
cec2eee533 enable assert_connection_ok()
we weren't actually asserting much. oops.


svn:r1160
2004-02-28 07:51:30 +00:00
Roger Dingledine
70c43e152a note bug in assert_connection_ok
svn:r1159
2004-02-28 07:48:28 +00:00
Roger Dingledine
dd632e697e clean up some log messages and severities
still plenty more left to clean


svn:r1158
2004-02-28 07:01:22 +00:00
Roger Dingledine
a24b6e6d4f make flush_buf have a sane return convention
svn:r1157
2004-02-28 05:22:07 +00:00
Roger Dingledine
b354ecfecd rename ExcludedNodes config option to ExcludeNodes
svn:r1155
2004-02-28 05:09:37 +00:00
Roger Dingledine
3a1a6bb09e if a relay cell is unrecognized at the end of the circuit,
send back a destroy


svn:r1153
2004-02-28 04:48:46 +00:00
Roger Dingledine
e59f19ca03 some more small fixes
svn:r1152
2004-02-28 04:44:48 +00:00
Nick Mathewson
b4a7883c90 make code more readable; arrbitrarily change a -1 to a 0.
svn:r1151
2004-02-28 04:34:27 +00:00
Nick Mathewson
ee68371f41 Stop answering "end" with "end"
svn:r1150
2004-02-28 04:25:54 +00:00
Nick Mathewson
4e89c6661a Push responsibility for connection marking down as far as possible; have only a close path; add some missing end cells; change return conventions a little.
svn:r1149
2004-02-28 04:11:53 +00:00
Nick Mathewson
88e222ff76 Make has_sent_end irrelevant: only try to send end if reason is nonzero
svn:r1148
2004-02-28 03:06:31 +00:00
Roger Dingledine
d0ad9b147a and another one
svn:r1147
2004-02-27 23:30:27 +00:00
Roger Dingledine
611f117ce1 patches/answers to nick's commit
svn:r1146
2004-02-27 23:23:33 +00:00
Nick Mathewson
c5bbb571d2 Refactor mark_for_close, connection_edge_end and friends. Now, everybody
who wants to shut down a connection calls connection_mark_for_close instead
of setting marked_for_close to 1.  This automatically removes the connection
from the DNS cache if needed, sends a RELAY END cell if appropriate, and can
be changed to do whatever else is needed.

Still to do:
  - The same for circuits, maybe.
  - Add some kind of hold_connection_open_until_flushed flag, maybe.
  - Change stuff that closes connections with return -1 to use mark_for_close,
    maybe.


svn:r1145
2004-02-27 22:00:26 +00:00
Roger Dingledine
737b2a0bf1 make 'connected' cells include the resolved IP
svn:r1143
2004-02-27 04:52:02 +00:00
Roger Dingledine
195dfd35a8 Fix a bug where you might flush some data on a tls connection, and then
add some more data to be flushed but never turn POLLOUT on. not sure
how commonly this bug was hit, but it would be a doozy.

Also add some asserts to see if it happens elsewhere.


svn:r1142
2004-02-27 04:42:14 +00:00
Roger Dingledine
1b3c197fad clean up an ia64 warning
svn:r1140
2004-02-27 01:59:36 +00:00
Peter Palfrader
1bc2384c5a Give the nice message about not being an HTTP proxy an <h1> headline
svn:r1139
2004-02-27 01:33:02 +00:00
Roger Dingledine
d3e9afda27 When it can't resolve any dirservers, it was useless from then on.
Now it reloads the RouterFile (or default dirservers) if it has no
dirservers.


svn:r1130
2004-02-26 22:56:36 +00:00
Roger Dingledine
4c48359ece break out the operations done on sighup into their own function
svn:r1129
2004-02-26 22:30:44 +00:00
Roger Dingledine
43156904ce dump a new router.desc on hup
svn:r1128
2004-02-26 22:20:00 +00:00
Roger Dingledine
2c74f19d7e writing html in C strings sucks
svn:r1127
2004-02-26 22:10:55 +00:00
Roger Dingledine
8f2b429a3b when they use tor as an http proxy, give them an http 501 failure
svn:r1126
2004-02-26 22:02:22 +00:00
Roger Dingledine
0b27ae0c2d if the default torrc isn't there, just use some default defaults
plus provide an internal dirservers file if they don't have one

having no config files will make it easier to run on windows


svn:r1124
2004-02-26 21:25:51 +00:00
Nick Mathewson
496e414e52 Basic RAM poisoning and magic-checking to notice connection and circuit
corruption faster; also, check for corruption in dns.c so we can fail fast
for the bug that's nailing Lucky and moria3.


svn:r1123
2004-02-25 07:31:46 +00:00
Roger Dingledine
1b25794a56 bugfix: if the exit stream is pending on the resolve, and a destroy
arrives, then the stream wasn't getting removed from the pending list.

this may have been the lucky-bug.
this commit may also not actually fix the bug. it's darn hard to
reproduce.


svn:r1122
2004-02-25 06:57:57 +00:00
Roger Dingledine
8da2e00a83 remove dead code
svn:r1121
2004-02-25 06:56:11 +00:00
Roger Dingledine
01e7b8638d move the tor program back to usr/bin/
svn:r1119
2004-02-25 06:41:21 +00:00
Roger Dingledine
7985f525ec fix some bugs in assert_connection_ok
svn:r1118
2004-02-24 22:33:30 +00:00
Roger Dingledine
598f8b5661 start hunting the lucky-bug
svn:r1116
2004-02-22 20:50:20 +00:00
Nick Mathewson
67a273962a On OSX, decline to use the built-in select-baed poll wrapper, since it seems to sometimes not work.
svn:r1114
2004-02-20 23:41:45 +00:00
Roger Dingledine
f202d38191 patch from vicman to publish less platform information
svn:r1111
2004-02-18 21:23:50 +00:00
Roger Dingledine
67c0c64aa4 go back to a single exitpolicy parameter
if your exitpolicy includes " *:*" then it is final,
else we append the default exit policy.
(thanks weasel)


svn:r1105
2004-02-18 07:23:38 +00:00
Roger Dingledine
4e178907ab allow imaps and pop3s in default exit policy
svn:r1104
2004-02-18 04:02:05 +00:00
Roger Dingledine
7562a62ef0 Get rid of the notion of a separate default default exit policy.
Create ExitPolicyPrepend config parameter, to customize the default
exit policy.


svn:r1103
2004-02-18 03:56:12 +00:00
Roger Dingledine
c9d9b9b2a7 we define some big constant arrays but don't use them
svn:r1102
2004-02-18 03:17:35 +00:00
Roger Dingledine
3456adec31 adding the reattach-after-timeout feature wasn't so easy after all.
maybe it works now.


svn:r1101
2004-02-18 01:21:20 +00:00
Roger Dingledine
39efb0ed52 retry streams where the connected cell hasn't arrived in 15 seconds
svn:r1100
2004-02-17 21:07:15 +00:00
Nick Mathewson
72568d2620 Another case of the same.
svn:r1099
2004-02-17 08:52:57 +00:00
Nick Mathewson
bab6c0a332 Fix the Big Bug in router_compare_addr_to_exit_policy: we used port 0
to mean "unknown port".  But no exit policy supports (nonexistant)
port 0, except accept *:*, and we had no special handling for 'unknown port'.

Now we do.


svn:r1098
2004-02-17 08:52:03 +00:00
Roger Dingledine
46ffc5984d best_support_idx is obsolete
(also doesn't fix the bug)


svn:r1097
2004-02-17 08:42:25 +00:00
Nick Mathewson
bd14023afd Propagate yes/no/maybe a little farther forward.
svn:r1096
2004-02-17 08:29:22 +00:00
Roger Dingledine
d081d1d061 make braces cleaner, bug still persists
svn:r1095
2004-02-17 08:10:07 +00:00
Nick Mathewson
61756b5893 Fix router_compare_addr_to_exit_policy, and name its return codes. The bug was: "maybe reject,accept" should be "maybe", not "accept".
svn:r1093
2004-02-17 07:56:33 +00:00
Roger Dingledine
d508a194f7 Let paranoid exit nodes (which default to reject) be exit nodes
Before we resolve the hostname, we don't know whether its IP will                        be accepted or rejected by the exit policy of each host. So we                           were only going with nodes that would certainly accept -- which
was just itys and poblano.

(This bug was hidden until now by the earlier port bug.)

(Actual bugfix pending on Nick's next commit, hopefully.)


svn:r1092
2004-02-17 07:45:44 +00:00
Roger Dingledine
1801bd7592 prevent picking middleman nodes as the last node in the circuit
svn:r1088
2004-02-17 06:39:20 +00:00
Roger Dingledine
a8d8b82662 install the 'tor' binary to usr/sbin by default
svn:r1082
2004-02-17 04:48:01 +00:00
Nick Mathewson
17adfa9dfd log when exit situation is hopeless.
svn:r1057
2004-02-04 22:35:58 +00:00
Roger Dingledine
f00dc6fe1e last minute fix: don't early-flush non-tls streams
e.g., this breaks directory service


svn:r1033
2004-01-31 00:36:00 +00:00
Roger Dingledine
f6f9b1d94d for perf testing, paths are always 3 hops, not "3 or more"
svn:r1030
2004-01-30 23:43:17 +00:00
Roger Dingledine
e05d39d1af fix a per-circuit memory leak
svn:r1029
2004-01-30 21:32:40 +00:00
Nick Mathewson
a81435c64e Another related leak
svn:r1028
2004-01-30 21:16:51 +00:00
Nick Mathewson
e4ad1f1629 Freeing twice does *not* make the heap twice as clean.
svn:r1027
2004-01-30 21:05:47 +00:00
Nick Mathewson
88b579dd33 Fix a bug that might have caused the leak, but which might have been hiding other bugs.
svn:r1026
2004-01-30 20:59:15 +00:00
Nick Mathewson
6c3f55526a Fix possible (but unlikely) mem leak.
svn:r1025
2004-01-30 20:38:08 +00:00
Roger Dingledine
7651b09c8a finally locate the memory leak,
plus commit a patch that doesn't fix it
(but doesn't hurt? i dunno)


svn:r1024
2004-01-30 20:33:04 +00:00
Roger Dingledine
afdaff63ef turn some knobs, add more debugging
svn:r1023
2004-01-30 19:31:39 +00:00