Example #1
0
        public static void SendControlMsg(UdpClient udpClient,
                                          IPEndPoint remote, int ack, bool useToken, uint token,
                                          ConnectionMessages msg, byte[] extra)
        {
            NetworkChunkConstruct packet;

            if (extra == null || extra.Length == 0)
            {
                packet = new NetworkChunkConstruct(1)
                {
                    DataSize = 1
                };
            }
            else
            {
                packet = new NetworkChunkConstruct(1 + extra.Length)
                {
                    DataSize = 1 + extra.Length
                };
                Buffer.BlockCopy(extra, 0, packet.Data, 1, extra.Length);
            }

            packet.NumChunks = 0;
            packet.Flags     = PacketFlags.CONTROL | (useToken ? PacketFlags.TOKEN : PacketFlags.NONE);
            packet.Ack       = ack;
            packet.Token     = token;
            packet.Data[0]   = (byte)msg;
            SendPacket(udpClient, remote, packet);
        }
Example #2
0
 protected override void SendConnectionMsg(ConnectionMessages msg,
                                           byte[] extra, int extraSize)
 {
     LastSendTime = Time.Get();
     NetworkHelper.SendConnectionMsg(UdpClient, EndPoint,
                                     PeerToken, Ack, msg, extra, extraSize);
 }
Example #3
0
        public override void SendControlMsg(ConnectionMessages msg, string extra)
        {
            LastSendTime = Time.Get();
            var useToken = UseToken && msg != ConnectionMessages.CONNECT;

            NetworkCore.SendControlMsg(UdpClient, EndPoint, Ack, useToken,
                                       Token, msg, extra);
        }
Example #4
0
        /// <summary>
        /// Til at modtage nye forbindelser via. Enkelte valgte forbindelse i sidepanelet.
        /// Tilføjer forbindelsen i forbindelses listen hvis den er gyldig
        /// Åbner forbindelsen
        /// </summary>
        /// <param name="message"></param>
        public void OnConnection(ConnectionMessages message)
        {
            try
            {
                switch (message.Type)
                {
                case DBAdapterType.Mysql:
                    var MysqlCon = new MySqlConnection(message.ConnectionString);
                    MysqlCon.Open();
                    dataService.ConnectionList.Add(message.Databasename, new MySqlDataConnection(MysqlCon));
                    dataService.ConnectionListNames.Add(message.Databasename);
                    Items.Add(dataService.mysqlTree.BuildTree(MysqlCon));
                    message.Execute(true);
                    TableAddons.writeLogFile($"{message.Databasename} type of MySql, has been added to" +
                                             $" the connection list", dataService.LogLocation);
                    //-- Sender en besked 'true' til SidepanelViewModel så du kan tilføje tabeller
                    Messenger.Default.Send <bool, SidePanelViewModel>(true);
                    ItemsFilter = Items;
                    break;

                case DBAdapterType.Oracle:
                    var OracleCon = new OdbcConnection(message.ConnectionString);
                    OracleCon.Open();
                    dataService.ConnectionList.Add(message.Databasename, new OracleDataConnection(OracleCon));
                    dataService.ConnectionListNames.Add(message.Databasename);
                    Items.Add(dataService.oracleTree.BuildTree(OracleCon));
                    message.Execute(true);
                    TableAddons.writeLogFile($"{message.Databasename} type of Oracle, has been added to" +
                                             $" the connection list", dataService.LogLocation);
                    //-- Sender en besked 'true' til SidepanelViewModel så du kan tilføje tabeller
                    Messenger.Default.Send <bool, SidePanelViewModel>(true);
                    ItemsFilter = Items;
                    break;

                case DBAdapterType.Mssql:
                    var MssCon = new SqlConnection(message.ConnectionString);
                    MssCon.Open();
                    dataService.ConnectionList.Add(message.Databasename, new MssqlDataConnection(MssCon));
                    dataService.ConnectionListNames.Add(message.Databasename);
                    Items.Add(dataService.mssqlTree.BuildTree(MssCon));
                    message.Execute(true);
                    TableAddons.writeLogFile($"{message.Databasename} type of MsSql, has been added to" +
                                             $" the connection list", dataService.LogLocation);
                    //-- Sender en besked 'true' til SidepanelViewModel så du kan tilføje tabeller
                    Messenger.Default.Send <bool, SidePanelViewModel>(true);
                    ItemsFilter = Items;
                    break;

                default:
                    message.Execute(false);
                    break;
                }
            }
            catch
            {
                message.Execute(false);
            }
        }
