Squishy.Irc.IrcClient.ConnectionInfoNotify C# (CSharp) Method

ConnectionInfoNotify() private method

private ConnectionInfoNotify ( IrcPacket packet ) : void
packet Squishy.Irc.Protocol.IrcPacket
return void
        internal void ConnectionInfoNotify(IrcPacket packet)
        {
            var args = packet.Content.Remainder;
            var index = args.IndexOf(':');
            if (index > -1)
            {
                args = args.Substring(0, index);
            }

            var words = args.Split(' ');
            m_server = packet.Prefix;
            var pairs = new Dictionary<string, string>(words.Length, StringComparer.InvariantCultureIgnoreCase);

            for (var i = 1; i < words.Length; i++)
            {
                string key, value;
                if (words[i].IndexOf('=') < 0)
                {
                    key = words[i];
                    value = "";
                }
                else
                {
                    var pair = words[i].Split('=');
                    key = pair[0];
                    value = pair[1];
                }
                pairs[key] = value;
                switch (key.ToUpper())
                {
                    case "CHANTYPES":
                        m_CTypes = value;
                        break;
                    case "MAXNICKLEN":
                        if (!int.TryParse(value, out m_MaxNickLen))
                        {
                            m_MaxNickLen = 30;
                        }
                        break;
                    case "PREFIX":
                        var pair = value.Substring(1).Split(')');
                        m_CPrefixes = pair[0];
                        m_CSymbols = pair[1];
                        break;
                    case "CHANMODES":
                        m_CModes = value;
                        break;
                    case "NETWORK":
                        Network.Name = value;
                        break;
                }
            }
            if (Network.Name != null)
            {
                OnConnectionInfo(packet, pairs);
            }
        }