summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-09-23We support utf-8sin
2014-09-23Add section on portabilitysin
2014-09-23We have proxy support, update READMEsin
2014-09-23Add READMEsin
2014-09-23We need to force TCP mode when using the proxysin
2014-09-23Add proxy supportsin
(Remove tcpenabled from config.def.h as it can easily be flipped at runtime via the cmdline switch).
2014-09-23Add TCP modesin
2014-09-23Refactor data-structuresFRIGN
2014-09-23Scream if the datafile has 0 lengthsin
2014-09-23Add TODOsin
2014-09-23Add frienddestroy() and refactor removefriend()sin
friendcreate() populates the fs, frienddestroy() removes the friend related files from the fs. removefriend() only acts on the data from the friend's remove fifo. The "callback" in this case is responsible for reading the fifo like in all other cases (sendfriendtext() etc.). No weird dance with special function arguments to flag "official" removal. All friend related "callbacks" just need to operate on a struct friend *.
2014-09-22Use fsync() on fd in datasave()sin
2014-09-22Refactor removefriend()FRIGN
2014-09-22Add support for removing friendssin
2014-09-22Dump our status message in the status/out file not our nicknamesin
2014-09-22Use number of seconds since epoch as a timestamp for naming files uniquelysin
This breaks if time travel becomes a possibility.
2014-09-22Use O_RDONLY when opening the datafilesin
2014-09-22Remeber to truncate datafile in datasave() in case it shrinkssin
2014-09-22Change datasave() and localinit() to use fd's instead of fp'sFRIGN
2014-09-22Print message before password promptsin
2014-09-22Refactor dataload()FRIGN
Use fd's instead of fp's and simplify the case-handling for encryption.
2014-09-22Refactor fifoflush()FRIGN
After the previous simplification of return-values of fiforead() (exit if there's a more serious issue), fifoflush() can easily be replaced with a oneliner calling fiforead until it returns 0. In case 0 is returned, the underlying fifo will have already been reopened.
2014-09-22Style fixsin
2014-09-22Forgot config.def.hsin
2014-09-22Rename encryptsave to encryptdatafilesin
2014-09-22Allow to encrypt a plain text data file and vice versasin
2014-09-22Inform the user if encryption is enabled but the datafile is not encryptedsin
2014-09-22Print a newline between the banner and the restsin
2014-09-22Allow a client with encrypted support to load non-encrypt datafilessin
2014-09-22Just realloc(), don't leak if we get called more than oncesin
2014-09-22Oopssin
2014-09-22Just check p[0]sin
2014-09-22Forbid empty passwords, keep loopingsin
2014-09-22Make sure to report when .ratox.data doesn't match our encryption configsin
2014-09-22Keep asking for password if it doesn't matchsin
2014-09-22Use portable readpassphrase() from OpenSSHsin
2014-09-22Generate config.hsin
2014-09-22Add support for encrypted save filessin
2014-09-21Add IPv6 supportsin
Default to IPv4.
2014-09-21Lay the ground for IPv6 supportsin
2014-09-21Update nodelistsin
2014-09-21Only close file descriptors when they are not -1sin
2014-09-21Add shutdown() for clean exitFRIGN
This also sends a broadcast to all friends you went offline, leading to an immediate event-feedback.
2014-09-20fiforead() should accept a void * instead of char *sin
Remove ugly casts.
2014-09-20Fix off-by-one bugs when calling fiforead()sin
dirfd should be the first arg to be consistent with other functions.
2014-09-20Refactor sendfriendreq()FRIGN
Put the error-strings in one single data-structure and flush the err-file every time before a new incoming request, so it's empty when the request succeeds.
2014-09-20Implement fiforead()FRIGN
fiforead() automatically reopens a file-descriptor in case it returns EOF (return 0). It returns -1 on error.
2014-09-19Initialize fdmaxsin
2014-09-19Factor out fifoflush() in a separate funcsin
Also flush the fifo for stalled transfers
2014-09-19Clear up the enums and fix implicit condition-bugFRIGN
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.