Corey Farwell
124caf28e6
Wrap types in protover.rs.
...
https://trac.torproject.org/projects/tor/ticket/24030
Introduce new wrapper types:
- `SupportedProtocols`
- `Versions`
Introduce a type alias:
- `Version` (`u32`)
2018-01-29 07:30:51 -05:00
Chelsea Holland Komlo
d0184963f9
fixups from code review
2018-01-22 18:33:22 -05:00
Nick Mathewson
1dab8bae21
smartlist.rs: The libc::c_char type is not the same as i8.
...
The code had been using c_char and i8 interchangeably, but it turns
out that c_char is only i8 on platforms where "char" is signed. On
other platforms, c_char is u8.
Fixes bug 24794; bug not on any released Tor.
2018-01-04 12:21:55 -05:00
Corey Farwell
2529319f68
[fixup] this might be an improvement?
2017-12-28 18:17:45 -08:00
Corey Farwell
8ba5805bae
Remove unneeded heap allocations in protover.rs.
2017-12-27 22:05:06 -08:00
Chelsea Holland Komlo
510a91af53
remove unnecessary lifetime
2017-12-22 00:26:52 -05:00
Chelsea Holland Komlo
4cdf0c8899
add testing implementation for tor logging
2017-12-21 19:01:30 -05:00
Chelsea Holland Komlo
d4be1b1e76
allow running protover test with a testing feature flag
2017-12-21 15:29:33 -05:00
Chelsea Holland Komlo
71a5376141
move macro body to inline rust function
2017-12-21 15:29:33 -05:00
Chelsea Holland Komlo
0e032fe9ea
fixups from code review
2017-12-21 15:29:33 -05:00
Chelsea Holland Komlo
cd8bcacfe1
cargo fmt fixes
2017-12-21 15:29:33 -05:00
Chelsea Holland Komlo
3dfe8e6522
add minimal rust module for logging to tor's logger
...
Allows an optional no-op for testing purposes
2017-12-21 15:29:33 -05:00
Nick Mathewson
1969d57363
Change our build process to run Cargo from inside the build tree
...
Instead of using the cwd to specify the location of Cargo.toml, we
use the --manifest-path option to specify its location explicitly.
This works around the bug that isis diagnosed on our jenkins builds.
2017-12-05 14:23:55 -05:00
Nick Mathewson
0694a6dc01
Don't pass --quiet to cargo for now
...
Fixes bug 24518.
2017-12-04 14:19:22 -05:00
Chelsea Holland Komlo
1c50331b9a
annotate where C and Rust need to stay in sync
2017-11-11 23:19:34 -05:00
Nick Mathewson
039a776367
slight improvement to rust idiomicity
2017-11-09 09:48:52 -05:00
Nick Mathewson
c80bb04542
Rust implementation of protocol_list_supports_protocol_or_later()
2017-11-09 09:42:09 -05:00
Alex Xu (Hello71)
a72e13a669
Fix rust welcome message typo.
2017-11-05 13:58:51 -05:00
Sebastian Hahn
acdd349dee
rename {,TOR_}RUST_DEPENDENCIES
2017-11-01 13:45:15 -04:00
Nick Mathewson
69502942b0
[rust] Avoid a clone in contract_protocol_list()
2017-10-27 13:02:14 -04:00
Nick Mathewson
6e08807b54
Add a build-rust alias to just rebuild the rust code.
2017-10-27 12:52:07 -04:00
Nick Mathewson
1e66ab363a
[rust] Add "unsafe" to the testing-mode tor_malloc_ wrapper.
...
This change lets us remove the allow(unused_unsafe) directive
from allocate_and_copy_string().
2017-10-27 12:49:51 -04:00
Nick Mathewson
3a364529a4
Make distcleancheck pass with --enable-rust
2017-10-27 12:35:13 -04:00
Nick Mathewson
2153814ba8
Include rust files in 'make dist'
2017-10-27 12:19:31 -04:00
Nick Mathewson
7f764bcba8
repair "make distcheck"
2017-10-27 11:59:15 -04:00
Nick Mathewson
2ca8fcb892
Add missing copyright/license statements on all .rs files
...
(Yes, I have Chelsea's permission.)
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
6be75bd61d
cargo fmt; fix line length warnings
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
90daad999e
remove experimental rust features
...
allow unsafe on function that calls C
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
7999d0bf6b
update tor_allocate and add tests
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
7d126b9db9
remove unused include.am for rust modules
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
cd2a036959
refactor smartlist for readability
...
limit scoping of unsafe, and other cleanup
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
91bca5c31b
move to allocating c strings from rust
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
76bbdfbfa9
add tor allocator for rust
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
d14a83f74f
remove unneeded dependencies, remove types where unnecessary
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
0c4d535972
refactor build infrastructure for single rust binary
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
be583a34a3
use tor allocator for string allocation in rust
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
0c04b54d4d
minimize scope for unsafe
...
update documentation
missing check for null
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
d1820c1516
rust implementation of protover
2017-10-27 10:02:08 -04:00
Ties Stuij
2e99f839e9
22839: Build tor with rust enabled on win
...
- make tor_util static library name configurable
- fix Rust libary dependency order for Windows
2017-08-21 15:08:24 -04:00
Chelsea H. Komlo
eb355e031e
use CARGO_HOME instead of HOME when building with rust
2017-07-13 18:12:35 +00:00
Sebastian Hahn
70c067102b
Allow Rust build using locally supplied crates or crates.io
...
This adds a couple of configure commands to control whether we're
requiring all dependencies to be available locally (default) or not
(--enable-cargo-online-mode). When building from a tarball, we require
the RUST_DEPENDENCIES variable to point to the local repository of
crates. This also adds src/ext/rust as a git submodule that contains
such a local repository for easy setup.
2017-05-19 08:47:11 -04:00
Sebastian Hahn
d6f9a4f11a
cargo-online-mode configure argument
...
Passing --enable-cargo-online-mode during configure allows cargo to make
network requests while building Tor or running tests. If this flag is
not supplied, the dependencies need to be available in the form of a
local mirror.
2017-05-19 08:47:11 -04:00
Sebastian Hahn
ed15511ac3
Add rustfmt.toml
2017-05-19 08:47:11 -04:00
Sebastian Hahn
f8ef7c65d1
Add some Rust utility functions and print support
...
This gives an indication in the log that Tor was built with Rust
support, as well as laying some groundwork for further string-returning
APIs to be converted to Rust
2017-05-19 08:47:10 -04:00