Exemplo n.º 1
0
        //TODO RecvCmd�̃p�����[�^�`����ύX���邪�A����́A��قǁAWeb,Ftp,Smtp��Server�Ŏg�p����Ă��邽�߉e�����ł�\��
        //�R�}���h�擾
        //�R�l�N�V�����ؒf�ȂǃG���[��������������null���Ԃ����
        protected Cmd recvCmd(SockTcp sockTcp)
        {
            if (sockTcp.SockState != sock.SockState.Connect)
            {
                //�ؒf����Ă���
                return(null);
            }
            var recvbuf = sockTcp.LineRecv(Timeout, this);

            //�ؒf���ꂽ�ꍇ
            if (recvbuf == null)
            {
                return(null);
            }

            //��M�ҋ@���̏ꍇ
            if (recvbuf.Length == 0)
            {
                //Ver5.8.5 Java fix
                //return new Cmd("", "", "");
                return(new Cmd("waiting", "", "")); //�ҋ@���̏ꍇ�A���̂��Ƃ�������悤��"waiting"��Ԃ�
            }

            //CRLF�̔r��
            recvbuf = Inet.TrimCrlf(recvbuf);

            //String str = new String(recvbuf, Charset.forName("Shift-JIS"));
            var str = Encoding.GetEncoding("Shift-JIS").GetString(recvbuf);

            if (str == "")
            {
                return(new Cmd("", "", ""));
            }
            //��M�s��R�}���h�ƃp�����[�^�ɕ������i�R�}���h�ƃp�����[�^�͂P�ˆȏ�̃X�y�[�X�ŋ�؂��Ă���j
            String cmdStr   = null;
            String paramStr = null;

            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == ' ')
                {
                    if (cmdStr == null)
                    {
                        cmdStr = str.Substring(0, i);
                    }
                }
                if (cmdStr == null || str[i] == ' ')
                {
                    continue;
                }
                paramStr = str.Substring(i);
                break;
            }
            if (cmdStr == null)
            {
                //�p�����[�^��؂肪���‚���Ȃ������ꍇ
                cmdStr = str; //�S���R�}���h
            }
            return(new Cmd(str, cmdStr, paramStr));
        }
Exemplo n.º 2
0
        protected ToolDlg(Kernel kernel, string nameTag, Object obj, string caption)
        {
            InitializeComponent();

            Kernel   = kernel;
            NameTag  = nameTag;
            _caption = caption;

            if (kernel.RunMode == RunMode.Remote)
            {
                sockTcp = (SockTcp)obj;
            }
            else
            {
                Server = (OneServer)obj;
            }

            Text = caption;

            //ウインドウサイズの復元
            kernel.WindowSize.Read(this);

            //MainMenuFile.Text = (kernel.IsJp()) ? "ファイル(&F)" : "&File";
            //MainMenuClose.Text = (kernel.IsJp()) ? "閉じる(&C)" : "&Close";
        }
Exemplo n.º 3
0
        //���M
        //count �{���̍s���i-1�̂Ƃ��͑S���j
        public bool Send(SockTcp sockTcp, int count)
        {
            try {
                _header.ForEach(s => sockTcp.SendUseEncode(Encoding.ASCII.GetBytes(s)));

                sockTcp.SendUseEncode(Encoding.ASCII.GetBytes("\r\n"));//��؂�s

                if (count == -1)
                {
                    _body.ForEach(d => sockTcp.SendUseEncode(d));
                }
                else
                {
                    for (int i = 0; i < count && i < _body.Count; i++)
                    {
                        sockTcp.SendUseEncode(_body[i]);
                    }
                }
                return(true);
            } catch (Exception ex) {
                //Ver5.9.2
                SetLastError(ex.Message);
                return(false);
            }
        }
