- 08 Dec, 2017 1 commit
-
-
Couple things happen in this commit. First, we do not re-queue a cell back in the circuit queue if the write packed cell failed. Currently, it is close to impossible to have it failed but just in case, the channel is mark as closed and we move on. The second thing is that the channel_write_packed_cell() always took ownership of the cell whatever the outcome. This means, on success or failure, it needs to free it. It turns out that that we were using the wrong free function in one case and not freeing it in an other possible code path. So, this commit makes sure we only free it in one place that is at the very end of channel_write_packed_cell() which is the top layer of the channel abstraction. This makes also channel_tls_write_packed_cell_method() return a negative value on error. Two unit tests had to be fixed (quite trivial) due to a double free of the packed cell in the test since now we do free it in all cases correctly. Part of #23709 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- 22 Nov, 2017 23 commits
-
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
They were broken due to previous commit. Fixes are trivial. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
First, that test was broken from the previous commit because the channel_queue_cell() has been removed. This now tests the channel_process_cell() directly. Second, it wasn't testing much except if the channel subsystem actually went through the cell handler. This commit adds more checks on the state of a channel going from open, receiving a cell and closing. Third, this and the id_map unit test are working, not the others so they've been marked as not working and future commit will improve and fix those. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This was never set thus never could have been used. Get rid of it to simplify the code. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This removed code that was either never reached or irrelevant after the incoming/outgoing queue removal such as the "timestamp_drained". Lots of things are also removed from channel.h that do not exists anymore or not used. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
No code nor behavior change, only documentation. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
If the channel layer failed to write a cell from the circuit queue, requeue it so it can be retried on the same channel later. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
The channel_write_cell() and channel_write_var_cell() can't be possibly called nor are used by tor. We only write on the connection outbuf packed cell coming from the scheduler that takes them from the circuit queue. This makes channel_write_packed_cell() the only usable function. It is simplify and now returns a code value. The reason for this is that in the next commit(s), we'll re-queue the cell onto the circuit queue if the write fails. Finally, channel unit tests are being removed with this commit because they do not match the new semantic. They will be re-written in future commits. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
The channel subsystem was doing a whole lot to track and try to predict the channel queue size but they are gone due to previous commit. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
For the rationale, see ticket #23709. This is a pretty massive commit. Those queues were everywhere in channel.c and it turns out that it was used by lots of dead code. The channel subsystem *never* handles variable size cell (var_cell_t) or unpacked cells (cell_t). The variable ones are only handled in channeltls and outbound cells are always packed from the circuit queue so this commit removes code related to variable and unpacked cells. However, inbound cells are unpacked (cell_t), that is untouched and is handled via channel_process_cell() function. In order to make the commit compile, test have been modified but not passing at this commit. Also, many tests have been removed but better improved ones get added in future commits. This commit also adds a XXX: which indicates that the handling process of outbound cells isn't fully working. This as well is fixed in a future commit. Finally, at this commit, more dead code remains, it will be cleanup in future commits. Fixes #23709 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This function is part of the tor fast path so this commit adds more documentation to it as it is critical. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
append_cell_to_circuit_queue() had code disabled from commit 2a95f317 This code is 4+ years old related to bug #9072 so if we ever want to revisit it, lets inspect/revert this commit. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Nick Mathewson authored
"ours" merge to avoid version bump.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- 21 Nov, 2017 16 commits
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
Closes ticket 23953.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Added clarifying information in man file about RelayBandwidthRate and RelayBandwidthBurst options that exclude directory fetches by relays. Fixes #24318 Signed-off-by:
Fernando Fernandez Mancera <ffernandezmancera@gmail.com>
-
Fixes #24363 Signed-off-by:
Fernando Fernandez Mancera <ffernandezmancera@gmail.com>
-
Nick Mathewson authored
"ours" merge to avoid version bump.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
teor authored
Closes bug 24372.
-
Neel Chauhan authored
-