示例#1
0
        /// <summary>
        /// 299 IPアドレス不一致エラー
        /// </summary>
        /// <param name="context"></param>
        /// <param name="socket"></param>
        /// <param name="packet"></param>
        public virtual void AddressChangedError(IClientContextForState context, CRLFSocket socket, Packet packet)
        {
            socket.Close();

            context.State = new FinishedState(
                ClientConst.OperationResult.Restartable,
                ClientConst.ErrorCode.RETURNED_ADDRESS_CHANGED
                );
        }
示例#2
0
        // 634 Client->Server
        public virtual void ReplyProtocolVersion(Manager.Peer peer, CRLFSocket socket, Packet packet)
        {
            if (packet.Data == null || packet.Data.Length != 3)
            {
                return;
            }

            double version = 0.0;

            if (!double.TryParse(packet.Data[0], out version))
            {
                return;
            }

            if (version < Const.ALLOW_PROTOCOL_VERSION)
            {
                socket.WriteLine("694 1 Protocol_version_incompatible");
                socket.Close();
                return;
            }

            socket.WriteLine("612 1");
        }
示例#3
0
        // 614 Server->Client
        public virtual void RequireProtocolVersion(Manager.Peer peer, CRLFSocket socket, Packet packet)
        {
            if (packet.Data == null || packet.Data.Length != 3)
            {
                return;
            }

            double version = 0.0;

            if (!double.TryParse(packet.Data[0], out version))
            {
                return;
            }

            if (version < Const.ALLOW_PROTOCOL_VERSION)
            {
                socket.WriteLine("694 1 Protocol_version_incompatible");
                socket.Close();
                return;
            }

            string[] datas = { Const.PROTOCOL_VERSION, Const.SOFTWARE_NAME, Const.SOFTWARE_VERSION };
            socket.WriteLine("634 1 " + string.Join(":", datas));
        }
示例#4
0
 internal void Disconnect()
 {
     socket.Close();
 }
示例#5
0
 public virtual void InvalidOperation(Manager.Peer peer, CRLFSocket socket, Packet packet)
 {
     socket.Close();
 }
示例#6
0
 public virtual void InvalidProtocolVersion(Manager.Peer peer, CRLFSocket socket, Packet packet)
 {
     socket.Close();
 }
        public override void EndConnection(IClientContextForState context, CRLFSocket socket, Packet packet)
        {
            socket.Close();

            context.State = new FinishedState(operationResult, errorCode);
        }