summaryrefslogtreecommitdiff
path: root/toxcore/Messenger.c
AgeCommit message (Collapse)Author
2013-11-18Fixed a few typos.Jman012
2013-11-18Added functions tox_count_chatlist and tox_copy_chatlist.Jman012
These functions are akin to the tox_count_friendlist and tox_copy_friendlist, made available on the public API.
2013-11-18Merge pull request #650 from FullName/ID-IP-basicirungentoo
Significantly trimmed down version of an ID<=>IP cache.
2013-11-17Fixed segfault.irungentoo
2013-11-17Assoc's array is now allocated dynamically and per default much smaller (320 ↵Coren[m]
entries). id_hash() was not at all working as expected for very small bucket size (when (size / 4) was zero). Simplified to be trivially correct. Also added a used flag on adding an entry, which is set by callers if they have that association in active use. Those get priority over unused entries on collision. Fleshed out test to be at least elementary useful. Each group chat now uses an own, small assoc (80 entries).
2013-11-14Significantly trimmed down version of an ID<=>IP cache.Coren[m]
Besides acknowledging timeouts, the module isn't trying to do anything fancy with the data besides storing and retrieving.
2013-11-12Cleaned up the code.irungentoo
2013-11-12Merge branch 'group_peername' of https://github.com/FullName/ProjectTox-Core ↵irungentoo
into FullName-group_peername
2013-11-12Group chat: Add a nickname message. Remove strange default nickname. ↵Coren[m]
(Seriously...) group_chats.*: - group_send_nick() to send own name - setnick() to store a received name Messenger.c: - group_send_nick() before group_sendmessage() (in regular intervals, to inform new peers) nTox.c: - print_groupmessage(): on error or on a name of length zero the result of tox_group_peername() isn't null-terminated, catch that
2013-11-11nTox.c:Coren[m]
- multiple places: tox_getname() doesn't terminate the string, make sure nTox does - format_message(): . - renamed to print_formatted_message() . - changed semantics: does the new_line() itself, saves caller from freeing the buffer (which no caller did) . - changed signature: now also prints the friend's name when sending . - intern: date is only printed once, the message line gets only time - print_message(): enforce null termination - main(): . - setlocale() to init locale (for date/time printing) . - own name: ensure null termination Messenger.c: - notify of friend name change *before* the old name is overwritten
2013-11-10Fixed small issues.irungentoo
DHT_test now only prints non zero entries.
2013-11-06Behind #define LOGGING: Correct usage of now() to replacement unix_time().Coren[m]
2013-11-03The group chats we invite a friend to are now stored.irungentoo
2013-10-27Cleaned up some code/fixed some warnings.irungentoo
I'm sure nobody has any of the old save files anymore so I removed the functions.
2013-10-24Merge remote-tracking branch 'upstream/master' into ↵Coren[m]
cleanup_unix_time_id_eq_cpy_is_timeout Conflicts: toxcore/net_crypto.c
2013-10-24Move unix_time(), id_cpy()/id_eq(), is_timeout() to util.*Coren[m]
unix_time(): - returns local value for current epoch - value is updated explicitly with unix_time_update() called at new_DHT()/doMessenger()/do_DHT() is_timeout(): - uses the local value for current epoch id_cpy()/id_eq() => id_copy()/id_equal(): - centralized duplicate definitions - replaced (most) memcpy()/memcmp() of (*, *, CLIENT_ID_SIZE) with id_copy()/id_equal()
2013-10-23Code cleanups.irungentoo
2013-10-23Code cleanups.irungentoo
2013-10-20Merge branch 'Cleanup-defines' of ↵irungentoo
https://github.com/FullName/ProjectTox-Core into FullName-Cleanup-defines
2013-10-20Main: Eliminate TOX_ENABLE_IPV6 (then always on), CLIENT_ONETOONE_IP (then ↵Coren[m]
always off). Additionally (besides cleanups): network.h/tox.h: - WIN32: fix a strange sa_family_t definition - WIN32: define EWOULDBLOCK to WSAEWOULDBLOCK - WIN32: kill macro for an existing function (IN6_ADDR_EQUAL) network.c: - use EWOULDBLOCK instead of EAGAIN (same value, but EWOULDBLOCK is more "popular") - new_networking(): only try to enable IPv4-in-IPv6 if it's not already enabled per default - inet_ntop()/inet_pton(): WIN32: remove partial initializers in favor of a simple memset() - ip_equal(): WIN32: use an existing function - logging: networking_wait_execute(): only dump result if not timeout - logging: loglogdata(): kill an unused variable LAN_discovery.c: - send_broadcasts(): re-enabled, can only support IPv4 by principle, split into fetch_broadcast_info() (to fetch the addresses once) and send_broadcasts() (actual sending) DHT.c: - DHT_load_state_callback(): enclosed a fprintf(stderr, ...) into #ifdef DEBUG Lossless_UDP.c: - change_handshake(): harden against strange sa_family_t definitions Messenger.c: - logging: fix ID to string conversion util.c: - logging: eliminate a signed-warning
2013-10-15Added resume support if the connection breaks during file sending.irungentoo
2013-10-13A/V integration in progress.irungentoo
Added functions to send/receive msi packets via secure messenger connections. Made function to get the ip/port of a friend in Messenger.c public
2013-10-10Added message ids to action messagesMaxim Biro
2013-10-06Merge remote-tracking branch 'upstream/master' into wait: replace void *tox ↵Coren[m]
with Tox *tox in tox.c (which now includes the declarations from tox.h)
2013-10-06sendqueue_length no longer determines if we check for socket-can-write, but ↵Coren[m]
sendpacket() sets a timestamp if it happened network.*: - sendpacket(): checks result and on EAGAIN, stores time of this event - networking_wait_prepare(): uses the time if set to check up to 500ms later for the socket to be writeable again - networking_wait_cleanup(): clears the time if the socket was writeable - fixed some accidental tabs Messenger.*, tox.*: - pass-through functions to reach networking_wait_cleanup() - fixed some accidental tabs
2013-10-05Fixed file sending bug.irungentoo
2013-10-05m_addfriend_norequest now prevents you from adding your own id as friend.irungentoo
2013-10-05Broken *_wait() into *_wait_prepare() and *_wait_execute()Coren[m]
To allow the actual waiting to run without any locking, split it into preparing the data it uses and the execution of the wait. The caller must provide with the buffer to store whatever data it requires to wait. Completely eliminates any reliance on the existence of anything but that data in the actual wait routine. Also fixed a few argument type warnings inside LOGGING.
2013-10-04Fixed some possible bugs.irungentoo
2013-10-03Code cleanups.irungentoo
2013-10-03Only add write-ready to select() if we have packets queuedCoren[m]
Lossless_UDP.*: - sendqueue_total() sums sendqueue() across all connections network.*, Messenger.c: - sendqueue_total() is collected and then used in deciding if we select() on write-readiness
2013-10-02Merge branch 'file-transfers' of ↵irungentoo
https://github.com/irungentoo/ProjectTox-Core into file-transfers
2013-10-02File control packets can now be used by the person sending the file.irungentoo
2013-10-02Add tox_wait() for socket, allow tox.h include in tox.cCoren[m]
tox.*, Messenger.*, network.*; - new function tox_wait() => waitMessenger() => networking_wait(): - waits for a given amount of time for any sort of socket activity - mustn't change anything inside, mustn't poll or do other stuff - the point is to be able to call this asynchronously from a second thread - the outside shall follow up with an immediate tox_do() when there's socket activity tox.*: - allow inclusion of tox.h into tox.c, ensuring that the outside interface and the internal always match util.c: - squished a few warnings about questionable format strings
2013-10-02Max length of filenames is now 255 bytes.irungentoo
2013-10-02Fixed bug.irungentoo
2013-10-01nTox updated with changes in core, some file sending things fixes.irungentoo
2013-10-01Core now takes better care of file transfers.irungentoo
2013-09-30File sending.irungentoo
2013-09-28Fixed possible bug.irungentoo
2013-09-27Astyled the code.irungentoo
2013-09-27Merge branch 'ClientData46' of https://github.com/FullName/ProjectTox-Core ↵irungentoo
into FullName-ClientData46
2013-09-27Logging loop corrected.Coren[m]
2013-09-27Permit -Wshadow as useful warning.Coren[m]
2013-09-27expanded Client_data to hold two addresses (IPv4, IPv6) instead of oneCoren[m]
Compilerflag: CLIENT_ONETOONE_IP (to define in DHT.h, default unset i.e. NEW case: two addresses) Every function in DHT{_test}.c working on Client_data has been rewritten to store IPv4 addresses in assoc4, IPv6 addresses in assoc6. Loading/Storing of states defined with other compiler switch is transparently adjusting to the differences. DHT.h, DHT.c: - introduction and handling of the structure changes DHT_test.c, Messenger.c: - logging adapted to new structures util.h: - LOGGING isn't undefined per default anymore
2013-09-24Possible bug fixed.irungentoo
2013-09-24Merge pull request #604 from JFreegman/masterirungentoo
made setfriendname() part of public api
2013-09-23check length of nameJfreegman
2013-09-23Fixed typo.irungentoo
2013-09-23made setfriendname part of public apiJfreegman