Age | Commit message (Expand) | Author |
2014-09-20 | Implement fiforead()...fiforead() automatically reopens a file-descriptor in case
it returns EOF (return 0).
It returns -1 on error.
| FRIGN |
2014-09-19 | Initialize fdmax | sin |
2014-09-19 | Factor out fifoflush() in a separate func...Also flush the fifo for stalled transfers
| sin |
2014-09-19 | Clear up the enums and fix implicit condition-bug...The OUT_F-type was not clear. Make it easier to see the out-file
has no state (=NONE) and is defined for each slot individually.
Moreover, in the initial creation, the err-file fell through
just because STATIC = 0 and .outfile wasn't defined for it.
It was only coincidence this worked and now we have a much
more bulletproof implementation.
| FRIGN |
2014-09-19 | Handle rejected transfers | sin |
2014-09-19 | Fix PAUSE/RESUME in file transfers...The doc lies, if the receiver resumes a transfer you get
a control packet with send_receive == 1 and control_type == TOX_FILECONTROL_ACCEPT.
We keep state locally and move from PAUSED to INPROGRESS when the
above happens.
| sin |
2014-09-19 | Add TRANSFER_PAUSED state...Doesn't quite work yet though.
| sin |
2014-09-19 | Inform the user when a transfer is in progress | sin |
2014-09-19 | Fix file transfers + texting to use O_RDONLY for FIFOs...Just re-open them to clear EOF.
| sin |
2014-09-19 | Change global in-fifos from O_RDWR to O_RDONLY...O_RDWR is a dirty hack to get around the issue of infinite
EOFs while reading an in-FIFO.
Instead, stop breaking POSIX and set the FIFOs to O_RDONLY.
In case a read returns EOF (r == 0), we reopen the fd.
Same will be applied to the friend-fifos (especially file_in),
helping us get rid of strange timeouts and heuristics and
rather solve the problem the POSIX-way.
The only downside to this is that we are blind for writes
to the in-FIFOs between catching read == 0 and close(), but this is
not an issue.
To make reopening as easy as possible, I added a dirfd
to all slots.
While at it, I changed the initial setup and removed the chdir()
in favor of the POSIX-2008-compliant *at-functions.
This lets us do stuff without having to use snprintf to build
paths and is more bulletproof even in case the directory is
renamed.
| FRIGN |
2014-09-18 | Missed some more | sin |
2014-09-18 | No need to specify modes, default to 0644 and 0777 | sin |
2014-09-18 | OUT_F is reserved for the edge-case where we don't know if OUT is a STATIC or......So use STATIC here.
| sin |
2014-09-18 | Print a message when we reject a friend request | sin |
2014-09-18 | Allow the user to reject a friend request | sin |
2014-09-18 | We need O_WRONLY for text_out as well | sin |
2014-09-18 | Remember to ftruncate() before updating the files | sin |
2014-09-18 | Remove writeline() | sin |
2014-09-18 | We can't use TAILQ_REMOVE inside TAILQ_FOREACH | sin |
2014-09-18 | Add fifos for incoming requests and remove cmd-parser | FRIGN |
2014-09-18 | Rework file-transfers...For aborted transfers, we will have to move the transfer to the
TRANSFER_KILLED state. Then we'll have to wait until the input
FIFO stops being readable (the user ^C the transfer). Only then can
we move to TRANSFER_NONE.
If we move to TRANSFER_NONE immediately then we will initiate a
new transfer which we don't want to do.
The basic idea is:
If we move into the TRANSFER_KILLED state and timeout has expired (50ms?)
without the fd being readable (the user did a ^C on cat file > file_in)
then move the transfer to TRANSFER_NONE state.
| sin |
2014-09-17 | Fix wall of gcc-warnings | FRIGN |
2014-09-17 | Rename ratatox to ratox | sin |