Commit Graph

38 Commits

Author SHA1 Message Date
holger krekel
04ee9dde2c Merge pull request #181 from deltachat/improve_receive_imf1
improve dc_receive_imf and friends a little (part 1)
2019-07-10 19:54:22 +02:00
holger krekel
b810b5a8f8 other cast as per @dignifiedquire comment -- also convert some logging along the way 2019-07-10 11:54:29 +02:00
holger krekel
6d17de05b2 also convert lookup_field function to use a &str param isntead of char* 2019-07-10 11:43:16 +02:00
holger krekel
e3fb0a23c6 get rid of c version of dc_mimeparser_lookup_field completely 2019-07-10 11:32:50 +02:00
Floris Bruynooghe
4c646dc1e0 Rename dc_chat_t to Chat
This clears the way to start working on making the functions safe.
But small PRs are good PRs so let's get this rename out of the way and
have future PRs less noisy.

Also stop making this #[repr(C)] and start making fields that are not
used private. Lastly clean up some comments by moving them or
deleting them, so they make sense again after the translation.
2019-07-09 21:46:31 +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
Floris Bruynooghe
855c7844b5 Rename to_str() -> as_str() to match stdlib naming convention
The function does a cast and does not create a new objects.  The
stdlib convention is to use to_*() for functions which return new
objects and as_*() for functions which keep referring to the same data
but using a different type.  Follow that convention.
2019-06-07 22:19:39 +02:00
Lars-Magnus Skog
34921db88f fix: peerstate.addr to c string in dc_handle_degrade_event() 2019-05-29 03:09:44 +02:00
dignifiedquire
a53f7c0fca fix(securejoin): improve locking further 2019-05-29 00:03:46 +02:00
dignifiedquire
db90c5bf4d fix(securejoin): reduce scope of bob lock 2019-05-28 23:30:16 +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
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
94aa314f30 refactor(peerstate): safe implementation of peerstate 2019-05-26 22:33:39 +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
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
Lars-Magnus Skog
0bbda91e77 Fix warnings on variables not needing mut (#48)
chore: fix compiler warnings (unused mut)
2019-05-08 00:44:40 +02:00
dignifiedquire
2bead0aa6c fix missing imports for mmime 2019-05-07 13:48:13 +01:00
dignifiedquire
83917ef93e wip - use mmime instead of libetpan 2019-05-07 10:45:46 +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:🧵: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
e187f0f250 fix: allow concurrent access to dc_sqlite3_t 2019-05-02 23:36:09 +02:00
dignifiedquire
2f1873a8bd resolve last fixmes 2019-05-02 11:19:08 +02:00
dignifiedquire
313f71a004 it compiles 2019-05-01 23:41:11 +02:00
dignifiedquire
75319dbf67 continue rustification 2019-05-01 23:41:11 +02:00
dignifiedquire
72e9fe6150 start reworking context references and smtp, imap 2019-05-01 23:41:11 +02:00
dignifiedquire
aa32c53a43 fix: compiles on android 32bit 2019-04-28 17:54:23 +03:00
dignifiedquire
e8a79f220e refactor: use architecture dependent sizes 2019-04-28 15:18:30 +03:00
dignifiedquire
e737a32c54 cleanup: remove unused imports 2019-04-27 18:02:12 +03:00
dignifiedquire
8a99151252 refactor event callback and handle http_get in tests 2019-04-27 15:34:11 +03:00
dignifiedquire
1faf248e09 remove extern c and no_mangle 2019-04-27 01:42:58 +03:00
dignifiedquire
ff1d0ca445 we compile again 2019-04-26 20:50:17 +03:00
dignifiedquire
00d08f806f another round of fixes 2019-04-26 20:01:32 +03:00
dignifiedquire
760e37fb39 reduce code duplication (round 1) 2019-04-26 18:45:30 +03:00
dignifiedquire
0e3b761147 reduce code duplication 2019-04-26 14:43:01 +03:00
dignifiedquire
ff99e19972 inital commit 2019-04-26 11:57:23 +03:00