Commit Graph

489 Commits

Author SHA1 Message Date
Nick Mathewson
029be5ad02 Move in-addr.arpa parsing and generation into address.c, and simplify the code that does it elsewhere. Incidentally, this lets exit servers answer requests for ip6.arpa addresses.
svn:r17707
2008-12-19 18:52:00 +00:00
Nick Mathewson
bf80e2df3f Replace calls to time(NULL) that occur on the order of once per read, one per write, or once per cell with calls to a function that looks at a cached value of time. This is tricksy to benchmark, since it will only help on systems where time() is a syscall and syscalls are relatively slow.
svn:r17690
2008-12-18 17:19:04 +00:00
Nick Mathewson
c449e6e5be whitespace fixes.
svn:r17683
2008-12-18 16:11:08 +00:00
Nick Mathewson
290b6f54a3 Make unit tests slower but more reliable by disabling an old optimization.
To turn it back on, re-define CACHE_GENERATED_KEYS option in test.c.

svn:r17677
2008-12-18 06:12:19 +00:00
Nick Mathewson
8ba2a15a49 Fix more leaks in unit tests.
svn:r17676
2008-12-18 06:02:23 +00:00
Nick Mathewson
cebdf93949 Fix bug 889: share deep-copied keys between threads to avoid races in reference counts. Bugfix on 0.1.0.1-rc.
svn:r17672
2008-12-18 05:28:27 +00:00
Nick Mathewson
d597b23c42 Massage a little code to hopfully please coverity.
svn:r17669
2008-12-18 04:45:51 +00:00
Nick Mathewson
33e2053ebc Make return code from router_add_to_routerlist a nice sensible enum. Based on patch from Sebastian.
svn:r17656
2008-12-17 21:50:01 +00:00
Nick Mathewson
5fb2ab1e65 Implement the /tor/keys/fp-sk/ URL format. That mostly finishes the server side of 157.
svn:r17611
2008-12-12 19:05:36 +00:00
Nick Mathewson
69ce955484 Add cross-certification to authority key certificates. Partial implementation of proposal 157.
svn:r17610
2008-12-12 18:31:39 +00:00
Nick Mathewson
519de7970e Do not discard sign on return values of iv crypto functions in tests. May fix CID 9. Might not.
svn:r17603
2008-12-11 21:11:31 +00:00
Nick Mathewson
b20694758e Fix two more unit-test bugs (deadcode this time) spotted by Coverity run 7.
CIDs == 357, 356.