Exemplo n.º 4
0
        //TODO RecvCmdのパラメータ形式を変更するが、これは、後ほど、Web,Ftp,SmtpのServerで使用されているため影響がでる予定
        //コマンド取得
        //コネクション切断などエラーが発生した時はnullが返される
        protected Cmd recvCmd(SockTcp sockTcp)
        {
            if (sockTcp.SockState != sock.SockState.Connect)
            {
                //切断されている
                return(null);
            }
            var recvbuf = sockTcp.LineRecv(Timeout, this);

            //切断された場合
            if (recvbuf == null)
            {
                return(null);
            }

            //受信待機中の場合
            if (recvbuf.Length == 0)
            {
                //Ver5.8.5 Java fix
                //return new Cmd("", "", "");
                return(new Cmd("waiting", "", "")); //待機中の場合、そのことが分かるように"waiting"を返す
            }

            //CRLFの排除
            recvbuf = Inet.TrimCrlf(recvbuf);

            //String str = new String(recvbuf, Charset.forName("Shift-JIS"));
            var str = Encoding.GetEncoding("Shift-JIS").GetString(recvbuf);

            if (str == "")
            {
                return(new Cmd("", "", ""));
            }
            //受信行をコマンドとパラメータに分解する(コマンドとパラメータは1つ以上のスペースで区切られている)
            String cmdStr   = null;
            String paramStr = null;

            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == ' ')
                {
                    if (cmdStr == null)
                    {
                        cmdStr = str.Substring(0, i);
                    }
                }
                if (cmdStr == null || str[i] == ' ')
                {
                    continue;
                }
                paramStr = str.Substring(i);
                break;
            }
            if (cmdStr == null)
            {
                //パラメータ区切りが見つからなかった場合
                cmdStr = str; //全部コマンド
            }
            return(new Cmd(str, cmdStr, paramStr));
        }
Exemplo n.º 5
0
 //接続
 public bool Connect()
 {
     if (Status != PopClientStatus.Idle)
     {
         SetLastError("Connect() Status != Idle");
         return(false);
     }
     if (_ip.InetKind == InetKind.V4)
     {
         _sockTcp = Inet.Connect(_kernel, _ip, _port, _sec + 3, null);
     }
     else
     {
         _sockTcp = Inet.Connect(_kernel, _ip, _port, _sec + 3, null);
     }
     if (_sockTcp.SockState == SockState.Connect)
     {
         //+OK受信
         if (!RecvStatus())
         {
             return(false);
         }
         Status = PopClientStatus.Authorization;
         return(true);
     }
     SetLastError("Faild in PopClient Connect()");
     return(false);
 }
Exemplo n.º 6
0
    private void Start()
    {
        Core.instance.Initialize();
        sock        = null;
        switchAfter = null;
        Property props = BuildOption.Instance.Props;

        if (props.isWebPlayer)
        {
            Security.PrefetchSocketPolicy(props.GetRoundRobinServer, 843);
        }
        try
        {
            IPAddress[] hostAddresses = Dns.GetHostAddresses(props.GetRoundRobinServer);
            if (hostAddresses != null && hostAddresses.Length > 0)
            {
                roundRobinIp = hostAddresses[0].ToString();
            }
        }
        catch (Exception ex)
        {
            Debug.LogError(ex.Message.ToString());
            Debug.LogError("Fail to dns look up, it will treat the address as an ip address");
            roundRobinIp = props.GetRoundRobinServer;
        }
    }
Exemplo n.º 7
0
        //データの受信
        //パラメータ cs CS.SERVER を設定した場合、buf[CS.SERVER]を処理対象とし、クライアント側に送信する
        bool RecvBuf(CS cs, ILife iLife)
        {
            SockTcp sock = Proxy.Sock(cs);

            if (sock == null)//サーバ側未接続
            {
                return(true);
            }

            var len = sock.Length();

            if (len == 0)
            {
                return(true);
            }
            var b = sock.Recv(len, Proxy.OptionTimeout, iLife);

            if (b == null)
            {
                return(false);
            }
            _oneObj.Body[cs].Add(b);
            _lastRecvServer = DateTime.Now.Ticks;
            return(true);
        }
Exemplo n.º 8
0
 //接続
 public bool Connect()
 {
     if (Status != SmtpClientStatus.Idle)
     {
         SetLastError("Connect() Status != Idle");
         return(false);
     }
     if (_ip.InetKind == InetKind.V4)
     {
         _sockTcp = Inet.Connect(new Kernel(), _ip, _port, _sec + 3, null);
     }
     else
     {
         _sockTcp = Inet.Connect(new Kernel(), _ip, _port, _sec + 3, null);
     }
     if (_sockTcp.SockState == SockState.Connect)
     {
         //220受信
         if (!RecvStatus(220))
         {
             return(false);
         }
         Status = SmtpClientStatus.Helo;
         return(true);
     }
     SetLastError("Faild in SmtpClient Connect()");
     return(false);
 }
