Commit Graph
47 Commits
Author SHA1 Message Date
dignifiedquire 753cc4d6dc fix: contact creation 2019-07-12 20:58:42 +02:00
dignifiedquire 9d2ee5c0f7 fix: get_contacts logic was broken 2019-07-12 11:17:49 +02:00
dignifiedquire ab41679855 refactor: safe sql access 2019-07-10 16:45:05 +02:00
Floris Bruynooghe 816fa1df9b test: ignore expensive tests by default
This makes interactively running the tests a much more pleasant
experience rather than something one dreads.  These tests will still
be run on the CI.  To run these manually run:

cargo test [TESTNAME] -- --ignored
2019-07-09 13:36:16 +02:00
Floris Bruynooghe a6102d1039 Refactor the internal sql interface somewhat
Experiment with refactoring the internal sql interface a bit.  My
original goal was to modify the schema and thus refactor to a state
where it would be sane to write tests for dc_sqlite_open() (and/or
however it ends up refactored) to assert schame changes before/after.
2019-06-17 22:31:36 +02:00
Floris Bruynooghe db9bc15d3e Make the callback optional again
The C API allows passing a NULL pointer is for the callback function.
However when calling the callback nothing checks for this null pointer
and thus things fail badly.  Even worse since the C API is defined
using an "fn pointer" rather than a "*-ptr" or raw pointer to the
function rust does not realise this can be invalid and therefore the
typechecker does not catch this even though there are no unsafe casts.

Fix this by making the callback an Option in rust, this can be easily
checked when calling.  Also add a Context.call_cb() function which
simplifies calling the callback, hides the weird syntax due to the
function pointer and makes the call a little easier.  Finally it also
means the option checking is only needed in one place.

