SHUN documentation, last updated on 22 Jun 2013 For an ordinary user, the syntax is: SHUN [] If is given, and if a Shun for that server exists, all the information about that Shun is displayed. If is not given, an error is returned. For an operator, the syntax is: SHUN [[!][+|-|>|<] [] [ [:]]] There are a total of 10 basic forms of the SHUN command. If no arguments are given, all existing Shuns will be listed; if only is given, the behavior is the same as for an ordinary user. The remaining forms allow Shuns to be set, manipulated, or possibly destroyed. * Local Shuns. Opers may set or remove Shuns that only apply to a specific server. When the parameter is not given, the specific server will be the local server; otherwise, it will be taken to be a remote server, and the Shun operations will take place there, if the oper has the SHUN privilege. When is preceded with the '+' character, the Shun will be added, and and are required; when is preceded with the '-' character, the Shun will be removed, and and are not required. The '<' and '>' character prefixes are not valid for local Shuns. * Local modifications to global Shuns. Opers may locally activate or deactivate global Shuns. In this mode, is interpreted as referencing an existing Shun, and will be preceded by either '<' (to locally deactivate the Shun) or '>' (to locally activate the Shun). This local state overrides the global state of the Shun, and persists until there is a global state change to the Shun, or until the Shun expires. The and arguments are not required, but may be given if the oper desires to make the appropriate change on a remote server--note that the oper will need the SHUN privilege for this. * Global Shuns. Opers may, if they have the SHUN privilege, set and manipulate global Shuns on the network. To create a new Shun, the oper must prefix the with either '+' (for globally activated Shuns) or '-' (for globally deactivated Shuns). Additionally, must be given as "*", and the and parameters are required. If the Shun already exists, it will be modified to match the new global status, , and . When the Shun already exists, an oper may activate or deactivate it simply by setting to "*" and prefixing the with either "+" (to activate the Shun) or "-" (to deactivate it). If it is desired to simply modify the expiration time or reason, without changing the activation status, specify without any prefix, set to "*", and provide the updated and optionally an updated . * Privilege notes. Note that, for all locally-restricted Shun changes, such as locally activating a Shun or creating a local Shun, the oper must have the LOCAL_SHUN privilege. For any other Shun change, including locally-restricted changes on remote servers, the server's CONFIG_OPERCMDS privilege must be enabled and the oper must have the SHUN privilege. There are also restrictions to prevent an oper from setting a Shun that is too wide; in some cases, those restrictions may be overridden by prefixing the parameter with the "!" character, IF the operator has the WIDE_SHUN privilege. For a server, the syntax is: SU [!][+|-|>|<] [] [] [] [:] There are a total of 8 basic forms of the SU command. The primary innovation is the addition of the parameter, which specifies a lifetime for the Shun record which may be longer than the expiration time. will be monotonically increasing, enabling to be modified in any way desirable. * Local Shuns. Remote servers, or opers on them, may remotely set local Shuns on the local server. To create a local Shun, will be set to the numeric of the local server, and must be preceded by '+' (optionally preceded by '!' if the origin desires to override some safety settings). The and parameters are required. The and parameters will be ignored if present, allowing backwards compatibility with ircu2.10.12.10 and prior versions. Removing local Shuns is similar-- must be preceded by '-', and all other parameters are ignored to allow backwards compatibility. * Local modifications to global Shuns. Remote servers, or opers on them, may also locally activate or deactivate a global Shun on the local server. The must be set to the numeric of the local server, and must be preceded by either '<' (to locally deactivate the Shun) or '>' (to locally activate the Shun). This local state overrides the global state of the Shun, and persists until there is a global state change to the Shun, or until the Shun expires. No other parameters are necessary in this mode, and will be ignored if present. * Global Shuns. For creation and manipulation of global Shuns, the parameter must be set to "*". If the Shun does not exist, and if is given, the Shun will be created with the specified expiration and (the latter defaulting to "No reason" if not present). Otherwise, the Shun will be updated according to the available parameters. The rules are similar to those for oper-issued global Shuns, with the addition of a parameter, which is a monotonically increasing serial number for the Shun, and an optional parameter that specifies a monotonically increasing lifetime for the Shun record. Note that, for existing Shuns where only state changes (global activation or deactivation) are necessary, only is required; must be specified for all other forms of the SU command.