Exemplo n.º 9
0
        protected override string ConnectJob(SockTcp client, SockTcp server, List <byte[]> clientBuf)
        {
            //最初のグリーティングメッセージ取得
            var buf = server.LineRecv(Timeout, this);

            if (buf == null)
            {
                return(null);//タイムアウト
            }
            //EHLO送信
            server.LineSend(clientBuf[0]);
            clientBuf.RemoveAt(0);

            //「250 OK」が返るまで読み飛ばす
            while (IsLife())
            {
                buf = server.LineRecv(Timeout, this);
                if (buf == null)
                {
                    return(null);//タイムアウト
                }
                var str = Inet.TrimCrlf(Encoding.ASCII.GetString(buf));
                if (str.ToUpper().IndexOf("250 ") == 0)
                {
                    return(str);
                }
            }
            return(null);
        }
Exemplo n.º 10
0
        private int SendBinary(SockTcp sockTcp, String fileName)
        {
            var sb = new StringBuilder();

            sb.Append(string.Format("SendBinary({0}) ", fileName));

            int size = 0;

            using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)){
                using (var br = new BinaryReader(fs)){
                    var buf = new byte[3000000];
                    while (IsLife())
                    {
                        var len = br.Read(buf, 0, 3000000);
                        if (len <= 0)
                        {
                            break;
                        }
                        //if (oneSsl != null) {
                        //}else{
                        sockTcp.Send(buf, len);
                        //}
                        //�g���[�X�\��
                        sb.Append(string.Format("Binary={0}byte ", len));
                        size += len;
                    }
                }
            }

            //noEncode = true; //�o�C�i���ł��鎖���������Ă���
            //Trace(TraceKind.Send, Encoding.ASCII.GetBytes(sb.ToString()), true); //�g���[�X�\��
            return(size);
        }
Exemplo n.º 11
0
        public void HeaderTest(string key, string val)
        {
            var request = new Request(null, null);
            var header  = new Header();

            header.Append("Connection", Encoding.ASCII.GetBytes("keep-alive"));
            header.Append("User-Agent", Encoding.ASCII.GetBytes("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"));
            header.Append("Accept", Encoding.ASCII.GetBytes("text/html,application/xhtml"));
            header.Append("Accept-Encoding", Encoding.ASCII.GetBytes("gzip,deflate,sdch"));
            header.Append("Accept-Language", Encoding.ASCII.GetBytes("ja,en-US;q=0.8,en;q=0.6"));
            header.Append("Accept-Charset", Encoding.ASCII.GetBytes("Shift_JIS,utf-8;q=0.7,*;q=0.3"));
            header.Append("Cache-Control", Encoding.ASCII.GetBytes("max-age=0"));

            var          tcpObj   = new SockTcp(new Kernel(), new Ip("0.0.0.0"), 88, 3, null);
            const string fileName = "";
            var          env      = new Env(_kernel, new Conf(option), request, header, tcpObj, fileName);

            foreach (var e in env)
            {
                if (e.Key == key)
                {
                    Assert.AreEqual(e.Val, val);
                    return;
                }
            }
            Assert.AreEqual(key, "");
        }
Exemplo n.º 12
0
        public void OtherTest(string key, string val)
        {
            var          request  = new Request(null, null);
            var          header   = new Header();
            var          tcpObj   = new SockTcp(new Kernel(), new Ip(IpKind.V4_0), 88, 3, null);
            const string fileName = "";
            var          env      = new Env(_kernel, new Conf(option), request, header, tcpObj, fileName);

            foreach (var e in env)
            {
                if (e.Key == key)
                {
                    if (e.Key == "SERVER_SOFTWARE" && e.Val.IndexOf(".1478") > 0)
                    {
                        Assert.AreEqual(e.Val.ToLower(), "BlackJumboDog/7.1.2000.1478 (Windows)".ToLower());
                    }
                    else
                    {
                        Assert.AreEqual(e.Val.ToLower(), val.ToLower());
                    }
                    return;
                }
            }
            Assert.AreEqual(key, "");
        }
