Commit Graph

274 Commits

Author SHA1 Message Date
Roger Dingledine
9fb98b269c finish poking and prodding. i'm all happy now.
svn:r8633
2006-10-07 09:13:30 +00:00
Roger Dingledine
06e5b2283c minor cleanups
svn:r8622
2006-10-07 00:50:39 +00:00
Roger Dingledine
864069f5c7 fix a size_t-to-len compile warning
svn:r8618
2006-10-06 22:37:10 +00:00
Nick Mathewson
50320ac420 r8862@totoro: nickm | 2006-10-03 14:54:14 -0400
Make verbose names get used (when appropriate and selected) in responses to getinfo requests.


svn:r8593
2006-10-03 19:00:18 +00:00
Nick Mathewson
1ae7282d9b r8857@totoro: nickm | 2006-10-03 13:54:21 -0400
Implement ORCONN with verbose names.


svn:r8588
2006-10-03 18:59:52 +00:00
Nick Mathewson
55bd42d50f r8841@totoro: nickm | 2006-10-02 15:59:21 -0400
Add EXTENDED_EVENTS to the USEFEATURE command; move flag from connection_t into control_conn, since we will probably grow more of these.


svn:r8585
2006-10-03 18:58:56 +00:00
Nick Mathewson
c796adc7df r8840@totoro: nickm | 2006-10-02 15:56:16 -0400
Add USEFEATURE to control changes to control protocol.  Use like __future__ directive from Python.  Will spec before pushing changes. No, really. :)


svn:r8584
2006-10-03 18:58:52 +00:00
Nick Mathewson
6e0b90a902 r8838@totoro: nickm | 2006-10-02 15:24:39 -0400
Partial implementation of revised nickname syntax for controllers.  Implement ability to look up routers by "verbose" nicknames; add a per-v1-control-connection flag to turn the feature on in events.  Needs testing, spec, ability to actually turn on the flag, double-checking that we wont overflow any nickname buffers, and changelog.


svn:r8582
2006-10-03 18:58:40 +00:00
Nick Mathewson
4c56ac93ca r8851@totoro: nickm | 2006-10-02 18:13:27 -0400
Remove/clarify some XXXs for no longer being accurate; for begin things we do not indend to fix; for already being parts of big todo issues (like "/* XXX ipv6 */"); etc. Also fix some spaces.


svn:r8580
2006-10-02 22:13:42 +00:00
Nick Mathewson
14f9b537d1 r8835@totoro: nickm | 2006-10-02 12:54:41 -0400
Improve error messages from AUTHENTICATE attempts to controller.


svn:r8574
2006-10-02 18:08:46 +00:00
Nick Mathewson
ce72a9914e r8822@totoro: nickm | 2006-10-01 16:24:22 -0400
Fix bug 303: reject attempts to use Tor as a one-hop proxy.


svn:r8566
2006-10-01 20:50:11 +00:00
Nick Mathewson
7d366f61cb r9025@Kushana: nickm | 2006-09-29 18:33:13 -0400
Differentiate more duplicated log entries


svn:r8542
2006-09-29 22:33:40 +00:00
Nick Mathewson
0335bd51d3 r9005@Kushana: nickm | 2006-09-29 10:37:55 -0400
Implement DESCCHANGED event to tell controller when our router descriptor changes.


svn:r8533
2006-09-29 18:13:25 +00:00
Roger Dingledine
ad430b9561 checkpoint changelog and general polishing
svn:r8497
2006-09-25 05:59:13 +00:00
Nick Mathewson
6b3f6afb58 r8895@Kushana: nickm | 2006-09-21 20:05:11 -0400
Debug client-side reverse dns code.


svn:r8452
2006-09-22 00:44:07 +00:00
Roger Dingledine
4920b9d1cc Fix two bugs: first, "extendcircuit" would crash if you gave it a purpose.
Second, if you give an unknown purpose, it would say:
552 Unknown purpose "purpose=foo"
Now it just says
552 Unknown purpose "foo"


svn:r8412
2006-09-18 04:24:41 +00:00
Nick Mathewson
1852f503cf r8776@Kushana: nickm | 2006-09-11 22:49:53 -0400
Avoid crash when telling controller stream-status and a stream is detached.  Fixes bug 334. Backport candidate.


svn:r8370
2006-09-12 02:50:14 +00:00
Roger Dingledine
0c3cc15898 fix encoding in "getinfo addr-mappings" response.
fix error code when "getinfo dir/status/" fails.


