summaryrefslogtreecommitdiff
path: root/testing
AgeCommit message (Collapse)Author
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.
2016-01-27 fix: compare sensitive data with sodium_memcmpRoman Proskuryakov
fix: make increment_nonce & increment_nonce_number independent of user-controlled input fix: make crypto_core more stable agains null ptr dereference
2015-11-03Astyle.irungentoo
2015-10-10New Adaptive BR algorithm, cleanups and fixesEniz Vukovic
2015-08-09Updated with upstreammannol
2015-08-08Merge branch 'dragonfly' of https://github.com/mneumann/toxcoreirungentoo
2015-08-08Removed redundant function from video.[h|c]mannol
2015-08-07Removed a useless define.irungentoo
2015-08-08Fix for DragonFlyBSDMichael Neumann
2015-08-07Fixed memory leak during session cleanup and fixed naming.mannol
2015-07-29client_id -> public_keyirungentoo
2015-06-27Renamed TOXAV_CALL_STATE to TOXAV_FRIEND_CALL_STATEmannol
2015-06-13Fixed sample size in callback and other stuffmannol
2015-06-05Rebased on master and removed alpha channel (again)mannol
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-05-22Updated with mastermannol
2015-05-20Syncbot fixes.irungentoo
2015-05-07Fixed inconsistenciesmannol
2015-04-29Donemannol
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-12tox_new now sets error to TOX_ERR_NEW_PORT_ALLOC when binding to port fails.irungentoo
2015-03-10Ported nTox to new file transfer api.irungentoo
2015-03-10testing/tox_sync now fully works on the new api.irungentoo
2015-03-09Fixed small issue.irungentoo
2015-02-24Ported some of the code in testing/ to the new api.irungentoo
2015-01-31Update avatar documentationAlexandre Erwin Ittner
Add missing function and fixes some typos and formatting.
2015-01-31Rename "client id" to "public key" in avatar docs and examplesAlexandre Erwin Ittner
Commit b8d530c9e0bbce331f22cbff7f818e49673d5bd7 and some of its parents changed the public name of "client id" to "public key". Update the avatar documentation to follow the idea.
2014-11-10Fixed irc syncbot.irungentoo
2014-11-10Group audio might work now but I have not tested anything yet.irungentoo
2014-10-17fix #1120dubslow
2014-10-15Use monotonic time function already in toxcore.irungentoo
2014-10-15irc_syncbot now parse out NULL characters from the Tox groupchat.irungentoo
2014-10-14Added basic IRC group syncbot to testing.irungentoo
2014-10-01Group chats now actually work somewhat.irungentoo
2014-09-28Merge branch 'master' of https://github.com/irungentoo/toxcoredubslow