Exemplo n.º 13
0
 void Pipe()
 {
     _sockTcp = SockServer.CreateConnection(_kernel, _ip, _listenPort, null, this);
     if (_sockTcp != null)
     {
         while (_life)
         {
             var len = _sockTcp.Length();
             if (len > 0)
             {
                 const int tout = 3; //受信バイト数がわかっているので、ここでのタイムアウト値はあまり意味が無い
                 var       b    = _sockTcp.Recv(len, tout, this);
                 if (b != null)
                 {
                     _buffer = Bytes.Create(_buffer, b);
                 }
             }
             if (_sockTcp.Length() == 0 && _sockTcp.SockState != SockState.Connect)
             {
                 break;
             }
         }
         _sockTcp.Close();
     }
     IsRecv = false;
 }
Exemplo n.º 14
0
        public void Echoサーバに送信して溜まったデータサイズ_lengthを確認する()
        {
            //setUp
            const string addr = "127.0.0.1";
            const int    port = 9982;
            var          sv   = new EchoServer(addr, port);

            sv.Start();

            var       sut = new SockTcp(new Kernel(), new Ip(addr), port, 100, null);
            const int max = 1000;

            for (int i = 0; i < 3; i++)
            {
                sut.Send(new byte[max]);
            }

            Thread.Sleep(200);

            int expected = max * 3;

            //exercise
            var actual = sut.Length();

            //verify
            Assert.That(actual, Is.EqualTo(expected));

            //tearDown
            sut.Close();
            sv.Stop();
        }
Exemplo n.º 15
0
        private void Ehlo(SockTcp cl)
        {
            var localPort = cl.LocalAddress.Port; //なぜかローカルのポートアドレスは1つ小さい

            //バナー
            const string bannerStr = "220 localhost SMTP BlackJumboDog ";

            Assert.That(cl.StringRecv(3, this).Substring(0, 33), Is.EqualTo(bannerStr));

            //EHLO
            cl.StringSend("EHLO 1");
            var lines = Inet.RecvLines(cl, 4, this);

            var str = string.Format("250-localhost Helo 127.0.0.1[127.0.0.1:{0}], Pleased to meet you.", localPort);

            if (cl.LocalAddress.Address.ToString() == "::1")
            {
                str = string.Format("250-localhost Helo ::1[[::1]:{0}], Pleased to meet you.", localPort);
            }
            Assert.That(lines[0], Is.EqualTo(str));
            Assert.That(lines[1], Is.EqualTo("250-8BITMIME"));
            Assert.That(lines[2], Is.EqualTo("250-SIZE=5000"));
            Assert.That(lines[3], Is.EqualTo("250-AUTH LOGIN PLAIN CRAM-MD5"));
            Assert.That(lines[4], Is.EqualTo("250 HELP"));
        }
Exemplo n.º 16
0
        public void EchoサーバにlineSendで1行送信してlineRecvで1行受信する()
        {
            //setUp
            const string addr = "127.0.0.1";
            const int    port = 9993;

            var sv = new EchoServer(addr, port);

            sv.Start();
            var sut = new SockTcp(new Kernel(), new Ip(addr), port, 100, null);

            sut.LineSend(Encoding.UTF8.GetBytes("本日は晴天なり"));
            Thread.Sleep(10);

            var expected = "本日は晴天なり\r\n";

            //exercise
            var bytes  = sut.LineRecv(1, this);
            var actual = Encoding.UTF8.GetString(bytes);

            //verify
            Assert.That(actual, Is.EqualTo(expected));

            //tearDown
            sut.Close();
            sv.Stop();
        }
Exemplo n.º 17
0
        public void EchoサーバにstringSendで1行送信してstringRecvで1行受信する()
        {
            //setUp
            const string addr = "127.0.0.1";
            const int    port = 9993;

            var sv = new EchoServer(addr, port);

            sv.Start();
            var sut = new SockTcp(new Kernel(), new Ip(addr), port, 100, null);

            sut.StringSend("本日は晴天なり", "UTF-8");
            Thread.Sleep(10);

            var expected = "本日は晴天なり\r\n";

            //exercise
            var actual = sut.StringRecv("UTF-8", 1, this);

            //verify
            Assert.That(actual, Is.EqualTo(expected));

            //tearDown
            sut.Close();
            sv.Stop();
        }
Exemplo n.º 18
0
        //共通処理(バナーチェック)  Resharperのバージョンを吸収