svn:r17599
2008-12-11 21:11:19 +00:00
Nick Mathewson
d9aa57253d Fix error in last unit test mem-leak-fixing.
svn:r17596
2008-12-11 19:41:03 +00:00
Nick Mathewson
d7563ee231 Fix memory leaks in test_util_smartlist_* functions.
svn:r17580
2008-12-11 06:18:09 +00:00
Nick Mathewson
595e77c8d7 Fix memory leaks in test_v3_networkstatus.
svn:r17579
2008-12-11 06:18:01 +00:00
Nick Mathewson
6ffb4d4ab6 Fix memory leaks in test_dir_format
svn:r17578
2008-12-11 06:17:59 +00:00
Jacob Appelbaum
6b178b46ef New DirPortFrontPage option that takes an html file and publishes it as "/" on the DirPort. Now relay operators can provide a disclaimer without needin to set up a separate webserver. There's a sample disclaimer in contrib/tor-exit-notice.html.
svn:r17500
2008-12-07 01:21:19 +00:00
Nick Mathewson
af03faa1a6 Fix more leaks in test_util_memarea().
svn:r17491
2008-12-05 02:25:39 +00:00
Nick Mathewson
475fbbbccc Fix a resource leak in test_dir_formats()
svn:r17488
2008-12-05 02:05:39 +00:00
Nick Mathewson
1affbd3464 Split test_util_smartlist into manageable chunks; make them free memory properly.
svn:r17487
2008-12-05 01:58:35 +00:00
Nick Mathewson
30377823c3 Add a few more tests to our tests so that our tests make sense to coverity. CIDs 139, 138, 137.
svn:r17486
2008-12-05 01:49:15 +00:00
Nick Mathewson
e06442b648 Add a couple of sanity-checks for return values that coverity thinks we ought to have. CIDs 337, 335.
svn:r17485
2008-12-05 01:35:49 +00:00
Nick Mathewson
bd6b3072f9 Change logging code to use fds instead of stdio. Fixes bug 861, and probably makes logging slightly faster. Not a backport candidate: bug 861 is too obscure and harmless.
svn:r17456
2008-12-02 23:36:58 +00:00
Nick Mathewson
3ebd1ebeca The chunk_size field in memarea_t was never actually set. Remove the whole thing.
svn:r17195
2008-11-05 20:34:22 +00:00
Nick Mathewson
3f858b5b26 Fix a compile error found under pcc. It wants single-quites to be escaped in strings, it seems.
svn:r17191
2008-11-05 18:03:14 +00:00
Nick Mathewson
73c6cb8353 Fix unit test failure related to intro point parsing.
svn:r17188
2008-11-03 16:36:15 +00:00
Nick Mathewson
283b95e463 Make tests pass again by adding an opt hidden-service-dir to the example routerinfo output.
svn:r16980
2008-09-26 17:58:35 +00:00
Nick Mathewson
b2c7090da6 Make it easier for dmalloc to see if keys are leaking; remove a test-only key leak.
svn:r16965
2008-09-25 17:37:00 +00:00
Nick Mathewson
a7e383af19 More test memory-management fixes
svn:r16963
2008-09-25 15:20:38 +00:00
Nick Mathewson
7f805aca2b Split test_crypto() into manageable pieces.
svn:r16959
2008-09-24 20:55:38 +00:00
Nick Mathewson
b322348e8a Fix more actual test leaks
svn:r16831
2008-09-10 05:34:03 +00:00
Nick Mathewson
aa69d586ea Make buffer unit tests handle resource leaks properly.
svn:r16823
2008-09-10 00:16:32 +00:00
Nick Mathewson
38f56608d9 Make more unit tests handle resource leaks properly.
svn:r16822
2008-09-10 00:11:53 +00:00
Nick Mathewson
f95d7c189b Refactor unit test macros and tor_free_all() logic a bit so as to make it easier to free memory on failing tests, in order to suppress scanner warnings and to make dmalloc() usable with tests.
svn:r16816
2008-09-09 20:43:31 +00:00
Nick Mathewson
24f1d29be1 Apply proposal 121 patch 3, with minor tweaks and a few comments.
svn:r16598
2008-08-19 15:41:28 +00:00
Peter Palfrader
e8de3ff54d If we are lucky the whitespace nazis will not have noticed these things yet
svn:r16549
2008-08-14 18:01:20 +00:00
Peter Palfrader
ff32708d0e Having a reject-all policy summarized with a lack of summary is stupid. Explicitly mention them as reject 1-65535.
svn:r16543
2008-08-14 12:37:50 +00:00
Peter Palfrader
2f91a3528a testsuite: Now that we add (pretty useless, but still) routerinfos to the routerlist for every one of our routerstatuses in the votes we pass again. yay
svn:r16542
2008-08-14 12:37:42 +00:00
Peter Palfrader
056157984b Disable test suite for today
svn:r16539
2008-08-14 12:37:21 +00:00
Peter Palfrader
171a7d4b0f Fix an overflow when counting rejects for *, truncate exit summaries after 1000 chars
svn:r16530
2008-08-13 19:25:18 +00:00
Peter Palfrader
adcea0f332 Think of the poor children in Antarctica who still have to work on 4" screens
svn:r16528
2008-08-13 12:46:13 +00:00
Peter Palfrader
0d807068a3 A few testcases for policy summaries
svn:r16527
2008-08-13 12:46:06 +00:00
Nick Mathewson
d9601c65e0 r17666@tombo: nickm | 2008-08-07 15:12:30 -0400
Make tor_addr_from_sockaddr also give away the port in a useful format


svn:r16458
2008-08-07 19:13:35 +00:00
Nick Mathewson
960a0f0a99 r17641@31-33-44: nickm | 2008-08-05 16:07:53 -0400
Initial conversion of uint32_t addr to tor_addr_t addr in connection_t and related types.  Most of the Tor wire formats using these new types are in, but the code to generate and use it is not.  This is a big patch.  Let me know what it breaks for you.


svn:r16435
2008-08-05 20:08:19 +00:00
Nick Mathewson
507b01357a r17426@tombo: nickm | 2008-07-28 20:34:03 -0400
More test coverage for tor_addr_t; fix a couple of bugs.


svn:r16234
2008-07-29 00:34:50 +00:00
Nick Mathewson
056d97da0c r17391@pc-10-8-1-079: nickm | 2008-07-25 17:11:17 +0200
Tor_addr_compare did a semantic comparison, such that ::1.2.3.4 and 1.2.3.4 were "equal".  we sometimes need an exact comparison.  Add a feature to do that.


svn:r16210
2008-07-25 15:11:21 +00:00
Nick Mathewson
3ce6e2fba2 r17346@aud-055: nickm | 2008-07-24 15:37:19 +0200
Make generic address manipulation functions work better.  Switch address policy code to use tor_addr_t, so it can handle IPv6.  That is a good place to start.