svn:r8355
2006-09-09 03:38:03 +00:00
Roger Dingledine
29b6d6560e add a "getinfo address" controller command.
svn:r8354
2006-09-09 03:18:39 +00:00
Nick Mathewson
6c499804bb r8686@Kushana: nickm | 2006-08-30 18:01:35 -0400
Remove bogus whitespace


svn:r8307
2006-08-30 23:34:49 +00:00
Nick Mathewson
0f5bfc1521 r7411@Kushana: nickm | 2006-08-17 19:00:25 -0400
patch suggested by Karsten Loesing: respond to SIGNAL command before we execute the signal, in case the signal shuts us down.


svn:r7072
2006-08-17 23:00:32 +00:00
Nick Mathewson
3da737ac98 r7303@Kushana: nickm | 2006-08-10 01:52:19 -0700
whitespace fixes


svn:r7011
2006-08-10 09:02:12 +00:00
Nick Mathewson
5cff4164a0 r7299@Kushana: nickm | 2006-08-10 01:08:58 -0700
Patch from Tup to add support for transparent AP connections: this basically bundles the functionality of trans-proxy-tor into the tor mainline.  Now hosts with compliant pf/netfilter implementations can redirect TCP connections straight to Tor without diverting through SOCKS.


svn:r7007
2006-08-10 09:01:37 +00:00
Nick Mathewson
6dc13cdbeb r6948@Kushana: nickm | 2006-07-28 10:10:35 -0400
Identify some likely target fields for lowering; lower global_identifier (since we only use it for AP streams and origin circs).


svn:r6933
2006-07-28 15:11:11 +00:00
Nick Mathewson
ec82db6995 r6909@Kushana: nickm | 2006-07-26 13:05:58 -0400
Clean up wide lines from last patch.


svn:r6907
2006-07-26 19:07:37 +00:00
Nick Mathewson
4ff4577beb r6908@Kushana: nickm | 2006-07-26 12:38:52 -0400
Refactor connection_t into edge, or, dir, control, and base subtypes.  This might save some RAM on busy exit servers, but really matters most in terms of correctness.


svn:r6906
2006-07-26 19:07:26 +00:00
Nick Mathewson
7239262f71 Don't tell anybody, but we're going OO here. This patch splits
circuit_t into origin_circuit_t and or_circuit_t.  I fixed some
segaults; there may be more.  We still need to move more rendezvous
stuff into subtypes.

This is a trial run for splitting up connection_t; if the approach is
insane, please say so soon so we can do something smarter.

Also, this discards the old HALF_OPEN code, which nobody seems to
want.


svn:r6817
2006-07-23 07:37:35 +00:00
Roger Dingledine
3d79eb52ab stick to nick's nul/null convention
svn:r6763
2006-07-15 19:21:30 +00:00
Nick Mathewson
c32e19b4ed OR_CONN_EVENT_NEW: we should probably handle that , should we not? Especially since 23:26 < phobos> nickm: grep -c "Unrecognized status code 4" tor.log
svn:r6752
2006-07-11 03:33:16 +00:00
Nick Mathewson
b7910202a3 Next batch of memory miserdom: mmap cached-routers file. This is sure to break somewhere.
svn:r6675
2006-06-22 07:01:54 +00:00
Roger Dingledine
31b51849b5 export the default exit policy via the control port, so controllers
don't need to guess what it is / will be later.


svn:r6615
2006-06-13 09:16:09 +00:00
Nick Mathewson
853e2d99b6 Add a new warning to our "warn a lot" list: unused parameters. This means we have to explicitly "use" unuseds, but it can catch bugs. (It caught two coding mistakes so far.)
svn:r6532
2006-06-04 22:42:13 +00:00
Roger Dingledine
3cd01ca9a1 make cookie authentication for the controller work again, maybe.
it sure doesn't now.


svn:r6494
2006-05-24 23:03:28 +00:00
Nick Mathewson
55c38f88b9 Remove string size limit on NEWDESC messages; solve bug 291.
svn:r6463
2006-05-22 23:24:06 +00:00
Nick Mathewson
6ebd886511 forward-port: "Resolve" all XXX011 items, mostly by marking them non-011.
svn:r6396
2006-04-18 03:07:24 +00:00
Roger Dingledine
b34032b87d but the \r\n is handy too i hear.
svn:r6294
2006-04-02 22:19:01 +00:00
Roger Dingledine
e84cd412d4 if you give mapaddress no args at all, it should answer
something more than \r\n.


