summaryrefslogtreecommitdiff
path: root/blabouncer.c
AgeCommit message (Collapse)Author
2019-05-18No need to store channel modes as clients ask for them when JOINing.Luke Bratch
2019-05-18Check authentication status of client as early as possible when receiving ↵Luke Bratch
its commands to avoid unnecessary processing.
2019-05-18Handle nick in use or invalid nick, add multiple nicks to configuration file ↵Luke Bratch
to automatically try.
2019-05-18Tell clients to go away if we're not registered with the real server yet.Luke Bratch
2019-05-18Alert other clients when clients connect, disconnect, authenticate, or fail ↵Luke Bratch
to authenticate.
2019-05-18Accurately track the number of connected clients.Luke Bratch
2019-05-18Fix another buffer overrun and numerous memory leaks.Luke Bratch
2019-05-18Only send certain known responses to the client that requested them. So far ↵Luke Bratch
implemented channel MODE requests, channel ban requests, WHO requests, and LIST requests.
2019-05-18Avoid some buffer overruns.Luke Bratch
2019-05-17Track and relay our user MODE correctly, including for new clients.Luke Bratch
2019-05-17Properly support changing our nick while connecting by updating it ↵Luke Bratch
everywhere including initial server welcome strings. Make sure channels are cleared when PARTing them. Ignore most commands from clients until they are registered with us. Send the correct current nick when sending NOTICEs.
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