svn:r16178
2008-07-24 13:44:04 +00:00
Nick Mathewson
dff1ef7d06 r17337@aud-055: nickm | 2008-07-24 10:17:43 +0200
Refactor the is_vote field of networkstatus_t to add a third possibility ("opinion") in addition to vote and opinion.  First part of implementing proposal 147.


svn:r16166
2008-07-24 09:22:27 +00:00
Nick Mathewson
bdcbd23e23 Stop trying to detect versions of Tor on the server-side older than 0.1.1.15-rc; they simply do not work any more. Also add comment about how or_is_obsolete is a terrible field name.
svn:r15982
2008-07-16 13:15:11 +00:00
Peter Palfrader
54b3b48802 Make unit tests pass again
svn:r15237
2008-06-13 23:24:11 +00:00
Nick Mathewson
fa0989fd67 Make unit tests pass again: new geoip behavior had freaked out.
svn:r14949
2008-06-04 18:38:37 +00:00
Nick Mathewson
ac330d9ba7 New code to implement proposal for local geoip stats. Only enabled with --enable-geoip-stats passed to configure.
svn:r14802
2008-05-29 02:29:35 +00:00
Nick Mathewson
09cd8fa371 r19795@catbus: nickm | 2008-05-16 14:54:24 -0400
Rename tor_addr_t manipulation functions for a consistent style.


svn:r14639
2008-05-16 19:19:49 +00:00
Nick Mathewson
08ba3355bc r19694@catbus: nickm | 2008-05-12 00:21:37 -0400
Add unit tests for last patch; make it more testable; fix a bug or two.


svn:r14586
2008-05-12 04:22:01 +00:00
Nick Mathewson
05b184de01 r15304@tombo: nickm | 2008-04-23 16:31:40 -0400
Forward-port: I had apparently broken OSX and Freebsd by not initializing threading before we initialize the logging system.  This patch should do so, and fix bug 671.


svn:r14430
2008-04-23 20:32:31 +00:00
Nick Mathewson
a627407fcb r19233@catbus: nickm | 2008-04-08 13:06:34 -0400
When we remove old routers, use Bloom filters rather than a digestmap-based set in order to tell which ones we absolutely need to keep.  This will save us roughly a kazillion little short-lived allocations for hash table entries.


svn:r14318
2008-04-08 17:06:41 +00:00
Nick Mathewson
2d68487e7f r19229@catbus: nickm | 2008-04-07 12:28:22 -0400
Add a new SMARTLIST_FOREACH_JOIN macro to iterate through two sorted lists in lockstep.  This happens at least 3 times in the code so far, and is likely to happen more in the future.  Previous attempts to do so proved touchy, tricky, and error-prone: now, we only need to get it right in one place.


svn:r14309
2008-04-07 16:28:34 +00:00
Nick Mathewson
d43a9d9440 r19152@catbus: nickm | 2008-03-30 23:20:11 -0400
Make unit tests pass again after Link protocol list change.


svn:r14254
2008-03-31 03:20:55 +00:00
Nick Mathewson
762d82cf74 r19062@catbus: nickm | 2008-03-26 12:56:25 -0400
Fix whitespace


svn:r14197
2008-03-26 16:56:37 +00:00
Nick Mathewson
e4ebe3409e r19049@catbus: nickm | 2008-03-26 12:33:25 -0400
Add new stacklike, free-all-at-once memory allocation strategy.  Use it when parsing directory information.  This helps parsing speed, and may well help fragmentation some too.  hidden-service-related stuff still uses the old tokenizing strategies.


svn:r14194
2008-03-26 16:33:33 +00:00
Nick Mathewson
df6b256bc0 r19041@catbus: nickm | 2008-03-25 16:20:42 -0400
More unit tests to improve coverage.


svn:r14185
2008-03-25 20:20:45 +00:00
Nick Mathewson
41deb5cd7b r19039@catbus: nickm | 2008-03-25 12:15:58 -0400
Add some unit tests, particularly for AES counter mode.


svn:r14180
2008-03-25 16:16:05 +00:00
Roger Dingledine
52b267b987 make it build, too
svn:r14151
2008-03-21 21:59:57 +00:00
Nick Mathewson
fe1b2a4ed4 r18900@catbus: nickm | 2008-03-17 18:32:25 -0400
Fix tests and routerdesc behavior on trunk.


svn:r14084
2008-03-17 22:32:28 +00:00
Nick Mathewson
9a24158c69 r18880@catbus: nickm | 2008-03-17 12:51:24 -0400
Fix policy-related crash bug found by lodger.