Example #5
0
 public static void SendConnectionMsg(UdpClient client, IPEndPoint endPoint,
                                      uint token, int ack, ConnectionMessages msg, string extra)
 {
     if (string.IsNullOrWhiteSpace(extra))
     {
         SendConnectionMsg(client, endPoint, token, ack, msg, null, 0);
     }
     else
     {
         var data = Encoding.UTF8.GetBytes(extra);
         SendConnectionMsg(client, endPoint, token, ack, msg, data, data.Length);
     }
 }
Example #6
0
 public static void SendControlMsg(UdpClient udpClient,
                                   IPEndPoint remote, int ack, bool useToken, uint token,
                                   ConnectionMessages msg, string extra)
 {
     if (string.IsNullOrWhiteSpace(extra))
     {
         SendControlMsg(udpClient, remote, ack, useToken, token,
                        msg, (byte[])null);
     }
     else
     {
         SendControlMsg(udpClient, remote, ack, useToken, token,
                        msg, Encoding.UTF8.GetBytes(extra));
     }
 }
Example #7
0
        public static void SendConnectionMsgWithToken(UdpClient client, IPEndPoint endPoint,
                                                      uint token, int ack, ConnectionMessages msg, uint myToken, bool extended)
        {
            Debug.Assert((token & ~TokenHelper.TokenMask) == 0, "token out of range");
            Debug.Assert((myToken & ~TokenHelper.TokenMask) == 0, "resp token out of range");

            var buffer = new byte[TokenHelper.TokenRequestDataSize];

            buffer[0] = (byte)((myToken >> 24) & 0xff);
            buffer[1] = (byte)((myToken >> 16) & 0xff);
            buffer[2] = (byte)((myToken >> 8) & 0xff);
            buffer[3] = (byte)((myToken & 0xff));

            SendConnectionMsg(client, endPoint, token, 0, msg, buffer, extended ? buffer.Length : 4);
        }
 public void TCPProxy_MessagePosted(object sender, StringEventArgs e)
 {
     if (this.Dispatcher.Thread.Equals(Thread.CurrentThread))
     {
         ConnectionMessages.Add(e.message);
     }
     else
     {
         this.Dispatcher.BeginInvoke(
             System.Windows.Threading.DispatcherPriority.Normal, new Action(
                 delegate()
         {
             ConnectionMessages.Add(e.message);
         }
                 ));
     }
 }
Example #9
0
        public static void SendConnectionMsg(UdpClient client, IPEndPoint endPoint,
                                             uint token, int ack, ConnectionMessages msg, byte[] extraData, int extraSize)
        {
            var packet = new ChunkConstruct(1 + extraSize)
            {
                Token     = token,
                Flags     = PacketFlags.Control,
                Ack       = ack,
                NumChunks = 0,
                DataSize  = 1 + extraSize
            };

            packet.Data[0] = (byte)msg;

            if (extraSize > 0)
            {
                Buffer.BlockCopy(extraData, 0, packet.Data, 1, extraSize);
            }

            SendPacket(client, endPoint, packet);
        }
Example #10
0
 protected abstract void SendConnectionMsgWithToken(ConnectionMessages msg);
Example #11
0
 protected abstract void SendConnectionMsg(ConnectionMessages msg,
                                           byte[] extra, int extraSize);
Example #12
0
 protected abstract void SendConnectionMsg(ConnectionMessages msg,
                                           string extra);
Example #13
0
 protected override void SendConnectionMsgWithToken(ConnectionMessages msg)
 {
     LastSendTime = Time.Get();
     NetworkHelper.SendConnectionMsgWithToken(UdpClient, EndPoint, PeerToken, 0,
                                              msg, Token, true);
 }
Example #14
0
 protected override void SendConnectionMsg(ConnectionMessages msg, string extra)
 {
     LastSendTime = Time.Get();
     NetworkHelper.SendConnectionMsg(UdpClient, EndPoint,
                                     PeerToken, Ack, msg, extra);
 }
 public abstract void SendControlMsg(ConnectionMessages msg, byte[] extra);
 public abstract void SendControlMsg(ConnectionMessages msg, string extra);