//        private void CheckBanner(string str) {
//            //テストの際は、バージョン番号はテストツール(ReSharper)のバージョンになる
//            const string bannerStr1 = "xxx";
//            const string bannerStr2 = "+OK BlackJumboDog (Version 7.1.2000.1478) ready <";
//
//
//            //Assert.That(_v6cl.StringRecv(3, this), Is.EqualTo(BannerStr));
//
//            if (str != bannerStr1 && str.IndexOf(bannerStr2) != 0) {
//                Assert.Fail();
//            }
//        }
//
        //共通処理(ログイン成功)
        //ユーザ名、メール蓄積数、蓄積サイズ
        void Login(string userName, string password, int n, int size, SockTcp cl)
        {
            Assert.That(cl.StringRecv(3, this), Is.EqualTo("+OK \r\n"));
            cl.StringSend(string.Format("USER {0}", userName));
            Assert.That(cl.StringRecv(3, this), Is.EqualTo(string.Format("+OK Password required for {0}.\r\n", userName)));
            cl.StringSend(string.Format("PASS {0}", password));
            Assert.That(cl.StringRecv(10, this), Is.EqualTo(string.Format("+OK {0} has {1} message ({2} octets).\r\n", userName, n, size)));
        }
Exemplo n.º 19
0
 public void Dispose()
 {
     if (_sockTcp != null)
     {
         _sockTcp.Close();
         _sockTcp = null;
     }
 }
Exemplo n.º 20
0
        SockTcp StartClient(int port)
        {
            var ip = TestUtil.CreateIp("127.0.0.1");
            var cl = new SockTcp(new Kernel(), ip, port, 300, null);

            Thread.Sleep(300);
            return(cl);
        }
Exemplo n.º 21
0
 public void SetUp()
 {
     //クライアント起動
     _v4Cl = Inet.Connect(new Kernel(), new Ip(IpKind.V4Localhost), 21, 10, null);
     _v6Cl = Inet.Connect(new Kernel(), new Ip(IpKind.V6Localhost), 21, 10, null);
     //クライアントの接続が完了するまで、少し時間がかかる
     //Thread.Sleep(10);
 }
Exemplo n.º 22
0
        void TcpTunnel(SockTcp tcpObj)
        {
            var     client = tcpObj;
            SockTcp server = null;

            //***************************************************************
            // �T�[�o�Ƃ̐ڑ�
            //***************************************************************
            {
                var port = _targetPort;

                //var ipList = new List<Ip>{new Ip(_targetServer)};
                //if (ipList[0].ToString() == "0.0.0.0") {
                //    ipList = Kernel.DnsCache.Get(_targetServer);
                //    if(ipList.Count==0){
                //        Logger.Set(LogKind.Normal,null,4,string.Format("{0}:{1}",_targetServer,_targetPort));
                //        goto end;
                //    }
                //}
                var ipList = Kernel.GetIpList(_targetServer);
                if (ipList.Count == 0)
                {
                    Logger.Set(LogKind.Normal, null, 4, string.Format("{0}:{1}", _targetServer, _targetPort));
                    goto end;
                }
                foreach (var ip in ipList)
                {
                    server = Inet.Connect(Kernel, ip, port, Timeout, null);
                    if (server != null)
                    {
                        break;
                    }
                }
                if (server == null)
                {
                    Logger.Set(LogKind.Normal, server, 5, string.Format("{0}:{1}", _targetServer, _targetPort));
                    goto end;
                }
            }
            Logger.Set(LogKind.Normal, server, 6, string.Format("TCP {0}:{1} - {2}:{3}", client.RemoteHostname, client.RemoteAddress.Port, _targetServer, _targetPort));

            //***************************************************************
            // �p�C�v
            //***************************************************************
            var tunnel = new Tunnel(Logger, (int)Conf.Get("idleTime"), Timeout);

            tunnel.Pipe(server, client, this);
end:
            if (client != null)
            {
                client.Close();
            }
            if (server != null)
            {
                server.Close();
            }
        }
Exemplo n.º 23
0
        public Session(SockTcp sockCtrl)
        {
            SockCtrl = sockCtrl;

            //PASV接続用ポート番号の初期化 (開始番号は2000~9900)
            var rnd = new Random();

            Port = (rnd.Next(79) + 20) * 100;
        }