svn:r14077
2008-03-17 16:51:48 +00:00
Nick Mathewson
46155aca17 r18804@catbus: nickm | 2008-03-13 18:18:31 -0400
Refactor log domain mask code so that nobody outside of log.c has to use SEVERITY_MASK_IDX.  It is error-prone.


svn:r14016
2008-03-13 22:18:38 +00:00
Peter Palfrader
925ba96508 downgrade get_interface_address6 logging severity to LOG_DEBUG.
get_interface_address6() fails regardless of the allocator used,
wever logging to the original severity of 0 causes an assert
error only with the bsd allocator.  weird.


svn:r14005
2008-03-13 16:15:16 +00:00
Peter Palfrader
24884bb3ed Use proper log levels with get_interface_address6() calls so we do not die in an assert error because of invalid log levels. Should a failure here fail our test suite?
svn:r14003
2008-03-13 15:10:35 +00:00
Nick Mathewson
f56ba5f3d6 r18630@catbus: nickm | 2008-03-05 17:31:33 -0500
Implement domain-selection for logging.  Source is documented; needs documentation in manpage (maybe).  For now, see doxygen comment on parse_log_severity_config in log.c


svn:r13875
2008-03-05 22:31:39 +00:00
Nick Mathewson
d14f8f2547 r14516@tombo: nickm | 2008-02-27 03:10:26 -0500
Write some unit tests for a few functions and cases that needed them.


svn:r13751
2008-02-27 08:10:28 +00:00
Nick Mathewson
69300eb606 r14374@tombo: nickm | 2008-02-21 16:57:39 -0500
Fix all remaining shorten-64-to-32 errors in src/common.  Some were genuine problems.  Many were compatibility errors with libraries (openssl, zlib) that like predate size_t.  Partial backport candidate.


svn:r13665
2008-02-21 21:57:47 +00:00
Nick Mathewson
8b1789c71f r18336@catbus: nickm | 2008-02-21 09:33:15 -0500
Patch from Sebastian Hahn: remove obsolete timeval manipulation functions.


svn:r13653
2008-02-21 14:33:20 +00:00
Nick Mathewson
0e9dcfab97 r18286@catbus: nickm | 2008-02-20 21:10:33 -0500
Fix a bug that kept buf_find_string_offset from finding a string at the very end of the buffer.  Add a unit test for this. Also, do not save a pointer to a chunk that might get reallocated by buf_pullup().


svn:r13635
2008-02-21 02:10:38 +00:00
Nick Mathewson
8b8d38162b r18278@catbus: nickm | 2008-02-20 18:29:07 -0500
Unit tests for buf_find_string_offset()


svn:r13632
2008-02-20 23:38:55 +00:00
Nick Mathewson
7521ef9a00 r18264@catbus: nickm | 2008-02-20 12:48:21 -0500
fix bufs in buf_pos_t implementation.


svn:r13623
2008-02-20 17:48:39 +00:00
Nick Mathewson
24e8e1fb36 r14185@tombo: nickm | 2008-02-15 18:05:54 -0500
Replace the hefty tor_strpartition with a simple function to replace its only (trivial) use.


svn:r13532
2008-02-15 23:39:14 +00:00
Nick Mathewson
f5ed1f8469 r14183@tombo: nickm | 2008-02-15 17:37:53 -0500
Add initial unit tests for test_addr_compare_masked


svn:r13531
2008-02-15 23:39:10 +00:00
Nick Mathewson
f3eaeb99a3 r18051@catbus: nickm | 2008-02-12 15:20:43 -0500
Re-tune mempool parametes based on testing on peacetime: use smaller chuncks, free them a little more aggressively, and try very hard to concentrate allocations on fuller chunks.  Also, lots of new documentation.


svn:r13484
2008-02-12 20:20:52 +00:00
Roger Dingledine
5a0f214908 patch from tup to fix bug 605
svn:r13453
2008-02-09 22:52:29 +00:00
Roger Dingledine
d2528e6b48 "fix" the unit tests on openbsd/netbsd
svn:r13450
2008-02-09 21:41:49 +00:00
Roger Dingledine
509d2912dc doxygen and other cleanups
svn:r13440
2008-02-09 03:11:10 +00:00
Nick Mathewson
809227a121 r14061@tombo: nickm | 2008-02-08 14:30:42 -0500
Add a couple of (currently disabled) strategies for trying to avoid using too much ram in memory pools: prefer putting new cells in almost-full chunks, and be willing to free the last empty chunk if we have not needed it for a while.  Also add better output to mp_pool_log_status to track how many mallocs a given memory pool strategy is saving us, so we can tune the mempool parameters.


