OpenChanfix

Introduction

What is OpenChanfix exactly?

OpenChanfix is an open source service module for Hybrid 7.1 compatible networks (such as EFnet). The service creates a continuous dynamic database of channel operators, automatically reopping channels which lose channel ops. Furthermore, the service can be manually invoked by OpenChanfix administrators to reverse recent channel takeovers.

By default, OpenChanfix observes channels with at least 4 clients, and retains channel op score records for 2 weeks.

How does it keep track of which people have been opped?

OpenChanfix makes a temporary list of all unique opped user@host pairs in a given channel. Thereafter, the user@host pairs are registered in the database as channel operators. For every scored round, a given user@host pair will receive one point. Channel ops are scored whenever the IRC network is judged to be intact (i.e. not split), and by default every channel is scored once every 5 minutes. Thus, assuming no large network splits, a given user@host pair can achieve a maximum of 288 points per 24 hour period.

When does OpenChanfix take action?

There are two cases in which OpenChanfix will take action.

The first is whenever a channel with scores in the database becomes opless. OpenChanfix will look at the scores in the database and match those against the clients currently present on the channel, and give ops to the clients with the highest scores.
This is called an automatic fix; whenever a channel becomes opless, OpenChanfix will attempt to fix it automatically.

The second is when a channel has been taken over. An IRC Operator with an account on OpenChanfix with the right flag can issue a manual fix.
If this is issued, all clients on the channel are deopped, and OpenChanfix will join the channel and remove all bans and modes. This allows the channel regulars to rejoin the channel. Then, after a short while, OpenChanfix will join the channel again and will reop the channel using the same autofix logic.

For more information about the exact algorithm used, see the opping logic section.

How does one interface with OpenChanfix?

When loading the OpenChanfix module into your ircd, a client is connected. By default, its nickname is C. All oper <-> OpenChanfix interaction goes via PRIVMSG to C.