Exemplo n.º 24
0
        //共通処理(ログイン成功)
        private void Login(string userName, SockTcp cl)
        {
            CheckBanner(cl.StringRecv(1, this));//バナーチェック

            cl.StringSend(string.Format("USER {0}", userName));
            Assert.That(cl.StringRecv(1, this), Is.EqualTo(string.Format("331 Password required for {0}.\r\n", userName)));
            cl.StringSend(string.Format("PASS {0}", userName));
            Assert.That(cl.StringRecv(10, this), Is.EqualTo(string.Format("230 User {0} logged in.\r\n", userName)));
        }
Exemplo n.º 25
0
        //送信
        bool Send(SockTcp sock, byte[] sendBuf)
        {
            var c = sock.SendUseEncode(sendBuf);

            if (c != sendBuf.Length)
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 26
0
        public void OneServerを継承したEchoServer_TCP版_を使用して接続する()
        {
            const string addr    = "127.0.0.1";
            const int    port    = 9999;
            const int    timeout = 300;
            Ip           ip      = null;

            try{
                ip = new Ip(addr);
            } catch (ValidObjException ex) {
                Assert.Fail(ex.Message);
            }
            var oneBind = new OneBind(ip, ProtocolKind.Tcp);
            var conf    = TestUtil.CreateConf("OptionSample");

            conf.Set("port", port);
            conf.Set("multiple", 10);
            conf.Set("acl", new Dat(new CtrlType[0]));
            conf.Set("enableAcl", 1);
            conf.Set("timeOut", timeout);

            var echoServer = new EchoServer(conf, oneBind);

            echoServer.Start();

            //TCPクライアント

            const int max = 10000;
            var       buf = new byte[max];

            buf[8] = 100; //CheckData
            for (int i = 0; i < 3; i++)
            {
                var sockTcp = new SockTcp(new Kernel(), ip, port, timeout, null);

                sockTcp.Send(buf);

                while (sockTcp.Length() == 0)
                {
                    Thread.Sleep(2);
                }

                var len = sockTcp.Length();
                if (0 < len)
                {
                    var b = sockTcp.Recv(len, timeout, this);
                    Assert.That(b[8], Is.EqualTo(buf[8]));//CheckData
                }
                Assert.That(max, Is.EqualTo(len));

                sockTcp.Close();
            }

            echoServer.Dispose();
        }
Exemplo n.º 27
0
        public bool WaitLine(SockTcp sockTcp, ref string cmdStr, ref string paramStr)
        {
            var cmd = WaitLine(sockTcp);

            if (cmd == null)
            {
                return(false);
            }
            cmdStr   = cmd.CmdStr;
            paramStr = cmd.ParamStr;
            return(true);
        }
Exemplo n.º 28
0
        public void SetUp()
        {
            var       kernel     = new Kernel();
            var       ip         = new Ip("127.0.0.1");
            const int port       = 0;
            Ssl       ssl        = null;
            var       tcpObj     = new SockTcp(new Kernel(), ip, port, 3, ssl);
            var       upperProxy = new UpperProxy(false, "", 0, null, false, "", "");//上位プロキシ未使用
            const int timeout    = 3;

            _proxy = new Proxy(kernel, null, tcpObj, timeout, upperProxy);
        }
Exemplo n.º 29
0
        //データ取得(内部データは、初期化される)
        public bool Recv(Logger logger, SockTcp sockTcp, int timeout, ILife iLife)
        {
            _logger = logger;
            //int limit = 3600;//文字数制限
            var str = sockTcp.AsciiRecv(timeout, iLife);

            if (str == null)
            {
                return(false);
            }
            return(Interpretation(Inet.TrimCrlf(str)));
        }
Exemplo n.º 30
0
        void AuthError(SockTcp sockTcp, string user, string pass)
        {
            Logger.Set(LogKind.Secure, sockTcp, 3, string.Format("user={0} pass={1}", user, pass));
            // �F�؂̃G���[�͂����ɕԓ���Ԃ��Ȃ�
            var authTimeout = (int)Conf.Get("authTimeout");

            for (int i = 0; i < (authTimeout * 10) && IsLife(); i++)
            {
                Thread.Sleep(100);
            }
            sockTcp.AsciiSend(string.Format("-ERR Password supplied for {0} is incorrect.", user));
        }