ref: 8df402e53d02ca2c0b976715ce57c28750dd99d9
dir: /README/
==================================================================== WARNING: This program is still in progress, use it at your own risk. ==================================================================== ticl - tiny irc channel linker ------------------------------ ticl is a very small and simple multi-network irc channel linker. Working ------- A bot named 'linker' joins each given channels and clones each user of its channel on other channels and relays the user's messages received from its channel to the clones on other channels. If a user JOIN, QUIT, PART, or NICK, the linker attempts to emulate the same action with the clones on the other channels. The nick of clones has the network symbol (included in square brackets) as a suffix. If nick is already taken then additional suffix '_' will be added until nick is accepted on the network. Limitation ---------- - Networks and channels that require any type of registration or verification will not work because clones cannot register themselves. - Linking any two channels that are already linked will create an infinite loop of clones and may get your IP banned. - Channels on the same network will not link (can be possible in the future). - No spam protection. Features -------- - written in POSIX ANSI C. - one clone for every user on all other channels. - no support for TLS/SSL (this is a feature). Dependencies ------------ - C compiler (C89) - libc (with POSIX support) - POSIX make (optional) Compiling --------- $ make or $ gcc ticl.c htable.c utils.c -o ticl Example ------- To start the program with 'in' as the fifo file: $ ./ticl ./in To link channel #test20 from libera and channel #test21 from ircnow: $ echo 'netadd libera L irc.libera.chat 6667 #test20' > ./in $ echo 'netadd ircnow N irc.ircnow.org 6667 #test21' > ./in To unlink channel ircnow: $ echo 'netdel ircnow' > ./in To shutdown the program: $ echo exit > ./in Community --------- Join #playground on irc.ircnow.org:6697 (TLS) For any help, tag or private message me (libredev). NOTE: Anything is allowed as long as you are not violating IRCNow TOS. (https://wiki.ircnow.org/index.php?n=Terms.Terms) Email: libredev@ircforever.org (expect late response) SSL/TLS support --------------- 1. relayd (OpenBSD) ------------------- /etc/relayd.conf: table <libera> { irc.libera.chat } table <ircnow> { irc.ircnow.org } protocol "irctls" { tcp { nodelay, sack } } relay "libera" { listen on 127.0.0.1 port 31220 protocol "irctls" forward with tls to <libera> port 6697 } relay "ircnow" { listen on 127.0.0.1 port 31221 protocol "irctls" forward with tls to <ircnow> port 6697 } 2. stunnel (*BSD, GNU/Linux, GNU/Hurd, Plan9, etc) -------------------------------------------------- On debian, /etc/stunnel/stunnel.conf: pid = /etc/stunnel/pid [libera] client = yes accept = 127.0.0.1:31220 connect = irc.libera.chat:6697 checkHost = irc.libera.chat verifyChain = yes CApath = /etc/ssl/certs OCSPaia = yes [ircnow] client = yes accept = 127.0.0.1:31221 connect = irc.ircnow.org:6697 checkHost = irc.ircnow.org verifyChain = yes CApath = /etc/ssl/certs OCSPaia = yes 3. To connect: -------------- $ echo 'netadd libera L 127.0.0.1 31220 #test20' > ./in $ echo 'netadd ircnow N 127.0.0.1 31221 #test21' > ./in License ------- This work is dedicated to the public domain. See COPYING file for more information. FAQ --- Why not GPL? ------------ I was a big fan of GPL but slowly I realized that people should choose free software on their own intention and not by force. They should understand that free culture is the way to the future. But I don't hate GPL and I think it is a great license for new technologies and innovations that can be exploited by corporate. Why not MIT/BSD? ---------------- I hate attribution licenses like MIT, BSD or any permissive license because I think the attribution requirement is complete nonsense. Why shouldn't you call it open source? -------------------------------------- I hate the term 'open source' because it has nothing to do with free software and its philosophy. It is a misleading term used by corporate that refer to open collaboration. But that's not why you shouldn't call it open source, but because the Open Source Initiative (OSI) doesn't consider public domain software to be open source. For more information, visit https://opensource.org/node/878. It is free software because the FSF considers the public domain software to be free software.