summaryrefslogtreecommitdiff
path: root/blabouncer.c
AgeCommit message (Collapse)Author
2019-05-17Condense multiple arrays being passed around into one nice big struct to be ↵Luke Bratch
passed around (huge change) and improve efficiency of sendtoallclients() loop.
2019-05-16Correctly handle nicks changing and actually track users PARTing channels.Luke Bratch
Also change nickuserhost to store the leading colon (:) since it's always needed (so far).
2019-05-16Improve "listchannels" stdin debugging command.Luke Bratch
2019-05-16Make logging and replay logging optional.Luke Bratch
2019-05-16Move default configuration file location to $HOME/.blabouncer/ and create a ↵Luke Bratch
default file automatically if it doesn't exist.
2019-05-16Add a configurable base directory for things like logs, defaulting to ↵Luke Bratch
$HOME/.blabouncer/.
2019-05-16Implement normal logging (file per channel/user).Luke Bratch
2019-05-15Add a blabouncer welcome message to clients upon connection.Luke Bratch
2019-05-15Improve NOTICE output sent to client when no replay lines are available or ↵Luke Bratch
when getting the help message.
2019-05-15Add some help output for unrecognised BLABOUNCER commands.Luke Bratch
2019-05-15Add custom command to let a client request a replay of however many seconds ↵Luke Bratch
at any time.
2019-05-13Implement optional TLS for the server side.Luke Bratch
2019-05-12Make using TLS for clients connecting to the bouncer optional.Luke Bratch
2019-05-12Make certificate and key file paths configurable.Luke Bratch
2019-05-12Make configuration file path configurable on the command line. Also finish ↵Luke Bratch
removing the non-functional debug() stuff.
2019-05-12Move real IRC server and port specification to configuration file. Also ↵Luke Bratch
remove '-d' debug mode which doesn't do anything.
2019-05-12Completely rewrite configuration file reading to remove lots of duplicated ↵Luke Bratch
code and to simplify things. Alter everything that called the old functions.
2019-05-12Make client port configurable and move settings structure to be initialised ↵Luke Bratch
in main() instead of dochat().
2019-05-12Add a settings structure for passing around everywhere to store ↵Luke Bratch
config/settings. Also fix the insanely inconsistent spelling/naming of replay log related things.
2019-05-12Rename OpenSSL array structure to arr_ssl.Luke Bratch
2019-05-12Handle large raw strings from the server and properly track/rejoin long ↵Luke Bratch
split/truncated messages
2019-05-12Implement TLS using OpenSSL.Luke Bratch
2019-05-11Implement authentication in the form of the bouncer having a configurable ↵Luke Bratch
server password
2019-05-11Implement relay log writing.Luke Bratch
2019-05-11Add the ability to replay messages from a replay log file. (No replay log ↵Luke Bratch
file writing yet.)
2019-05-11Implement a configuration file reader, an example configuration file, and ↵Luke Bratch
start reading nick/username/realname from it instead of being statically defined.
2019-05-11Use our real client hostname provided by the IRCd dynamically instead of ↵Luke Bratch
hardcoding one ourselves when relaying our own PRIVMSGs to other bouncer clients.
2019-05-08Keep track of users JOINing channels we're already in, not just if they were ↵Luke Bratch
in the channel when we JOINed.
2019-05-08Don't PART channels when another user PARTs.Luke Bratch
2019-05-08Add some STDIN based debugging commands.Luke Bratch
2019-05-08Make TOPIC tracking/following/setting/etc. work for most/all scenarios and ↵Luke Bratch
ensure it's always given out to new clients correctly. Also misc other bug fixes.
2019-05-08Remove PARTed channels from channel array so new clients don't JOIN ↵Luke Bratch
previously PARTed channels
2019-05-08Close and clear up disconnecting clients promptlyLuke Bratch
2019-04-21Fix appendcrlf() to strip both CR and LF, fixes mysterious newlines in PRIVMSGsLuke Bratch
2019-04-21Make already connected clients join channels when JOINingLuke Bratch
2019-04-21Not using time.hLuke Bratch
2019-04-20We are bouncing! You can now:Luke Bratch
- connect the bouncer to a server - connect to the bouncer with a real client - join channels - have new clients connect and have the bouncer join those new clients to the channels - relay PRIVMSGs between all clients Some random current big bugs: - Joining channels whilst multiple clients are already connected doesn't join all clients properly - Parting channels doesn't work - No idea what will happen if the nick is in use, etc. Features missing: - Almost everything :)
2019-04-19Lots and lots of refactoring and comments work in preparation for more ↵Luke Bratch
actual IRC/bouncer functionality
2019-04-18First actual "bouncer" features - self connects and registers (NICK/USER) ↵Luke Bratch
and automatically handles PING/PONG response/requests
2019-04-18Split functions into different filesLuke Bratch
2019-04-18Move multiple (duplicated) relaying to all clients stuff to a functionLuke Bratch
2019-04-17More or less the same functionality, but now stable with clients ↵Luke Bratch
connecting/disconnecting and lots more debug output
2018-04-01It's now actually a semi-bouncer! It doesn't tell new clients which ↵Luke Bratch
channels to join or anything, but it does relay everything to each client.
2018-03-31Client listener in place, not functional yet except for ability to accept ↵Luke Bratch
connections
2018-03-30Change some code styleLuke Bratch
2018-03-30Initial commit - currently just a very manual IRC clientLuke Bratch