svn:r6293
2006-04-02 22:13:34 +00:00
Roger Dingledine
dfb3c5f47a if you ask for getinfo dir/status/ but your dirport is off,
log a complaint.


svn:r6286
2006-04-01 22:17:37 +00:00
Roger Dingledine
6fb27741ba Fix dirserv_get_networkstatus_v2's api: its function comments
did not at all match its behavior, and I can't think of a case
when it should return anything other than 0.

This fix may allow getinfo dir/status/foo to work.


svn:r6285
2006-04-01 22:00:49 +00:00
Roger Dingledine
e47075e771 more helpful error message
svn:r6283
2006-04-01 09:54:54 +00:00
Roger Dingledine
314f24870d Start sending back 512 and 451 errors if mapaddress fails,
rather than not sending anything back at all.


svn:r6282
2006-04-01 09:50:43 +00:00
Nick Mathewson
2421724853 Code to implement networkstatus fetch from controllers. Only works when dirport is set for now; should be good enough to make serifos html front-end not be as wrong.
svn:r6251
2006-03-27 06:49:25 +00:00
Roger Dingledine
b899b9592a When the controller's *setconf commands fail, collect an error message
in a string and hand it back. This starts to resolve bug 275.


svn:r6241
2006-03-26 06:51:26 +00:00
Roger Dingledine
5b87b0bf55 update getinfo info/names to reflect that we now support
getinfo dir/server/*


svn:r6231
2006-03-22 21:53:09 +00:00
Roger Dingledine
817556315a Implement router purposes, and don't choose a non-general
purpose router when picking random nodes for a circuit.

Also implement SETROUTERPURPOSE and modify +POSTDESCRIPTOR.

This concludes bug 250 assuming it all works.


svn:r6178
2006-03-17 22:08:59 +00:00
Nick Mathewson
fb7b5545ce Implement GETINFO(dir/server/foo); status will be harder.
svn:r6165
2006-03-15 05:06:56 +00:00
Roger Dingledine
a4da44c2b9 Now do address rewriting when the controller asks us to attach
to a particular circuit too. This will let Blossom specify
"moria2.exit" without having to learn what moria2's IP address is.

It may also cause other controller authors some angst. Let us know.


svn:r6136
2006-03-12 05:04:16 +00:00
Roger Dingledine
b5c6a990d3 fix assert while attachstream'ing a connect-wait or
resolve-wait stream.


svn:r6134
2006-03-12 04:33:29 +00:00
Roger Dingledine
80f0492a65 avoid shadowing a variable so we don't get sad later.
svn:r6133
2006-03-12 04:07:21 +00:00
Roger Dingledine
5f8d26496d Let the controller attachstream conns that are in connect_wait
or resolve_wait: we detach them first and then act as before.
Resolves bug 264.


svn:r6112
2006-03-09 06:29:53 +00:00
Roger Dingledine
44107f6ec4 Implement NEWNYM. Nick, did I do a bad thing?
svn:r6105
2006-03-09 00:18:16 +00:00
Roger Dingledine
946317ae13 start using OR_CONN_EVENT_NEW.
also fixes a seg fault in tor (bug 261).


svn:r6101
2006-03-08 22:29:08 +00:00
Roger Dingledine
a2d71f917e mark bug 261
svn:r6089
2006-03-06 19:47:54 +00:00
Roger Dingledine
329af979e0 Add a new circuit purpose 'controller' to let the controller
ask for a circuit that Tor won't try to use.

Extend the EXTENDCIRCUIT controller command to let you specify
the purpose if you're starting a new circuit.

Add a new SETCIRCUITPURPOSE controller command to let you
change a circuit's purpose after it's been created.


svn:r6075
2006-02-23 06:51:09 +00:00
Roger Dingledine
16f265fa0d when saveconf fails in controller v1, we were returning a malformed
error string.


svn:r6053
2006-02-20 01:24:26 +00:00
Roger Dingledine
d113b75da6 more log conversions.
whee.


svn:r6003
2006-02-13 09:02:35 +00:00
Roger Dingledine
5f051574d5 Happy new year!
svn:r5949
2006-02-09 05:46:49 +00:00
Roger Dingledine
0fadf0aad6 Fix bug 225: now "attachstream 0" treats conn like it just connected,
doing address remapping, handling .exit and .onion idioms, and so on.

Now we are more uniform in making sure that the controller hears about
all new connections, and making sure it hears when they close.


svn:r5897
2006-02-03 11:37:19 +00:00
Roger Dingledine
4a66f5a896 when the controller asks for a signal we don't recognize, don't
include the whitespace/newline/etc in our complaint.


svn:r5841
2006-01-19 02:21:24 +00:00
Nick Mathewson
2dd566d5d5 Indirect access to the signed_descriptor field to make it easier to keep them lazily on disk.
svn:r5827
2006-01-12 18:04:17 +00:00
Roger Dingledine
7d1f675c85 entry nodes are now entry guards.
this is our last easy chance for a wholesale change. heave ho.


svn:r5782
2006-01-10 22:42:44 +00:00
Roger Dingledine
d114ea7125 implement getinfo desc/all-recent
closes bug 237.


svn:r5770
2006-01-10 20:09:31 +00:00
Nick Mathewson
bec9b705cc Instrument directory client bytes as well as server bytes.
svn:r5760
2006-01-09 23:13:53 +00:00
Nick Mathewson
878962bee1 Add reasons to DESTROY and RELAY_TRUNCATED cells.
svn:r5734
2006-01-05 21:23:03 +00:00
Roger Dingledine
dbd7b97eff helper nodes are dead. long live entry nodes.
(config options EntryNodes and StrictEntryNodes still not
implemented.)


svn:r5673
2005-12-28 09:07:31 +00:00
Nick Mathewson
1af630d32c Bite the bullet and limit all our source lines to 80 characters, the way IBM intended.
svn:r5582
2005-12-14 20:40:40 +00:00
Roger Dingledine
ea760fa149 extendcircuit and attachstream would complain about not enough
arguments, but then just keep on going anyway.


svn:r5575
2005-12-12 16:50:55 +00:00
Roger Dingledine
79f09b2f17 setconf orport=9001
513 Unrecognized option value

it's not unrecognized. it's unacceptable. (in this case, i still
have to consult the logs to figure out why, but at least i have
an inkling that maybe i should.)


svn:r5561
2005-12-11 09:33:38 +00:00
Roger Dingledine
58366ffd24 when we changed from log_fn to debug/info/notice/warn/err,
we screwed up the formatting in wild and unpredictable ways.

fix it before it becomes convention to format logs in wild and
unpredictable ways.

still need to do src/common/ someday.


svn:r5551
2005-12-10 09:36:26 +00:00
Nick Mathewson
39265dd72e In my private little universe, terminals are still 80 columns. Impose a 160-character-per-line limit; this will creep down.
svn:r5548
2005-12-09 05:37:26 +00:00
Nick Mathewson
148a1e969d Shave off another 4.7%: remove a linear search when figuring out which circuits wanted us to open a given OR connection.
svn:r5489
2005-12-03 02:12:37 +00:00
Peter Palfrader
b9d37a2d58 Add a new controller event type that allows controllers to get all
server descriptors that were uploaded to a router in its role as authoritative
dirserver.


svn:r5436
2005-11-19 18:35:43 +00:00
Roger Dingledine
4ddf2385a0 if it's not less than three does that mean it's more than two?
svn:r5422
2005-11-18 11:35:23 +00:00
Roger Dingledine
9d6d6da883 and code the part where redirectstream can take a port.
svn:r5421
2005-11-18 11:32:59 +00:00
Roger Dingledine
d2b93df26c and now we actually do it, too.
svn:r5414
2005-11-17 22:01:46 +00:00
Roger Dingledine
7dbf2511c3 when you type 'getinfo' with no arguments, it doesn't give you
any answer at all. this is clearly a bug.

the more interesting bug is whether things like setconf, getconf,
and so on should return 250 OK if you give them no arguments. should
we have a new "you didn't ask me anything" response code, or just
leave it as is?


svn:r5412
2005-11-17 21:45:38 +00:00
Roger Dingledine
279e29a1f2 bugfix: the controller doesn't mention it's a .onion if it is.
svn:r5400
2005-11-16 23:54:24 +00:00
Nick Mathewson
75d85c8214 On directory servers, old_routers was wasting hundreds of bytes per superseded router descriptor. Roll the signed descriptor info and identifying info into a cache_info struct, and use only that for old_routers.
svn:r5349
2005-11-05 20:15:27 +00:00
Nick Mathewson
5d85560d9e Remove last vestiges of old logging interface.
svn:r5317
2005-10-25 18:01:01 +00:00
Nick Mathewson
91a666064a Fix possible free(NULL) in control.c
svn:r5306
2005-10-25 07:02:13 +00:00
Nick Mathewson
f9b0be526e Use LD_BUG as appropriate; convert rend* and router* to new logging interface; use new circ_log_path interface
svn:r5302
2005-10-24 19:39:45 +00:00
Nick Mathewson
55f2ab9cc3 Migrate a few more files to domained logging
svn:r5285
2005-10-18 22:21:29 +00:00
Nick Mathewson
3347c1741d Refactor routerlist access slightly: always use router_get_by_routerlist(); change its interface; add modifier functions to add/remove elements from the current routerlist (so we can add indices).
svn:r5276
2005-10-18 17:43:54 +00:00
Peter Palfrader
551e3402a3 split send_control1_event() into the printf and the print/dispatch part. The
printf part was and is limited to at most 1024 byte messages, so having the print
part separately available makes sense.


svn:r5273
2005-10-18 16:45:43 +00:00
Peter Palfrader
640211e59a Be a bit more verbose in our AUTHENTICATE error messages in the control protocol so the next guy doesn't blame Nick again
svn:r5245
2005-10-12 19:45:35 +00:00
Nick Mathewson
2b3a7b818f Add an as-yet-unused "EXTENDED" flag to SETEVENTS to indicate that the client can handle extra labeled info in its events. Add moreinfo to the "what is ready for downloading" msg so we can investigate digest-related download rules
svn:r5237
2005-10-12 04:31:44 +00:00
Roger Dingledine
be478bb56c stutter therapy lessons
svn:r5191
2005-10-05 02:09:27 +00:00
Nick Mathewson
8434595584 Fix verbose compiler warnings, including one in routerlist.c that would have been an actual error. Normalize whitespace. Enforce convention that "address" is a hostname and "addr" is an IPv4 address.
svn:r5190
2005-10-05 02:06:36 +00:00
Nick Mathewson
61ea516885 Check for named servers when looking them up by nickname;
warn when we'recalling a non-named server by its nickname;
don't warn twice about the same name.

Fix a bug in routers_update_status_from_networkstatus that made nearly
all clients never update routerinfo_t.is_named.

Try to list MyFamily elements by key, not by nickname.

Only warn about names that we generated ourself, or got from the local
user.

On TLS handshake, only check the other router's nickname against its
expected nickname if is_named is set.


svn:r5185
2005-10-04 22:23:31 +00:00
Roger Dingledine
88c37f2d24 comment cleanups
svn:r5181
2005-10-04 06:53:59 +00:00
Nick Mathewson
fc3c0197f9 Resolve several DOCDOCs. Make non-mirrors only launch routerdesc downloads when they have more than 16 router descriptors to download, or when 10 minutes have passed since the last download.
svn:r5166
2005-09-30 20:04:55 +00:00
Nick Mathewson
c6347cdb0e suppress all our usual compiler warnings, including a longstanding one from tree.h
svn:r5149
2005-09-29 20:49:41 +00:00
Roger Dingledine
f011b12df2 bugfix: nobody ever implemented EVENT_ADDRMAP for control protocol
version 0, so don't let version 0 controllers ask for it.


svn:r5107
2005-09-21 23:30:15 +00:00
Nick Mathewson
f99b91505b Make write_escaped_data more bulletproof; backport candidate.
svn:r5106
2005-09-21 23:13:29 +00:00
Nick Mathewson
7c6679d8dc Add new config.c function to set options that can fail, and roll back if they do. This should solve the setconf-an-impossible-port bug.
svn:r5046
2005-09-14 02:36:29 +00:00
Roger Dingledine
1f930a9a70 checkpoint: clean up and document the three ways to call config_assign()
and reduce code duplication in config_free() and option_is_same().


svn:r5040
2005-09-14 02:07:35 +00:00
Nick Mathewson
63dfe2447e Fix bug found by "ca": looking up a non-existent stream for a v1 control connection would cause a segfault. (No backport needed since 0.1.0 had only v0 connections.)
svn:r5001
2005-09-12 03:32:30 +00:00
Nick Mathewson
8f37357193 Make GCC v4 happy with heavy warnings enabled.
svn:r4922
2005-09-08 06:37:50 +00:00
Roger Dingledine
08348ae66e add a RESETCONF controller command, and make setconf with a null
option actually mean to set it to ""


svn:r4916
2005-09-08 03:18:51 +00:00
Nick Mathewson
5d590861c4 TOR_ISSPACE, not isspace.
svn:r4828
2005-08-24 02:20:31 +00:00