summaryrefslogtreecommitdiff
path: root/testing/nTox.c
AgeCommit message (Collapse)Author
2016-11-06Enable all possible C compiler warning flags.iphydf
We disable the ones that fire, so we can use -Werror. We can then investigate each warning individually and see whether to fix it or to keep silencing it.
2016-09-30Remove return after no-return situation (and other cleanups).iphydf
Cleanups: - Fix header guards to not use reserved names. - Avoid name shadowing. - Removed an unused variable found by avoiding name shadowing.
2016-09-21Make group callbacks statelessJfreegman
2016-09-17Complete old groupchat conversion to new APIJfreegman
2016-09-17ApiDSL'ing old group chats (now: conference).iphydf
2016-09-13Add some astyle options to make it do more.iphydf
It now enforces a bit more formatting. In particular, padding inside parentheses is removed. I would like it to remove padding after unary operators, but there seems to be no option for that.
2016-09-10make the majority of the callbacks stateless and add some status to a testcasemichael bishop
2016-09-06Improve static and const correctness.iphydf
- Any non-externally-visible declarations should be `static`. - Casting away the `const` qualifier from pointers-to-const is dangerous. All but one instance of this are now correct. The one instance where we can't keep `const` is one where toxav code actually writes to a chunk of memory marked as `const`. This code also assumes 4 byte alignment of data packets. I don't know whether that is a valid assumption, but it's likely unportable, and *not* obviously correct. - Replaced empty parameter lists with `(void)` to avoid passing parameters to it. Empty parameter lists are old style declarations for unknown number and type of arguments. - Commented out (as `#if DHT_HARDENING` block) the hardening code that was never executed. - Minor style fix: don't use `default` in enum-switches unless the number of enumerators in the default case is very large. In this case, it was 2, so we want to list them both explicitly to be warned about missing one if we add one in the future. - Removed the only two function declarations from nTox.h and put them into nTox.c. They are not used outside and nTox is not a library.
2016-09-06Improve C standard compliance.iphydf
- Don't cast between object and function pointers. - Use standard compliant `__VA_ARGS__` in macros. - Add explicit `__extension__` on unnamed union in struct (it's a GNU extension). - Remove ; after function definitions. - Replace `const T foo = 3;` for integral types `T` with `enum { foo = 3 };`. Folding integral constants like that as compile time constants is a GNU extension. Arrays allocated with `foo` as dimension are VLAs on strictly compliant C99 compilers. - Replace empty initialiser list `{}` with zero-initialiser-list `{0}`. The former is a GNU extension meaning the latter. - Cast `T*` (where `T != void`) to `void *` in format arguments. While any object pointer can be implicitly converted to and from `void *`, this conversion does not happen in variadic function calls. - Replace arithmetic on `void *` with arithmetic on `char *`. The former is non-compliant. - Replace non-`int`-derived types (like `uint16_t`, which is `short`-derived) in bit fields with `int`-derived types. Using any type other than `int` or `unsigned int` (or any of their aliases) in bit fields is a GNU extension.
2016-09-06Make friend requests statelessGregory Mullen (grayhatter)
Messenger is slightly twisty when it comes to sending connection status callbacks It will very likely need at the very least a partial refactor to clean it up a bit. Toxcore shouldn't need void *userdata as deep as is currently does. (amend 1) Because of the nature of toxcore connection callbacks, I decided to change this commit from statelessness for connections changes to statelessness for friend requests. It's simpler this was and doesn't include doing anything foolish in the time between commits. group fixup because grayhatter doesn't want to do it "arguably correct" is not how you write security sensitive code Clear a compiler warning about types within a function.
2016-09-02Do not use `else` after `return`.iphydf
http://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code
2016-09-01Sort #includes in all source files.iphydf
2016-08-31Add braces to all if statements.iphydf
2016-08-20Make the friend message callback statelessGregory Mullen (grayhatter)
2016-08-18Make friend_status_message callback stateless.iphydf
See #40 for details.
2016-08-18Make tox_callback_friend_name stateless.iphydf
See #27 and #40 for details.
2016-08-17Make self_connection_status callback stateless.iphydf
**What are we doing?** We are moving towards stateless callbacks. This means that when registering a callback, you no longer pass a user data pointer. Instead, you pass a user data pointer to tox_iterate. This pointer is threaded through the code, passed to each callback. The callback can modify the data pointed at. An extra indirection will be needed if the pointer itself can change. **Why?** Currently, callbacks are registered with a user data pointer. This means the library has N pointers for N different callbacks. These pointers need to be managed by the client code. Managing the lifetime of the pointee can be difficult. In C++, it takes special effort to ensure that the lifetime of user data extends at least beyond the lifetime of the Tox instance. For other languages, the situation is much worse. Java and other garbage collected languages may move objects in memory, so the pointers are not stable. Tox4j goes through a lot of effort to make the Java/Scala user experience a pleasant one by keeping a global array of Tox+userdata on the C++ side, and communicating via protobufs. A Haskell FFI would have to do similarly complex tricks. Stateless callbacks ensure that a user data pointer only needs to live during a single function call. This means that the user code (or language runtime) can move the data around at will, as long as it sets the new location in the callback. **How?** We are doing this change one callback at a time. After each callback, we ensure that everything still works as expected. This means the toxcore change will require 15 Pull Requests.
2015-05-22Move savedata to options struct.irungentoo
Add a way to select the type of savedata (normal savedata, load a secret key, potentially others?) to load.
2015-03-21Renamed tox_file_send_control to tox_file_control.irungentoo
Renamed tox_file_send_seek to tox_file_seek.
2015-03-19callback_file_request_chunk -> callback_file_chunk_requestDubslow
A couple of minor reasons, combined warrant a PR imo: a) fileChunkRequested is a better signal name than fileRequestChunkReceived, and I don't want to break consistency by reordering words for just this signal b) "request chunk" is parsed by English speakers as a verb-object combination, implying sending the request, not receiving, whereas "chunk requested" is parsed (more correctly) as an adjective-noun combo (in particular, request is a noun not a verb), and thus reads far more like "hey heads up we just got a request" For instance some tests/testing code had some callbacks to *receive* chunk requests, and they were called "tox_file_request_chunk"... to receive a chunk, not request it. Now they're called "tox_file_chunk_request". So yeah...
2015-03-18Renamed TOX_MESSAGE_TYPE_MESSAGE to TOX_MESSAGE_TYPE_NORMAL.irungentoo
2015-03-18Merge branch 'one_more_rename' of https://github.com/dubslow/toxcore into ↵irungentoo
new_api
2015-03-18Merged normal message function and send action function into oneirungentoo
messaging function. This removes code duplication and allows us to easily add new message types to the api without having to add new functions.
2015-03-18Move get_connection_status to self pseudonamespace, to contrast ↵Dubslow
friend_get_connection_status
2015-03-18When friend goes offline all his file transfers get removed.irungentoo
This is now documented in the API. Ported programs in testing/ to this behaviour.
2015-03-18Api changes.irungentoo
receive to recv in file receive functions. Added TOX_MAX_FILENAME_LENGTH define.
2015-03-17Save function renamed to tox_get_savedata()irungentoo
2015-03-17Added and implemented file_id parameter to file tranfers.irungentoo
file_id is a 32byte identifier that can be used by users to identify file tranfers across core/client restarts in order to resume broken file tranfers. In avatar tranfers it corresponds to the hash of the avatar. Added tox_file_get_file_id() function to api to obtain the file_id of an ongoing file transfer. If not set, core will generate a random one.
2015-03-14Make nTox save on exit.irungentoo
2015-03-13Remove TOX_FILE_KIND typedef.irungentoo
2015-03-13Merge branch 'newer_api' of https://github.com/dubslow/toxcore into new_apiirungentoo
2015-03-13revert to TOX_FILE_KINDDubslow
2015-03-12Convert core code depending on the apiDubslow
2015-03-12Added position parameter to tox_file_send_chunk().irungentoo
This is done so that the function now has the same parameters as the request chunk callback.
2015-03-10Ported nTox to new file transfer api.irungentoo
2015-02-24Ported some of the code in testing/ to the new api.irungentoo
2014-11-10Group audio might work now but I have not tested anything yet.irungentoo
2014-09-26Group chats are starting to work.irungentoo
2014-08-14Modified tox_bootstrap_from_address() function.irungentoo
PORT IS NO LONGER PASSED IN NETWORK BYTE ORDER. Removed useless ipv6enabled parameter.
2014-08-14Added disabling of UDP and basic SOCKS5 proxy support to public API.irungentoo
tox_new() now takes a Tox_Options struct as argument. If a NULL pointer is passed to that struct, defaults are used.
2014-07-02Fixed const related warnings.irungentoo
2014-06-20Fix CppCheck style errorsTux3 / Mlkj / !Lev.uXFMLA
#if 0 the content of toxav/msi.c : int stringify_message(MSIMessage *msg, char *dest) This function has no effect and does not seem to be used for actively waiting. Fix various other style errors, reduce scope when possible, avoid redundant writes, clarify operator priorities, etc.
2014-06-10Astyle and fixes.irungentoo
2014-06-08Fixed some nTox bugs.irungentoo
2014-06-08fix nTox cmdline input slow problem.liuguangzhao
2014-06-01Fixed TOX_MAX_MESSAGE_LENGTH define.irungentoo
Removed some useless code from toxcore. Astyled core code with new version of astyle.
2014-05-30Renamed tox_do_run_interval to tox_do_interval.irungentoo
tox_do_interval now returns a time in ms based on how much action is going on in net_crypto.
2014-05-30Replaced tox_wait* functions with tox_do_run_interval().irungentoo
Build system fixes.
2014-03-31tox_group_get_names now returns a list of name lengths along with the list ↵irungentoo
of names. TCP test now also tests pings.
2014-03-18nTox fixes.irungentoo
Added TOX_MAX_MESSAGE_LENGTH to tox.h