Documentation
¶
Index ¶
- Constants
- Variables
- func AddrLookupHostname(addr net.Addr) string
- func IPString(addr net.Addr) string
- func IsChannel(target string) bool
- func IsNickname(nick string) bool
- func LookupHostname(addr string) string
- func NewAwayCommand(args []string) (editableCommand, error)
- func NewCapCommand(args []string) (editableCommand, error)
- func NewChannelModeCommand(args []string) (editableCommand, error)
- func NewDebugCommand(args []string) (editableCommand, error)
- func NewInviteCommand(args []string) (editableCommand, error)
- func NewIsOnCommand(args []string) (editableCommand, error)
- func NewJoinCommand(args []string) (editableCommand, error)
- func NewKickCommand(args []string) (editableCommand, error)
- func NewKillCommand(args []string) (editableCommand, error)
- func NewListCommand(args []string) (editableCommand, error)
- func NewMOTDCommand(args []string) (editableCommand, error)
- func NewModeCommand(args []string) (editableCommand, error)
- func NewNamesCommand(args []string) (editableCommand, error)
- func NewNickCommand(args []string) (editableCommand, error)
- func NewNoticeCommand(args []string) (editableCommand, error)
- func NewNumericReply(target *Client, code NumericCode, format string, args ...interface{}) string
- func NewOperCommand(args []string) (editableCommand, error)
- func NewPartCommand(args []string) (editableCommand, error)
- func NewPassCommand(args []string) (editableCommand, error)
- func NewPingCommand(args []string) (editableCommand, error)
- func NewPongCommand(args []string) (editableCommand, error)
- func NewPrivMsgCommand(args []string) (editableCommand, error)
- func NewProxyCommand(args []string) (editableCommand, error)
- func NewQuitCommand(args []string) (editableCommand, error)
- func NewStringReply(source Identifier, code StringCode, format string, args ...interface{}) string
- func NewTimeCommand(args []string) (editableCommand, error)
- func NewTopicCommand(args []string) (editableCommand, error)
- func NewUserCommand(args []string) (editableCommand, error)
- func NewUserModeCommand(args []string) (editableCommand, error)
- func NewVersionCommand(args []string) (editableCommand, error)
- func NewWhoCommand(args []string) (editableCommand, error)
- func NewWhoisCommand(args []string) (editableCommand, error)
- func ParseCommand(line string) (cmd editableCommand, err error)
- func RplChannelMode(client *Client, channel *Channel, changes ChannelModeChanges) string
- func RplError(message string) string
- func RplInviteMsg(inviter *Client, channel string) string
- func RplJoin(client *Client, channel *Channel) string
- func RplKick(channel *Channel, client *Client, target *Client, comment string) string
- func RplKill(client *Client, target *Client, comment string) string
- func RplMode(client *Client, target *Client, changes ModeChanges) string
- func RplNick(source Identifier, newNick string) string
- func RplNotice(source Identifier, target Identifier, message string) string
- func RplPart(client *Client, channel *Channel, message string) string
- func RplPing(target Identifier) string
- func RplPong(client *Client) string
- func RplPrivMsg(source Identifier, target Identifier, message string) string
- func RplQuit(client *Client, message string) string
- func RplTopicMsg(source Identifier, channel *Channel) string
- type AuthServerCommand
- type AwayCommand
- type BaseCommand
- type CapCommand
- type Channel
- func (channel *Channel) CanSpeak(client *Client) bool
- func (channel *Channel) CheckKey(key string) bool
- func (channel *Channel) ClientIsOperator(client *Client) bool
- func (channel *Channel) GetTopic(client *Client)
- func (channel *Channel) Id() string
- func (channel *Channel) Invite(invitee *Client, inviter *Client)
- func (channel *Channel) IsEmpty() bool
- func (channel *Channel) IsFull() bool
- func (channel *Channel) Join(client *Client, key string)
- func (channel *Channel) Kick(client *Client, target *Client, comment string)
- func (channel *Channel) Mode(client *Client, changes ChannelModeChanges)
- func (channel *Channel) ModeString(client *Client) (str string)
- func (channel *Channel) Names(client *Client)
- func (channel *Channel) Nick() string
- func (channel *Channel) Nicks() []string
- func (channel *Channel) Notice(client *Client, message string)
- func (channel *Channel) Part(client *Client, message string)
- func (channel *Channel) Persist() (err error)
- func (channel *Channel) PrivMsg(client *Client, message string)
- func (channel *Channel) Quit(client *Client)
- func (channel *Channel) SetTopic(client *Client, topic string)
- func (channel *Channel) String() string
- type ChannelMode
- type ChannelModeChange
- type ChannelModeChanges
- type ChannelModeCommand
- type ChannelModeSet
- type ChannelNameMap
- type ChannelSet
- type Client
- func (client *Client) Active()
- func (client *Client) ChangeNickname(nickname string)
- func (target *Client) ErrAlreadyRegistered()
- func (target *Client) ErrBadChannelKey(channel *Channel)
- func (target *Client) ErrCannotSendToChan(channel *Channel)
- func (target *Client) ErrChanOPrivIsNeeded(channel *Channel)
- func (target *Client) ErrChannelIsFull(channel *Channel)
- func (target *Client) ErrErroneusNickname(nick string)
- func (target *Client) ErrInviteOnlyChannel(channel *Channel)
- func (target *Client) ErrNeedMoreParams(command string)
- func (target *Client) ErrNickNameInUse(nick string)
- func (target *Client) ErrNoChanModes(channel *Channel)
- func (target *Client) ErrNoMOTD()
- func (target *Client) ErrNoNicknameGiven()
- func (target *Client) ErrNoPrivileges()
- func (target *Client) ErrNoSuchChannel(channel string)
- func (target *Client) ErrNoSuchNick(nick string)
- func (target *Client) ErrNoSuchServer(server string)
- func (target *Client) ErrNotOnChannel(channel *Channel)
- func (target *Client) ErrPasswdMismatch()
- func (target *Client) ErrRestricted()
- func (target *Client) ErrUnknownCommand(code StringCode)
- func (target *Client) ErrUnknownMode(mode ChannelMode, channel *Channel)
- func (target *Client) ErrUserNotInChannel(channel *Channel, client *Client)
- func (target *Client) ErrUserOnChannel(channel *Channel, member *Client)
- func (target *Client) ErrUsersDontMatch()
- func (client *Client) Friends() ClientSet
- func (client *Client) HasNick() bool
- func (client *Client) HasUsername() bool
- func (c *Client) Id() string
- func (client *Client) Idle()
- func (client *Client) IdleSeconds() uint64
- func (client *Client) IdleTime() time.Duration
- func (c *Client) ModeString() (str string)
- func (target *Client) MultilineReply(names []string, code NumericCode, format string, args ...interface{})
- func (c *Client) Nick() string
- func (target *Client) NumericReply(code NumericCode, format string, args ...interface{})
- func (client *Client) Quit(message string)
- func (client *Client) Register()
- func (client *Client) Reply(reply string)
- func (target *Client) RplAway(client *Client)
- func (target *Client) RplBanList(channel *Channel, mask UserMask)
- func (target *Client) RplChannelModeIs(channel *Channel)
- func (target *Client) RplCreated()
- func (target *Client) RplEndOfBanList(channel *Channel)
- func (target *Client) RplEndOfExceptList(channel *Channel)
- func (target *Client) RplEndOfInviteList(channel *Channel)
- func (target *Client) RplEndOfMaskList(mode ChannelMode, channel *Channel)
- func (target *Client) RplEndOfNames(channel *Channel)
- func (target *Client) RplEndOfWho(name string)
- func (target *Client) RplEndOfWhois()
- func (target *Client) RplExceptList(channel *Channel, mask UserMask)
- func (target *Client) RplInviteList(channel *Channel, mask UserMask)
- func (target *Client) RplInviting(invitee *Client, channel string)
- func (target *Client) RplInvitingMsg(invitee *Client, channel string)
- func (target *Client) RplIsOn(nicks []string)
- func (target *Client) RplList(channel *Channel)
- func (target *Client) RplListEnd(server *Server)
- func (target *Client) RplMOTD(line string)
- func (target *Client) RplMOTDEnd()
- func (target *Client) RplMOTDStart()
- func (target *Client) RplMaskList(mode ChannelMode, channel *Channel, mask UserMask)
- func (target *Client) RplMyInfo()
- func (target *Client) RplNamReply(channel *Channel)
- func (target *Client) RplNoTopic(channel *Channel)
- func (target *Client) RplNowAway()
- func (target *Client) RplTime()
- func (target *Client) RplTopic(channel *Channel)
- func (target *Client) RplUModeIs(client *Client)
- func (target *Client) RplUnAway()
- func (target *Client) RplVersion()
- func (target *Client) RplWelcome()
- func (target *Client) RplWhoReply(channel *Channel, client *Client)
- func (target *Client) RplWhoisChannels(client *Client)
- func (target *Client) RplWhoisIdle(client *Client)
- func (target *Client) RplWhoisOperator(client *Client)
- func (target *Client) RplWhoisUser(client *Client)
- func (target *Client) RplYourHost()
- func (target *Client) RplYoureOper()
- func (client *Client) SetNickname(nickname string)
- func (client *Client) SignonTime() int64
- func (c *Client) String() string
- func (client *Client) Touch()
- func (c *Client) UserHost() string
- func (client *Client) WhoisChannelsNames() []string
- type ClientNameMap
- type ClientSet
- type Command
- type Config
- type DebugCommand
- type Identifier
- type InviteCommand
- type IsOnCommand
- type JoinCommand
- type KickCommand
- type KillCommand
- type ListCommand
- type ListenerConfig
- type MOTDCommand
- type Mask
- type MemberSet
- type ModeChange
- type ModeChanges
- type ModeCommand
- type ModeOp
- type NamesCommand
- type NickCommand
- type NoticeCommand
- type NumericCode
- type OperCommand
- type OperatorConfig
- type PartCommand
- type PassCommand
- type Phase
- type PingCommand
- type PongCommand
- type PrivMsgCommand
- type ProxyCommand
- type QuitCommand
- type RFC1459UserCommand
- type RFC2812UserCommand
- type RegServerCommand
- type Replier
- type ReplyCode
- type Server
- func (s *Server) GenerateGuestNick() string
- func (s *Server) Id() string
- func (server *Server) InitPhase() Phase
- func (server *Server) MOTD(client *Client)
- func (s *Server) Nick() string
- func (server *Server) Reply(target *Client, format string, args ...interface{})
- func (server *Server) Run()
- func (s *Server) String() string
- type ServerCommand
- type Socket
- type StringCode
- type TimeCommand
- type TopicCommand
- type UnknownCommand
- type UserCommand
- type UserMask
- type UserMode
- type VersionCommand
- type WhoCommand
- type WhoisCommand
Constants ¶
View Source
const ( SEM_VER = "ergonomadic-1.2.11" CRLF = "\r\n" MAX_REPLY_LEN = 512 - len(CRLF) LOGIN_TIMEOUT = time.Minute / 2 // how long the client has to login IDLE_TIMEOUT = time.Minute // how long before a client is considered idle QUIT_TIMEOUT = time.Minute // how long after idle before a client is kicked // string codes AWAY StringCode = "AWAY" CAP StringCode = "CAP" DEBUG StringCode = "DEBUG" ERROR StringCode = "ERROR" INVITE StringCode = "INVITE" ISON StringCode = "ISON" JOIN StringCode = "JOIN" KICK StringCode = "KICK" KILL StringCode = "KILL" LIST StringCode = "LIST" MODE StringCode = "MODE" MOTD StringCode = "MOTD" NAMES StringCode = "NAMES" NICK StringCode = "NICK" NOTICE StringCode = "NOTICE" OPER StringCode = "OPER" PART StringCode = "PART" PASS StringCode = "PASS" PING StringCode = "PING" PONG StringCode = "PONG" PRIVMSG StringCode = "PRIVMSG" PROXY StringCode = "PROXY" QUIT StringCode = "QUIT" TIME StringCode = "TIME" TOPIC StringCode = "TOPIC" USER StringCode = "USER" VERSION StringCode = "VERSION" WHO StringCode = "WHO" WHOIS StringCode = "WHOIS" // numeric codes RPL_WELCOME NumericCode = 1 RPL_YOURHOST NumericCode = 2 RPL_CREATED NumericCode = 3 RPL_MYINFO NumericCode = 4 RPL_BOUNCE NumericCode = 5 RPL_TRACELINK NumericCode = 200 RPL_TRACECONNECTING NumericCode = 201 RPL_TRACEHANDSHAKE NumericCode = 202 RPL_TRACEUNKNOWN NumericCode = 203 RPL_TRACEOPERATOR NumericCode = 204 RPL_TRACEUSER NumericCode = 205 RPL_TRACESERVER NumericCode = 206 RPL_TRACESERVICE NumericCode = 207 RPL_TRACENEWTYPE NumericCode = 208 RPL_TRACECLASS NumericCode = 209 RPL_TRACERECONNECT NumericCode = 210 RPL_STATSLINKINFO NumericCode = 211 RPL_STATSCOMMANDS NumericCode = 212 RPL_ENDOFSTATS NumericCode = 219 RPL_UMODEIS NumericCode = 221 RPL_SERVLIST NumericCode = 234 RPL_SERVLISTEND NumericCode = 235 RPL_STATSUPTIME NumericCode = 242 RPL_STATSOLINE NumericCode = 243 RPL_LUSERCLIENT NumericCode = 251 RPL_LUSEROP NumericCode = 252 RPL_LUSERUNKNOWN NumericCode = 253 RPL_LUSERCHANNELS NumericCode = 254 RPL_LUSERME NumericCode = 255 RPL_ADMINME NumericCode = 256 RPL_ADMINLOC1 NumericCode = 257 RPL_ADMINLOC2 NumericCode = 258 RPL_ADMINEMAIL NumericCode = 259 RPL_TRACELOG NumericCode = 261 RPL_TRACEEND NumericCode = 262 RPL_TRYAGAIN NumericCode = 263 RPL_AWAY NumericCode = 301 RPL_USERHOST NumericCode = 302 RPL_ISON NumericCode = 303 RPL_UNAWAY NumericCode = 305 RPL_NOWAWAY NumericCode = 306 RPL_WHOISUSER NumericCode = 311 RPL_WHOISSERVER NumericCode = 312 RPL_WHOISOPERATOR NumericCode = 313 RPL_WHOWASUSER NumericCode = 314 RPL_ENDOFWHO NumericCode = 315 RPL_WHOISIDLE NumericCode = 317 RPL_ENDOFWHOIS NumericCode = 318 RPL_WHOISCHANNELS NumericCode = 319 RPL_LIST NumericCode = 322 RPL_LISTEND NumericCode = 323 RPL_CHANNELMODEIS NumericCode = 324 RPL_UNIQOPIS NumericCode = 325 RPL_NOTOPIC NumericCode = 331 RPL_TOPIC NumericCode = 332 RPL_INVITING NumericCode = 341 RPL_SUMMONING NumericCode = 342 RPL_INVITELIST NumericCode = 346 RPL_ENDOFINVITELIST NumericCode = 347 RPL_EXCEPTLIST NumericCode = 348 RPL_ENDOFEXCEPTLIST NumericCode = 349 RPL_VERSION NumericCode = 351 RPL_WHOREPLY NumericCode = 352 RPL_NAMREPLY NumericCode = 353 RPL_LINKS NumericCode = 364 RPL_ENDOFLINKS NumericCode = 365 RPL_ENDOFNAMES NumericCode = 366 RPL_BANLIST NumericCode = 367 RPL_ENDOFBANLIST NumericCode = 368 RPL_ENDOFWHOWAS NumericCode = 369 RPL_INFO NumericCode = 371 RPL_MOTD NumericCode = 372 RPL_ENDOFINFO NumericCode = 374 RPL_MOTDSTART NumericCode = 375 RPL_ENDOFMOTD NumericCode = 376 RPL_YOUREOPER NumericCode = 381 RPL_REHASHING NumericCode = 382 RPL_YOURESERVICE NumericCode = 383 RPL_TIME NumericCode = 391 RPL_USERSSTART NumericCode = 392 RPL_USERS NumericCode = 393 RPL_ENDOFUSERS NumericCode = 394 RPL_NOUSERS NumericCode = 395 ERR_NOSUCHNICK NumericCode = 401 ERR_NOSUCHSERVER NumericCode = 402 ERR_NOSUCHCHANNEL NumericCode = 403 ERR_CANNOTSENDTOCHAN NumericCode = 404 ERR_TOOMANYCHANNELS NumericCode = 405 ERR_WASNOSUCHNICK NumericCode = 406 ERR_TOOMANYTARGETS NumericCode = 407 ERR_NOSUCHSERVICE NumericCode = 408 ERR_NOORIGIN NumericCode = 409 ERR_NORECIPIENT NumericCode = 411 ERR_NOTEXTTOSEND NumericCode = 412 ERR_NOTOPLEVEL NumericCode = 413 ERR_WILDTOPLEVEL NumericCode = 414 ERR_BADMASK NumericCode = 415 ERR_UNKNOWNCOMMAND NumericCode = 421 ERR_NOMOTD NumericCode = 422 ERR_NOADMININFO NumericCode = 423 ERR_FILEERROR NumericCode = 424 ERR_NONICKNAMEGIVEN NumericCode = 431 ERR_ERRONEUSNICKNAME NumericCode = 432 ERR_NICKNAMEINUSE NumericCode = 433 ERR_NICKCOLLISION NumericCode = 436 ERR_UNAVAILRESOURCE NumericCode = 437 ERR_USERNOTINCHANNEL NumericCode = 441 ERR_NOTONCHANNEL NumericCode = 442 ERR_USERONCHANNEL NumericCode = 443 ERR_NOLOGIN NumericCode = 444 ERR_SUMMONDISABLED NumericCode = 445 ERR_USERSDISABLED NumericCode = 446 ERR_NOTREGISTERED NumericCode = 451 ERR_NEEDMOREPARAMS NumericCode = 461 ERR_ALREADYREGISTRED NumericCode = 462 ERR_NOPERMFORHOST NumericCode = 463 ERR_PASSWDMISMATCH NumericCode = 464 ERR_YOUREBANNEDCREEP NumericCode = 465 ERR_YOUWILLBEBANNED NumericCode = 466 ERR_KEYSET NumericCode = 467 ERR_CHANNELISFULL NumericCode = 471 ERR_UNKNOWNMODE NumericCode = 472 ERR_INVITEONLYCHAN NumericCode = 473 ERR_BANNEDFROMCHAN NumericCode = 474 ERR_BADCHANNELKEY NumericCode = 475 ERR_BADCHANMASK NumericCode = 476 ERR_NOCHANMODES NumericCode = 477 ERR_BANLISTFULL NumericCode = 478 ERR_NOPRIVILEGES NumericCode = 481 ERR_CHANOPRIVSNEEDED NumericCode = 482 ERR_CANTKILLSERVER NumericCode = 483 ERR_RESTRICTED NumericCode = 484 ERR_UNIQOPPRIVSNEEDED NumericCode = 485 ERR_NOOPERHOST NumericCode = 491 ERR_UMODEUNKNOWNFLAG NumericCode = 501 ERR_USERSDONTMATCH NumericCode = 502 Add ModeOp = '+' List ModeOp = '=' Remove ModeOp = '-' Away UserMode = 'a' Invisible UserMode = 'i' LocalOperator UserMode = 'O' Operator UserMode = 'o' Restricted UserMode = 'r' ServerNotice UserMode = 's' // deprecated WallOps UserMode = 'w' Anonymous ChannelMode = 'a' // flag BanMask ChannelMode = 'b' // arg ChannelCreator ChannelMode = 'O' // flag ChannelOperator ChannelMode = 'o' // arg ExceptMask ChannelMode = 'e' // arg InviteMask ChannelMode = 'I' // arg InviteOnly ChannelMode = 'i' // flag Key ChannelMode = 'k' // flag arg Moderated ChannelMode = 'm' // flag NoOutside ChannelMode = 'n' // flag OpOnlyTopic ChannelMode = 't' // flag Persistent ChannelMode = 'P' // flag Private ChannelMode = 'p' // flag Quiet ChannelMode = 'q' // flag ReOp ChannelMode = 'r' // flag Secret ChannelMode = 's' // flag, deprecated UserLimit ChannelMode = 'l' // flag arg Voice ChannelMode = 'v' // arg )
View Source
const ( R = '→' W = '←' EOF = "" )
Variables ¶
View Source
var ( NotEnoughArgsError = errors.New("not enough arguments") ErrParseCommand = errors.New("failed to parse message") )
View Source
var ( // debugging flags DEBUG_NET = false DEBUG_CLIENT = false DEBUG_CHANNEL = false DEBUG_SERVER = false // errors ErrAlreadyDestroyed = errors.New("already destroyed") // regexps ChannelNameExpr = regexp.MustCompile(`^[&!#+][\pL\pN]{1,63}$`) NicknameExpr = regexp.MustCompile( "^[\\pL\\[\\]{}^`][\\pL\\pN\\[\\]{}^`]{1,31}$") )
Functions ¶
func AddrLookupHostname ¶
func IsNickname ¶
func LookupHostname ¶
func NewAwayCommand ¶
func NewCapCommand ¶
func NewChannelModeCommand ¶
MODE <channel> *( ( "-" / "+" ) *<modes> *<modeparams> )
func NewDebugCommand ¶
func NewInviteCommand ¶
func NewIsOnCommand ¶
func NewJoinCommand ¶
func NewKickCommand ¶
func NewKillCommand ¶
func NewListCommand ¶
func NewMOTDCommand ¶
func NewModeCommand ¶
func NewNamesCommand ¶
func NewNickCommand ¶
func NewNoticeCommand ¶
func NewNumericReply ¶
func NewNumericReply(target *Client, code NumericCode, format string, args ...interface{}) string
func NewOperCommand ¶
OPER <name> <password>
func NewPartCommand ¶
func NewPassCommand ¶
func NewPingCommand ¶
func NewPongCommand ¶
func NewPrivMsgCommand ¶
func NewProxyCommand ¶
func NewQuitCommand ¶
func NewStringReply ¶
func NewStringReply(source Identifier, code StringCode, format string, args ...interface{}) string
func NewTimeCommand ¶
func NewTopicCommand ¶
func NewUserCommand ¶
func NewUserModeCommand ¶
MODE <nickname> *( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) )
func NewVersionCommand ¶
func NewWhoCommand ¶
WHO [ <mask> [ "o" ] ]
func NewWhoisCommand ¶
WHOIS [ <target> ] <mask> *( "," <mask> )
func ParseCommand ¶
func RplChannelMode ¶
func RplChannelMode(client *Client, channel *Channel, changes ChannelModeChanges) string
func RplInviteMsg ¶
func RplNick ¶
func RplNick(source Identifier, newNick string) string
func RplNotice ¶
func RplNotice(source Identifier, target Identifier, message string) string
func RplPing ¶
func RplPing(target Identifier) string
func RplPrivMsg ¶
func RplPrivMsg(source Identifier, target Identifier, message string) string
func RplTopicMsg ¶
func RplTopicMsg(source Identifier, channel *Channel) string
Types ¶
type AuthServerCommand ¶
type AwayCommand ¶
type AwayCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*AwayCommand) HandleServer ¶
func (msg *AwayCommand) HandleServer(server *Server)
func (*AwayCommand) String ¶
func (msg *AwayCommand) String() string
type BaseCommand ¶
type BaseCommand struct {
// contains filtered or unexported fields
}
func (*BaseCommand) Client ¶
func (command *BaseCommand) Client() *Client
func (*BaseCommand) Code ¶
func (command *BaseCommand) Code() StringCode
func (*BaseCommand) SetClient ¶
func (command *BaseCommand) SetClient(client *Client)
func (*BaseCommand) SetCode ¶
func (command *BaseCommand) SetCode(code StringCode)
type CapCommand ¶
type CapCommand struct {
BaseCommand
// contains filtered or unexported fields
}
TODO
func (*CapCommand) HandleAuthServer ¶
func (msg *CapCommand) HandleAuthServer(server *Server)
func (*CapCommand) HandleRegServer ¶
func (msg *CapCommand) HandleRegServer(server *Server)
func (*CapCommand) String ¶
func (msg *CapCommand) String() string
type Channel ¶
type Channel struct {
// contains filtered or unexported fields
}
func NewChannel ¶
NewChannel creates a new channel from a `Server` and a `name` string, which must be unique on the server.
func (*Channel) ClientIsOperator ¶
func (*Channel) Mode ¶
func (channel *Channel) Mode(client *Client, changes ChannelModeChanges)
func (*Channel) ModeString ¶
<mode> <mode params>
type ChannelMode ¶
type ChannelMode rune
channel mode flags
func (ChannelMode) String ¶
func (mode ChannelMode) String() string
type ChannelModeChange ¶
type ChannelModeChange struct {
// contains filtered or unexported fields
}
func (*ChannelModeChange) String ¶
func (change *ChannelModeChange) String() (str string)
type ChannelModeChanges ¶
type ChannelModeChanges []*ChannelModeChange
func (ChannelModeChanges) String ¶
func (changes ChannelModeChanges) String() (str string)
type ChannelModeCommand ¶
type ChannelModeCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*ChannelModeCommand) HandleServer ¶
func (msg *ChannelModeCommand) HandleServer(server *Server)
func (*ChannelModeCommand) String ¶
func (msg *ChannelModeCommand) String() string
type ChannelModeSet ¶
type ChannelModeSet map[ChannelMode]bool
func (ChannelModeSet) String ¶
func (set ChannelModeSet) String() string
type ChannelNameMap ¶
func (ChannelNameMap) Add ¶
func (channels ChannelNameMap) Add(channel *Channel) error
func (ChannelNameMap) Get ¶
func (channels ChannelNameMap) Get(name string) *Channel
func (ChannelNameMap) Remove ¶
func (channels ChannelNameMap) Remove(channel *Channel) error
type ChannelSet ¶
func (ChannelSet) Add ¶
func (channels ChannelSet) Add(channel *Channel)
func (ChannelSet) First ¶
func (channels ChannelSet) First() *Channel
func (ChannelSet) Remove ¶
func (channels ChannelSet) Remove(channel *Channel)
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) ChangeNickname ¶
func (*Client) ErrAlreadyRegistered ¶
func (target *Client) ErrAlreadyRegistered()
func (*Client) ErrBadChannelKey ¶
func (*Client) ErrCannotSendToChan ¶
func (*Client) ErrChanOPrivIsNeeded ¶
<channel> :You're not channel operator
func (*Client) ErrChannelIsFull ¶
func (*Client) ErrErroneusNickname ¶
func (*Client) ErrInviteOnlyChannel ¶
func (*Client) ErrNeedMoreParams ¶
func (*Client) ErrNickNameInUse ¶
func (*Client) ErrNoChanModes ¶
func (*Client) ErrNoNicknameGiven ¶
func (target *Client) ErrNoNicknameGiven()
func (*Client) ErrNoPrivileges ¶
func (target *Client) ErrNoPrivileges()
func (*Client) ErrNoSuchChannel ¶
func (*Client) ErrNoSuchNick ¶
func (*Client) ErrNoSuchServer ¶
func (*Client) ErrNotOnChannel ¶
func (*Client) ErrPasswdMismatch ¶
func (target *Client) ErrPasswdMismatch()
func (*Client) ErrRestricted ¶
func (target *Client) ErrRestricted()
func (*Client) ErrUnknownCommand ¶
func (target *Client) ErrUnknownCommand(code StringCode)
func (*Client) ErrUnknownMode ¶
func (target *Client) ErrUnknownMode(mode ChannelMode, channel *Channel)
func (*Client) ErrUserNotInChannel ¶
func (*Client) ErrUserOnChannel ¶
func (*Client) ErrUsersDontMatch ¶
func (target *Client) ErrUsersDontMatch()
func (*Client) HasUsername ¶
func (*Client) IdleSeconds ¶
func (*Client) MultilineReply ¶
func (target *Client) MultilineReply(names []string, code NumericCode, format string, args ...interface{})
func (*Client) NumericReply ¶
func (target *Client) NumericReply(code NumericCode, format string, args ...interface{})
func (*Client) RplBanList ¶
func (*Client) RplChannelModeIs ¶
func (*Client) RplCreated ¶
func (target *Client) RplCreated()
func (*Client) RplEndOfBanList ¶
func (*Client) RplEndOfExceptList ¶
func (*Client) RplEndOfInviteList ¶
func (*Client) RplEndOfMaskList ¶
func (target *Client) RplEndOfMaskList(mode ChannelMode, channel *Channel)
func (*Client) RplEndOfNames ¶
func (*Client) RplEndOfWhois ¶
func (target *Client) RplEndOfWhois()
func (*Client) RplExceptList ¶
func (*Client) RplInviteList ¶
func (*Client) RplInviting ¶
func (*Client) RplInvitingMsg ¶
<nick> <channel> NB: correction in errata
func (*Client) RplListEnd ¶
func (*Client) RplMOTDEnd ¶
func (target *Client) RplMOTDEnd()
func (*Client) RplMOTDStart ¶
func (target *Client) RplMOTDStart()
func (*Client) RplMaskList ¶
func (target *Client) RplMaskList(mode ChannelMode, channel *Channel, mask UserMask)
func (*Client) RplNamReply ¶
func (*Client) RplNoTopic ¶
func (*Client) RplNowAway ¶
func (target *Client) RplNowAway()
func (*Client) RplUModeIs ¶
func (*Client) RplVersion ¶
func (target *Client) RplVersion()
func (*Client) RplWelcome ¶
func (target *Client) RplWelcome()
func (*Client) RplWhoReply ¶
<channel> <user> <host> <server> <nick> ( "H" / "G" ) ["*"] [ ( "@" / "+" ) ] :<hopcount> <real name>
func (*Client) RplWhoisChannels ¶
func (*Client) RplWhoisIdle ¶
func (*Client) RplWhoisOperator ¶
func (*Client) RplWhoisUser ¶
func (*Client) RplYourHost ¶
func (target *Client) RplYourHost()
func (*Client) SetNickname ¶
func (*Client) SignonTime ¶
func (*Client) WhoisChannelsNames ¶
type ClientNameMap ¶
func (ClientNameMap) Add ¶
func (clients ClientNameMap) Add(client *Client) error
func (ClientNameMap) Get ¶
func (clients ClientNameMap) Get(nick string) *Client
func (ClientNameMap) Remove ¶
func (clients ClientNameMap) Remove(client *Client) error
type Command ¶
type Command interface {
Code() StringCode
Client() *Client
}
type Config ¶
type Config struct {
Debug map[string]bool
Listeners []ListenerConfig
MOTD string
Name string
Operators []OperatorConfig
Password string
// contains filtered or unexported fields
}
func LoadConfig ¶
func (*Config) OperatorsMap ¶
func (*Config) PasswordBytes ¶
type DebugCommand ¶
type DebugCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*DebugCommand) HandleServer ¶
func (msg *DebugCommand) HandleServer(server *Server)
type Identifier ¶
type InviteCommand ¶
type InviteCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*InviteCommand) HandleServer ¶
func (msg *InviteCommand) HandleServer(server *Server)
type IsOnCommand ¶
type IsOnCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*IsOnCommand) HandleServer ¶
func (msg *IsOnCommand) HandleServer(server *Server)
func (*IsOnCommand) String ¶
func (msg *IsOnCommand) String() string
type JoinCommand ¶
type JoinCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*JoinCommand) HandleServer ¶
func (m *JoinCommand) HandleServer(s *Server)
func (*JoinCommand) String ¶
func (cmd *JoinCommand) String() string
type KickCommand ¶
type KickCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*KickCommand) Comment ¶
func (msg *KickCommand) Comment() string
func (*KickCommand) HandleServer ¶
func (msg *KickCommand) HandleServer(server *Server)
type KillCommand ¶
type KillCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*KillCommand) HandleServer ¶
func (msg *KillCommand) HandleServer(server *Server)
type ListCommand ¶
type ListCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*ListCommand) HandleServer ¶
func (msg *ListCommand) HandleServer(server *Server)
type ListenerConfig ¶
func (*ListenerConfig) IsTLS ¶
func (config *ListenerConfig) IsTLS() bool
type MOTDCommand ¶
type MOTDCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*MOTDCommand) HandleServer ¶
func (msg *MOTDCommand) HandleServer(server *Server)
type MemberSet ¶
type MemberSet map[*Client]ChannelModeSet
type ModeChange ¶
type ModeChange struct {
// contains filtered or unexported fields
}
func (*ModeChange) String ¶
func (change *ModeChange) String() string
type ModeChanges ¶
type ModeChanges []*ModeChange
func (ModeChanges) String ¶
func (changes ModeChanges) String() string
type ModeCommand ¶
type ModeCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*ModeCommand) HandleServer ¶
func (m *ModeCommand) HandleServer(s *Server)
func (*ModeCommand) String ¶
func (cmd *ModeCommand) String() string
type NamesCommand ¶
type NamesCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*NamesCommand) HandleServer ¶
func (msg *NamesCommand) HandleServer(server *Server)
type NickCommand ¶
type NickCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*NickCommand) HandleRegServer ¶
func (m *NickCommand) HandleRegServer(s *Server)
func (*NickCommand) HandleServer ¶
func (msg *NickCommand) HandleServer(server *Server)
func (*NickCommand) String ¶
func (m *NickCommand) String() string
type NoticeCommand ¶
type NoticeCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*NoticeCommand) HandleServer ¶
func (msg *NoticeCommand) HandleServer(server *Server)
func (*NoticeCommand) String ¶
func (cmd *NoticeCommand) String() string
type NumericCode ¶
type NumericCode uint
func (NumericCode) String ¶
func (code NumericCode) String() string
type OperCommand ¶
type OperCommand struct {
PassCommand
// contains filtered or unexported fields
}
func (*OperCommand) HandleServer ¶
func (msg *OperCommand) HandleServer(server *Server)
func (*OperCommand) LoadPassword ¶
func (msg *OperCommand) LoadPassword(server *Server)
func (*OperCommand) String ¶
func (msg *OperCommand) String() string
type OperatorConfig ¶
func (*OperatorConfig) PasswordBytes ¶
func (conf *OperatorConfig) PasswordBytes() []byte
type PartCommand ¶
type PartCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*PartCommand) HandleServer ¶
func (m *PartCommand) HandleServer(server *Server)
func (*PartCommand) Message ¶
func (cmd *PartCommand) Message() string
func (*PartCommand) String ¶
func (cmd *PartCommand) String() string
type PassCommand ¶
type PassCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*PassCommand) CheckPassword ¶
func (cmd *PassCommand) CheckPassword()
func (*PassCommand) HandleAuthServer ¶
func (msg *PassCommand) HandleAuthServer(server *Server)
func (*PassCommand) HandleServer ¶
func (m *PassCommand) HandleServer(s *Server)
func (*PassCommand) LoadPassword ¶
func (cmd *PassCommand) LoadPassword(server *Server)
func (*PassCommand) String ¶
func (cmd *PassCommand) String() string
type PingCommand ¶
type PingCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*PingCommand) HandleServer ¶
func (m *PingCommand) HandleServer(s *Server)
func (*PingCommand) String ¶
func (cmd *PingCommand) String() string
type PongCommand ¶
type PongCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*PongCommand) HandleServer ¶
func (m *PongCommand) HandleServer(s *Server)
func (*PongCommand) String ¶
func (cmd *PongCommand) String() string
type PrivMsgCommand ¶
type PrivMsgCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*PrivMsgCommand) HandleServer ¶
func (msg *PrivMsgCommand) HandleServer(server *Server)
func (*PrivMsgCommand) String ¶
func (cmd *PrivMsgCommand) String() string
type ProxyCommand ¶
type ProxyCommand struct {
BaseCommand
// contains filtered or unexported fields
}
HAPROXY support
func (*ProxyCommand) HandleAuthServer ¶
func (msg *ProxyCommand) HandleAuthServer(server *Server)
func (*ProxyCommand) HandleRegServer ¶
func (msg *ProxyCommand) HandleRegServer(server *Server)
func (*ProxyCommand) String ¶
func (msg *ProxyCommand) String() string
type QuitCommand ¶
type QuitCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*QuitCommand) HandleAuthServer ¶
func (msg *QuitCommand) HandleAuthServer(server *Server)
func (*QuitCommand) HandleRegServer ¶
func (msg *QuitCommand) HandleRegServer(server *Server)
func (*QuitCommand) HandleServer ¶
func (msg *QuitCommand) HandleServer(server *Server)
func (*QuitCommand) String ¶
func (cmd *QuitCommand) String() string
type RFC1459UserCommand ¶
type RFC1459UserCommand struct {
UserCommand
// contains filtered or unexported fields
}
USER <username> <hostname> <servername> <realname>
func (*RFC1459UserCommand) HandleRegServer ¶
func (msg *RFC1459UserCommand) HandleRegServer(server *Server)
func (*RFC1459UserCommand) String ¶
func (cmd *RFC1459UserCommand) String() string
type RFC2812UserCommand ¶
type RFC2812UserCommand struct {
UserCommand
// contains filtered or unexported fields
}
USER <user> <mode> <unused> <realname>
func (*RFC2812UserCommand) Flags ¶
func (cmd *RFC2812UserCommand) Flags() []UserMode
func (*RFC2812UserCommand) HandleRegServer ¶
func (msg *RFC2812UserCommand) HandleRegServer(server *Server)
func (*RFC2812UserCommand) String ¶
func (cmd *RFC2812UserCommand) String() string
type RegServerCommand ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func (*Server) GenerateGuestNick ¶
type ServerCommand ¶
type StringCode ¶
type StringCode string
func ParseLine ¶ added in v1.2.11
func ParseLine(line string) (command StringCode, args []string)
func (StringCode) String ¶
func (code StringCode) String() string
type TimeCommand ¶
type TimeCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*TimeCommand) HandleServer ¶
func (msg *TimeCommand) HandleServer(server *Server)
type TopicCommand ¶
type TopicCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*TopicCommand) HandleServer ¶
func (msg *TopicCommand) HandleServer(server *Server)
func (*TopicCommand) String ¶
func (cmd *TopicCommand) String() string
type UnknownCommand ¶
type UnknownCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func NewUnknownCommand ¶
func NewUnknownCommand(args []string) *UnknownCommand
func (*UnknownCommand) String ¶
func (cmd *UnknownCommand) String() string
type UserCommand ¶
type UserCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*UserCommand) HandleRegServer2 ¶
func (msg *UserCommand) HandleRegServer2(server *Server)
func (*UserCommand) HandleServer ¶
func (m *UserCommand) HandleServer(s *Server)
type VersionCommand ¶
type VersionCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*VersionCommand) HandleServer ¶
func (msg *VersionCommand) HandleServer(server *Server)
type WhoCommand ¶
type WhoCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*WhoCommand) HandleServer ¶
func (msg *WhoCommand) HandleServer(server *Server)
func (*WhoCommand) String ¶
func (msg *WhoCommand) String() string
type WhoisCommand ¶
type WhoisCommand struct {
BaseCommand
// contains filtered or unexported fields
}
func (*WhoisCommand) HandleServer ¶
func (m *WhoisCommand) HandleServer(server *Server)
func (*WhoisCommand) String ¶
func (msg *WhoisCommand) String() string
Click to show internal directories.
Click to hide internal directories.