Age | Commit message (Expand) | Author |
2014-11-29 | Adapt to latest cleanup in API | FRIGN |
2014-11-28 | Fix style | sin |
2014-11-27 | Don't lock up on blocking call_out...Since the av-refactor, we keep a call active as long as there is
a listener or a sender.
In case we don't have a listener, don't lock up in the sending
function and rather just fall-through in case the write blocks.
We can't do that as easily with the file-data-code, because data-
integrity is very important there.
| FRIGN |
2014-11-26 | Fit ratox to new toxav-API...mannol has done a great job re-working the toxav-api[0] also based
on our suggestions for a stricter callback-approach.
Previously, toxav-callbacks could hit any time, leaving us with
dramatic timing-issues and instability in certain situations.
The new toxav_do()-call enables the client to control when to
fire the callbacks. toxav_do_interval() makes sure no time is
lost in the meantime.
[0]: https://github.com/irungentoo/toxcore/pull/1163
| FRIGN |
2014-11-01 | Don't assume mono-audio in defaults | FRIGN |
2014-10-24 | Use (none, pending, active) instead of (0, 1, 2) | sin |
2014-10-18 | Refactor logic in main-loop for pending calls even more...and implement fifoopen in other places.
| FRIGN |
2014-10-18 | Don't forget to queue call_out while incoming ringing...Else the call would be rejected immediately in case you receive a
call and have not yet opened call_out for reading.
| FRIGN |
2014-10-17 | Indentation fixes | sin |
2014-10-17 | Refactor call-state management...Checking call_out only and stopping the call as soon as call_out
is gone is not desirable behaviour.
It now keeps up the running call until both call_out and call_in
have been "closed", no matter how or by whom it was started.
This is done by introducing av.state, which is a bit field.
While at it, I also incorporated the transmission-state into it.
toxav_hangup() will now only be called from the one centralized
flag-checking-loop before select, not in the callbacks themselves.
This will also get rid of some race-conditions (more or less).
Previously, call_out was constantly polled as long as the user
was online. Change this to only attempt to open call_out when the
call is initialized. This lowers CPU-usage dramatically.
| FRIGN |
2014-10-16 | Remove ugly use of O_DIRECTORY...Oops kfreebsd builds break. Aw well.
| sin |
2014-10-16 | Cleanup...AV-logging, logic and check for < 0 instead of == -1 (just to make
sure).
| FRIGN |
2014-10-15 | Remember to cool down the transfer for pending buffers as well...This change halves CPU usage on my system.
| sin |
2014-10-15 | Only complain if errno is not EWOULDBLOCK | sin |
2014-10-15 | Only call toxav_kill_transmission() after toxav_prepare_transmission()...toxav_prepare_transmission() sets the internal toxav `call_active'
state variable. This is checked in toxav_kill_transmission() and
only if set, proceeds to release the resources.
| sin |
2014-10-15 | Fortify and optimize file-sending...Do this in two ways:
1) only allow ratox to stay in the file-sender for a certain amount
of time
2) Stop hammering tox_file_send_data(). When it returns -1, we put
the given friend into a cooldown-state, because all internal transmission
slots are full.
File sending thus now works in bursts, reading from file_in as long
as tox_do() allows or until tox_file_send_data() fails.
An easy way to see why we need to do the former is piping /dev/urandom
to file_in, which never blocks. Effectively, the user goes "offline"
after a while given he is trapped inside the loop.
Piping to /dev/urandom is not an unrealistic testcase. Imagine a
researcher who desperately needs true random data from his special
RNG in his lab using ratox and piping it through /dev/urandom.
| FRIGN |
2014-10-14 | Change the state-files...rename file_pending to file_state
rename call_pending to call_state
0 = no call
1 = call pending
2 = call active
| FRIGN |
2014-10-13 | Only send call-data when Tx transmission is ready...Due to a bug in toxcore the call is set to active too early,
leaving room for invocations of sendfriendcalldata() even though
the transmission has not yet been set up in cbcallstart.
Fix this with a small workaround keeping the transmission-state
in the client.
In the long run, this definitely needs to be fixed in toxcore
for consistency.
| FRIGN |
2014-10-13 | Fortify error-checks and FSM...Basically the direct calls to cancelcall() should be minimized
and only set off in a callback.
Additionally, tweak other error-cases and don't always quit fatally
but instead provide ways to get out of an error-condition.
| FRIGN |
2014-10-13 | Finish cleaning up av-callbacks...Now it's fun again to work with the code.
| FRIGN |
2014-10-12 | Further simplify call-start-callbacks...using the udata-void pointers to pass data as a source of information.
| FRIGN |
2014-10-12 | Use (void *userdata) in callbacks and drop ringing-callback...This saves a lot of LOC and is definitely easier to maintain.
| FRIGN |
2014-10-12 | Fix vertical spacing | sin |
2014-10-12 | We might eventually have logerr() and logwarn() | sin |
2014-10-12 | tox_is_data_encrypted() was renamed to tox_is_save_encrypted() | sin |
2014-10-12 | Add stricter error-checking...In upcoming commits, these errors will be incorporated into the
logging-system, so they don't look so out of place when issued.
| FRIGN |
2014-10-10 | Don't spin on request/out/<ID> if we echo anything other than '0' or '1' | sin |
2014-10-09 | Fix request- and friend-management...When you got a request, but not accepted it via request/out/... and
instead sent a request yourself, it would not remove the FIFO.
This patch fixes this behaviour by iterating through the request-
list and removing the FIFO if it's still existing.
Additionally, actually make it possible to reject requests and
re-add your friends later by managing the internal tox-state
properly.
| FRIGN |
2014-10-08 | Style fix...Similar style as for detecting broken file transfers.
| sin |
2014-10-08 | Don't close a random fd...if (f->rxstate == TRANSFER_INPROGRESS &&
(fd = openat(f->dirfd, ffiles[FFILE_OUT].name, ffiles[FFILE_OUT].flags, 0666)) == -1 &&
errno == ENXIO) {
...
} else {
close(fd); <--- not always appropriate!
}
| sin |
2014-10-08 | Do a toxav_hangup() like we do elsewhere...This will trigger the callback and reset toxav internal states
accordingly. In the callback we actually call cancelcall().
| sin |
2014-10-08 | Fix file-transfers | sin |
2014-10-08 | Check outfiles if they are still open...If not, abort receiving.
| FRIGN |
2014-10-08 | Check if the call id is valid before cancelling it | sin |
2014-10-08 | Fix build on kfreebsd | Kill Your TV |
2014-10-08 | Rework state management for audio calls...No need to try to keep local state, just use toxav_get_call_state().
We now can auto-accept calls by pre-attaching on the call_out FIFO.
| sin |
2014-10-08 | A bit more consistent output message | sin |
2014-10-08 | Implement peer timeout | sin |
2014-10-08 | Release call resources with toxav_kill_transmission()...Reject calls on both sides to reset states. This still needs
to be tested to see if there's any effect of doing that.
| sin |
2014-10-08 | Remove debug printf() | sin |
2014-10-07 | Simplify user state tracking | sin |
2014-10-07 | Refactor user-state-logic | FRIGN |
2014-10-07 | Rename ustatus to ustate | sin |
2014-10-07 | Correctly inform external scripts of an invalid user state | sin |
2014-10-07 | Add support for changing the user state and reporting friend's user state | sin |
2014-10-07 | Allocate enough memory to allow copying all the friends | sin |
2014-10-07 | Send the actual message when initiating the friend request | sin |
2014-10-07 | Fix possible stack corruption when parsing friend IDs | sin |
2014-10-07 | Reset fd offset when writing out | sin |
2014-10-06 | Nuke leading space | sin |