diff --git a/doc/features/filter.txt b/doc/features/filter.txt index 331eb16f..5c3b983b 100644 --- a/doc/features/filter.txt +++ b/doc/features/filter.txt @@ -44,3 +44,15 @@ can be changed at build time if filtering on these fields is required. The number after the # will be 0 or 1 depending on whether the sending client was identified to a NickServ account. + +The process for loading filters is as follows: + +1. The Hyperscan database is serialized using hs_serialize_database(). +2. The serialized data is base64 encoded +3. A 'SETFILTER NEW' command is sent. +4. The base64 data is split into chunks short enough to fit into + a 512 byte IRC line, taking into account space needed for the + command, check field, and server mask, and send using 'SETFILTER +' + commands. +5. Once the entire database has been sent, a 'SETFILTER APPLY' command + is sent to commit it.