Wazakindjes db8dda342d Apparently having #ifdefs around variable assignment may result in false unused warns xd 11 months ago
..
README.md b065ada6cf Updated readmuhs for br0ken and spec to also contain an actual index table lm0a 1 year ago
m_modmgmt.c db8dda342d Apparently having #ifdefs around variable assignment may result in false unused warns xd 11 months ago
m_redirectplain.c ed387f53bf For all modules: added a license/credits thingy at ze top and cleaned up unused variables xd 11 months ago
m_splitriders.c ed387f53bf For all modules: added a license/credits thingy at ze top and cleaned up unused variables xd 11 months ago
m_wiimmfi_dsplaza.c ed387f53bf For all modules: added a license/credits thingy at ze top and cleaned up unused variables xd 11 months ago

README.md

This directory basically contains modules I almost finished but can't be completed due to circumstances. xd I like to keep them for reference or if (in the future) I can continue working on them. The source of these may be dirty as hell (mostly undocumented, random snippets of code for debugging, etc), fukn deal w/ it. ;]

I'll be reusing the tags from the main readme (like UNC etc) here.

Index lol

Module Description
m_redirectplain (UNC) Redirects non-SSL/TLS user connections to an SSL-enabled port
m_splitriders Prevents users from joining restricted channels during a netsplit
m_modmgmt Enable loading/unload/reloading of mods (temporarily) through IRC
m_wiimmfi_dsplaza (UNC) Module to allow the DS WiFi Plaza to work

m_redirectplain (UNC)

Forces users who connect over a plaintext p0t (6667 by default etc) to use SSL/TLS instead. This shit would've worked if the numeric reply (010 or RPL_REDIR) allowed for indication of secure p0ts. Or if a certain RFC change wasn't still in fucking draft status. ;_;

Config block:

set {
    redirectplain 6697;
};

This will (attempt to) tell the client to reconnect securely using port 6697. The reply actually also includes a server name, for which it uses set::default-server (this is usually shit like irc.hamnet.org).

m_splitriders

Sometimes someone might try to get into oper-only channels (chmode +O) during/right after a netsplit. This is possible because the channel may be destroyed due to a netsplit so the mode is unset.

This module attempts to rewrite all the SJOIN commands it gets to exclude people without proper oper flags from getting SJOINed into a channel. It works for the most part, except they still see the channel topic, modes and users. That shit is pretty much hardcoded into the IRCd so would be hard to change it through a module. =[ I also don't want it to get too hacky. xd

m_modmgmt

Many people would like to load/unload/reload modules at runtime to quickly test and/or fix something. When you rehash, these changes will be lost as Unreal re-parses the config. Also, there's currently no easy way to get the .so file path from just the Module *pointer, so you'll have to pass relative paths at times. These paths are the same as how you would enter them in unrealircd.conf.

However, Unreal doesn't really provide an easy way to do this as you're not really "supposed to" (so this shit is hacky af to begin with). The module is able to unload other modules but when you load/reload one/multiple, it doesn't register overrides and certain hooks. This is because it doesn't seem to call MOD_INIT ever and when I try to heck it, it just segfaults on me. ;_;

Syntax:

  • MODLOAD <modlist> [-local]
  • MODUNLOAD <modlist> [-local]
  • MODRELOAD <modlist> [-local]
    You can specify -local if for some reason the module should only be loaded on the current server. m_confprot for example doesn't belong on leaf servers. The modlist can be as long as you want (see below examples), as long as -local comes last.

Examples:

  • /modload third/m_forward chanmodes/floodprot
    Attempts to load the third-party module m_forward as well as Syzop's default floodprot channel mode (+f)

  • /modunload m_forward floodprot
    Attempts to unload the above mentioned modules (notice how you only need the name and not the relative module path)

  • /modreload third/m_forward chanmodes/floodprot
    Attempts to reload the above mentioned modules (notice how you actually do need the path bit here)

m_wiimmfi_dsplaza (UNC)

Refer to the Github issue for more in-depth information: https://github.com/mm201/pkmn-classic-framework/issues/7

Basically my attempt at reverse engineering the Nintendo DS WiFi Plaza shit that allows up to 20 players to interconnect and pley vidya (no friendcodes required). Apparently it connects to IRC in the background and uses a proprietary protocol to communicate with other playurs.

Unfinished cuz I can't test that shit myself. May pick it up at some point lmao.