Internet延迟交谈:通道管理( 四 )


4.2.4不答应通道外客户向通道发送消息
当通道标志‘n’设定时,只有通道成员才可以向通道发送消息 。
这个标志只影响用户 。
4.2.5安静通道
通道标志‘q’仅供服务器使用 。设定时,它限制发送给用户的关于通道操作的数据
类型:其他用户加入,离开和重要的变化都不发送 。从用户的观点来看,通道只包含一个用
户 。
这经常用于创建非凡的本地通道,这种通道里服务器发送和它的操作相关的通知 。它作为一
种更加有效率特富有弹性的方法可以用来取代RFC1459[IRC]里定义的用户状态‘s’ 。
4.2.6私人和秘密的通道
通道标志‘p’用来标志一个通道是私人的,通道标志‘s’用来标志一个通道是秘
密的 。两种性质很相似,他们都向其他用户隐藏了通道的存在 。
这意味着如够不加入就没有办法从服务器得到通道的名字 。换句话说,对whois命令这样的
询问的答复必须将这些通道省略掉 。
当一个通道是‘秘密的’的时候,除了上面的限制外,对topic,list,names命令这样的询问,
服务器必须表现得象通道不存在一样 。上述规则只有一个例外:服务器会正确地答复mode
命令 。最后,当参数指定时,秘密通道没有责任回复lusers命令(参阅“InternetRelay
Chat:ClientProtocol”[IRC—CLIENT]) 。
通道标志‘p’和‘s’不能同时设定 。假如服务器的MODE消息设定‘p’标志而且通道已
经设定了‘s’,那么这种变化就静静地被忽略掉 。这只有在断连恢复期间才能发生 。(在“IRC
ServerProtocol”文档中提到) 。
4.2.7服务器Reop标志
通道标志‘r’只有在名字以字符‘s’开头的通道中才可用,并且也许只能由‘通道
创建者’来转换 。
这个标志用来防止一个通道长期处于无通道治理员的状态 。当这个标志设定时,任何失去它
的所有通道治理员超过‘reop延迟’时期的通道将触发促发服务器里的一种机制,将通道内
的一些或所有用户重设为治理员 。这种机制在5.2.4部分中有更具体的描述(通道reop机制) 。
4.2.8主题
通道标志‘t’用来限制通道治理员topic命令的使用 。
4.2.9用户限制
一个用户限制可以用通道标志‘l’在通道上设置 。当达到限制人数时,服务器必须
禁止本地用户加入通道 。
限制的值可以从服务器对mode询问的答复中获取 。
4.3通道访问控制
状态的最后一个域是用来控制通道的访问的,它们将一个掩码作为参数 。
为了减小为通道设置的控制访问状态的整体数据库的尺寸,服务器可能对这类状态的设定加
上一个最大值限制 。假如想加上这种限制,它必须只能影响用户请求 。这种限制对每个IRC
网络来说应该是类似的 。
4.3.1通道禁令和异常
当用户请求加入一个通道,它的本地服务器检查用户的地址是否和通道的任何禁令掩
码相符,假如相符,用户请求就被拒绝,除非该地址也和通道的一个异常掩码相符 。
服务器不答应通道禁止的成员在通道上发言,除非次成员是通道治理员或者由发言特权 。(参
见4.1.3部分(发言特权)) 。
通道禁止的用户,假如它带有通道治理员发出的邀请,那么就答应加入通道 。
4.3.2通道邀请
对那些invite-only标志设置了的通道,任何用户,只要它的地址和通道的邀请掩码
相符,就答应加入通道,即使没有受到邀请 。
5.目前的实现
目前这些作为IRC协议一部分的规则的唯一实现是IRC服务器,版本2.10 。

推荐阅读