For the C API this needs to check if this is a NULL pointer or not,
this is implicitly done by rust using the "nullable pointer
optimisation":
https://doc.rust-lang.org/nomicon/ffi.html#the-nullable-pointer-optimization
2019-06-17 20:06:15 +02:00
Friedel Ziegelmayer af8d056206 refactor: remove dc-strbuilder 2019-06-08 17:13:25 +02:00
dignifiedquire 8154781a0d refactor: replace assert_rtn with assert macros 2019-05-30 00:34:10 +02:00
Lars-Magnus Skog 3142ff22fd test: move to dc_param 2019-05-29 23:43:08 +02:00
Lars-Magnus Skog 0ffdaf254f test: move dc_array tests 2019-05-29 23:43:08 +02:00
Lars-Magnus Skog 51071fb09d test: move tests for dc_utf8_strlen() 2019-05-29 23:43:08 +02:00
Lars-Magnus Skog 4175ce56eb test: remove redundant c macro tests :burn: 2019-05-29 23:43:08 +02:00
Lars-Magnus Skog 424ada818b test: move stress tests to dc_strencode and dc_tools 2019-05-29 23:43:08 +02:00
dignifiedquire 21341b7a51 refactor: remove sprintf 2019-05-29 02:03:55 +02:00
Friedel Ziegelmayer d033667433 Fix bugs (#93)
* fix(repl): pass null pointer instead of empty string

* fix(peerstate): ensure load and store to the db works
2019-05-28 17:59:41 +02:00
dignifiedquire 2d3eae4e1e refactor: remove dc prefix from keyring and keyhistory 2019-05-27 09:35:03 +02:00
dignifiedquire 22868abe0e refactor: rename dc_context to context 2019-05-27 09:32:50 +02:00
dignifiedquire 5237c19f4e refactor: remove dc prefix from cleaned up modules 2019-05-27 09:21:42 +02:00
dignifiedquire 66d8421a90 refactor: remove dc_hash in favor of HashMap and HashSet
Closes #49
2019-05-26 23:01:17 +02:00
Friedel Ziegelmayer a247e5b143 refactor(oauth): safe oauth2 and remove custom json parser (#80)
* refactor(oauth): safe oauth2 and remove custom json parser

Closes #46,#53
2019-05-26 22:49:52 +02:00
Friedel Ziegelmayer 379fc72094 perf: reduce verification load (#75)
- assume valid keys in the db
- verify keys on import from headers + disk
- use references in keyring when possible
2019-05-17 10:19:43 +02:00
Friedel Ziegelmayer 342e416b4e Ci updates & closer to windows builds
* chore: update some ci

* feat: no more libiconv

* refactor: updates for updated mmime api

* fixup: correct mmime path

* cleanup

* use newer visual studio

* Update appveyor.yml

* unify libc imports and improve windows situation

* refactor: use rust based sleep

* improve cross platform state of types

* docs: update readme badges
2019-05-16 17:16:07 +02:00
dignifiedquire dfb989e0d0 finish it 2019-05-14 00:44:59 +02:00
dignifiedquire a95d6f85cc start save implementation of save keys 2019-05-14 00:44:59 +02:00
Lars-Magnus Skog 0408695c1d test: move tests to dc_strencode.rs 2019-05-13 23:10:34 +02:00
Lars-Magnus Skog 0ad4a71897 test: remove tests testing c pre processor code 💥 2019-05-13 17:55:18 +02:00
Lars-Magnus Skog 4fb5bc63be test: move tests to dc_tools.rs 2019-05-13 17:33:34 +02:00
Lars-Magnus Skog 5c9dc3a334 test: move dc_msg_guess_msgtype_from_suffix tests to dc_msg.rs 2019-05-13 16:23:47 +02:00
Lars-Magnus Skog 986c092801 test: move dc_mimeparser_parse() tests to separate test 2019-05-13 16:06:32 +02:00
Lars-Magnus Skog ab96264c1a test: move dc_atof/dc_ftoa tests to dc_tools.rs 2019-05-13 15:48:03 +02:00
Lars-Magnus Skog 4183141424 test: move ato{l,i} tests to x.rs 2019-05-13 15:48:03 +02:00
Lars-Magnus Skog 26d6e41c7d test: move dc_may_be_valid_addr tests to dc_contact.rs 2019-05-13 15:48:03 +02:00
Lars-Magnus Skog 5ccc68bbfa test: move mime parsing unit tests to dc_mimeparser.rs 2019-05-13 15:48:02 +02:00
Lars-Magnus Skog ec570ead35 test: move dc_kml_parse() to separate test 2019-05-13 15:46:17 +02:00
Lars-Magnus Skog a95544c5c0 test: move simplify tests to unit tests for dc_simplify.rs 2019-05-13 15:46:17 +02:00
Lars-Magnus Skog 3813a219e0 Wrap dc_context_t and TempDir in a struct 2019-05-13 15:46:16 +02:00
Lars-Magnus Skog e3e56d9f7e Skip #[cfg(test)] and mod tests, not needed 2019-05-13 15:46:16 +02:00
Lars-Magnus Skog c9b6bb6a9b add create_context() function 2019-05-13 15:46:16 +02:00
Lars-Magnus Skog dc92166ca2 chore: remove blobdir member from dc_mimeparser_t struct 🔥
dc_mimeparser_new() constructor takes both blobdir and context, but only
uses the blobdir from the context and doesn't care about parser.blobdir,
this can be removed safely since only used internally.
2019-05-13 15:32:53 +02:00
dignifiedquire fdd870286e refactor: move aheader to safe rust 2019-05-12 23:11:13 +02:00
Hocuri 569c924a0c Replace types that use only 0 and 1 with bool (#18) (#58)
* Start replacing int with bool where possible (#18)

* Continue replacing int with bool where possible (#18)

* Continue replacing int with bool where possible (#18)

* Run fmt
2019-05-11 12:07:09 +02:00
dignifiedquire 2bead0aa6c fix missing imports for mmime 2019-05-07 13:48:13 +01:00
dignifiedquire e43ddf0359 refactor: reorg code and drop usage of libetpans base64 encoder 2019-05-07 10:51:41 +01:00
Lars-Magnus Skog 2cf6cde5d1 chore: fix compiler warnings (mut + unused assignments) (#40)
* Stop allowing unused assignments

* test: remove unused assignments in cmdline

* chore: fix compiler warnings in dc_tools.rs

* chore: fix compiler warnings in dc_token.rs

* chore: fix compiler warnings in dc_strencode.rs

* chore: fix compiler warnings in dc_stock.rs

* chore: fix compiler warnings in dc_sqlite3.rs

* chore: fix compiler warnings in dc_simplify.rs

* chore: fix compiler warnings in dc_securejoin.rs

* chore: fix compiler warnings in dc_saxparser.rs

* chore: fix compiler warnings in dc_pgp.rs

* chore: fix compiler warnings in dc_param.rs

* chore: fix compiler warnings in dc_oauth2.rs

* chore: fix compiler warnings in dc_msg.rs

* chore: fix compiler warnings in dc_mimeparser.rs

* chore: fix compiler warnings in dc_mimefactory.rs

* chore: fix compiler warnings in dc_lot.rs

* chore: fix compiler warnings in dc_loginparams.rs

* chore: fix compiler warnings in dc_log.rs

* chore: fix compiler warnings in dc_location.rs

* chore: fix compiler warnings in dc_keyring.rs

* chore: fix compiler warnings in dc_key.rs

* chore: fix compiler warnings in dc_jsmn.rs

* chore: fix compiler warnings in dc_jobthread.rs

* chore: fix compiler warnings in dc_imex.rs

* chore: fix compiler warnings in dc_hash.rs

* chore: fix compiler warnings in dc_e2ee.rs

* chore: fix compiler warnings in dc_context.rs

* chore: fix compiler warnings in dc_contact.rs

* chore: fix compiler warnings in dc_chatlist.rs

* chore: fix compiler warnings in dc_chat.rs

* chore: fix compiler warnings in dc_array.rs

* chore: fix compiler warnings in dc_apeerstate.rs

* chore: fix compiler warnings in dc_aheader.rs

* chore: fix compiler warnings in dc_array.rs

* test: remove compiler warnings in test/stress.rs

* test: reduce compiler warnings in examples/repl/main.rs

* test: std::thread::sleep_ms() is deprecated

* chore: remove unused variable in dc_sqlite3.rs

* chore: fix compiler warnings in dc_receive_imf.rs

* chore: fix compiler warnings in dc_job.rs

* chore: fix compiler warnings in dc_configure.rs

* Fix formatting
2019-05-05 21:58:59 +02:00
dignifiedquire e7d72dfdd4 fix some locking issues, start rust-imap impl 2019-05-05 00:15:45 +02:00
Lars-Magnus Skog 95e1cc67b9 Fix FIXMEs in stress.rs (#35)
* Start by comparing strings instead of result of strcmp()

* Add failing tests for dc_trim, dc_ltrim and dc_rtrim

* Fix failing tests (use libc:isspace() which counts \r, \n etc)

* Remove FIXME for first dc_simplify_simplify()

* Fix formatting

* Fix tests for dc_param_set()

* Fix remaining FIXMEs in stress.rs

* Don't wrap libc::isspace()

* Wrap unit tests with mod tests

* Fix format
2019-05-03 11:13:06 +02:00
Lars-Magnus Skog 2e4bc048fb test: run stress tests in the regular test setup
Closes #13
2019-05-02 20:48:31 +02:00