svn:r13428
2008-02-08 21:13:08 +00:00
Nick Mathewson
8ab4b0d302 r14059@tombo: nickm | 2008-02-08 13:36:34 -0500
downgrade xxxs in test.c


svn:r13426
2008-02-08 21:13:02 +00:00
Nick Mathewson
23a9c9695b r17968@catbus: nickm | 2008-02-07 14:11:02 -0500
Clean up IPv6-testing code in test.c; resolve a bunch of XXX020s.


svn:r13425
2008-02-08 21:09:35 +00:00
Nick Mathewson
842a33ff20 Update some copyright notices: it is now 2008.
svn:r13412
2008-02-07 05:31:47 +00:00
Nick Mathewson
c8a689c9e8 r17909@catbus: nickm | 2008-02-05 14:48:22 -0500
As planned, rename networkstatus_vote_t to networkstatus_t, now that v3 networkstatuses are working and standard and v2 networkstatuses are obsolete.


svn:r13383
2008-02-05 21:39:29 +00:00
Roger Dingledine
4e9a701d4b fix unit tests after r13092
svn:r13100
2008-01-10 23:11:13 +00:00
Nick Mathewson
58de695f90 r15787@tombo: nickm | 2008-01-02 01:59:07 -0500
Allow config values in quotes to contain special characters, with full C escape syntax.  With tests.  Addresses bug 557.


svn:r13021
2008-01-02 06:59:15 +00:00
Nick Mathewson
86f5180853 r15786@tombo: nickm | 2008-01-02 01:11:51 -0500
Push the strdups used for parsing configuration lines into parse_line_from_string().  This will make it easier to parse more complex value formats, which in turn will help fix bug 557


svn:r13020
2008-01-02 06:59:12 +00:00
Nick Mathewson
c0ec281565 r15784@tombo: nickm | 2008-01-02 00:38:06 -0500
Fix bug 575: protect the list of logs with a mutex.  I couldn't find any appreciable change in logging performance on osx, but ymmv. You can undef USE_LOG_MUTEX to see if stuff gets faster for you.


svn:r13019
2008-01-02 05:38:53 +00:00
Nick Mathewson
11fff225fa r15779@tombo: nickm | 2008-01-01 23:43:24 -0500
Use reference-counting to avoid allocating a zillion little addr_policy_t objects. (This is an old patch that had been sitting on my hard drive for a while.)


svn:r13017
2008-01-02 04:43:44 +00:00
Nick Mathewson
a7ef07b4bd r15693@tombo: nickm | 2007-12-25 19:11:29 -0500
Here, have some terribly clever new buffer code.  It uses a mbuf-like strategy rather than a ring buffer strategy, so it should require far far less extra memory to hold any given amount of data.  Also, it avoids access patterns like x=malloc(1024);x=realloc(x,1048576);x=realloc(x,1024);append_to_freelist(x) that might have been contributing to memory fragmentation.  I've  tested it out a little on peacetime, and it seems to work so far.  If you want to benchmark it for speed, make sure to remove the #define PARANOIA; #define NOINLINE macros at the head of the module.


svn:r12983
2007-12-26 00:12:08 +00:00
Roger Dingledine
c1af7de6e4 the better fix for the unit tests
svn:r12907
2007-12-21 10:44:10 +00:00
Roger Dingledine
46bb4a40ee Make the unit tests build again.
svn:r12905
2007-12-21 10:40:40 +00:00
Roger Dingledine
3f4080d15d tiny tweaks on r12900
svn:r12901
2007-12-21 09:33:11 +00:00
Roger Dingledine
90fcfade4e revert r12841 and r12842, and commit karsten's "patch 13"
svn:r12900
2007-12-21 09:28:22 +00:00
Nick Mathewson
076097281d r17239@catbus: nickm | 2007-12-18 16:57:02 -0500
Sort GeoIP results in descending order of IP counts.


svn:r12863
2007-12-18 23:45:19 +00:00
Nick Mathewson
5488bc3e16 r17231@catbus: nickm | 2007-12-18 16:21:55 -0500
Document and clean-up geoip code; give it some unit tests.


svn:r12856
2007-12-18 21:27:08 +00:00
Roger Dingledine
b3e6c66a05 and another in the unit tests
svn:r12842
2007-12-16 20:47:20 +00:00
Roger Dingledine
98a56a386d our unit tests leak memory like a sieve.
fix two actual memory leaks found while cleaning up a bit.


svn:r12829
2007-12-16 08:20:10 +00:00