From a782c50097f24ed13bb31d5ac1a086dbb45c8a54 Mon Sep 17 00:00:00 2001 From: Erik Belak Date: Wed, 2 Dec 2020 17:48:13 +0100 Subject: [PATCH 1/5] Packet size handled, Device no open error handled --- Networking/Device.cs | 13 +++++++++---- bin/Debug/eSwitch.exe | Bin 28160 -> 28160 bytes bin/Debug/eSwitch.pdb | Bin 60928 -> 60928 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 10918 -> 10918 bytes obj/Debug/eSwitch.exe | Bin 28160 -> 28160 bytes obj/Debug/eSwitch.pdb | Bin 60928 -> 60928 bytes 6 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Networking/Device.cs b/Networking/Device.cs index 8d9aded..665f29c 100644 --- a/Networking/Device.cs +++ b/Networking/Device.cs @@ -124,10 +124,15 @@ private void PacketArrival(object sender, CaptureEventArgs e) public void SendPacket(EthernetPacket eth) { - - _captureDevice.SendPacket(eth.Bytes); - Sent++; - this.ProcessStatistics(Outside, eth); + if (eth.TotalPacketLength < 1400) + { + try + { + _captureDevice.SendPacket(eth.Bytes); + Sent++; + this.ProcessStatistics(Outside, eth); + } catch {} + } } diff --git a/bin/Debug/eSwitch.exe b/bin/Debug/eSwitch.exe index 473429353e9f1d536e0aa43599ec59de56ec6f68..e00694a795faf077408ff31a3e42b8293af25a23 100644 GIT binary patch literal 28160 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 X>p1c+n)%#{|Aw~yr-}dXJn;VjgJsJO literal 28160 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 P^k2}{|1|O6&IA7+k7}c} diff --git a/bin/Debug/eSwitch.pdb b/bin/Debug/eSwitch.pdb index efecd85a6802a43200c700704265d987c075a4d3..0ea6c808a6a4555aec682073e0cc3715b0765ee9 100644 GIT binary patch delta 2437 zcmd^>e^69a6vyvL(B5zk%*d;*0U6r3JV1{F&I3^Ath@fH=WaW?1RDQ(xBU#d< zCK2k0DMljlBdrX4sRcs<6Zub0FgZ>$`EycdocvXo)DYJ9K0uuQ>i^#Cd!KvGJ@?#m z&%5`$bzRiBE^1m9_=o&)xV-IH-?;;(rqsS?J#W|b_#QmHs;#2$&NnYycvbJ{X`Qp5 zpRn%s(bmuCn6Fe#-ODAdJJ}-=Bu{sG2{5_SM-kJd0C&0&5hU<1qD@}t&KPHmSy_k- zFi+}=3^lA6)si#XOxt37$R}ze@20Y-RlJvOMLF=4qb&xbet7gma>kfxUbIUp(bJX! zD_xEDGL$^-oZ~c;J|;wJ(bHO|mFC3+$}eLIL@JJ5B+_-fILO<({dI`eI;fkWTsZuZ*dGqLYK%wNhvbl zLRl%_8-~@KO``mGGbN^8=j}8pZ3S;v%F>Q-zMdwf$MPato*s*WQNO?BkIv~o5-1M z;U;<`Gg$udi9QYTVWQ76%XuTkFIk1yYL{%_gJjGqlnf?%Gpm5x>G!N~*=`yO0%I^} z*kN*ZusrvPzEOu3s>)u+t7#~^MBnK@nwfnTqNTI2=)R@lSnkl$v%FvFSvH#+jA~Gv zS=BU!4)U*{e;wY=L#+SJl!Y^ex(;fcDpea zimiBFJGx$t>;>K1xIe)78;|uNve<9f@~R&+*_w@v`7wf4=7W%y~s~&50fY?%|`c0 zOGz%7AEGSRJ;Nb~*uD3*F|h}*0N*WdF?}wwE91n-Ka~+ Q=vM--rfAjFU*Bi=2TTZoi2wiq delta 2364 zcmd^=e^69a6vyv<%PzYM%kaQh+Eo`^6a@s9ADTFZMj03aE8q_dlXOOH^5SdU;W>keeZM6x#ymH z&Utsw^IXt)E@%#9hDYoOI*r=L<8Q^loT9Sw;~lWytgb>Nc zE+quY)AfB@2m`T2AbAsF4OKp^g&YZ?^kQOv*=BegidMB-oLJA(=oyDyPBZq+h53A# zD9d4!UN%xpqJ`ddEaTPWbwnGgeP$LK=Ln@$iGh@zG@GBImLwaVXOhgOs}C*Uh?64; zStZZrQM5EUSCngD3Sv$U7A3=Q%UgaFoDwK1H!vjzB~vD(1aZ`0T51MwQ)*MAIiId{ zj`*7+%+BZTBZ{M=+}LSM+DRUzXh+**{fy|o$f=vml#wm-8C014y`fLd*|SbnVJGSLcWggG#4|$r$pKpRCC?c}U3PkRJLmQ|070 z`Ev43ep}xV?u)2rYol$2;f49CR5!j(kx zU3NOQI3+TT#i*z9imq?QF3RV-@alAj>9)(}K8|%BScuufeh(AV$PBtwxT~?^n@9S- za^irio`th{ix>-I8aW)c%WxM$XM|5tc2Q^%)|2+7vlcN4&V4skl+NdwEw zo~Gn2?bWyou?VN~ zkn_Pxa3;6~TnUPKH%O2@U=`R1ZUvjbZD2E4&D_kh2ZN8GP(ZQpbFc>TVen(H8{7_F z1b2YfL1A|Ttb=?L+zE!FOuN8-U_EF9g`FL2fE)!P2u~J>AUqSmJ&4j%h=DMi2JVGi z1bza#!B0U^qJ7{7P}o&~`yp3?pMeL#1K=UB73=_oT_=d7JSV_5@E7nP_$!DcJ@>&# zVfZHo$ky{0_yrh=_tOpz0>7k=l|8&m*|q95zBzAM>*^>;zxJtqHb!})RIH8wmWYs}B~;>`N7_*t_`7cN1`aAt?8XS-K%)}(6;+5SSwu-aQY zMER<=M8}ip%x<$z{8#J}-P|3f?Sc!FP>Mdgslg(8tN@xTp!H&UFKuoxqrF~kuxi`j zvRTMF@%`xGw7(%tD?S6os!=sL8?D+?kc)(@jlvNeu8y1-`IEEBj8@XoXhqxXhNb8v z7NOOOPB>SccafvXiY79#$*QeGI%C!O9*lz2(G83SsFp@L3Y+EVSg}IZiQd&7L=PIn z(9Y#%D~dQA&pOI#j^$0t(&oE*>9-)|jRO}o|LwbdNN+SW;mwGvNs*7Ol+@37edX5y z|1R$766627xLp-~;hpEpcH+RZm$F_--Tw2u%+`>rIoASDZ&vzW%Jx%Be`TBDAB)3u A^#A|> diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache index c7ecd8901eb72c1c22dc4ce80d7079b7137a1d74..495b9ad84e99994c19bb7da5840a304b73b41742 100644 GIT binary patch delta 25 hcmZ1$x-4{qKO^JW%>j%;Y^-W6(^uTxoX&2q3;=wi2`>Nu delta 25 hcmZ1$x-4{qKO^Ir%>j%;Y^(}(w|S3lPG`4Q1^{_;2(thH diff --git a/obj/Debug/eSwitch.exe b/obj/Debug/eSwitch.exe index 473429353e9f1d536e0aa43599ec59de56ec6f68..e00694a795faf077408ff31a3e42b8293af25a23 100644 GIT binary patch literal 28160 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 X>p1c+n)%#{|Aw~yr-}dXJn;VjgJsJO literal 28160 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 P^k2}{|1|O6&IA7+k7}c} diff --git a/obj/Debug/eSwitch.pdb b/obj/Debug/eSwitch.pdb index efecd85a6802a43200c700704265d987c075a4d3..0ea6c808a6a4555aec682073e0cc3715b0765ee9 100644 GIT binary patch delta 2437 zcmd^>e^69a6vyvL(B5zk%*d;*0U6r3JV1{F&I3^Ath@fH=WaW?1RDQ(xBU#d< zCK2k0DMljlBdrX4sRcs<6Zub0FgZ>$`EycdocvXo)DYJ9K0uuQ>i^#Cd!KvGJ@?#m z&%5`$bzRiBE^1m9_=o&)xV-IH-?;;(rqsS?J#W|b_#QmHs;#2$&NnYycvbJ{X`Qp5 zpRn%s(bmuCn6Fe#-ODAdJJ}-=Bu{sG2{5_SM-kJd0C&0&5hU<1qD@}t&KPHmSy_k- zFi+}=3^lA6)si#XOxt37$R}ze@20Y-RlJvOMLF=4qb&xbet7gma>kfxUbIUp(bJX! zD_xEDGL$^-oZ~c;J|;wJ(bHO|mFC3+$}eLIL@JJ5B+_-fILO<({dI`eI;fkWTsZuZ*dGqLYK%wNhvbl zLRl%_8-~@KO``mGGbN^8=j}8pZ3S;v%F>Q-zMdwf$MPato*s*WQNO?BkIv~o5-1M z;U;<`Gg$udi9QYTVWQ76%XuTkFIk1yYL{%_gJjGqlnf?%Gpm5x>G!N~*=`yO0%I^} z*kN*ZusrvPzEOu3s>)u+t7#~^MBnK@nwfnTqNTI2=)R@lSnkl$v%FvFSvH#+jA~Gv zS=BU!4)U*{e;wY=L#+SJl!Y^ex(;fcDpea zimiBFJGx$t>;>K1xIe)78;|uNve<9f@~R&+*_w@v`7wf4=7W%y~s~&50fY?%|`c0 zOGz%7AEGSRJ;Nb~*uD3*F|h}*0N*WdF?}wwE91n-Ka~+ Q=vM--rfAjFU*Bi=2TTZoi2wiq delta 2364 zcmd^=e^69a6vyv<%PzYM%kaQh+Eo`^6a@s9ADTFZMj03aE8q_dlXOOH^5SdU;W>keeZM6x#ymH z&Utsw^IXt)E@%#9hDYoOI*r=L<8Q^loT9Sw;~lWytgb>Nc zE+quY)AfB@2m`T2AbAsF4OKp^g&YZ?^kQOv*=BegidMB-oLJA(=oyDyPBZq+h53A# zD9d4!UN%xpqJ`ddEaTPWbwnGgeP$LK=Ln@$iGh@zG@GBImLwaVXOhgOs}C*Uh?64; zStZZrQM5EUSCngD3Sv$U7A3=Q%UgaFoDwK1H!vjzB~vD(1aZ`0T51MwQ)*MAIiId{ zj`*7+%+BZTBZ{M=+}LSM+DRUzXh+**{fy|o$f=vml#wm-8C014y`fLd*|SbnVJGSLcWggG#4|$r$pKpRCC?c}U3PkRJLmQ|070 z`Ev43ep}xV?u)2rYol$2;f49CR5!j(kx zU3NOQI3+TT#i*z9imq?QF3RV-@alAj>9)(}K8|%BScuufeh(AV$PBtwxT~?^n@9S- za^irio`th{ix>-I8aW)c%WxM$XM|5tc2Q^%)|2+7vlcN4&V4skl+NdwEw zo~Gn2?bWyou?VN~ zkn_Pxa3;6~TnUPKH%O2@U=`R1ZUvjbZD2E4&D_kh2ZN8GP(ZQpbFc>TVen(H8{7_F z1b2YfL1A|Ttb=?L+zE!FOuN8-U_EF9g`FL2fE)!P2u~J>AUqSmJ&4j%h=DMi2JVGi z1bza#!B0U^qJ7{7P}o&~`yp3?pMeL#1K=UB73=_oT_=d7JSV_5@E7nP_$!DcJ@>&# zVfZHo$ky{0_yrh=_tOpz0>7k=l|8&m*|q95zBzAM>*^>;zxJtqHb!})RIH8wmWYs}B~;>`N7_*t_`7cN1`aAt?8XS-K%)}(6;+5SSwu-aQY zMER<=M8}ip%x<$z{8#J}-P|3f?Sc!FP>Mdgslg(8tN@xTp!H&UFKuoxqrF~kuxi`j zvRTMF@%`xGw7(%tD?S6os!=sL8?D+?kc)(@jlvNeu8y1-`IEEBj8@XoXhqxXhNb8v z7NOOOPB>SccafvXiY79#$*QeGI%C!O9*lz2(G83SsFp@L3Y+EVSg}IZiQd&7L=PIn z(9Y#%D~dQA&pOI#j^$0t(&oE*>9-)|jRO}o|LwbdNN+SW;mwGvNs*7Ol+@37edX5y z|1R$766627xLp-~;hpEpcH+RZm$F_--Tw2u%+`>rIoASDZ&vzW%Jx%Be`TBDAB)3u A^#A|> From 1665890ebbffc5650cff113e6dda77cf554916f2 Mon Sep 17 00:00:00 2001 From: Erik Belak Date: Wed, 2 Dec 2020 19:45:42 +0100 Subject: [PATCH 2/5] firewall --- GUI/TableView.Designer.cs | 183 +++++++++--------- GUI/TableView.cs | 13 ++ Networking/Device.cs | 42 +++- Networking/FirewallRule.cs | 161 +++++++++++++++ Networking/Network.cs | 36 +++- bin/Debug/eSwitch.exe | Bin 28160 -> 33280 bytes bin/Debug/eSwitch.pdb | Bin 60928 -> 77312 bytes eSwitch.csproj | 1 + .../DesignTimeResolveAssemblyReferences.cache | Bin 10918 -> 10918 bytes .../eSwitch.csproj.CoreCompileInputs.cache | 2 +- .../eSwitch.csproj.GenerateResource.cache | Bin 947 -> 947 bytes .../eSwitch.csprojAssemblyReference.cache | Bin 424 -> 53273 bytes obj/Debug/eSwitch.exe | Bin 28160 -> 33280 bytes obj/Debug/eSwitch.pdb | Bin 60928 -> 77312 bytes 14 files changed, 338 insertions(+), 100 deletions(-) create mode 100644 Networking/FirewallRule.cs diff --git a/GUI/TableView.Designer.cs b/GUI/TableView.Designer.cs index bc32b3d..de51330 100644 --- a/GUI/TableView.Designer.cs +++ b/GUI/TableView.Designer.cs @@ -32,7 +32,16 @@ private void InitializeComponent() this.StartButton = new System.Windows.Forms.Button(); this.StopButton = new System.Windows.Forms.Button(); this.DeviceTable = new System.Windows.Forms.DataGridView(); + this.isOpenedDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sentDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.receivedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.deviceBindingSource = new System.Windows.Forms.BindingSource(this.components); this.CamTable = new System.Windows.Forms.DataGridView(); + this.deviceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tTLDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.physicalAdsressDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.camRecordBindingSource = new System.Windows.Forms.BindingSource(this.components); this.ClearCamButton = new System.Windows.Forms.Button(); this.TTLBox = new System.Windows.Forms.TextBox(); this.ResetTTLButton = new System.Windows.Forms.Button(); @@ -48,26 +57,17 @@ private void InitializeComponent() this.LLDP = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.HTTP = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.RstStatsBtn = new System.Windows.Forms.Button(); - this.deviceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.tTLDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.physicalAdsressDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.camRecordBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.isOpenedDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.sentDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.receivedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.deviceBindingSource = new System.Windows.Forms.BindingSource(this.components); ((System.ComponentModel.ISupportInitialize)(this.DeviceTable)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.CamTable)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).BeginInit(); this.SuspendLayout(); // // StartButton // this.StartButton.Location = new System.Drawing.Point(44, 35); - this.StartButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.StartButton.Margin = new System.Windows.Forms.Padding(4); this.StartButton.Name = "StartButton"; this.StartButton.Size = new System.Drawing.Size(78, 44); this.StartButton.TabIndex = 0; @@ -79,7 +79,7 @@ private void InitializeComponent() // this.StopButton.Enabled = false; this.StopButton.Location = new System.Drawing.Point(142, 35); - this.StopButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.StopButton.Margin = new System.Windows.Forms.Padding(4); this.StopButton.Name = "StopButton"; this.StopButton.Size = new System.Drawing.Size(96, 44); this.StopButton.TabIndex = 1; @@ -101,12 +101,51 @@ private void InitializeComponent() this.receivedDataGridViewTextBoxColumn}); this.DeviceTable.DataSource = this.deviceBindingSource; this.DeviceTable.Location = new System.Drawing.Point(44, 87); - this.DeviceTable.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.DeviceTable.Margin = new System.Windows.Forms.Padding(4); this.DeviceTable.Name = "DeviceTable"; this.DeviceTable.RowHeadersWidth = 82; this.DeviceTable.RowTemplate.Height = 33; this.DeviceTable.Size = new System.Drawing.Size(684, 429); this.DeviceTable.TabIndex = 2; + this.DeviceTable.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DeviceTable_CellContentDoubleClick); + // + // isOpenedDataGridViewCheckBoxColumn + // + this.isOpenedDataGridViewCheckBoxColumn.DataPropertyName = "IsOpened"; + this.isOpenedDataGridViewCheckBoxColumn.HeaderText = "Check"; + this.isOpenedDataGridViewCheckBoxColumn.MinimumWidth = 10; + this.isOpenedDataGridViewCheckBoxColumn.Name = "isOpenedDataGridViewCheckBoxColumn"; + this.isOpenedDataGridViewCheckBoxColumn.Width = 79; + // + // nameDataGridViewTextBoxColumn + // + this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; + this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; + this.nameDataGridViewTextBoxColumn.MinimumWidth = 10; + this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; + this.nameDataGridViewTextBoxColumn.ReadOnly = true; + this.nameDataGridViewTextBoxColumn.Width = 113; + // + // sentDataGridViewTextBoxColumn + // + this.sentDataGridViewTextBoxColumn.DataPropertyName = "Sent"; + this.sentDataGridViewTextBoxColumn.HeaderText = "Sent"; + this.sentDataGridViewTextBoxColumn.MinimumWidth = 10; + this.sentDataGridViewTextBoxColumn.Name = "sentDataGridViewTextBoxColumn"; + this.sentDataGridViewTextBoxColumn.Width = 101; + // + // receivedDataGridViewTextBoxColumn + // + this.receivedDataGridViewTextBoxColumn.DataPropertyName = "Received"; + this.receivedDataGridViewTextBoxColumn.HeaderText = "Received"; + this.receivedDataGridViewTextBoxColumn.MinimumWidth = 10; + this.receivedDataGridViewTextBoxColumn.Name = "receivedDataGridViewTextBoxColumn"; + this.receivedDataGridViewTextBoxColumn.ReadOnly = true; + this.receivedDataGridViewTextBoxColumn.Width = 147; + // + // deviceBindingSource + // + this.deviceBindingSource.DataSource = typeof(eSwitch.Networking.Device); // // CamTable // @@ -122,18 +161,48 @@ private void InitializeComponent() this.physicalAdsressDataGridViewTextBoxColumn}); this.CamTable.DataSource = this.camRecordBindingSource; this.CamTable.Location = new System.Drawing.Point(768, 87); - this.CamTable.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CamTable.Margin = new System.Windows.Forms.Padding(4); this.CamTable.Name = "CamTable"; this.CamTable.RowHeadersWidth = 82; this.CamTable.RowTemplate.Height = 33; this.CamTable.Size = new System.Drawing.Size(664, 429); this.CamTable.TabIndex = 3; // + // deviceDataGridViewTextBoxColumn + // + this.deviceDataGridViewTextBoxColumn.DataPropertyName = "Device"; + this.deviceDataGridViewTextBoxColumn.HeaderText = "Device"; + this.deviceDataGridViewTextBoxColumn.MinimumWidth = 10; + this.deviceDataGridViewTextBoxColumn.Name = "deviceDataGridViewTextBoxColumn"; + this.deviceDataGridViewTextBoxColumn.ReadOnly = true; + this.deviceDataGridViewTextBoxColumn.Width = 123; + // + // tTLDataGridViewTextBoxColumn + // + this.tTLDataGridViewTextBoxColumn.DataPropertyName = "TTL"; + this.tTLDataGridViewTextBoxColumn.HeaderText = "TTL"; + this.tTLDataGridViewTextBoxColumn.MinimumWidth = 10; + this.tTLDataGridViewTextBoxColumn.Name = "tTLDataGridViewTextBoxColumn"; + this.tTLDataGridViewTextBoxColumn.ReadOnly = true; + this.tTLDataGridViewTextBoxColumn.Width = 95; + // + // physicalAdsressDataGridViewTextBoxColumn + // + this.physicalAdsressDataGridViewTextBoxColumn.DataPropertyName = "PhysicalAdsress"; + this.physicalAdsressDataGridViewTextBoxColumn.HeaderText = "PhysicalAdsress"; + this.physicalAdsressDataGridViewTextBoxColumn.MinimumWidth = 10; + this.physicalAdsressDataGridViewTextBoxColumn.Name = "physicalAdsressDataGridViewTextBoxColumn"; + this.physicalAdsressDataGridViewTextBoxColumn.Width = 216; + // + // camRecordBindingSource + // + this.camRecordBindingSource.DataSource = typeof(eSwitch.Networking.CamRecord); + // // ClearCamButton // this.ClearCamButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.ClearCamButton.Location = new System.Drawing.Point(1326, 35); - this.ClearCamButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.ClearCamButton.Margin = new System.Windows.Forms.Padding(4); this.ClearCamButton.Name = "ClearCamButton"; this.ClearCamButton.Size = new System.Drawing.Size(100, 44); this.ClearCamButton.TabIndex = 4; @@ -145,7 +214,7 @@ private void InitializeComponent() // this.TTLBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.TTLBox.Location = new System.Drawing.Point(1296, 630); - this.TTLBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.TTLBox.Margin = new System.Windows.Forms.Padding(4); this.TTLBox.Name = "TTLBox"; this.TTLBox.Size = new System.Drawing.Size(136, 31); this.TTLBox.TabIndex = 5; @@ -154,7 +223,7 @@ private void InitializeComponent() // this.ResetTTLButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.ResetTTLButton.Location = new System.Drawing.Point(1296, 688); - this.ResetTTLButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.ResetTTLButton.Margin = new System.Windows.Forms.Padding(4); this.ResetTTLButton.Name = "ResetTTLButton"; this.ResetTTLButton.Size = new System.Drawing.Size(136, 58); this.ResetTTLButton.TabIndex = 6; @@ -181,7 +250,7 @@ private void InitializeComponent() this.LLDP, this.HTTP}); this.StatisticsTable.Location = new System.Drawing.Point(44, 630); - this.StatisticsTable.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.StatisticsTable.Margin = new System.Windows.Forms.Padding(4); this.StatisticsTable.Name = "StatisticsTable"; this.StatisticsTable.RowHeadersWidth = 82; this.StatisticsTable.RowTemplate.Height = 33; @@ -261,7 +330,7 @@ private void InitializeComponent() // this.RstStatsBtn.Anchor = System.Windows.Forms.AnchorStyles.Left; this.RstStatsBtn.Location = new System.Drawing.Point(44, 542); - this.RstStatsBtn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.RstStatsBtn.Margin = new System.Windows.Forms.Padding(4); this.RstStatsBtn.Name = "RstStatsBtn"; this.RstStatsBtn.Size = new System.Drawing.Size(194, 60); this.RstStatsBtn.TabIndex = 10; @@ -269,74 +338,6 @@ private void InitializeComponent() this.RstStatsBtn.UseVisualStyleBackColor = true; this.RstStatsBtn.Click += new System.EventHandler(this.RstStatsBtn_Click); // - // deviceDataGridViewTextBoxColumn - // - this.deviceDataGridViewTextBoxColumn.DataPropertyName = "Device"; - this.deviceDataGridViewTextBoxColumn.HeaderText = "Device"; - this.deviceDataGridViewTextBoxColumn.MinimumWidth = 10; - this.deviceDataGridViewTextBoxColumn.Name = "deviceDataGridViewTextBoxColumn"; - this.deviceDataGridViewTextBoxColumn.ReadOnly = true; - this.deviceDataGridViewTextBoxColumn.Width = 123; - // - // tTLDataGridViewTextBoxColumn - // - this.tTLDataGridViewTextBoxColumn.DataPropertyName = "TTL"; - this.tTLDataGridViewTextBoxColumn.HeaderText = "TTL"; - this.tTLDataGridViewTextBoxColumn.MinimumWidth = 10; - this.tTLDataGridViewTextBoxColumn.Name = "tTLDataGridViewTextBoxColumn"; - this.tTLDataGridViewTextBoxColumn.ReadOnly = true; - this.tTLDataGridViewTextBoxColumn.Width = 95; - // - // physicalAdsressDataGridViewTextBoxColumn - // - this.physicalAdsressDataGridViewTextBoxColumn.DataPropertyName = "PhysicalAdsress"; - this.physicalAdsressDataGridViewTextBoxColumn.HeaderText = "PhysicalAdsress"; - this.physicalAdsressDataGridViewTextBoxColumn.MinimumWidth = 10; - this.physicalAdsressDataGridViewTextBoxColumn.Name = "physicalAdsressDataGridViewTextBoxColumn"; - this.physicalAdsressDataGridViewTextBoxColumn.Width = 216; - // - // camRecordBindingSource - // - this.camRecordBindingSource.DataSource = typeof(eSwitch.Networking.CamRecord); - // - // isOpenedDataGridViewCheckBoxColumn - // - this.isOpenedDataGridViewCheckBoxColumn.DataPropertyName = "IsOpened"; - this.isOpenedDataGridViewCheckBoxColumn.HeaderText = "Check"; - this.isOpenedDataGridViewCheckBoxColumn.MinimumWidth = 10; - this.isOpenedDataGridViewCheckBoxColumn.Name = "isOpenedDataGridViewCheckBoxColumn"; - this.isOpenedDataGridViewCheckBoxColumn.Width = 79; - // - // nameDataGridViewTextBoxColumn - // - this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; - this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; - this.nameDataGridViewTextBoxColumn.MinimumWidth = 10; - this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; - this.nameDataGridViewTextBoxColumn.ReadOnly = true; - this.nameDataGridViewTextBoxColumn.Width = 113; - // - // sentDataGridViewTextBoxColumn - // - this.sentDataGridViewTextBoxColumn.DataPropertyName = "Sent"; - this.sentDataGridViewTextBoxColumn.HeaderText = "Sent"; - this.sentDataGridViewTextBoxColumn.MinimumWidth = 10; - this.sentDataGridViewTextBoxColumn.Name = "sentDataGridViewTextBoxColumn"; - this.sentDataGridViewTextBoxColumn.Width = 101; - // - // receivedDataGridViewTextBoxColumn - // - this.receivedDataGridViewTextBoxColumn.DataPropertyName = "Received"; - this.receivedDataGridViewTextBoxColumn.HeaderText = "Received"; - this.receivedDataGridViewTextBoxColumn.MinimumWidth = 10; - this.receivedDataGridViewTextBoxColumn.Name = "receivedDataGridViewTextBoxColumn"; - this.receivedDataGridViewTextBoxColumn.ReadOnly = true; - this.receivedDataGridViewTextBoxColumn.Width = 147; - // - // deviceBindingSource - // - this.deviceBindingSource.DataSource = typeof(eSwitch.Networking.Device); - // // TableView // this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); @@ -351,14 +352,14 @@ private void InitializeComponent() this.Controls.Add(this.DeviceTable); this.Controls.Add(this.StopButton); this.Controls.Add(this.StartButton); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Margin = new System.Windows.Forms.Padding(4); this.Name = "TableView"; this.Text = "eSwitch"; ((System.ComponentModel.ISupportInitialize)(this.DeviceTable)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CamTable)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); diff --git a/GUI/TableView.cs b/GUI/TableView.cs index 7a8fb81..c31b922 100644 --- a/GUI/TableView.cs +++ b/GUI/TableView.cs @@ -218,5 +218,18 @@ private void RstStatsBtn_Click(object sender, EventArgs e) } } + + private void DeviceTable_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) + { + var dataIndexNo = DeviceTable.Rows[e.RowIndex].Index.ToString(); // index of Device + string cellValue = DeviceTable.Rows[e.RowIndex].Cells[1].Value.ToString(); //name of Device + + + //var firewallWindow = new FirewallWindow(cellValue.ToString() as Device); + + + MessageBox.Show("The row index = " + dataIndexNo.ToString() + " and the row data in second column is: " + + cellValue.ToString()); + } } } diff --git a/Networking/Device.cs b/Networking/Device.cs index 665f29c..6668347 100644 --- a/Networking/Device.cs +++ b/Networking/Device.cs @@ -4,6 +4,7 @@ using PacketDotNet; using SharpPcap; using SharpPcap.WinPcap; +using System.Linq; namespace eSwitch.Networking @@ -18,6 +19,10 @@ public class Device public readonly WinPcapDevice _captureDevice; public event EventHandler PacketReceived; + public List FirewallRules = new List(); + + + private static readonly int Inside = 0; private static readonly int Outside = 1; @@ -113,12 +118,21 @@ private void PacketArrival(object sender, CaptureEventArgs e) { var packet = Packet.ParsePacket(LinkLayers.Ethernet, e.Packet.Data); - if (packet is EthernetPacket) + if (packet is EthernetPacket eth) { - EthernetPacket eth = (EthernetPacket)packet; - Task.Run((() => { PacketReceived?.Invoke(this, eth); })); - Received++; - this.ProcessStatistics(Inside, eth); + Task.Run((() => + { + PacketReceived?.Invoke(this, eth); + })); + + Task.Run((() => + { + if (this.PassedFirewallRules(Inside, eth)) + { + Received++; + this.ProcessStatistics(Inside, eth); + } + })); } } @@ -172,6 +186,7 @@ private void ProcessStatistics(int direction, EthernetPacket packet) if (packet.Extract() != null) { + Statistics["IPv4"][direction]++; } @@ -190,5 +205,22 @@ private void ProcessStatistics(int direction, EthernetPacket packet) Statistics["LLDP"][direction]++; } } + + + public bool PassedFirewallRules(int direction, EthernetPacket packet) + { + var passed = true; + + foreach (var rule in FirewallRules.Where + (rule => rule.RuleDirection == null || direction.Equals(rule.RuleDirection))) + { + if (rule.IsMatch(packet)) + { + passed = rule.RuleOperation.Equals(FirewallRule.Operation.Permit); + } + } + + return passed; + } } } diff --git a/Networking/FirewallRule.cs b/Networking/FirewallRule.cs new file mode 100644 index 0000000..94ca87d --- /dev/null +++ b/Networking/FirewallRule.cs @@ -0,0 +1,161 @@ +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.NetworkInformation; +using PacketDotNet; + +namespace eSwitch.Networking +{ + public class FirewallRule + { + public enum Operation + { + Deny, + Permit + } + + public Operation RuleOperation { get; set; } + public int? RuleDirection { get; set; } + public PhysicalAddress SourceMac { get; set; } + public IPAddress SourceIp { get; set; } + public PhysicalAddress DestinationMac { get; set; } + public IPAddress DestinationIp { get; set; } + public string RuleProtocol { get; set; } + public ushort? SourcePort { get; set; } + public ushort? DestinationPort { get; set; } + + private bool resolveValidationStack(Stack> stack) + { + foreach (Func rule in stack) + { + if (!rule()) + { + return false; + } + } + return true; + } + + public bool IsMatch(EthernetPacket packet) + { + var validationStack = new Stack>(); + + if (SourceMac != null) + { + validationStack.Push(() => SourceMac.Equals(packet.SourceHardwareAddress)); + } + + if (DestinationMac != null) + { + validationStack.Push(() => DestinationMac.Equals(packet.DestinationHardwareAddress)); + } + + var arp = packet.Extract(); + if (arp != null && RuleProtocol.Equals("Arp")) + { + return resolveValidationStack(validationStack); + } + + var lldp = packet.Extract(); + if (lldp != null && RuleProtocol.Equals("Lldp")) + { + return resolveValidationStack(validationStack); + } + + + var ipv4 = packet.Extract(); + if (ipv4 != null) + { + if (SourceIp != null) + { + validationStack.Push(() => SourceIp.Equals(ipv4.SourceAddress)); + } + + if (DestinationIp != null) + { + validationStack.Push(() => DestinationIp.Equals(ipv4.DestinationAddress)); + } + + if (RuleProtocol.Equals("Ipv4")) + { + return resolveValidationStack(validationStack); + } + } + + var ipv6 = packet.Extract(); + if (ipv6 != null) + { + if (SourceIp != null) + { + validationStack.Push(() => SourceIp.Equals(ipv6.SourceAddress)); + } + + if (DestinationIp != null) + { + validationStack.Push(() => DestinationIp.Equals(ipv6.DestinationAddress)); + } + + if (RuleProtocol.Equals("Ipv6")) + { + return resolveValidationStack(validationStack); + } + } + + var icmpv4 = packet.Extract(); + if (icmpv4 != null && RuleProtocol.Equals("Icmpv4")) + { + if (DestinationPort != null) + { + validationStack.Push(() => (((ushort)icmpv4.TypeCode) / 256) == DestinationPort); + } + + return resolveValidationStack(validationStack); + } + + var icmpv6 = packet.Extract(); + if (icmpv6 != null && RuleProtocol.Equals("Icmpv6")) + { + if (DestinationPort != null) + { + validationStack.Push(() => (((ushort)icmpv6.TypeCode) / 256) == DestinationPort); + } + + return resolveValidationStack(validationStack); + } + + var tcp = packet.Extract(); + if (tcp != null && RuleProtocol.Equals("Tcp")) + { + if (SourcePort != null) + { + validationStack.Push(() => SourcePort.Equals(tcp.SourcePort)); + } + + if (DestinationPort != null) + { + validationStack.Push(() => DestinationPort.Equals(tcp.DestinationPort)); + } + + return resolveValidationStack(validationStack); + } + + var udp = packet.Extract(); + if (udp != null && RuleProtocol.Equals("Udp")) + { + if (SourcePort != null) + { + validationStack.Push(() => SourcePort.Equals(udp.SourcePort)); + } + + if (DestinationPort != null) + { + validationStack.Push(() => DestinationPort.Equals(udp.DestinationPort)); + } + + return resolveValidationStack(validationStack); + } + + return false; + } + } +} \ No newline at end of file diff --git a/Networking/Network.cs b/Networking/Network.cs index 4e1aacb..6c78adc 100644 --- a/Networking/Network.cs +++ b/Networking/Network.cs @@ -16,7 +16,10 @@ public class Network public event EventHandler CamChange; private Timer Clk { get; } = new Timer(1000); - + + private static readonly int Inside = 0; + private static readonly int Outside = 1; + public Network() { var devices = WinPcapDeviceList.Instance; @@ -60,13 +63,30 @@ private void PacketArrival(object sender, EthernetPacket eth) { var senderDevice = (Device)sender; + if (!senderDevice.PassedFirewallRules(Inside, eth)) + { + //this.Log(new Syslog(Severity.Debug, $"Packet thrown away by firewall on input")); + Console.WriteLine("Packet thrown away by firewall on input"); + return; + } + + if (CamTable.ContainsKey(eth.DestinationHardwareAddress.ToString())) { var record = CamTable[eth.DestinationHardwareAddress.ToString()]; if (record.Device.Name != senderDevice.Name) { - record.Device.SendPacket(eth); + + if (record.Device.PassedFirewallRules(Outside, eth)) + { + record.Device.SendPacket(eth); + } + else + { + Console.WriteLine("Packet thrown away by firewall on input"); + //this.Log(new SyslogMessage(Severity.Debug, $"Packet thrown away by firewall on output")); + } } } else @@ -76,7 +96,17 @@ private void PacketArrival(object sender, EthernetPacket eth) { if (device.Name != senderDevice.Name) { - device.SendPacket(eth); + if (device.PassedFirewallRules(Outside, eth)) + { + device.SendPacket(eth); + } + else + { + //this.Log(new SyslogMessage(Severity.Debug, $"Packet thrown away by firewall on output")); + Console.WriteLine("Packet thrown away by firewall on input"); + + } + } } } diff --git a/bin/Debug/eSwitch.exe b/bin/Debug/eSwitch.exe index e00694a795faf077408ff31a3e42b8293af25a23..7e15a5a96a20be6d34b6fe897ac6d697701154b1 100644 GIT binary patch literal 33280 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 X>p1c+n)%#{|Aw~yr-}dXJn;VjgJsJO diff --git a/bin/Debug/eSwitch.pdb b/bin/Debug/eSwitch.pdb index 0ea6c808a6a4555aec682073e0cc3715b0765ee9..9c12f1e7fa562bdd0d65d1821e6915aadb1e07a4 100644 GIT binary patch literal 77312 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 TlLMI?$mBpK2QoQebKw613j@9r literal 60928 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 wr + diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 495b9ad84e99994c19bb7da5840a304b73b41742..fb6b69bc37e4b873b87813d7e4a01eed8e960b43 100644 GIT binary patch delta 25 hcmZ1$x-4{qKO^J&%>j%;Y^*9-m)PEIPG`4Q1^|1v2;Tqz delta 25 hcmZ1$x-4{qKO^JW%>j%;Y^-W6(^uTxoX&2q3;=wi2`>Nu diff --git a/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache b/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache index 60c1070..46d46a1 100644 --- a/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache +++ b/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -322faaa7ae30aa42ef7f082eb195ce43933d6f8e +f3d56c727ff72760f91139c3d7ebd4526411b035 diff --git a/obj/Debug/eSwitch.csproj.GenerateResource.cache b/obj/Debug/eSwitch.csproj.GenerateResource.cache index 114874720f59cd7bf0ad0ec2101c654734d459bd..a5b1cca652d2c4c9251855fcae20b69bcaa718cb 100644 GIT binary patch delta 34 lcmdnYzL|YPD-+|)&23CljKWJiBrklLcB6w)ke2}hxB<>^36=l= delta 34 lcmdnYzL|YPD-+}N&23CljKW?AI`hs>yV1cY$jbl$+yKub37Y@_ diff --git a/obj/Debug/eSwitch.csprojAssemblyReference.cache b/obj/Debug/eSwitch.csprojAssemblyReference.cache index 41de7d1e79879c6e488ec68835d7c1e283b50819..b40a7c68fdaa43f7e1d5fafe377be1c6dd49bba6 100644 GIT binary patch literal 53273 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 delta 29 fcmbQafO!S;27g9I&B+0bUVIEdAixG9fq)wTW`hK8 diff --git a/obj/Debug/eSwitch.exe b/obj/Debug/eSwitch.exe index e00694a795faf077408ff31a3e42b8293af25a23..7e15a5a96a20be6d34b6fe897ac6d697701154b1 100644 GIT binary patch literal 33280 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 X>p1c+n)%#{|Aw~yr-}dXJn;VjgJsJO diff --git a/obj/Debug/eSwitch.pdb b/obj/Debug/eSwitch.pdb index 0ea6c808a6a4555aec682073e0cc3715b0765ee9..9c12f1e7fa562bdd0d65d1821e6915aadb1e07a4 100644 GIT binary patch literal 77312 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 TlLMI?$mBpK2QoQebKw613j@9r literal 60928 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 wr Date: Thu, 3 Dec 2020 01:49:06 +0100 Subject: [PATCH 3/5] GUI for Firewall --- GUI/Firewall.Designer.cs | 79 ++++ GUI/Firewall.cs | 52 +++ GUI/Firewall.resx | 120 +++++++ GUI/NewFireWall.Designer.cs | 336 ++++++++++++++++++ GUI/NewFireWall.cs | 74 ++++ GUI/NewFireWall.resx | 120 +++++++ GUI/TableView.Designer.cs | 162 ++++----- GUI/TableView.cs | 16 +- GUI/TableView.resx | 30 ++ bin/Debug/eSwitch.exe | Bin 33280 -> 41472 bytes bin/Debug/eSwitch.pdb | Bin 77312 -> 97792 bytes eSwitch.csproj | 18 + .../DesignTimeResolveAssemblyReferences.cache | Bin 10918 -> 11901 bytes obj/Debug/eSwitch.GUI.Firewall.resources | Bin 0 -> 180 bytes obj/Debug/eSwitch.GUI.NewFireWall.resources | Bin 0 -> 180 bytes .../eSwitch.csproj.CoreCompileInputs.cache | 2 +- obj/Debug/eSwitch.csproj.FileListAbsolute.txt | 2 + .../eSwitch.csproj.GenerateResource.cache | Bin 947 -> 1080 bytes .../eSwitch.csprojAssemblyReference.cache | Bin 53273 -> 424 bytes obj/Debug/eSwitch.exe | Bin 33280 -> 41472 bytes obj/Debug/eSwitch.pdb | Bin 77312 -> 97792 bytes 21 files changed, 920 insertions(+), 91 deletions(-) create mode 100644 GUI/Firewall.Designer.cs create mode 100644 GUI/Firewall.cs create mode 100644 GUI/Firewall.resx create mode 100644 GUI/NewFireWall.Designer.cs create mode 100644 GUI/NewFireWall.cs create mode 100644 GUI/NewFireWall.resx create mode 100644 obj/Debug/eSwitch.GUI.Firewall.resources create mode 100644 obj/Debug/eSwitch.GUI.NewFireWall.resources diff --git a/GUI/Firewall.Designer.cs b/GUI/Firewall.Designer.cs new file mode 100644 index 0000000..78b21f7 --- /dev/null +++ b/GUI/Firewall.Designer.cs @@ -0,0 +1,79 @@ + +namespace eSwitch.GUI +{ + partial class Firewall + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.addNewFirewallButton = new System.Windows.Forms.Button(); + this.FireWallTable = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.FireWallTable)).BeginInit(); + this.SuspendLayout(); + // + // addNewFirewallButton + // + this.addNewFirewallButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.addNewFirewallButton.Location = new System.Drawing.Point(588, 806); + this.addNewFirewallButton.Name = "addNewFirewallButton"; + this.addNewFirewallButton.Size = new System.Drawing.Size(889, 57); + this.addNewFirewallButton.TabIndex = 1; + this.addNewFirewallButton.Text = "Add new"; + this.addNewFirewallButton.UseVisualStyleBackColor = true; + this.addNewFirewallButton.Click += new System.EventHandler(this.addNewFirewallButton_Click); + // + // FireWallTable + // + this.FireWallTable.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.FireWallTable.Location = new System.Drawing.Point(78, 88); + this.FireWallTable.Name = "FireWallTable"; + this.FireWallTable.RowHeadersWidth = 82; + this.FireWallTable.RowTemplate.Height = 33; + this.FireWallTable.Size = new System.Drawing.Size(1884, 271); + this.FireWallTable.TabIndex = 2; + // + // Firewall + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.ClientSize = new System.Drawing.Size(2069, 923); + this.Controls.Add(this.FireWallTable); + this.Controls.Add(this.addNewFirewallButton); + this.Name = "Firewall"; + this.Text = "Firewall"; + ((System.ComponentModel.ISupportInitialize)(this.FireWallTable)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button addNewFirewallButton; + private System.Windows.Forms.DataGridView FireWallTable; + } +} \ No newline at end of file diff --git a/GUI/Firewall.cs b/GUI/Firewall.cs new file mode 100644 index 0000000..eebb3a2 --- /dev/null +++ b/GUI/Firewall.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using eSwitch.Networking; + +namespace eSwitch.GUI +{ + public partial class Firewall : Form + { + public Network N { get; } = new Network(); + + private readonly Device _device; + public Firewall(string name, int count) + { + InitializeComponent(); + for(int i=0;i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GUI/NewFireWall.Designer.cs b/GUI/NewFireWall.Designer.cs new file mode 100644 index 0000000..23acb02 --- /dev/null +++ b/GUI/NewFireWall.Designer.cs @@ -0,0 +1,336 @@ + +namespace eSwitch.GUI +{ + partial class NewFireWall + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.OperationComboBox = new System.Windows.Forms.ComboBox(); + this.SourceMacTextBox = new System.Windows.Forms.TextBox(); + this.ProtocolComboBox = new System.Windows.Forms.ComboBox(); + this.DirectionComboBox = new System.Windows.Forms.ComboBox(); + this.SourceIpTextBox = new System.Windows.Forms.TextBox(); + this.DestinationMacTextBox = new System.Windows.Forms.TextBox(); + this.DestinationIpTextBox = new System.Windows.Forms.TextBox(); + this.SourcePortTextBox = new System.Windows.Forms.TextBox(); + this.DestinationPortTextBox = new System.Windows.Forms.TextBox(); + this.Operation = new System.Windows.Forms.Label(); + this.Protocol = new System.Windows.Forms.Label(); + this.Direction = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.AddNewFireWallButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // OperationComboBox + // + this.OperationComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.OperationComboBox.FormattingEnabled = true; + this.OperationComboBox.Items.AddRange(new object[] { + "Deny", + "Permit"}); + this.OperationComboBox.Location = new System.Drawing.Point(105, 49); + this.OperationComboBox.Name = "OperationComboBox"; + this.OperationComboBox.Size = new System.Drawing.Size(425, 33); + this.OperationComboBox.TabIndex = 0; + // + // SourceMacTextBox + // + this.SourceMacTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.SourceMacTextBox.Location = new System.Drawing.Point(105, 365); + this.SourceMacTextBox.Name = "SourceMacTextBox"; + this.SourceMacTextBox.Size = new System.Drawing.Size(425, 31); + this.SourceMacTextBox.TabIndex = 3; + // + // ProtocolComboBox + // + this.ProtocolComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ProtocolComboBox.FormattingEnabled = true; + this.ProtocolComboBox.Items.AddRange(new object[] { + "TCP", + "UDP", + "ICMPv4", + "ICMPv6", + "IPv4", + "IPv6", + "ARP", + "LLDP"}); + this.ProtocolComboBox.Location = new System.Drawing.Point(105, 269); + this.ProtocolComboBox.Name = "ProtocolComboBox"; + this.ProtocolComboBox.Size = new System.Drawing.Size(425, 33); + this.ProtocolComboBox.TabIndex = 9; + // + // DirectionComboBox + // + this.DirectionComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DirectionComboBox.FormattingEnabled = true; + this.DirectionComboBox.Items.AddRange(new object[] { + "Inside", + "Outside"}); + this.DirectionComboBox.Location = new System.Drawing.Point(105, 163); + this.DirectionComboBox.Name = "DirectionComboBox"; + this.DirectionComboBox.Size = new System.Drawing.Size(425, 33); + this.DirectionComboBox.TabIndex = 10; + // + // SourceIpTextBox + // + this.SourceIpTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.SourceIpTextBox.Location = new System.Drawing.Point(105, 454); + this.SourceIpTextBox.Name = "SourceIpTextBox"; + this.SourceIpTextBox.Size = new System.Drawing.Size(425, 31); + this.SourceIpTextBox.TabIndex = 11; + // + // DestinationMacTextBox + // + this.DestinationMacTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DestinationMacTextBox.Location = new System.Drawing.Point(105, 559); + this.DestinationMacTextBox.Name = "DestinationMacTextBox"; + this.DestinationMacTextBox.Size = new System.Drawing.Size(425, 31); + this.DestinationMacTextBox.TabIndex = 12; + // + // DestinationIpTextBox + // + this.DestinationIpTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DestinationIpTextBox.Location = new System.Drawing.Point(105, 653); + this.DestinationIpTextBox.Name = "DestinationIpTextBox"; + this.DestinationIpTextBox.Size = new System.Drawing.Size(425, 31); + this.DestinationIpTextBox.TabIndex = 13; + // + // SourcePortTextBox + // + this.SourcePortTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.SourcePortTextBox.Location = new System.Drawing.Point(105, 757); + this.SourcePortTextBox.Name = "SourcePortTextBox"; + this.SourcePortTextBox.Size = new System.Drawing.Size(425, 31); + this.SourcePortTextBox.TabIndex = 14; + // + // DestinationPortTextBox + // + this.DestinationPortTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DestinationPortTextBox.Location = new System.Drawing.Point(105, 865); + this.DestinationPortTextBox.Name = "DestinationPortTextBox"; + this.DestinationPortTextBox.Size = new System.Drawing.Size(425, 31); + this.DestinationPortTextBox.TabIndex = 15; + this.DestinationPortTextBox.Tag = ""; + // + // Operation + // + this.Operation.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Operation.AutoSize = true; + this.Operation.Location = new System.Drawing.Point(100, 21); + this.Operation.Name = "Operation"; + this.Operation.Size = new System.Drawing.Size(106, 25); + this.Operation.TabIndex = 16; + this.Operation.Text = "Operation"; + // + // Protocol + // + this.Protocol.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Protocol.AutoSize = true; + this.Protocol.Location = new System.Drawing.Point(100, 241); + this.Protocol.Name = "Protocol"; + this.Protocol.Size = new System.Drawing.Size(91, 25); + this.Protocol.TabIndex = 17; + this.Protocol.Text = "Protocol"; + // + // Direction + // + this.Direction.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Direction.AutoSize = true; + this.Direction.Location = new System.Drawing.Point(100, 135); + this.Direction.Name = "Direction"; + this.Direction.Size = new System.Drawing.Size(97, 25); + this.Direction.TabIndex = 18; + this.Direction.Text = "Direction"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(100, 337); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(133, 25); + this.label4.TabIndex = 19; + this.label4.Text = "Source MAC"; + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(100, 426); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(105, 25); + this.label5.TabIndex = 20; + this.label5.Text = "Source IP"; + // + // label6 + // + this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(100, 625); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(145, 25); + this.label6.TabIndex = 21; + this.label6.Text = "Destination IP"; + // + // label7 + // + this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(100, 729); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(125, 25); + this.label7.TabIndex = 22; + this.label7.Text = "Source Port"; + // + // label8 + // + this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(100, 837); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(165, 25); + this.label8.TabIndex = 23; + this.label8.Text = "Destination Port"; + // + // label9 + // + this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(100, 531); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(173, 25); + this.label9.TabIndex = 24; + this.label9.Text = "Destination MAC"; + // + // AddNewFireWallButton + // + this.AddNewFireWallButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.AddNewFireWallButton.Location = new System.Drawing.Point(679, 326); + this.AddNewFireWallButton.Name = "AddNewFireWallButton"; + this.AddNewFireWallButton.Size = new System.Drawing.Size(174, 264); + this.AddNewFireWallButton.TabIndex = 25; + this.AddNewFireWallButton.Text = "Add"; + this.AddNewFireWallButton.UseVisualStyleBackColor = true; + this.AddNewFireWallButton.Click += new System.EventHandler(this.AddNewFireWallButton_Click); + // + // NewFireWall + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(932, 1143); + this.Controls.Add(this.AddNewFireWallButton); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.Direction); + this.Controls.Add(this.Protocol); + this.Controls.Add(this.Operation); + this.Controls.Add(this.DestinationPortTextBox); + this.Controls.Add(this.SourcePortTextBox); + this.Controls.Add(this.DestinationIpTextBox); + this.Controls.Add(this.DestinationMacTextBox); + this.Controls.Add(this.SourceIpTextBox); + this.Controls.Add(this.DirectionComboBox); + this.Controls.Add(this.ProtocolComboBox); + this.Controls.Add(this.SourceMacTextBox); + this.Controls.Add(this.OperationComboBox); + this.Name = "NewFireWall"; + this.Text = "NewFireWall"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox OperationComboBox; + private System.Windows.Forms.TextBox SourceMacTextBox; + private System.Windows.Forms.ComboBox ProtocolComboBox; + private System.Windows.Forms.ComboBox DirectionComboBox; + private System.Windows.Forms.TextBox SourceIpTextBox; + private System.Windows.Forms.TextBox DestinationMacTextBox; + private System.Windows.Forms.TextBox DestinationIpTextBox; + private System.Windows.Forms.TextBox SourcePortTextBox; + private System.Windows.Forms.TextBox DestinationPortTextBox; + private System.Windows.Forms.Label Operation; + private System.Windows.Forms.Label Protocol; + private System.Windows.Forms.Label Direction; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Button AddNewFireWallButton; + } +} \ No newline at end of file diff --git a/GUI/NewFireWall.cs b/GUI/NewFireWall.cs new file mode 100644 index 0000000..e79b95a --- /dev/null +++ b/GUI/NewFireWall.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using eSwitch.Networking; +using System.Net; +using System.Net.NetworkInformation; +using System.Windows.Controls; + +namespace eSwitch.GUI +{ + public partial class NewFireWall : Form + { + + private readonly Device _device; + public NewFireWall(Device device) + { + _device = device; + InitializeComponent(); + } + + private static void InlineTry(Action action) + { + try + { + action(); + } + catch + { + // ignored + } + } + + private void AddNewFireWallButton_Click(object sender, EventArgs e) + { + var rule = new FirewallRule(); + + + + + + if (OperationComboBox.SelectedItem is ComboBoxItem operationItem) + { + rule.RuleOperation = Enum.TryParse((string)operationItem.Tag, out FirewallRule.Operation operation) ? operation : FirewallRule.Operation.Deny; + } + + if (DirectionComboBox.SelectedItem is ComboBoxItem directionItem && Enum.TryParse((string)directionItem.Tag, out int direction)) + { + rule.RuleDirection = direction; + } + if (!string.IsNullOrEmpty(ProtocolComboBox.Text)) + { + + rule.RuleProtocol = ProtocolComboBox.GetItemText(ProtocolComboBox.SelectedItem); + } + + InlineTry(() => rule.DestinationMac = PhysicalAddress.Parse(DestinationMacTextBox.Text)); + InlineTry(() => rule.DestinationIp = IPAddress.Parse(DestinationIpTextBox.Text)); + InlineTry(() => rule.SourceMac = PhysicalAddress.Parse(SourceMacTextBox.Text)); + InlineTry(() => rule.SourceIp = IPAddress.Parse(SourceIpTextBox.Text)); + InlineTry(() => rule.DestinationPort = DestinationPortTextBox.Text.Length != 0 ? Convert.ToUInt16(DestinationPortTextBox.Text) : (ushort?)null); + InlineTry(() => rule.SourcePort = SourcePortTextBox.Text.Length != 0 ? Convert.ToUInt16(SourcePortTextBox.Text) : (ushort?)null); + + _device.FirewallRules.Add(rule); + this.Close(); + } + } +} + diff --git a/GUI/NewFireWall.resx b/GUI/NewFireWall.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/GUI/NewFireWall.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GUI/TableView.Designer.cs b/GUI/TableView.Designer.cs index de51330..959f308 100644 --- a/GUI/TableView.Designer.cs +++ b/GUI/TableView.Designer.cs @@ -32,16 +32,7 @@ private void InitializeComponent() this.StartButton = new System.Windows.Forms.Button(); this.StopButton = new System.Windows.Forms.Button(); this.DeviceTable = new System.Windows.Forms.DataGridView(); - this.isOpenedDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.sentDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.receivedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.deviceBindingSource = new System.Windows.Forms.BindingSource(this.components); this.CamTable = new System.Windows.Forms.DataGridView(); - this.deviceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.tTLDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.physicalAdsressDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.camRecordBindingSource = new System.Windows.Forms.BindingSource(this.components); this.ClearCamButton = new System.Windows.Forms.Button(); this.TTLBox = new System.Windows.Forms.TextBox(); this.ResetTTLButton = new System.Windows.Forms.Button(); @@ -57,11 +48,20 @@ private void InitializeComponent() this.LLDP = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.HTTP = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.RstStatsBtn = new System.Windows.Forms.Button(); + this.deviceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tTLDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.physicalAdsressDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.camRecordBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.isOpenedDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sentDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.receivedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.deviceBindingSource = new System.Windows.Forms.BindingSource(this.components); ((System.ComponentModel.ISupportInitialize)(this.DeviceTable)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.CamTable)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).BeginInit(); this.SuspendLayout(); // // StartButton @@ -109,44 +109,6 @@ private void InitializeComponent() this.DeviceTable.TabIndex = 2; this.DeviceTable.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DeviceTable_CellContentDoubleClick); // - // isOpenedDataGridViewCheckBoxColumn - // - this.isOpenedDataGridViewCheckBoxColumn.DataPropertyName = "IsOpened"; - this.isOpenedDataGridViewCheckBoxColumn.HeaderText = "Check"; - this.isOpenedDataGridViewCheckBoxColumn.MinimumWidth = 10; - this.isOpenedDataGridViewCheckBoxColumn.Name = "isOpenedDataGridViewCheckBoxColumn"; - this.isOpenedDataGridViewCheckBoxColumn.Width = 79; - // - // nameDataGridViewTextBoxColumn - // - this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; - this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; - this.nameDataGridViewTextBoxColumn.MinimumWidth = 10; - this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; - this.nameDataGridViewTextBoxColumn.ReadOnly = true; - this.nameDataGridViewTextBoxColumn.Width = 113; - // - // sentDataGridViewTextBoxColumn - // - this.sentDataGridViewTextBoxColumn.DataPropertyName = "Sent"; - this.sentDataGridViewTextBoxColumn.HeaderText = "Sent"; - this.sentDataGridViewTextBoxColumn.MinimumWidth = 10; - this.sentDataGridViewTextBoxColumn.Name = "sentDataGridViewTextBoxColumn"; - this.sentDataGridViewTextBoxColumn.Width = 101; - // - // receivedDataGridViewTextBoxColumn - // - this.receivedDataGridViewTextBoxColumn.DataPropertyName = "Received"; - this.receivedDataGridViewTextBoxColumn.HeaderText = "Received"; - this.receivedDataGridViewTextBoxColumn.MinimumWidth = 10; - this.receivedDataGridViewTextBoxColumn.Name = "receivedDataGridViewTextBoxColumn"; - this.receivedDataGridViewTextBoxColumn.ReadOnly = true; - this.receivedDataGridViewTextBoxColumn.Width = 147; - // - // deviceBindingSource - // - this.deviceBindingSource.DataSource = typeof(eSwitch.Networking.Device); - // // CamTable // this.CamTable.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) @@ -168,36 +130,6 @@ private void InitializeComponent() this.CamTable.Size = new System.Drawing.Size(664, 429); this.CamTable.TabIndex = 3; // - // deviceDataGridViewTextBoxColumn - // - this.deviceDataGridViewTextBoxColumn.DataPropertyName = "Device"; - this.deviceDataGridViewTextBoxColumn.HeaderText = "Device"; - this.deviceDataGridViewTextBoxColumn.MinimumWidth = 10; - this.deviceDataGridViewTextBoxColumn.Name = "deviceDataGridViewTextBoxColumn"; - this.deviceDataGridViewTextBoxColumn.ReadOnly = true; - this.deviceDataGridViewTextBoxColumn.Width = 123; - // - // tTLDataGridViewTextBoxColumn - // - this.tTLDataGridViewTextBoxColumn.DataPropertyName = "TTL"; - this.tTLDataGridViewTextBoxColumn.HeaderText = "TTL"; - this.tTLDataGridViewTextBoxColumn.MinimumWidth = 10; - this.tTLDataGridViewTextBoxColumn.Name = "tTLDataGridViewTextBoxColumn"; - this.tTLDataGridViewTextBoxColumn.ReadOnly = true; - this.tTLDataGridViewTextBoxColumn.Width = 95; - // - // physicalAdsressDataGridViewTextBoxColumn - // - this.physicalAdsressDataGridViewTextBoxColumn.DataPropertyName = "PhysicalAdsress"; - this.physicalAdsressDataGridViewTextBoxColumn.HeaderText = "PhysicalAdsress"; - this.physicalAdsressDataGridViewTextBoxColumn.MinimumWidth = 10; - this.physicalAdsressDataGridViewTextBoxColumn.Name = "physicalAdsressDataGridViewTextBoxColumn"; - this.physicalAdsressDataGridViewTextBoxColumn.Width = 216; - // - // camRecordBindingSource - // - this.camRecordBindingSource.DataSource = typeof(eSwitch.Networking.CamRecord); - // // ClearCamButton // this.ClearCamButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -338,6 +270,74 @@ private void InitializeComponent() this.RstStatsBtn.UseVisualStyleBackColor = true; this.RstStatsBtn.Click += new System.EventHandler(this.RstStatsBtn_Click); // + // deviceDataGridViewTextBoxColumn + // + this.deviceDataGridViewTextBoxColumn.DataPropertyName = "Device"; + this.deviceDataGridViewTextBoxColumn.HeaderText = "Device"; + this.deviceDataGridViewTextBoxColumn.MinimumWidth = 10; + this.deviceDataGridViewTextBoxColumn.Name = "deviceDataGridViewTextBoxColumn"; + this.deviceDataGridViewTextBoxColumn.ReadOnly = true; + this.deviceDataGridViewTextBoxColumn.Width = 123; + // + // tTLDataGridViewTextBoxColumn + // + this.tTLDataGridViewTextBoxColumn.DataPropertyName = "TTL"; + this.tTLDataGridViewTextBoxColumn.HeaderText = "TTL"; + this.tTLDataGridViewTextBoxColumn.MinimumWidth = 10; + this.tTLDataGridViewTextBoxColumn.Name = "tTLDataGridViewTextBoxColumn"; + this.tTLDataGridViewTextBoxColumn.ReadOnly = true; + this.tTLDataGridViewTextBoxColumn.Width = 95; + // + // physicalAdsressDataGridViewTextBoxColumn + // + this.physicalAdsressDataGridViewTextBoxColumn.DataPropertyName = "PhysicalAdsress"; + this.physicalAdsressDataGridViewTextBoxColumn.HeaderText = "PhysicalAdsress"; + this.physicalAdsressDataGridViewTextBoxColumn.MinimumWidth = 10; + this.physicalAdsressDataGridViewTextBoxColumn.Name = "physicalAdsressDataGridViewTextBoxColumn"; + this.physicalAdsressDataGridViewTextBoxColumn.Width = 216; + // + // camRecordBindingSource + // + this.camRecordBindingSource.DataSource = typeof(eSwitch.Networking.CamRecord); + // + // isOpenedDataGridViewCheckBoxColumn + // + this.isOpenedDataGridViewCheckBoxColumn.DataPropertyName = "IsOpened"; + this.isOpenedDataGridViewCheckBoxColumn.HeaderText = "Check"; + this.isOpenedDataGridViewCheckBoxColumn.MinimumWidth = 10; + this.isOpenedDataGridViewCheckBoxColumn.Name = "isOpenedDataGridViewCheckBoxColumn"; + this.isOpenedDataGridViewCheckBoxColumn.Width = 79; + // + // nameDataGridViewTextBoxColumn + // + this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; + this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; + this.nameDataGridViewTextBoxColumn.MinimumWidth = 10; + this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; + this.nameDataGridViewTextBoxColumn.ReadOnly = true; + this.nameDataGridViewTextBoxColumn.Width = 113; + // + // sentDataGridViewTextBoxColumn + // + this.sentDataGridViewTextBoxColumn.DataPropertyName = "Sent"; + this.sentDataGridViewTextBoxColumn.HeaderText = "Sent"; + this.sentDataGridViewTextBoxColumn.MinimumWidth = 10; + this.sentDataGridViewTextBoxColumn.Name = "sentDataGridViewTextBoxColumn"; + this.sentDataGridViewTextBoxColumn.Width = 101; + // + // receivedDataGridViewTextBoxColumn + // + this.receivedDataGridViewTextBoxColumn.DataPropertyName = "Received"; + this.receivedDataGridViewTextBoxColumn.HeaderText = "Received"; + this.receivedDataGridViewTextBoxColumn.MinimumWidth = 10; + this.receivedDataGridViewTextBoxColumn.Name = "receivedDataGridViewTextBoxColumn"; + this.receivedDataGridViewTextBoxColumn.ReadOnly = true; + this.receivedDataGridViewTextBoxColumn.Width = 147; + // + // deviceBindingSource + // + this.deviceBindingSource.DataSource = typeof(eSwitch.Networking.Device); + // // TableView // this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); @@ -356,10 +356,10 @@ private void InitializeComponent() this.Name = "TableView"; this.Text = "eSwitch"; ((System.ComponentModel.ISupportInitialize)(this.DeviceTable)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CamTable)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); diff --git a/GUI/TableView.cs b/GUI/TableView.cs index c31b922..64e3777 100644 --- a/GUI/TableView.cs +++ b/GUI/TableView.cs @@ -10,6 +10,7 @@ public partial class TableView : Form { public Network N { get; } = new Network(); + public Device D { get; } private int q = 0; @@ -221,15 +222,12 @@ private void RstStatsBtn_Click(object sender, EventArgs e) private void DeviceTable_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { - var dataIndexNo = DeviceTable.Rows[e.RowIndex].Index.ToString(); // index of Device - string cellValue = DeviceTable.Rows[e.RowIndex].Cells[1].Value.ToString(); //name of Device - - - //var firewallWindow = new FirewallWindow(cellValue.ToString() as Device); - - - MessageBox.Show("The row index = " + dataIndexNo.ToString() + " and the row data in second column is: " - + cellValue.ToString()); + + var firewallWindow = new Firewall(DeviceTable[e.ColumnIndex, e.RowIndex].Value.ToString(), DeviceTable.Rows.Count); + firewallWindow.ShowDialog(); + Console.WriteLine(sender.ToString()); + + } } } diff --git a/GUI/TableView.resx b/GUI/TableView.resx index 2fc0f31..d1d3e06 100644 --- a/GUI/TableView.resx +++ b/GUI/TableView.resx @@ -153,4 +153,34 @@ True + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/bin/Debug/eSwitch.exe b/bin/Debug/eSwitch.exe index 7e15a5a96a20be6d34b6fe897ac6d697701154b1..a58ef17e108883c216b01309febcbee5aee9c826 100644 GIT binary patch literal 41472 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 literal 33280 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 TlLMI?$mBpK2QoQebKw613j@9r diff --git a/eSwitch.csproj b/eSwitch.csproj index c6504d4..1fc7160 100644 --- a/eSwitch.csproj +++ b/eSwitch.csproj @@ -65,6 +65,18 @@ + + Form + + + Firewall.cs + + + Form + + + NewFireWall.cs + Form @@ -94,6 +106,12 @@ + + Firewall.cs + + + NewFireWall.cs + TableView.cs diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache index fb6b69bc37e4b873b87813d7e4a01eed8e960b43..aadfb44d1453a66a583b5577133732f91bb35375 100644 GIT binary patch literal 11901 zcmeHN&vP6{6`o%0%xx31LJrE_X^e6liKnW;=n zl&8ndNmFHIhx*sCyyf|_w(Og}q?BH#j^A)6=e+c2jzaGNh>LaQ0xU z9k01%%Q5YCnZJF0_Vid9&A?ANjGwL&SY4V~4=Kl94zE~M2gWU!o>YX`7ZgOkmH}9W zlf}z!z3Q5^(FIt;8-4!H?C}?hOR^$e>6GN?oaf0JEH1rb+o;6_$ji;TyIwRF&t2Jh z+L$tCjAPI!J?X&Aup{5AQMPR@i|Q)7QeDet^U_04gSzxxt81=QlAdR+TDIkH1$E_6 zR{{MxfAPxECE2KZmXFt5l*^lzUs@~L)@pHi&2$@=OJ?KflyS@$hjndn;M z@@^XFx>>V>n)aZknTIzyYWk|>6zAn?vl?~AkawiE7lmuP*~~)SsaVyf8_*|c?-RRb znQN9)u5Ws0@iu~*Mo^Qpo1MERSB-ObeCg25d8~6E2Qdk&?<4Fde1z~(!U4jQgoA{S z5uO656h6`(ksYoy=H`xYPzNrKqkX7WFQ@TaPnk}-EE}HY(FJ;{>u*RmRdEz0l}ZUk z&kFiHW&1DJ4u9{xEWJoBm(!l+6+?X7m>i#+IH3r(mF?&j{CKw@`_oVG6J3HT`@9Ri zN~bmUYOLE{9GJ3fw0zvwBD`Ar<t#a8D!;~T!!M+F34>i{PAq;r6Vw+VjQ))C#x3or?!o^g{%HU>g&aUbZ z2?7v5TdJ4kDtu&SU2Zi@%T-Np*>^LRx6C1vW64Hy4oY;ZR%-@9Q`VI=v(b=cjED^5 zCS_cLtd6T>fe2q4SJG~uVg;pkI`rj$HWY5nrSg6r_bU^KLKEBj|lO5keH()eGj?6!wp#- zQ1KHUI%c5B% ziZaq<-7x6;BXmeiDM7D9(ZaE`-{?Vtx>*!{3wOw`e~e8Kj|gcb%>8J znqx`{hI9-k7_-Hb%7`c7U&6nTe_sR}V)Nyf@TlL2@g?NmkK^3?Q7`vyp@hmPIw4j< ztdLkMU_*Ppyp0Fl1VkyM)eqye`av(P$`Du201{dyvgNn!Zl>pcjL@@yO&uFNUCQ639}Mrh0OXg z*l?hAl+rp=Hx}w{&CBU7{?a`_ltPld6(`wudP%kcah02t3CR+Yg(TYq8=j1RTh#vW zD5u}SfBF_6N+HX>6=&J~UY30o;_5sgVOhemkY!&38;0Ab!miBeUq_C<4Tw_6t$T59 zZTE8P4T!7f013AeZiU?X2G|fCuFbpVrsY&~`ZtlO-v>k~q}Sazy|#Mk^(Mqso)Qgm z#>CySr%L$p%qmNFN#aYzDgfWOF5pv;@Y^LZ!b1ffH>Q4lw|MpGslPrDJYnEw8+#E? zf(HpazhlxLgjZ#R+sB;>xR=~l0k@2M6bSAPQk-dTcnMH&6R<~ogu6PO^>K@b3V7HU zPl7u+Z3W+M{WWqMH=PQ&nD48AYxZ6RT%!dF&K)@Lhssx8ye_z4qXJqy`r%d)T$lAK zU?|R%5{$=LP{of2j8PH{yL$^Vyy|Sahn&7mXGqnnfHP;HVB)v4SATYVaawR1?W=&Z zWv>Fd$IceeSN2svm)NU-10YcF?&+27{qN;Yiu(^!@Mb>+g2dxU5Q1+sxEuZ#=mYU1 literal 10918 zcmeHN&vP6{6`tPRncW`Qkqss!5P}Q|1T4?4EX%S*97kSTw#$i7v?@E`wdL8_-qm<# zXO@{+$x5J{6Dg|TLaM0b0vEU>mr#{T4#1fMoTv(Lp^86%3fwt__suWOYBt155S3KT ztC}}6y{}()zyA8Y*F7sSNs`_t!X0#=K8WeN z^-RY;J2R)vXf>@iJyjoC{?HX?Z87v+-I|_S8MZ9bxGJ{SoSv}HwraDTxz2oNW~Mz? z(`R)VjU64|Mq}IaMZe+ezJL_(n3f3MijRapQ7u@cyS z6;((;ea6w-OS<7ZZaEsy1a-IW^ar{t+zRwI%ojw73O(hTZViPeNkvJPCn^s{{rI-q zHf`NX>ipxm)93z4t@9E!@Hkyu219ct6n#KFjB;Y#?Am19y6y>yu|ud>rb_|q)EAm7 zuG4k({?rm#!<%~I?&(wCXs(KmaD{D%sYTBdeX_Xlnu$@HOC&G09JklhmM^aDyltM; z=Cu>eXb=~KM@?&O%Tg-Tmc1`+t+>JyHcctbS<;c9O}=mATQm&ed1lMBOn*CQOQp8z zG`>q$){d`=f#aDz&2>{WwoKpHXj*2g+1SwC!HS^|j-S*{Xf-miC1^@^$^%6cq^Q3y zhDs1_cg*h44Gb1Ed4QUn|KPsIV`!On^MYs%yYZ+raaSk@sq+3zY}DWDqNQED>kAux z!9#}+0rdbce*kO}>=4*tu+M;f7VHQy86w9L;Es5luz_Ix9|QJ-C+IEqopyGA;gON?-wPFBNXwM3umD zkN)d7@BRDMUjxhWhp3c44E6^W$G*~5I(>4P9e7?cSCO&*lf@p0Rzwt2V8zGo{7HH5XORKFL7b1{xWAY^Kd;XjbEjs` z%$^jr(`RJN{hm+1X0zm7*1QX$OD&qVtb&QuB>|v-z}S70{~Z1b1+;aCEV=yhe0M#aYbJr3`Cpo zTShV<6^o2K0bzj^cFj+v!YXr#ozhNsC!{7z>T=jS$2I+p{*(7xD?&mzo+unK#@=Fy zf}L#UlCXtq8bMam5dQ6%8#nf{YNw}mOaE`vwwpJBtH3iTU!y0UgiDow9q&&N1Hstr z9j~M0O`#4l;`S$(HS*WswekoLCvoHn1mM0D*XdJ z0M!8$Pm$cY4~Jq5Ny_!AL9Q2r6uF+N%#)U@3(*#110_f=Wk;?efgnFe&TL>USKMZYFJxl=WaM%GX!LrinxoRVzdg zMJF){WXty_;fp{828RUY5W&we$yi&TP8SS65N}y4$=WBt=)&r07j9GAkN$`|RCpC=Ym5bD|Q zXz9VRp_KiW9%9Ev`zg$){AJ-s+mmG~k0}J#uhZaqGYhWgNPH5B9H_vM z%^{s&cukRvWGBa8j=vCptAvJByll`bUrWIy#NHce?7g1F-gT-WBZ1C=l>;jT*7Jmh zBwl`pUif#3#T3HoS7})NG7GDlBrao1mcuHCRS2tFgoa)5a-E9!ZDKKn;QB=xTtCl( z%OG(XTm2kdIk-Y_wFwRBgJOYq`Y@AFh^*Jr$a*!4ER*DAoFC=L%8?Z!>kgseNc0uu zx@otaEl*o=+`gys9{t2|h#pf2vRBd|`)L+r4vEV+pUgp)gDeEufY30Je5!MW%D+b? z+$9!Mh^?QbvGwCDwuU4w!9CR?e1)Sk{CL=zH z{q|^k*nC3)J_DtRVUL|C_(Am3Bz9J#3b4%@s{p&HtO8`ufr5)ij{Ls!;y0gXw<86N z?(s#B5<|wERe&T3RA9)I(6USyKK;bRkPu}nBJhoN9Z_&>*AeWp3gF#F6~NVvRRE8c lRRH`33f?@oe(&(R>H-6p$0`73GYS}R10XYo2??Gi{sR{A%T)jX diff --git a/obj/Debug/eSwitch.GUI.Firewall.resources b/obj/Debug/eSwitch.GUI.Firewall.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/obj/Debug/eSwitch.GUI.NewFireWall.resources b/obj/Debug/eSwitch.GUI.NewFireWall.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache b/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache index 46d46a1..e3448c3 100644 --- a/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache +++ b/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -f3d56c727ff72760f91139c3d7ebd4526411b035 +9b637a5a8fb89f7bd4031edd68effdaf93a3449f diff --git a/obj/Debug/eSwitch.csproj.FileListAbsolute.txt b/obj/Debug/eSwitch.csproj.FileListAbsolute.txt index f690a77..8c63f57 100644 --- a/obj/Debug/eSwitch.csproj.FileListAbsolute.txt +++ b/obj/Debug/eSwitch.csproj.FileListAbsolute.txt @@ -18,3 +18,5 @@ C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Buffers.xml C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Memory.xml C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Numerics.Vectors.xml C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml +C:\GIT-Repositare\eSwitch\eSwitch\obj\Debug\eSwitch.GUI.Firewall.resources +C:\GIT-Repositare\eSwitch\eSwitch\obj\Debug\eSwitch.GUI.NewFireWall.resources diff --git a/obj/Debug/eSwitch.csproj.GenerateResource.cache b/obj/Debug/eSwitch.csproj.GenerateResource.cache index a5b1cca652d2c4c9251855fcae20b69bcaa718cb..a6c831d182958b8653a6e1f5240a89d18daa50a0 100644 GIT binary patch delta 226 zcmdnYzJp^!D--)R1_lN$F80YiOva4NlMgUS$FlJNg#_J0J!9N5i&D!Ib8_^GQj06t zc!9zqAYs4Ma*#|oOh$kMD8mfIoO~dHA4CWM2?0(Z0RjSC5SoFNZ}MNJS!semE+;pT z2<^#~Qkj0EgOL%W39MTfBnNVVP2%0tT3|VlSztL)kQ~Sv8)y7)*8#~1f{X$IL6ANW K5Cka#0d4@WT_z*| delta 84 zcmdnNv6+2CD--)n1_lN$F6PNSOva3ilMgUSa|>_)g&2XDlV`FbvluH6kZCxXkx^`N d5OaeJFGzwLNG$P?yzpt-jSfaZkPrxP0|1q^4z2(I diff --git a/obj/Debug/eSwitch.csprojAssemblyReference.cache b/obj/Debug/eSwitch.csprojAssemblyReference.cache index b40a7c68fdaa43f7e1d5fafe377be1c6dd49bba6..7a3cd5506aae603c3f0bc4558b388d8e04aeea6b 100644 GIT binary patch delta 29 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 diff --git a/obj/Debug/eSwitch.exe b/obj/Debug/eSwitch.exe index 7e15a5a96a20be6d34b6fe897ac6d697701154b1..a58ef17e108883c216b01309febcbee5aee9c826 100644 GIT binary patch literal 41472 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 literal 33280 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 TlLMI?$mBpK2QoQebKw613j@9r From 1ae89b26ce0acce659006d21e79d57e11a79b293 Mon Sep 17 00:00:00 2001 From: Erik Belak Date: Thu, 3 Dec 2020 17:50:03 +0100 Subject: [PATCH 4/5] Not Great Not Terrible But More Likely Terrible --- App.config | 3 + GUI/Firewall.Designer.cs | 93 +++++++++++++++++- GUI/Firewall.cs | 21 +++- GUI/Firewall.resx | 27 +++++ GUI/NewFireWall.Designer.cs | 4 +- GUI/NewFireWall.cs | 12 ++- GUI/TableView.cs | 47 +++++---- Networking/Device.cs | 85 ++++++++-------- Networking/FirewallRule.cs | 64 ++++++++---- Networking/Network.cs | 15 ++- Properties/Settings.Designer.cs | 14 ++- Properties/Settings.settings | 3 + bin/Debug/eSwitch.exe | Bin 41472 -> 44032 bytes bin/Debug/eSwitch.exe.config | 3 + bin/Debug/eSwitch.pdb | Bin 97792 -> 99840 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 11901 -> 12199 bytes .../eSwitch.csproj.GenerateResource.cache | Bin 1080 -> 1080 bytes .../eSwitch.csprojAssemblyReference.cache | Bin 424 -> 424 bytes obj/Debug/eSwitch.exe | Bin 41472 -> 44032 bytes obj/Debug/eSwitch.pdb | Bin 97792 -> 99840 bytes 20 files changed, 285 insertions(+), 106 deletions(-) diff --git a/App.config b/App.config index 4486581..f4d6a3c 100644 --- a/App.config +++ b/App.config @@ -13,6 +13,9 @@ 30 + + True + diff --git a/GUI/Firewall.Designer.cs b/GUI/Firewall.Designer.cs index 78b21f7..82b3dd0 100644 --- a/GUI/Firewall.Designer.cs +++ b/GUI/Firewall.Designer.cs @@ -31,6 +31,15 @@ private void InitializeComponent() { this.addNewFirewallButton = new System.Windows.Forms.Button(); this.FireWallTable = new System.Windows.Forms.DataGridView(); + this.Dev = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Direction = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Protocol = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SourceMac = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SourceIp = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DestinationMac = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DestinationIp = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SourcePort = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DestinationPort = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.FireWallTable)).BeginInit(); this.SuspendLayout(); // @@ -44,11 +53,21 @@ private void InitializeComponent() this.addNewFirewallButton.TabIndex = 1; this.addNewFirewallButton.Text = "Add new"; this.addNewFirewallButton.UseVisualStyleBackColor = true; - this.addNewFirewallButton.Click += new System.EventHandler(this.addNewFirewallButton_Click); + this.addNewFirewallButton.Click += new System.EventHandler(this.AddNewFirewallButton_Click); // // FireWallTable // this.FireWallTable.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.FireWallTable.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Dev, + this.Direction, + this.Protocol, + this.SourceMac, + this.SourceIp, + this.DestinationMac, + this.DestinationIp, + this.SourcePort, + this.DestinationPort}); this.FireWallTable.Location = new System.Drawing.Point(78, 88); this.FireWallTable.Name = "FireWallTable"; this.FireWallTable.RowHeadersWidth = 82; @@ -56,6 +75,69 @@ private void InitializeComponent() this.FireWallTable.Size = new System.Drawing.Size(1884, 271); this.FireWallTable.TabIndex = 2; // + // Dev + // + this.Dev.HeaderText = "Operation "; + this.Dev.MinimumWidth = 10; + this.Dev.Name = "Dev"; + this.Dev.Width = 200; + // + // Direction + // + this.Direction.HeaderText = "Direction"; + this.Direction.MinimumWidth = 10; + this.Direction.Name = "Direction"; + this.Direction.Width = 200; + // + // Protocol + // + this.Protocol.HeaderText = "Protocol"; + this.Protocol.MinimumWidth = 10; + this.Protocol.Name = "Protocol"; + this.Protocol.Width = 200; + // + // SourceMac + // + this.SourceMac.HeaderText = "SourceMac"; + this.SourceMac.MinimumWidth = 10; + this.SourceMac.Name = "SourceMac"; + this.SourceMac.Width = 200; + // + // SourceIp + // + this.SourceIp.HeaderText = "SourceIp"; + this.SourceIp.MinimumWidth = 10; + this.SourceIp.Name = "SourceIp"; + this.SourceIp.Width = 200; + // + // DestinationMac + // + this.DestinationMac.HeaderText = "DestinationMac"; + this.DestinationMac.MinimumWidth = 10; + this.DestinationMac.Name = "DestinationMac"; + this.DestinationMac.Width = 200; + // + // DestinationIp + // + this.DestinationIp.HeaderText = "DestinationIp"; + this.DestinationIp.MinimumWidth = 10; + this.DestinationIp.Name = "DestinationIp"; + this.DestinationIp.Width = 200; + // + // SourcePort + // + this.SourcePort.HeaderText = "SourcePort"; + this.SourcePort.MinimumWidth = 10; + this.SourcePort.Name = "SourcePort"; + this.SourcePort.Width = 200; + // + // DestinationPort + // + this.DestinationPort.HeaderText = "DestinationPort"; + this.DestinationPort.MinimumWidth = 10; + this.DestinationPort.Name = "DestinationPort"; + this.DestinationPort.Width = 200; + // // Firewall // this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); @@ -75,5 +157,14 @@ private void InitializeComponent() #endregion private System.Windows.Forms.Button addNewFirewallButton; private System.Windows.Forms.DataGridView FireWallTable; + private System.Windows.Forms.DataGridViewTextBoxColumn Dev; + private System.Windows.Forms.DataGridViewTextBoxColumn Direction; + private System.Windows.Forms.DataGridViewTextBoxColumn Protocol; + private System.Windows.Forms.DataGridViewTextBoxColumn SourceMac; + private System.Windows.Forms.DataGridViewTextBoxColumn SourceIp; + private System.Windows.Forms.DataGridViewTextBoxColumn DestinationMac; + private System.Windows.Forms.DataGridViewTextBoxColumn DestinationIp; + private System.Windows.Forms.DataGridViewTextBoxColumn SourcePort; + private System.Windows.Forms.DataGridViewTextBoxColumn DestinationPort; } } \ No newline at end of file diff --git a/GUI/Firewall.cs b/GUI/Firewall.cs index eebb3a2..8539e50 100644 --- a/GUI/Firewall.cs +++ b/GUI/Firewall.cs @@ -14,7 +14,7 @@ namespace eSwitch.GUI public partial class Firewall : Form { public Network N { get; } = new Network(); - + private int q = 0; private readonly Device _device; public Firewall(string name, int count) { @@ -28,17 +28,30 @@ public Firewall(string name, int count) } FireWallTable.RowHeadersVisible = false; - FireWallTable.DataSource = _device.FirewallRules; } - private void addNewFirewallButton_Click(object sender, EventArgs e) + private void AddNewFirewallButton_Click(object sender, EventArgs e) { var addRuleWindow = new NewFireWall(_device); + + + + addRuleWindow.ShowDialog(); - FireWallTable.Refresh(); + q = FireWallTable.Rows.Add(); + FireWallTable.Rows[q].Cells[0].Value = _device.FirewallRules[0].RuleOperation; + FireWallTable.Rows[q].Cells[1].Value = _device.FirewallRules[0].RuleDirection; + FireWallTable.Rows[q].Cells[2].Value = _device.FirewallRules[0].RuleProtocol; + FireWallTable.Rows[q].Cells[3].Value = _device.FirewallRules[0].SourceMac; + FireWallTable.Rows[q].Cells[4].Value = _device.FirewallRules[0].SourceIp; + FireWallTable.Rows[q].Cells[5].Value = _device.FirewallRules[0].DestinationMac; + FireWallTable.Rows[q].Cells[6].Value = _device.FirewallRules[0].DestinationIp; + FireWallTable.Rows[q].Cells[7].Value = _device.FirewallRules[0].SourcePort; + FireWallTable.Rows[q].Cells[8].Value = _device.FirewallRules[0].DestinationPort; } + // private void RemoveFirewallRuleClick(object sender, MouseButtonEventArgs e) // { // if (sender != null) diff --git a/GUI/Firewall.resx b/GUI/Firewall.resx index 1af7de1..d9e9288 100644 --- a/GUI/Firewall.resx +++ b/GUI/Firewall.resx @@ -117,4 +117,31 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/GUI/NewFireWall.Designer.cs b/GUI/NewFireWall.Designer.cs index 23acb02..3e147cd 100644 --- a/GUI/NewFireWall.Designer.cs +++ b/GUI/NewFireWall.Designer.cs @@ -83,8 +83,8 @@ private void InitializeComponent() this.ProtocolComboBox.Items.AddRange(new object[] { "TCP", "UDP", - "ICMPv4", - "ICMPv6", + "Icmpv4", + "Icmpv6", "IPv4", "IPv6", "ARP", diff --git a/GUI/NewFireWall.cs b/GUI/NewFireWall.cs index e79b95a..8622e8e 100644 --- a/GUI/NewFireWall.cs +++ b/GUI/NewFireWall.cs @@ -49,14 +49,13 @@ private void AddNewFireWallButton_Click(object sender, EventArgs e) rule.RuleOperation = Enum.TryParse((string)operationItem.Tag, out FirewallRule.Operation operation) ? operation : FirewallRule.Operation.Deny; } - if (DirectionComboBox.SelectedItem is ComboBoxItem directionItem && Enum.TryParse((string)directionItem.Tag, out int direction)) + if (DirectionComboBox.SelectedItem is ComboBoxItem directionItem && Enum.TryParse((string)directionItem.Tag, out FirewallRule.Direction direction)) { rule.RuleDirection = direction; } - if (!string.IsNullOrEmpty(ProtocolComboBox.Text)) + if (ProtocolComboBox.SelectedItem is ComboBoxItem protocolItem && Enum.TryParse((string)protocolItem.Tag, out FirewallRule.Protocol protocol)) { - - rule.RuleProtocol = ProtocolComboBox.GetItemText(ProtocolComboBox.SelectedItem); + rule.RuleProtocol = protocol; } InlineTry(() => rule.DestinationMac = PhysicalAddress.Parse(DestinationMacTextBox.Text)); @@ -67,6 +66,11 @@ private void AddNewFireWallButton_Click(object sender, EventArgs e) InlineTry(() => rule.SourcePort = SourcePortTextBox.Text.Length != 0 ? Convert.ToUInt16(SourcePortTextBox.Text) : (ushort?)null); _device.FirewallRules.Add(rule); + + Console.WriteLine(_device.FirewallRules.Count.ToString()); + Console.WriteLine(_device.FirewallRules[0].RuleDirection.ToString()); + Console.WriteLine(_device.FirewallRules[0].RuleOperation); + Console.WriteLine(_device.FirewallRules[0].RuleProtocol); this.Close(); } } diff --git a/GUI/TableView.cs b/GUI/TableView.cs index 64e3777..0021c5b 100644 --- a/GUI/TableView.cs +++ b/GUI/TableView.cs @@ -55,8 +55,8 @@ private void RefreshCamTable(object sender, EventArgs eventArgs) private string StatisticsConverter(int DevNum, string ToConvert) { - return Convert.ToString(Convert.ToUInt64((long)N.Devices[DevNum].Statistics[ToConvert][0])) + - " / " + Convert.ToString(Convert.ToUInt64((long)N.Devices[DevNum].Statistics[ToConvert][1])); + return Convert.ToString(Convert.ToUInt64((long)N.Devices[DevNum].Statistics[ToConvert][FirewallRule.Direction.Inside])) + + " / " + Convert.ToString((long)N.Devices[DevNum].Statistics[ToConvert][FirewallRule.Direction.Outside]); } private void HandleSelection() @@ -152,33 +152,33 @@ private void RstStatsBtn_Click(object sender, EventArgs e) if (Convert.ToBoolean(row.Cells[0].Value) && z == 1) { N.Devices[i].Statistics["ICMPv4"][0] = 0; - N.Devices[i].Statistics["ICMPv4"][1] = 0; + N.Devices[i].Statistics["ICMPv4"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["ICMPv6"][0] = 0; - N.Devices[i].Statistics["ICMPv6"][1] = 0; + N.Devices[i].Statistics["ICMPv6"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["TCP"][0] = 0; - N.Devices[i].Statistics["TCP"][1] = 0; + N.Devices[i].Statistics["TCP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["UDP"][0] = 0; - N.Devices[i].Statistics["UDP"][1] = 0; + N.Devices[i].Statistics["UDP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["IPv4"][0] = 0; - N.Devices[i].Statistics["IPv4"][1] = 0; + N.Devices[i].Statistics["IPv4"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["IPv6"][0] = 0; - N.Devices[i].Statistics["IPv6"][1] = 0; + N.Devices[i].Statistics["IPv6"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["ARP"][0] = 0; - N.Devices[i].Statistics["ARP"][1] = 0; + N.Devices[i].Statistics["ARP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["LLDP"][0] = 0; - N.Devices[i].Statistics["LLDP"][1] = 0; + N.Devices[i].Statistics["LLDP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["HTTP"][0] = 0; - N.Devices[i].Statistics["HTTP"][1] = 0; + N.Devices[i].Statistics["HTTP"][FirewallRule.Direction.Outside] = 0; break; } @@ -186,32 +186,32 @@ private void RstStatsBtn_Click(object sender, EventArgs e) if (Convert.ToBoolean(row.Cells[0].Value) && z == 0) { N.Devices[i].Statistics["ICMPv4"][0] = 0; - N.Devices[i].Statistics["ICMPv4"][1] = 0; + N.Devices[i].Statistics["ICMPv4"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["ICMPv6"][0] = 0; - N.Devices[i].Statistics["ICMPv6"][1] = 0; + N.Devices[i].Statistics["ICMPv6"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["TCP"][0] = 0; - N.Devices[i].Statistics["TCP"][1] = 0; + N.Devices[i].Statistics["TCP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["UDP"][0] = 0; - N.Devices[i].Statistics["UDP"][1] = 0; + N.Devices[i].Statistics["UDP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["IPv4"][0] = 0; - N.Devices[i].Statistics["IPv4"][1] = 0; + N.Devices[i].Statistics["IPv4"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["IPv6"][0] = 0; - N.Devices[i].Statistics["IPv6"][1] = 0; + N.Devices[i].Statistics["IPv6"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["ARP"][0] = 0; - N.Devices[i].Statistics["ARP"][1] = 0; + N.Devices[i].Statistics["ARP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["LLDP"][0] = 0; - N.Devices[i].Statistics["LLDP"][1] = 0; + N.Devices[i].Statistics["LLDP"][FirewallRule.Direction.Outside] = 0; N.Devices[i].Statistics["HTTP"][0] = 0; - N.Devices[i].Statistics["HTTP"][1] = 0; + N.Devices[i].Statistics["HTTP"][FirewallRule.Direction.Outside] = 0; z = 1; } @@ -222,12 +222,11 @@ private void RstStatsBtn_Click(object sender, EventArgs e) private void DeviceTable_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { - var firewallWindow = new Firewall(DeviceTable[e.ColumnIndex, e.RowIndex].Value.ToString(), DeviceTable.Rows.Count); firewallWindow.ShowDialog(); - Console.WriteLine(sender.ToString()); - - + + Console.WriteLine(DeviceTable[e.ColumnIndex, e.RowIndex].Value.ToString()); + Console.WriteLine(N.Devices[1].FirewallRules.Count.ToString()); } } } diff --git a/Networking/Device.cs b/Networking/Device.cs index 6668347..b783527 100644 --- a/Networking/Device.cs +++ b/Networking/Device.cs @@ -23,63 +23,63 @@ public class Device - private static readonly int Inside = 0; - private static readonly int Outside = 1; + //private static readonly int Inside = 0; + //private static readonly int Outside = 1; - public Dictionary> Statistics { get; set; } = new Dictionary> + public Dictionary> Statistics { get; set; } = new Dictionary> { - {"TCP", new Dictionary() + {"TCP", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"UDP", new Dictionary() + {"UDP", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"ICMPv4", new Dictionary() + {"ICMPv4", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"ICMPv6", new Dictionary() + {"ICMPv6", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"IPv4", new Dictionary() + {"IPv4", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"IPv6", new Dictionary() + {"IPv6", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"ARP", new Dictionary() + {"ARP", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"LLDP", new Dictionary() + {"LLDP", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } }, - {"HTTP", new Dictionary() + {"HTTP", new Dictionary() { - {Inside, 0 }, - {Outside, 0 } + {FirewallRule.Direction.Inside, 0 }, + {FirewallRule.Direction.Outside, 0 } } } }; @@ -127,11 +127,17 @@ private void PacketArrival(object sender, CaptureEventArgs e) Task.Run((() => { - if (this.PassedFirewallRules(Inside, eth)) + if (this.PassedFirewall(FirewallRule.Direction.Inside, eth)) { + Received++; - this.ProcessStatistics(Inside, eth); + this.ProcessStatistics(FirewallRule.Direction.Inside, eth); } + else + { + Console.WriteLine("Moja mama"); + } + })); } } @@ -144,13 +150,13 @@ public void SendPacket(EthernetPacket eth) { _captureDevice.SendPacket(eth.Bytes); Sent++; - this.ProcessStatistics(Outside, eth); + this.ProcessStatistics(FirewallRule.Direction.Outside, eth); } catch {} } } - private void ProcessStatistics(int direction, EthernetPacket packet) + private void ProcessStatistics(FirewallRule.Direction direction, EthernetPacket packet) { if (packet.Extract() != null) { @@ -207,20 +213,17 @@ private void ProcessStatistics(int direction, EthernetPacket packet) } - public bool PassedFirewallRules(int direction, EthernetPacket packet) + public bool PassedFirewall(FirewallRule.Direction direction, EthernetPacket packet) { - var passed = true; - - foreach (var rule in FirewallRules.Where - (rule => rule.RuleDirection == null || direction.Equals(rule.RuleDirection))) + foreach (var rule in FirewallRules.Where(rule => rule.RuleDirection == null || direction.Equals(rule.RuleDirection))) { if (rule.IsMatch(packet)) { - passed = rule.RuleOperation.Equals(FirewallRule.Operation.Permit); + return rule.RuleOperation.Equals(FirewallRule.Operation.Permit); } } - return passed; + return Properties.Settings.Default.IsWhitelist; } } } diff --git a/Networking/FirewallRule.cs b/Networking/FirewallRule.cs index 94ca87d..88e66ce 100644 --- a/Networking/FirewallRule.cs +++ b/Networking/FirewallRule.cs @@ -8,23 +8,47 @@ namespace eSwitch.Networking { public class FirewallRule { + public enum Operation { Deny, Permit } - public Operation RuleOperation { get; set; } - public int? RuleDirection { get; set; } + + public enum Direction + { + Inside, + Outside + } + + + public enum Protocol + { + TCP, + Udp, + Icmpv4, + Icmpv6, + Ipv4, + Ipv6, + Arp, + Lldp + } + + + public Operation? RuleOperation { get; set; } + public Direction? RuleDirection { get; set; } public PhysicalAddress SourceMac { get; set; } public IPAddress SourceIp { get; set; } public PhysicalAddress DestinationMac { get; set; } public IPAddress DestinationIp { get; set; } - public string RuleProtocol { get; set; } + public Protocol? RuleProtocol { get; set; } public ushort? SourcePort { get; set; } public ushort? DestinationPort { get; set; } - private bool resolveValidationStack(Stack> stack) + + + private bool ResolveValidationStack(Stack> stack) { foreach (Func rule in stack) { @@ -51,15 +75,15 @@ public bool IsMatch(EthernetPacket packet) } var arp = packet.Extract(); - if (arp != null && RuleProtocol.Equals("Arp")) + if (arp != null && RuleProtocol.Equals(Protocol.Arp)) { - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } var lldp = packet.Extract(); - if (lldp != null && RuleProtocol.Equals("Lldp")) + if (lldp != null && RuleProtocol.Equals(Protocol.Lldp)) { - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } @@ -76,9 +100,9 @@ public bool IsMatch(EthernetPacket packet) validationStack.Push(() => DestinationIp.Equals(ipv4.DestinationAddress)); } - if (RuleProtocol.Equals("Ipv4")) + if (RuleProtocol.Equals(Protocol.Ipv4)) { - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } } @@ -95,36 +119,36 @@ public bool IsMatch(EthernetPacket packet) validationStack.Push(() => DestinationIp.Equals(ipv6.DestinationAddress)); } - if (RuleProtocol.Equals("Ipv6")) + if (RuleProtocol.Equals(Protocol.Ipv6)) { - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } } var icmpv4 = packet.Extract(); - if (icmpv4 != null && RuleProtocol.Equals("Icmpv4")) + if (icmpv4 != null && RuleProtocol.Equals(Protocol.Icmpv4)) { if (DestinationPort != null) { validationStack.Push(() => (((ushort)icmpv4.TypeCode) / 256) == DestinationPort); } - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } var icmpv6 = packet.Extract(); - if (icmpv6 != null && RuleProtocol.Equals("Icmpv6")) + if (icmpv6 != null && RuleProtocol.Equals(Protocol.Icmpv6)) { if (DestinationPort != null) { validationStack.Push(() => (((ushort)icmpv6.TypeCode) / 256) == DestinationPort); } - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } var tcp = packet.Extract(); - if (tcp != null && RuleProtocol.Equals("Tcp")) + if (tcp != null && RuleProtocol.Equals(Protocol.TCP)) { if (SourcePort != null) { @@ -136,11 +160,11 @@ public bool IsMatch(EthernetPacket packet) validationStack.Push(() => DestinationPort.Equals(tcp.DestinationPort)); } - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } var udp = packet.Extract(); - if (udp != null && RuleProtocol.Equals("Udp")) + if (udp != null && RuleProtocol.Equals(Protocol.Udp)) { if (SourcePort != null) { @@ -152,7 +176,7 @@ public bool IsMatch(EthernetPacket packet) validationStack.Push(() => DestinationPort.Equals(udp.DestinationPort)); } - return resolveValidationStack(validationStack); + return ResolveValidationStack(validationStack); } return false; diff --git a/Networking/Network.cs b/Networking/Network.cs index 6c78adc..e699dfc 100644 --- a/Networking/Network.cs +++ b/Networking/Network.cs @@ -17,8 +17,8 @@ public class Network private Timer Clk { get; } = new Timer(1000); - private static readonly int Inside = 0; - private static readonly int Outside = 1; + //private static readonly int Inside = 0; + //private static readonly int Outside = 1; public Network() { @@ -63,7 +63,7 @@ private void PacketArrival(object sender, EthernetPacket eth) { var senderDevice = (Device)sender; - if (!senderDevice.PassedFirewallRules(Inside, eth)) + if (!senderDevice.PassedFirewall(FirewallRule.Direction.Inside, eth)) { //this.Log(new Syslog(Severity.Debug, $"Packet thrown away by firewall on input")); Console.WriteLine("Packet thrown away by firewall on input"); @@ -78,7 +78,7 @@ private void PacketArrival(object sender, EthernetPacket eth) if (record.Device.Name != senderDevice.Name) { - if (record.Device.PassedFirewallRules(Outside, eth)) + if (record.Device.PassedFirewall(FirewallRule.Direction.Outside, eth)) { record.Device.SendPacket(eth); } @@ -96,7 +96,7 @@ private void PacketArrival(object sender, EthernetPacket eth) { if (device.Name != senderDevice.Name) { - if (device.PassedFirewallRules(Outside, eth)) + if (device.PassedFirewall(FirewallRule.Direction.Outside, eth)) { device.SendPacket(eth); } @@ -115,9 +115,7 @@ private void PacketArrival(object sender, EthernetPacket eth) IndexOfValue(CamTable, senderDevice.Name, IndexOfKey(CamTable, eth.SourceHardwareAddress.ToString()))) { - //Console.WriteLine("\n\n Key index: tento print : " + IndexOfKey(CamTable, eth.SourceHardwareAddress.ToString())); - //Console.WriteLine("Value index tento print : " + IndexOfValue(CamTable, senderDevice.Name, IndexOfKey(CamTable, eth.SourceHardwareAddress.ToString()))); - CamTable[eth.SourceHardwareAddress.ToString()].Refresh(senderDevice); + CamTable[eth.SourceHardwareAddress.ToString()].Refresh(senderDevice); } @@ -128,7 +126,6 @@ private void PacketArrival(object sender, EthernetPacket eth) } } - // AddOrUpdate("dog", 5, (k, v) => v + 1) diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index 67ce4ee..e22c380 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace eSwitch.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -34,5 +34,17 @@ public int TTL { this["TTL"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool IsWhitelist { + get { + return ((bool)(this["IsWhitelist"])); + } + set { + this["IsWhitelist"] = value; + } + } } } diff --git a/Properties/Settings.settings b/Properties/Settings.settings index 5330c81..0798128 100644 --- a/Properties/Settings.settings +++ b/Properties/Settings.settings @@ -5,5 +5,8 @@ 30 + + True + \ No newline at end of file diff --git a/bin/Debug/eSwitch.exe b/bin/Debug/eSwitch.exe index a58ef17e108883c216b01309febcbee5aee9c826..e5222382ddd057552d823b7d47c42aac387e91b8 100644 GIT binary patch literal 44032 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 TXzTVl|5FYAZ#(~g^1%NEzF}q4 literal 41472 zcmeHwdwg6~wf{P2-jhc&lXsdl)0DPDlZK`*+ESot(w0gep$X+}J58qT&}2?}X3~ct z{1Tp`R6!KQ$CWCmTtVQ9AXk)vh*m}6DiB1QXex9dHYd*a%5B$d;1wfwE z74`9c5=2{D&79c_qS$r_39jhJ@%4OGz#*+>y59gJ+e$Cv%d+mo*YjCHw9&S}z9ZKAd2GWFOlSTI3%p_x~Ew^40n{#kZ zFxdbkk3OxBvgkR}^kE2;D~NuW;Tw?zGSKT4K@uRK2PlFhK!8L=kOT-Jn;;3Xd6VS} zU1~eR+VrXsmY`of4aSTxtDfV^kDxpIEkBU%OGddtb$>E0*Cgx;8n7jpL^}p)4$)Nj zWI5y`2R<3*;?b(2U|dT!a-Cfn&AdA1!3@*|G!wK_ zXGTXkb!J#_>dcG&9_DlZ9_F=w5Ay|o5A$WG&OE}6=!`BuM*@s42}N>6Fp(?51+G2= z9Vcou1B^%;`$kGop5u@vaTG%yV}qktP@>OIF#wrEKNdu92*K98E3;m<7ttLJG~{v5yeXQ)`TT#+l$t?8AUN zhOyRi7W%!^(q~}4iyBJ--~{x^V38iGzBs9zD81a5MDK%_UJ77HyhI$YI2NEbv~Udt zkkrcO`Dq3sB1TJ${036ZFg6-o%JUxNB8mlNC>c;3^%c(y8whvNl5nK@%8QM&S-Iap zpo-=Zezc;Hq#>c)AM>|dND9v*I%wsASinG^jW%|*mLR!8lE<`Wt-3rI3%1O*wQ+|! zzBX9pHxO;v%<@nyDjJKr zrFeLsuoQZilq!l9xus633;je&6~~I*Qas>Ks0%GFrAlHYZYdu5Cnz-s^OB#qYhXae zav5}vXwWzEZW#wf=$IUUgTq?@XU?sf6-4j85&L1X8mqvKnJH|nMq=(0FBOGbLSbVK5c*lD zJk(6F&>U;NYp0Iu)O@$NYLsVy>QVF%ndHj(%IgeCV3w({36cPz(k4g(1gv{h5lMi6 z<&z>v0tAF1MUVst=vj&&2@o(c6+sdpAWA5LBxEgts<6?p)MuQBYDJstUg#p2mLfk(_4bId7=l@*xd^P0n9aAb#= z!_aZ>`|aY~DzR9sWhwl%464e@YFoBWFsd$AXQ|pVUe!3GrpBgPoam2* zUD-COIZ$Nv(vYzkiDJwVsFPYgV#FbgOw*I+!a-py57)4xE<$#0I#R~PNMUKGCY8r!{}i&q zsGjTq2Z~_A3G)6iYFx_P>@O8tSJ0~K)jYEdjmX>vRxr%L>o{~j4!pchUBOwGBMT86 z3%MAXkDwbQuVCgS*MQIF!E_qsOzmaa*8K(oCEKj(bQYa=t(q^U&I{5` zv>_(YSZ*IQMuYwl%mjW4`tkvoJc3CCV~*j~2}yD;@3n%cC-%6g=kFc+mNY_^GBP+U zjEIO)192#7AVNfo!%MGsJu!iW>s=BtBJ4>_vj{V+SCUDLdMqTc>TD;)aW&c&mO19g z(xS@BwCM0q5RNYK+6etiFhKE99p-Ax5LnJs&$=2DkpEclDwN4x32ie+IVXv3-)z8+ zXnC+X6$=_r7%dNBB{I2*JaH{W?gaCAii#uS#HK;PYABd{`%5KQG>3trGh_8r=v7$i z@oLK=-S)ZTFNY%jarl!Mgw09x*k+yuc$REFo@8zes{tyM8&@5NRdHGMa#ZE8`r;Mh ze)cCk88r-mS!A7sG-=seH24-h7JDy@5?&O=2x}alfk_hMVnN8jOo(BDbp_@lw0_+0 zzZr|GsmH1q%4!iKB#2-ic&Ra1eR0$ti zEb?Ml$RT>mA`f8`eG&u=x9Hqosg)g~puMuwdC3TpqQ>pRR#O=8 zE^lf%Zd+r$LXCB^+bxe3asmw1qda8zM6QXieAe?J*pAjkT<(O@5vJ=EBQO#1_dP5c zdJwULXqV;{OhA3Zk)>c~tm>bYw;smx<&T+0RYKBC+Wpc*&2S!M>!VZ7HRB=&=?acS-*W_+JZuQuNABIa#e z>SmWvZ5(hBOj{e_kK6}9GCrv2Y-f#ei;FaFXuP<<8s;!R>#>Fjjhl>H-7*HcMYM6c zahpp@TpmKzroc@F7AtkiVsxGr?Ev3t&wUsLlOK`N)ydn{)%d7ftCAm+Yoam?fuCSs zu?vz|GqP_#j*Hc>pYT%Hy@sNgk8{sfu9URxAU4MMq?D>keu}Si-h#J(kacqJP97Hc1ZYhv} z%~eI%Q^v<9))K<`Xr;oE8p(YIQu#Ag_bkj{IW+l6DAWb0*YGs zdL^qbapQQsOgFFf=oQA)IK4uQ+j`wHmR=6%u3p9*y^__JxM2L4V!HWJk6tDuu#}{6 zszpG#ty+rR&BZL$Jb}2X8FN%iR$t;D$E#+#`8AJfVa$xvE5r(0uar6L(aW=ytCulH zuVnQlc8?z~OgI0{qn8PZTPIdo1XS9prPyygs(E&FRWs(OmaM+Sk@2dTZbtm>P!-0J zaa9(gGm}Y~YA$2Bnx|q{FJq2g$?8k28b6AeZl2-M%Y+2hS>sz-1UM^yDR#C;HBbGn zYQ`MZlGT?eA75prn_E1pnUJ_|qG}OPV|!bQ4R}=ZQo~ivSmN{0l~_H#TXB|oz@t!j z5r!xcX5O1Py1h>Y2odVc>r(QOaXOui4(DQ{)5D9#53r06ij1ZcZZ;Bkp(zr3{g&Rs z%>_%ewi4EMgKJ$#;U*}gaDOPIaL+8H@GvQ)@PI9(aP%moa2zY7a6~Pna9}T_@T^iu z;YqBJ!gFRJg{SC3O3MTaFIozDco|km;YFWCF&{_MIomO}8Lcgtp1hwMj87ewqYz)u z=Bv6_g*}CQtn&xvz_UBpN%1iR)@JU;Ety6Sz?ya?h|bYLrx#i0MVL)bUW77oTA>aV z6al^IGVV4Z4&Agyoi(fwQ4dN_8wLx;n;32m+-UNv040&7@8!ChFTh7Q{&^HMNhklAS*`%UrpK|^I$xO~ zwbqBZa!Tpfz^FXr67^wrneiC1Jh~@JL-m5j*IAPs$XLf^%g*`R-~RSeWoT#(%$I#? z7&mBv;M~!Yu}ZngI)^%g4*!XdWr(gMeXibIuEVFOKrn}+kzn#0C^?It~exW!BU5rHJ^Hf{;dmnUo7mSCuwpLM8W_bt5} zJqfa$Hmi19rdoQ19+VA9@^Usx+GBF=8k?K9Ehpu!wYhoob5ia)n>%(Y+*56CM6{F3 zuD7`{gip@hU~}^(?4)*2v$-!g74F7}&5kke6}|*p;Nv$YPD{8kap!v}j>-xev&wLW z*(o%phx-&7)5CoVjp^Y&g~s%7pF(4LxKE)mJ=~|zm>%v^XiN|HaT~L`NX0Yt;K;J` z-{E)`R`HBa$lUuVn0MOi(Vl2i1P6Ky!yAWpDwrX8DW3~JDX~EXtaowzQqRV&K)!tR z;T0%kO$oZp4^?V@uwsoAvga{33>e>J!E^XNq6EY9MfM(&XGis6pw@ZaQ{XcKN;7T@ z;C$LZ5S5sAoG^vkcz=JG`ZasO6KAa{hXb>OCl#FWWaZf&hhRk8Xa9wa)hA)(5Ozuu z9mbPMxuBr<+%uWNuB^sP zu@ZC4CHPj#B&hapSmIKhT5GSw^yN3cg{i`CJk1l>w;4RbU zu&6x{?n{rq--DJbyx+rwN$>YORB9Qg=MF=O+Cr*Zx+_q|y1Uyh$!nN_t+sCT%4R|F zqG9b@KRhd2#W1bgyu7s6bKhkN>)j-(WK%b~$u2jE=Cv6%xyf!fiDM3%;X*fwHUxEy zwO#5`u_v>6SG&nIoYaTeL%Hv9iSs1y`<&eDvS9&Y7rxj{UcyOl;SMIqp4+vGRPfbjz*g(>DQ`4Hi~E&;c&TMEvP zn9Dh+lOk`s=ML85?0{Pyn^U;0;P|Lu(I!aZ1B7F_Li@O%6xzoWGZb*`V?yKBarQCM zIn9$I4P4}AWfBu=j32s)bJoQ-{^kHs(+)~nqx$$vROdsZ^|IExn^;kopcbH<% z_IQU0?xO`_(ubhKeYAi{iFR=UkEzc&3*<^E@ON|Ef&o-q=`T-~43E z@e?DCpBQoc#E9c3M#N9Gj-Pm7iJy2_iJy2-Iqu;SR)4qL!;}QSBR0-MOfU2hQ_OQc z9%6#)A;!i%e8Hr|$0qd+9I~)Kx?cH(u|#WNLXT#8p+!tFFYs6-g8IhwXennO z5=#;6Pn;gj1g8@-f~ML!z7umG#S1!?fs7@}U|?bo>Q>ONIIGY`rkHp+(1{9C8WDmT z3-1>*eX4CHhig|MV@lxz;}vpNp+csZH+d9FX;HYWAQCaX-mB33yvHw`>-dEc_$4*o zFC0YO$A}nndMzVPuVuvPwTwuwZHykUhc{0|(rtMfl5WeBkPL60f^gScALa=Nx4rdY zo_=uOTOa1h=QA@K^kJTQJ~I=?vpn&9W@ckVALe<->GrI$v1MX&F}=`xOfkRa@tzcQ zo-kr;TqkEz;z~by!&7L~0uM`B=N3BG(R`6bzo0rg6VS*%aWV51&OYK28h0B%RTw)) z?QE^mOmIs}_U}EVnUJ^+7TE&Wq4EfUt)2<405{uG&x8U2+z{%0E6V~VxB}d4OMqne z+UmLW=i!n{AcmJ}A#(*!)az`Q2;}e`D6JDfe4b7QU93nc$Xov#rvSJ!qHa zC03msrx-!6pEf>b2vfn*g(>D=J-wa@i6=QoEidTNBGP#VLyA=f-C)WDCulH&ps{Uy z&{)OF&g4=rs;=!4tSU3Xt+HgVVt%X2OsF<~<`!-ow(HNco_hP+lI;>K*-UU{OZN31 z*-UU`3-1?u58Kvxkok=5*Y2ykmPmevxppe^50My<0VxiUh0@_ zA=f`b=wO1ShY7A8$==A>mVYFBqiyy@EKb6XJ> z&v{IB2`{M1Fu|2A*)MuzOSUu0FJW=jVYlWk!4k&=SDa*@&iqG|HYPZxGLpE><8EFR zJ{uV4?xqvpjC~XQiEb>9WEd3QjO7kqcxzFnhfjzt*6mrIISYAso-d^Es-uw7If1fr z0)-dcg{4-w6g8ql=i%Kgk)v(gsN391_)v{XA$K4@y z-rcz!+o{V@MBcxbr@G^cpv&9F#>=dY&!l~X`9Zx$tQh1~c*T`WB4*&R=Y^KA7aRbOJiR~1&YTaaR_68zne!ww4I#!aCuA;kGynI5OjQyR zk6%(U-I7*)*{|>r-jmwFg1Yw7AnN^u(&{~9-Z@?FwTNKxiRdVIS&BdVo3N(2V zm)-R5K#pmazqZKPhAVsL|8v>gP7PwW_gcZ8HGbe9n-+Ti$gU70hVXbNbw|zb3 zxO#566{y3hm2>o6$u+|n#3`0@^hvo%^*N&hU1k@g>*~!P=}Ks$sJw16r!_YW(?>z& zH*c*UJelS*sz7xK@6+WeY<+kTe8a75>t`V%`D*}U0a)>?0R=2)I4rL+%c4nG;CZhU zl$ao8uEQcy+Jr^$TVPH@qjn|+R-HeV^a>E6iv62_l9ggI0z>#~MjXTQ{ zE8})jx${mc*WvKUU24l++5N7S8V?41U=HnB*gCIu!Mp`+;NV{l=?APwXPR*}(R*=y zjMLqDGn3tsV~$Q(_~9^U7k1N6I@Iq0%~*5cT0~F!HSl>+Sq3_Z6+eQzc(6I;RqEJ{A2n9;J5||1}<@??Pjg z+9kae=^(u=@YC95u~M2}_rcmYeIs;NMUWoTO8h~p(M$Ysy0H4;ic)$Pa!cv^wG1Oj z2kA?~^Cy%I(q({A`j?uoLDxvlb+u8-OKuP7pQT4C`AyBFNNA9<*%)iQN2EO=@RI_| zCHIDEmRYLLoEoLgm3=j^YU*7TQR=MjtJy2kg7i1YucB=+s)^F&m7gxFqO&Wgrizx- zGyE5U=QVKpJ!MoAqGpmD6jaREvL3X`G%2eW)T% z?-%%&iieSItG)~HKcehgvxfbdD!Zq;l-k8h55XJL=0 z2MdFAmGZF8_WYoZ>k=1lgi6`+DX_eWHcdTH+C+Nkfzm4aQe!( z!ar4%6`za(enPtf-L{V2s#{fCMWvAWN4go5D*9A8OZZEKeYFzlD*7(UM(GOi|5>F> zxktSEA0n+O!W2U|KLj~dR8h(BvJlJpy3`^GSV|kh?15jRE<8>y&_C(o`?-l$e z*?PggBG_!&B-pBY&Rb3wkq`RHU`ab&PTK{WCD^+uLpp}^f5wTvLR)E<pzBYl?_Y*LKr&c%vdYfpY;nLY)2~wr;cN^s<#mUjq7c`e|SrEdO1Qb8~^^!C7>FXcf{A`PT-6^na=@ z2)5C=;pKp<0X6z~@Djio!R>%6gI5Ah3z&eZ;9kI`k{*_H0J<~^hOPp=32-_+9J~(j zP~c`z_D60<`geg(7s#JZMS;6OKN4d5+iJf67^%1q@bSn$jiWzO{|M+W);|XLIY}QD zs5da>b)m;4JzL;Xf&UqQ0=aLMF?_C^;cYs@p9=hwz?nX#EECu*@U8Oupk3MateEbJzq2F`DK%K7N~g56s4oytWR)4#Ad4PQgZN3U7f9ib**ZwfXR zzAH2v*xObfYw%-?5k5DBS%aU7E$qC=J6eD$ENpY65-W)Y3)@&fM+?$S3%j%)y_{Mt zEK++Ev-@HTYp5*)wnAa3?c7k9?o=2(QaU>nr9WBNZO~UlJx$7%OZ|*pZect8m3Tck zZDHG^N3qTsu&`g$&A}s{Ll*WMJTzKNS6kSqe-2)0zCp0D@BzPu-&(lE%KNx~VW^b8 zV`29Jn?irJuoo)N36)V`hO*^XmFs|&DGYVEEEJ=PnVk1D4VE57lxz{~1{%T4Qck@V zHnoVc_X;*f{bf5s<@A=7_hxN2R7qPoB+?lDzA}#+GSyf%Wnskx3KT|F80;aRTg%{cW0=cuD7tB zif;uP=zxW#Dn1`-pxZ6%-%)NF{ey-51?8sE=PfLYa*cGqg^i+IBYoAvUMxFG2|8q9 zua}hpJ8WV5rhX|jou0F>8>c=3?57rXJMx<77Z&!9$ZMk41skI?raTdvL0wqbvzIcVCLn2e*Dbcw>kbyfcwnn@`OdnWR8VEq=>7kLfXT^42nn?*+i8w<}b`+aCO z{cn{gGH27h*g3GiWo1E{O^*pSMjcb%2InZ&<=lS#Wxnv~|WY>{fbT!#Ux_^nhSvvdq<1GLp1KYBU-n6h@UsGrqy`wPk(lUDQD&`!cZ$suXI<#70KaDI7FQ=bb z*g)l~@Hy1AM&%{2LSI3*oX^-(w7+y)UjYCZT1Um(I8XJLbyO+Xwe)4guXVKC!d4)* zt)q_>aNcF*eVe+&>*%MRy!G@;EAKjbM_W%=#Ncx+#WcnmEbOpg%PefB&UqJESf5~d z3;UvAAGWa91pA$ZRr|Qyx;~|$MX>8EY?WY-S(qlayk%iW1)G!Ra;om@X@Ou|_e;X- zsY@``2RG8?9?p%FwmAPnsqjV`@Z@#T9xLxd@L(6+VPTE%U>7}RVJ`^wa|>IbbDn>@ zs)H%mN?AI1h7YY9M&RGLfq=nA2H4!d}rw&BpQ(DG}=a^-j?9dufZBLcg1MrxVTFD*3-p3#XZ@N->+o~+cc{^zw+ zEnpPCnEGU88MO&qDzIJPT7ee`yhLCMuo62G=HD%FzrdRSgIKLGyaTWfznH}72L(O~ zSVo5d6O_^4sagbhpl&H(SH(GqL(I8bZ;ovMTo~)7gBInR{!3^~|4PF)x=G(rc_rXg zb-U?SJr^6HJM^zaKS~GnYa^dU`iCVS#eR$BoF=fvf=U06Kw)@~J`#G79@Iy%8hTXc zv2u^Tz3jJi6swRwApLSQ2>4@xyb}2{JzpEr4(pHlN;FOTYi&%^q|_1ETn~yqWe#9{ zb*pxd{$}k0q_edfw9}|LcB$54!G*COk*2*|o6?Tz`=;&yyd7{MYG!uM%C?iL_!V+Yir}dc?=}9MtmuqxwN@ zCuXudT|9M;7V~{E`UgEvJ+*J^Z|KiX4ft+`goN+IA|Wqz%+vQv+CX8eDq!I<-x2z9 z&BeYkS?T3zXT!UFWBR8X`h1@hjdzI+_lkrgbO$&e5_+EI7yX0pG337JdrES@PZu`4 zsr`&*RoD36(66X%@*mWAHPA0Mye>RAErZ@X9Rd9?YRb9Iu}%J?T0B}wN3~<2i~WbS zPnK@;xA`8yS;=9I=l&zYc~sz1pIH~AHs1@Vb(?RjvfsZJ-pGOfWAXifMzoABuqeMM z83knstM@ivydJxJ-^~~cDe+#LZ{3s|q4z-e1Asp-)u6qr=p+6%{bH=JcZ25>{{6nC zH3tE&41WP~ep6Bjd#(!K4-5Y!l3%TU*ng`p>3__>)OV#=^~%&r(sYjGuWDzRC+P&c@rL}khW;^EdkF_ZFy~F;8EX0l~V(!>$OvVjJkZg zdV1gqUvq4B;IQvwB|rA_NNf%4*LhVxrthd-5O@&w&(R(P&oc0Qri3Nm8)*;Rs$Zs` z2RK-|K9H9-J*@E>=0P8~-G05LC=*z#UxR(pTKz+SN44fy4!PV9pM&=hsWAG2xS{c6 z<#1rSq>q5kZE<7ln!qK#yW=+nj%w3u*z)JYw;){-`6ysz%|8VGjGEpRi1@jmAJu*{ z<=%kipN$sO{69cTX?|{H&Ht37Z$&!h-`7w{wf<$%F9%|}>P4)jSbF$dGRpR2#Qjl= zXgAh;D-hA%1RT?@2)`WYqx0D5DQ3fzadm`;vTQvvU>5KGKWG&r>^ji9az|Yd`Xi9QZlG`ikUV1-06B(2An9vVO z`kk|vF{Bm_>kAZuJ9>2?b;Wvir97Gz4Vq(=pgS&-@1O8QQLhXg)h zLC*cAq+b^JOM#@b4L*ShfincI5ZG=(E}N2cO6T;Lq{k$U*#r^}O8StbpRgcvzAWjZ z7Gw(fm|wFXQxcM%Zb7E3kaW8RnX*;VDGM@XRMKM>WXheAK4?Lv9Fp`C7G%oHl0Ird zrjVcQX}2I#Rs@)`Rp6+=I|UvR__9C>GEYL_3V~Y%jtaa};30u83#5?n3tS;^tH3b} zvfhJ|J{S@^B~4)|C2)nntpe|iF#Y8yLn>mpirz(O+C$gSD|C!zYD=|`;3(%@{W|?~ z`mgnN-#_`n{w4l({ww@D{onM50-FNaz+-{$1%4F>V0{z9N{4V783f!P!95AkaAt$k zmhOS%e^@`~!+mj_>)zl{E{(h&>37$2?)2IZ0`BrN zTJQ+XRx;s*hrDgPYczxnP5Ojmpb@R+2pll1S(xa|9ZpqkHE2hz%J2sn{Gj+zI}P6e(qZvH z1hv&r#|S7z_{XO_cs&&7IVDJ!0_yl7wkb%L0qR%{#*oI(`ypM0_@lu~izAx^QSEy&SmE}%}WG#%+P0Cnu$XCU1MsMCC! ziSz9YWJoU5M!xB`-N>VOO#XX}dq zFG4w;E=Gx2;Cqw~(f8>A?I+r6T9w|SFVRQzhxM=P&*?|>I^P`MmA-wxQQvL8=X|gG z-u4CjrT#_!PXB9u|0u7My`THB=J$IDdhi=QMhj``egftbr*u*9gIII(Jw;*XBt8#g zA2hx!zqnmUs|a@R?SOGQzJt|%A*~^J0M@AwTYV$$@qHCnPN$I`M1s?wL%Il-;D^A_ z`aBYXX!#J@AHM~OeiBD-;m@tq)xi9>(yiDH5oQd9-v)dQJwQX$qYcq6e0Sr!7vB+l zuf_K!d_SmNPe0Pu&?oiBsmgaf#?&qJUf+l41HM;jp1(soitn%dk0TAy%h%@Cr}Di! z&)K$ROWQnJeopU}EuER%V1H_VM}I1pTQG0SWYh(dQYRy}ojDnG!4jb^-NF}-3BcO> z`ZlEZuFjb0i&FjlD~IxVBfF)eKhwL5Z3IJCs&`j9-)@?jJ*j?&mdmC4xX@k{+BDRk z&RIDg;cacGA5_95q$Y?_WH0~8jG0sltsctuZf&CtL;d}!ZT)E^*RIMA4WvyA>&~MB zOzklG`_sMojFAPlDV^%unC;(RKwPyaoz0(@%J%iAO^=+s!PvS?F3-ele!=_#CjvXM z6Xz=%=hOM={hL$$L+P$m#@sreI*e@ZkZD3^XGZKwnfpQZHqe5T$zGsjFQ6XdLYTIA zVL@?VCpK*%!D;FKg|xP7&qB%!GUy%Pi`R-pClj+siCJV>(YCmt_+pj2n3Vu@tmg}K z0kEz@<}(%ZnFSJ-DB=?CPz4!FRR)ObjXre4b7)68zonD9Gw(^Smh>7*ckj($$hG2m z1)=oxtfL&b_{!WHsHdZg)~)O8q6_hD-_%9t_4MH2ikoW77D5N2&J@5vuGcX8GuwFB zO37|x$m~t8PxXpC7ZV%OxqK#@;_hZMbQY4j_viBIfmXK%=33XJvuQKaOK3FiXlWCF zp=ejSPsFdva)(yw)rL8c%0vDRo60KJ<~9yOfMRiwRA1kgRsE?!3|KLGQ@S^u*<*1z z2y>|+>X6LzfUze%p4z=X+q=^=vT$%8E$=*M*Oo0SF~DHT>P)&Hq%{*s@bpCDhKVG{ zgA=m~eK#@RuI|JfyFL?hI@5bHz3GW`nA@>4mEAE(R!3@}hnrzyp$(~lNvIwDyC$-7 zyzDZKywPj)Po9f*G^OiIp52MSD*Rv)!*KiGt;?A7`hSMCdyMrb{Xa*c^)$-XF%&@(|acfBNa{;(PYw0w9h`#>o2jZ#y|!g5Gub|jAB(Ic71DANXb=)|nZ7h_ z9LmdeEu!bktrph6b|dVKPjcx%1MQ z9XsG=S*p;T0=^dG@l~xTbgP!bFlES#p zK(0bIrMF`Q>~wH)ZW_ww*)BA#T8_|~be^%* zrZHequzJWD;PtM;$V6xn?{GL0;gUcl@?BI+w*v)aoZ3`+zm2V=E;l;9#7Vqp^O*fDVZ5~ zjJf4)O&g5tg}JmjStjeBSimvO&4Mjf!@IP0EU*W*_3!V=};it_A4_L{#rR+@f!tI$ILu$5~ zn2l)OYi0&{735|r-%A(RlKe-J z6bmoP^yO7*eI}b37#eU1ZZK0c%)(N+b?NL5E7@b@Q~heOX;IsASXFjlE4d9zNlc7Z z0uj~d-;;*dGYA0aLm1A;&k2+`&-+xEhgQR~z`J?nz;T>?Ezb~E7VlmQN_F(7Qzn9V z0g)rzI0C|40cBGz&!Hx_GH-33)ijju@5cbi^A67#LO76pHKG(RG-O`b(lI#;RvrWE zu=W?%VG(IXRwTOM6vz{IID?j~-atJm{0S-c%*JfNhMU&$HqY)Un1!vKaISUZwkxrg zRs4MKPe!vCsLS55G=EK6MvM0chq*;c0B4Q ze+yUSt;POGtNH-#XFM_cUFs8Q|D~)}Es6jxyGhzpC7#hHY4$uP*Op~cB@#cuu z!vYbx9$^p3PS3JYElwz7ZKDdZcBXrGL6yal?^)-~?ZIEBbu+OxmkrkOIr^jn96z5Y z;N#~G7B0Gv&&d7c__>~mSR8`xCY?$UuF=|o)Q&U~`6Pa;{9o zSbI1d7m>ov?^2vagJ;H|cG<^JN?p{_Mm4fWDdLaSUklqy#*W>U`8b8UmD{-snPsKx z$y6QRL-4u^QOuKL*Us5@Ikj^sefFMgTsWFE5KS6_$Q}bKvdF^9Njd?CJfViyiQ;;- zbyzznb~y-}?b%LQ*@cwuohfsWcQvi+GTZn{F2&mKxD?9w4$@E`cn}fo9)UIDZe=>O z^OlIL(+2Np8m2GLDPlp6*X)1ke8IrS(Fuo4 zYe$QmJy_j>#?yN{4loRr#EJd3QK>p1!2mA7@C$XIKyf^u1p zV-QB!(XKYt2##`&XxKdGJPg)Iz-+rCYsj8kM5uWoXV=r7&t;ct40fkY*@chKw%y?5 z+baZ|cVVbHN4xlY*J>M?v*&d_5o@)#568)tS&H}6o_w|T#hQWV2UnW4hsc1`m6~uq zj7H%FvB%vxQY|6A&xr?C?$4t%yHi$LIf>b;`%`!e$y(Cp3VK(&i5zQ_A^pZ8VE3*1 zk>Hc|Fv*ebC8-okT7J&LEnD*Vi|n?Ko#j_6Ppr_r8+}C?$X(Up!$|4Fjssm%LXgGb zMR<;yz|NDE&CC1noa&$0w%gkhbjJd^Z09@C-*FOv{hw{88><|W42m4)*zB%#sr^{K zG9%T5I?pG$AS!8&)0H2i`+fgG%-^0aDS-o(U0D$R5_L6vqw( zNsLRL@Ha{L#<;dQ)}-??4maYMOZJ_#ww+h%Sa4%2j?Fsn7AyoEi)pL?bJIg2Fv0eEc<1=Q83K&d~TwQQ79A$|=rqy~E<^w?eb#LlvfZ@d^!c=^n~qZP|x$W(?(d{>SYn z3qf=6D#^mu<3N1_JS_&X%f%E)z}Flj9HKfA5_C_&LI!JmiKFSgN{SqZDmg0Y4R;tY zDl4^3_Oq6!IH9t?b`5?`eb8@F?k<1iNbIZp4wm&b>F#}9^OnYkZZ5$xfy zA-3L11_xwTF7}d?H^v_^IR2h4?*MTuash$Mey6 zeq&()wiv%*xz?szDbPagcuE=NBI_VcBt*`G!&_RtpyaxkiaQOfW}@L zu<0I*rS~8Y5@4N_ukIiNcd)Z~!ZAT-%fAGkN}!pW@Wjag^7i1GpcLM~%OhnXt?HTJ zyW<$5XNak_|o7vp#^u?n0k5&miOWBt+S-n<7BQBIV>TIKjYahoC&0vm!{g>7g-kc z;JQsTP|VJ=t)oaMN@Za=m2@FxLVJd7oUswsF`fdJ5l!sF0Z20N^ofCY4rzKfu0vuq z&LzRw3$LY-gNSQ!bRpM}y7uDQkD88?fp)`I6dL+alBR5wnmPE4POIj<$G4)#5D8_MSdD?<7)Zc(rz+Rwguz(>!-_X~*H#sC=T&DK_4NR6fxsRMIbP zoQ8)n`YOG)CD1bM@Vl1>ufUWS^6&`ta$pQKOm2OG#`EGend(Amb`8A}m!Q8KPvT_! zOY!?d$K$tZbh_&Kg=56-^#x-D5rsz+RZq@KK8(0f0#6quq%L`QliRaEMiGx$MQ0DI z@ms(Vv8hzemhVB|?ZwqQ{yHE5$1&1cJm#sv9s4S;Kw^=bOC>5IStF}~BNw(E((5=P z7nDQm+OaAFeLRi{A8}?pHA{)du9)-$!2M?)|RJ}<`+H!Kxndb;J-L)kl zk!`#dD)IV*&h3Lmws$(krWCD#jT{9w19BWI97`NG`VkujSl?0}X*_GNp1-SPV;5pK zW2J2 z8P90(fskBA@i(IIBshU52oN8A#UIk*#lDahM!|X%LBV?b06=_fDgNuhQh!LV2d}Qx zm+4%tJ{a=X>-dY+cyK>l5%MYNUWmsq<74a9|Kc(YuZxyV!;_uUC>+%kA50q3;x$E; z@%?%!gK!Z@drqx8y+tI6L5s!`n4_GEJe=?~v(69I$Cr4RV*M<2A^VO>$|BN|+&KI}eaKxt6rR9ih@ z^sv>xtV_gd>(RqgLjL&Z^Uwo_?2hl&RpVE%GoH~)<7M1oO9J?%n9=9C;$z^ls=HgY z`1K{BfDUc{hAypxpU}(2HDm0WvN8>o9dcdii=x9YMVPo)IkB-Q9!}^wN|b9s^r8B4 zstOgwm+O$JTMbqbuRukm+3!GI!Hg%4_0m$SpNzf)22aGsK7t{r zb5q2|4sv`5hZS(xd9~gt~l77!ETMAG@Orqop%G7Qp{7 z4-p;xx;_l6^-=^47#v%O_6)1e7Dm(S9NSTKz#I7 z&X0}#hq}C>F27foKa29ehS`1 zV%JpKocQqwgr+<2mKQFcDuqp<((ohixqNf&!k2Ffud1l{_V(d97l+#(U$XhW#Tyod zA2@f*|B5{yUFPSh!>EF_I+58Ij4cF% zSmY1F0tTP5C?PJ2SY8pqRgGsf77H6a%zV#5d_5;#W$+&i-eB;127hMoSAeky1N=x* zd@P0n10qZUC$JjkdX&M}89c$@CI;U^<_ep&LI-wQfZ%PohT_EtmGLBliU7O5f`@#( z0x^NZ1y{C&hnQ2#QlUF&5p(ZWj1ny3BO+#ik#L+ZIxdhOTgVx)g<%P`Xf@Fw-jX&S zy+d6-Wix~vh7go;;IX4M1nKbs<`b7jB?d^0jM`R@9+v*{98ZGv@zEp7wt*@0V2%?! zFyYSAeJuGIjQ)7pG@jfkjzNRTJ!};{Ec5>uW?H>8T&jp;GsT1&?&W0&VuDpfxX;gx zkG0iHO~&T>!|<;!i9nHL9|KeX!{6nh(vqatsmOw3KvLZqjH7o17=FqohB%>W%L&zk zgylJwTaUj?80P+qkcfx;d-SS{%+w&B!odSwX?e~BXZAQH*1(4!QNgDe3G0>!UP};C zHQxJho*_v*c~2rSf8KnYiJXpKrCHd!WYNO(f-~nXoS)t{cj1EclDSK_ZR?x6sBK%S zZF}FgrSrF8hsZ+P@EdCQN3aEJF|5@%q*>NGOfq``SGg? zE|qX{62i@YdQm=?XmtMiOs{F=jP3bW`^L#oU&d%%)yMapa;^4F5gdkt&(5ZYaPHpUlIX%C51C$^!S&#wy6oB8&O9@O;y@8th%^Z(fW-|KH~f;Zpc-%{nb>WNQGsO1rS z?_i4iDRYyO+SJ|I-TnIhSDW8Cv-8fGFZ|(!3%{7>zSgnq@-=IF=59*kF~|(g>eH87 zBho8!Nm%;Nc^}tpRh@K0K$7=RKtVrqiu`cw~h? zf162(6_Wa|0e(kK%oyd@nc$bvLOJTqD4YOIpfle%A}ES~=Y%X36h4W)+AW6=empN% z75f&V+-B?zw*aof*>X3|sW#&LbPKK3i&j7@&-l!e$-Z-23Rb3n-04^M<1WWfTQ^!d_-vkSwOiLdPZ{qM*JkA#bvE0Fb16Qb_WHfBu7p!rZi7Pp@gAM%PcG9A ztNCPxPu~0G4#UaH-TO_V*F2s0w_kgF`MLWB`V)BkgKwCh-GoWIDUr_h8vHQj*-aPr zte(51DUrhi`+c~XnN6SFv_G9|I`^ECXi0QAKgGZg;U*v=n>)K{$jmOw_3p$2w7Izh z_RKuD*BDrq$_=#cX=_Rhq_Uaqc+JP297P|5B@&LXwSBlNiu+3iHt`JFl;G#S&Td-2 z-}7izYie+?=?o>+n!Tf1;n^*-fdOdW_y|N(^P%d-*w-vzxZ#8H%)3DG_qU uB-YrbpHX1@@-rMKfMNL=b_<<@LGa)8c>wVjx}H7rzf0l&==uN21OFF@l)zp9 diff --git a/bin/Debug/eSwitch.exe.config b/bin/Debug/eSwitch.exe.config index 4486581..f4d6a3c 100644 --- a/bin/Debug/eSwitch.exe.config +++ b/bin/Debug/eSwitch.exe.config @@ -13,6 +13,9 @@ 30 + + True + diff --git a/bin/Debug/eSwitch.pdb b/bin/Debug/eSwitch.pdb index f29cf6be278b0842cd7622f7b6a07e0cf5b311fa..76f15d9d16c1c4e8011ea4f65e879afd65e04dfc 100644 GIT binary patch delta 19265 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

-e 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 ZrvyjCKm{ayp8`SR1^qABkHOjKKLO;)IvW50 literal 11901 zcmeHN&vP6{6`o%0%xx31LJrE_X^e6liKnW;=n zl&8ndNmFHIhx*sCyyf|_w(Og}q?BH#j^A)6=e+c2jzaGNh>LaQ0xU z9k01%%Q5YCnZJF0_Vid9&A?ANjGwL&SY4V~4=Kl94zE~M2gWU!o>YX`7ZgOkmH}9W zlf}z!z3Q5^(FIt;8-4!H?C}?hOR^$e>6GN?oaf0JEH1rb+o;6_$ji;TyIwRF&t2Jh z+L$tCjAPI!J?X&Aup{5AQMPR@i|Q)7QeDet^U_04gSzxxt81=QlAdR+TDIkH1$E_6 zR{{MxfAPxECE2KZmXFt5l*^lzUs@~L)@pHi&2$@=OJ?KflyS@$hjndn;M z@@^XFx>>V>n)aZknTIzyYWk|>6zAn?vl?~AkawiE7lmuP*~~)SsaVyf8_*|c?-RRb znQN9)u5Ws0@iu~*Mo^Qpo1MERSB-ObeCg25d8~6E2Qdk&?<4Fde1z~(!U4jQgoA{S z5uO656h6`(ksYoy=H`xYPzNrKqkX7WFQ@TaPnk}-EE}HY(FJ;{>u*RmRdEz0l}ZUk z&kFiHW&1DJ4u9{xEWJoBm(!l+6+?X7m>i#+IH3r(mF?&j{CKw@`_oVG6J3HT`@9Ri zN~bmUYOLE{9GJ3fw0zvwBD`Ar<t#a8D!;~T!!M+F34>i{PAq;r6Vw+VjQ))C#x3or?!o^g{%HU>g&aUbZ z2?7v5TdJ4kDtu&SU2Zi@%T-Np*>^LRx6C1vW64Hy4oY;ZR%-@9Q`VI=v(b=cjED^5 zCS_cLtd6T>fe2q4SJG~uVg;pkI`rj$HWY5nrSg6r_bU^KLKEBj|lO5keH()eGj?6!wp#- zQ1KHUI%c5B% ziZaq<-7x6;BXmeiDM7D9(ZaE`-{?Vtx>*!{3wOw`e~e8Kj|gcb%>8J znqx`{hI9-k7_-Hb%7`c7U&6nTe_sR}V)Nyf@TlL2@g?NmkK^3?Q7`vyp@hmPIw4j< ztdLkMU_*Ppyp0Fl1VkyM)eqye`av(P$`Du201{dyvgNn!Zl>pcjL@@yO&uFNUCQ639}Mrh0OXg z*l?hAl+rp=Hx}w{&CBU7{?a`_ltPld6(`wudP%kcah02t3CR+Yg(TYq8=j1RTh#vW zD5u}SfBF_6N+HX>6=&J~UY30o;_5sgVOhemkY!&38;0Ab!miBeUq_C<4Tw_6t$T59 zZTE8P4T!7f013AeZiU?X2G|fCuFbpVrsY&~`ZtlO-v>k~q}Sazy|#Mk^(Mqso)Qgm z#>CySr%L$p%qmNFN#aYzDgfWOF5pv;@Y^LZ!b1ffH>Q4lw|MpGslPrDJYnEw8+#E? zf(HpazhlxLgjZ#R+sB;>xR=~l0k@2M6bSAPQk-dTcnMH&6R<~ogu6PO^>K@b3V7HU zPl7u+Z3W+M{WWqMH=PQ&nD48AYxZ6RT%!dF&K)@Lhssx8ye_z4qXJqy`r%d)T$lAK zU?|R%5{$=LP{of2j8PH{yL$^Vyy|Sahn&7mXGqnnfHP;HVB)v4SATYVaawR1?W=&Z zWv>Fd$IceeSN2svm)NU-10YcF?&+27{qN;Yiu(^!@Mb>+g2dxU5Q1+sxEuZ#=mYU1 diff --git a/obj/Debug/eSwitch.csproj.GenerateResource.cache b/obj/Debug/eSwitch.csproj.GenerateResource.cache index a6c831d182958b8653a6e1f5240a89d18daa50a0..269c8f772636d626dfedbc8b45c2c4e76a9f94e7 100644 GIT binary patch delta 52 zcmdnNv4dknD-+{^&23DDjEZ*gORF|aztO?SD8RtLzz4*fq9B47NW9fFy|8$)1d9Ry DpUMr3 delta 52 zcmdnNv4dknD-+|k&23DDjEXjicTa0gztO?SD8RtLzz4*fq9B47NNk+(zg=gt1d9Ry Dq74nf diff --git a/obj/Debug/eSwitch.csprojAssemblyReference.cache b/obj/Debug/eSwitch.csprojAssemblyReference.cache index 7a3cd5506aae603c3f0bc4558b388d8e04aeea6b..d4ec0724bf3efece54a1ba166fa7e9daf504a8bf 100644 GIT binary patch delta 14 VcmZ3%yn=ayKO<8w+vGsTZ~!7F1SkLi delta 14 VcmZ3%yn=ayKO@so*2#g4;Q%9Y1YZCE diff --git a/obj/Debug/eSwitch.exe b/obj/Debug/eSwitch.exe index a58ef17e108883c216b01309febcbee5aee9c826..e5222382ddd057552d823b7d47c42aac387e91b8 100644 GIT binary patch literal 44032 zcmeIbd3>D3kw09|GxzAQW^^C6#s(7^*}^Bt*apd#jRn52WgBy>8B1e(Y)OxJX5<4Q zkib9)CJQ03aeyo)5H=y?Bnb&2Ku(-D_d+%#f#9%7Ab}+8CciA3V1D1K?&lauK6XFv zXW#da9Z)@0)z#J2)z#Jg^z+Pk^`*B{fQW+ld*>aZ$8qIPo4^x;5fqm;eyNlmi+y+M zlLxTP9@>_NTJ_sgAW9QhioWrlq7Le!5n@ZaL8^ zBS0(fsXpYi_A*VQB4aku1K>mz_r1^Hn!?}9_+#r*xR}arU=(J+pOhhdMgw%^jYMVg zzjxIn3*fUDde<`YGSR&uM#g>&DhBJZr-@p}7M+Mrxu%O$6!c1;d`mvFFAw_thXGI~ zeMNu#pA^xREq2cC22*T%83=duLHzkXZE#47o$0k8$hHz`AAC#*7qk&AbqS3Op#S_~ z+e`}4r}~I~zK(rovX=0{uMjnju}dl(2kfGzDxx@5HC6K^w*@+yY8X9pn%PthTMu!}^3XoIK@@DtA;`i_lR@O6!yI9g&YWTn!4SEE8HD+PVL?!U*`gSNfPu(S z3_-xaFe!#0U_=~-AY$`+?L$+%G|a7;Rl}^oymktV8D>#4$4(oDg+c8!LG0cTf$AH%s7*%9===*{b0f;LtH&xRTNGdO^w`VPsiB0^iok|W+dE{VzHl} zX<+)8z|NR0Lk7J8IuCkb<-~fMN?<{;8Li%;Y>75ag{G=wMoEF<7;JQOziW=t4KHDk zl-mRW1E$IlAYN2~ASi$b6hjdBGe9$77u=mNhv0=^JX{nBG)+U}d5mX$v3U)1qmd?1 z&GB$#-Y;OnaqFFaqIzf^Zc)t(!g`|gNoeMe9z8bQ%uR=);Yos?0d%?zcMRm-#b{O4 zE~^O$O|Nz^3w;1><8pGLIj16Y{;3G9J{6(Ory`U-6`|~@2<1*LG|bL-XGM@h8?&N{ z(~Mj(z2%C@gloXUfXA(7fMFS%z%XJp$azQQcuY6MbQ4leShCGeF>zSJJQl`yg>y5x z`YawG#czx?#;q2Qw$5Vw%=hSGYqqZlV})wkG}ytp?n=Z8CT1eHom&i>!`sjpRR^uP z5FVNb&@>;QC>$9?rZa}SQ5+s(SaB>+9G!Uvg^z`Iuw@Ha_H2MNz}Z>Ip)+~TUWm40 z+`oWz4&+k%FoBO@j?4t5dK0j)zQwJD0B`~t3>TS^>Pt9B!g0<=xgV@9)4T^>$^ zXTHm6jf3d;t--3Gh1|(zmPZm1uO8386VwZGvXxrVMAWOr6Y_+$;B=`KOT@fdJVQ@d z3tpF6@kHFKwfbbW5Y1AnC{g6qI%!*oN2yhuDE4acq&}gAh%Bj9k|^PKC9}CFyeX_By#N->FLG8%#Su9(3-7f;1o5V z9kDuqlu%4UC@e9Pq8Ly2aCs;hsy>LRY#ytEsrA-!h?a+6Ivp{!0_d!-%GwmME&xG4 zS4$$i9xe|zQvy2^73(IQPfJJLwJHG{WLF>v)`Xo3#hV+F)YJ*A2%WwVS1ifM zAt9(PEF)?%h;L2 zgRlfcxCa-?t>U)KCgjAhGlwfFf^qBxCx`HjTWbI~F(B263}*FACDS)XCOpJSEsjnY zJ=ttR+6tFPl97gkFbBg5JJhf?8-CXpFwLQV;nM_V7n9M>8!{LLjXzlO;ZY2XR! z*RYK>Xcasihxc+MGpWUO&APVef*+E&gp z%x~BcWLeiTp7O){#4?6#S!trQz_Lk+NxId6ajiO*l_kow%vIxL9Lws*S(Zp73M@Oz zZy6$`d3e8A#?bHonz5RA1e1y6%!P0$7K(6rMY5u4EkdQdJW;L=vF|k83*n(xwgI#BqPtg=1cKHUmS%scoZUvtZ&Yj6xfn#2wk}l?yf1tha@f1^ zz86bt*t!fwSQ)S}OprZ{6};(k7H+*Ba*oUu;P4%2v$YjiQS&0)RbC0KSPMk0G$^YY z`p~TgvhQ;Bs8*uMptTJmXAq%kH?Ub>#=>J9tHQeIEIew2r_TzU(Hu2{Ru81mE7hk( zwDJbE4%N>N)8!aLEOdz+k{aHQm$2W%=p*iP(Z?rT z+ghukM;WLEvCD{C+ZpTtD2^^1^}H}ng!^0)vk-YV*2jo~7lR3=WsQB~|F5w&T zW@{I>9B#fM5w>y8xvHrtvzM1oOmZLHP`|~tg>%@1#4Rk~h*NzIQfKTsV8E}4QtYv=z!h7)1Xabc%d#L?)I2X@VPVBoNSaMp zJu&LZVDKQaQvI>|U-7%*JT)jFEes^;qF z^-x%tr+g0$e;|HkepjgZZP$ABk$}+yPQZM&!}$kegZzuVdw7^ja8?Ejf@a0=RK7G} z%%ls*%3%yia~lQBrqv*f>mb#TsD#$u-m* zN5eU+q2yFF)E-B}SDtzI6UmdN!&Ea&~v)bktw0E?-5x#O<{ z)EPc%@iQglrkO?N5Km5QaFDvOsVGI5GDD>eK81caE9QD3`c)7W`D5m80e5&B1kK!g z80FA5bGI^jx`$5pP$Vcv;9VYyWz^x$@K8))hYM33bS9%}4jp8h%%@3&1%VShqcY6eO zcWW_Zxqkr5`heoILu#x;9$|eDcw_9g9P;k;Dszb4^uY9LbBLYv!1Nk(h+Xu+^jdR> z9rVETI&+BK^T70abBLYu!1M-lh+Xr*^vUKBJLZAu$ieKE2dsO%h8ov2UQ*C)HpSlW z>ozkQ*IV~`b*%f?xT)5MJXY%R2z)rnfDiqyQT@`c;Xc@RvF3kN6`6rE*ZV!neuRq; zdyLex2q5bL#o)f%pY9~|C{VyLVNW)_QDBCrz$?}Y zm{FjBW656VQ@{*Qfmf^*Frz>L$DqB|r+^ur0) zZhA;vt&hmHs_9|5rYfU|%zFYlGMoNMxJ@6$Mdyc)`8m)Vv=qn2nfE}Gn*4%0Q<|gN zdPHhfHGQ0~XI_ncOAFZUz9le>ybN*^raGV58@#vFAJcl2D>;Yn@G$SK0I8_hIeQO~ zVG>m%@8+-zk>?55Lm~3U`5=c!S@{rF+o1Ic=o(y#+C>pQBH{z{nK&O~iHP+{6y~vo zGLn&|1oo7(0#(gsB9i+w_!b-+MtUBaTc8Ffaurcu#Xu7*m%TdQQ&ecxvD{}^1^O&1 z<`k%qo1@A^(5EHTg#E2(;hT_3ttAo4eU{aMKQ=H69Bj45a7M;)(AP0C z@YNX34TT(Yh{s1(N98N)F&F}8xNO<%mB*8D|8CDK_N~6ksZlax0 zXHDlWHBNHYbf&7UFG32#$%OSK;5D~lj$tjeM=`6hl-jrQ)q27cYs@yzDOd`*u6>9T z)g7Kx>Z1mB08D&lsVysXkOH(9L}NNuO?JDBX<(x|v_==;l%KbTj34 zlnLqR6sMz8aTdZI#S(yPjr|Mhc&+`0TQBdS4=Q-mk7b=_Llk|d6V7`5wPdPItQZ5RL z9pyX=J>^1WQ@4#(&V2h3pK@kQq+Aq~ILdimd&-5%rv5xuIrHu3eae|Jk#bQ`>L}+- z;VBm?n@aNv{r8w>&idmnM%zU*u)$NMlWn($ZiazgjoWy)<=ih5EP zkDXJ@x0m?*%#75HFmFuLqM+PqTB=>d)pXOmfOt(a#N3Ut7 z+@__dC-uVErkQVl($};I4v*=wFx{0*>OARdmzQF%U8dZ2rKl&heC#Y{zWuzfU1p@P zRUg}BQQ+Q2OSM;gO}7;^&6L};6!oOa$99?db|~acWM-rurEyJ*f*Qx$Qmve;=>Tgl zXqu_i!)PnDVr*D(kv-4XpvYo>PN^u%z7M&*odQk)ue@ecMM zSjPt>$xJ)peNc)Ylc)9ub-RW4J*-jR<>)&h?sXxDhoF$d@leR&$SmaWG%4ipge~N7 z_9*0V9xLQ+Wss8)?3$A(tYj;5?{vvdXS!*wi3Bw7CtxOl>X*M!CnY;o(y0(hy> z8(6%MHQ~U{3`eT@eZ4An-NJ_qblEpv)!wM+XBS}`GfW;vyJz<9==!AfbBeHyTy%12 z{Y*l=l*qw!Lf!fyL|AT*PAaXRI)vq>>7>&7F+*5xtxhVfpDTpr2JEEL`WZr4ZqrUG z-567k9Kv?4(1oo(!yp}ZF!4N{2NRF77k+rmU{?K?2Gb{f3WMpBK83;bNuR=C`lL@` zFn!XeFql5+Qy5I2^eGIcPx`onSzV-ZSyUd}pL@~YIG06LF5~k+?-~A?MC}cjoS2|U zm-J;!Z+<~j5*g4-`5Df4I3MV=aS>*bJkK$y4dwDNhmZ=L<-nA+p-Qa{{z}do=4EK> zyR7(3es4um{3_AChvWrKbLe7D-{0d5^?d*+xN_tX>8SnCAm*YC*xPtuB|A_=Sg`JW{SMX#SVd$x8bOleQamJ}?bOleQ zk$*vXd7g&H- zc3o|qC(9dt{SwFq55*ye!`-X@>L}d41^a_kAc@bW)_@3v6OqzCshu6 z=N5W{cehs`H@EO>!SPeU#!raUdl5Bb?Bh5ow2wLVqdxnX(Rk$;`ZK$=1(3!hI2k#pFetI`=&s9)5WbhX-HY z!{MQq_i%XN-B)X5P7KK)s$&-k0F2(|g3)8KLhmrg{;tnE%|gmj#0<|vOpWmnvr-?J&_i70p2Bj< z!aWwEm}eA=7aw`ej+Y*J&5jqI2c|d1 z%pqQP+_2{+8)uFmF6I|{k2!YQ=RK+FzJ_3XY8US1Q(woR7I;|dx{u(wkM=05 z{znxF%Zgp&86s4$bzzSEVPDiUBlT56l3H94 z(aeW2?^h8j)t=yLcXci$#6YRfeY%;E z`U!bclGouMAaj^aN6{JUm#Rm+)v^D@*N!k=V}@>r8D2Y5{AXV~QoPnNn>S16T)5mTzTsPx{n(46TkC zo;oT1zE2%9TvM4y-RW~T?+Sl_WxK%L(@y*__uqJ#-+=9rOoPIQxg6kyk0xb#_?Qf% ze!R;oXQ2$Q^MxGVbrf=BFIAw2H<5)hyx}h7@ZE&ws70;m6*0vwk9ki?-v!*6uA=l2 z6?M|2#-$q?m%XCKWm~QAF;7_WBS5vR=ghmYfy0as%5TTWw~~^IVahLVSpO;0RheyJ3JOcd{r0`wQYkJV8;vP&v=2%rJ0z|%EhF`((l-TCbAX|49 zs+;Ot^u5p^f@eB~^Sr{$xWYM7xED&SUymzX;1&L6T%oGD??g4F(5or$ts?ZO0ev=y z_H)%&p*KYa(Pg?Ti_j*2rwZX0pH+k}vQ$om1ES5v;JpT3?zaH!s^8&y%mDH_kgamY z;px8m|8?C60K%ZdZt?g+mG4;56UcI(cuIILQ z&405!sW)MJZb%|vhN0b5U!;{l+71KdYm;ZTW2-IZwiBP4QfvT=*GS{c^~^}>8*$8q(#5I(nCG zxDdZJfXRSQG5+?hrq{LSrBaGgazGamC`q36CEqiY}tp_^n}l!c<$b zyDCgK3H;BZSyhwhb+jC&CB>cPVfvfE7X|i}FlV8_^#TtHe@5{tXn4Gc;nTu-xHwxH zrn_tNi7>sVh~a%jyYY6)H;Z~I@jgQlzFSOJ731ea=tZ;`r!K*Bz{6Bp%poeVq#s6}tO(N=j8rg80X` zYLfI){gV}O>Zv|Zvsbi*F=(k^6%8d)HF3JW@-t;sw5cLhQ$_s^3~x;`j80~Ft-#yL zQZ->}F3%_GXh-7B>MB|i<p)IC4Aq%=v-MINb0(uV}5D!&i> z;_4>>sfa!Nz8dywzU)YKDW%0%&%q~Cs5JiX7?HI2^G4&&vN#pPCt=zOJHxbB`PpQv zeqYBu`g}RV%LKlHUdO4fl>5?*o>tLW=+QK?>+dg}MwO-amsU|x5%=-JO4jhS_~hME z_YufXqiX^zQzdmrrSwj~Pa1p5`NY4XK2uvo??UNc=^=2!R1&`mE#4p_vZj<<{Hlxv z#TZ{8@Z3tq`y<@$52P210MY9xd*HX|3(uB5o=BKg{9hR@PJFerU2y)A&}G$st-2T# zz8!?JndK2W&psz+AK#%BpCiy@b{XG9~JnH zz}5hBRtwxNumqN?eoduUg4`qSozt(2rC%!qep7mPPP8==rauXuO0xY&rH_9ncnYNk zog?zc%IhHcd;|C5ZIQn<&hpQSH;M#)OyFk)-eq!WSnw|h{Di=-B$j~RCi-s{cuZQn zLRxtOGGThE`Yw!nc+yg~t$YRGFkKi4ho24{3U3;DVsckx)5r~VT`p&RbOktD03Df+ z1ug;S#R`TGnhYC+^FhIrg8xBEj{VUo}tbWh?|^mn&VH`Tm~!(@~4Lfsub zTz5yrB)*d%x+(hpz-)Y(@DrN4H()^W>zevY{UkF$zt&Wwp%S^}uZj|#K??FBPj}S( zzH$N9_Bx?%ie4YMI})U6n)-O;9#CfrH5&awzFm5M zq=;ru<38L(A3=M?bWl;zz93WY*VNU)O6+&;)71X>Z}4kq4{6H87dT7kQB4)qWB$HSDrN68{H)@% zjhtFv^@m6`UDL$WP4ryZUm~^CIzy=Fza`&^)KiQYU;6c`Llrfr&fJuo9WnRaWcuj1{{6v}Dp>WbOXDRhmd{uA{Y>42t6f-|CxbepDb zM!gi>rKv-xm!c18>Q80oM5oe6G!;s;gZiYVK2X0ZI*q=dsfX(~f_hq0pGVng^sJ`7 zjk43|IiW^r>7=dE)2Wqj+u)ZkmG(!c)9o!n$qYDy4k;?yR+W#QL5DTpX$2GM# z_HI!Bs;L`6y^CtkVlAW5*eT7SUfgf7JEB( z^3S8^(6d5~(zVdiNg^gh`ne#wc)UcTR&L(kx)BbBGf1yftIE8 zpr#%J)j^*X>L$v9T0zh0ve!Yaq~0w`XKmSQ(F-YhsnW@QSw(F^sUE?QESIU#Tum{d zZlKR1f32q3np$Kqb!UO(y}ImM^k#H5{lr(chK}m812oB8L&r2#Y%o>7i`%<_zAjX& zrcx%CZPe6Op=?ckMyT60^`=m-YwFAZ*IT(;={#Sk5lvkp)Z>~m#Fjs5>gPh8!MCNl z?`!BRp}6mViLRklLaEha9bMv+Tt{gw`Dc13x{k8GvWv;qW$%LrFQ&URRR<4VOpj~o zM?(EfQ!Q9Iu$SypedrVF5=}j=%1{&#JO99vLVeSCDi)>5YDCSY0icN}bM43Tf zs%H2?$*ICOa9eDWS=byhz%2sPfR#uMEP0i{{Q_?R3}es6@DN}feu0qj zPYe7aU>O|&Oi|Wss9pg0Xx&14x7)$@1c*HcgG$E{>zeka0bhIP8T>+!$rXtz+w1l^Y+M5`l5Mf z{5SNB`D*1Kz}a8+XF7`g#@~SddmPr9zY)lLj<@K~wI#+6&F=)t4a1mRS8c?k)=}6z z4V=nJvjG=Z&o@48ChHage{bzZ<8Y&xu1>r_hCy{Zjn~W%)b|5^9&kQv`vbjY zJ|F+Ov6y~Z`8%V77S_LQjMB^1adU>*)-cIjXwHWXT_{~(UM{6Q^i=F^<8tECF6mv5 z=;@*#l^!(n^qrDP<~71UAn>s9YUL~DM~y#4UNsL&EAJOQ#Zv1U_~f9O2(TrGjhlnV z%)`dJu^t|veb@=s2EGz64;-L;ZB5`U^N;n@0{240lE8za;ehn+0R5t54LEF11#H_K zc!B=8W-u@+ySW4Op~*vmTg>Mtj|M(2Ej}hTd|5QSKwpI9*M)z8mKQw{_zp_{Bk-J* z{+w=|{I>Brt*BlQe9IiJJwJHZ;Pw9+vEgqb^EYYt0KEhL5%iQxI}%p#7W3um!QfG2 zdb|?+PnO;sY>*!9H+heF)VRF%w&23RBJ5}v209XV2IrW+ss3QF9r*o_WDT8x&y_qJ zWDg8N1FwuPi2kDjUlVw7;C*#r+7hU4VEAz5W5Fyu`9yF_;M2)x0I!c@c4*F@OP&Si z5$x`_1lBi{(f+_^FoQ6}OG`fp^2MhP% zOKXP$m!a;Vz)|oIiT*=@e*u0Ndfp6vG_a-SFMz|*V`%GG3HSZ)qoL3dqo|ZykJS{1 zoMBKmN!LdJSa;37yK z4g9pSKQzN!Sl=4z3_McO8sZt958YzkT)Q82pNfruv&p;}@P^WZ0`CYNka*Y<_%=@9 zju^ZPS{UHb-xBC-_zmqh&o6p3)M-ABd#XTFCo{#+NVQP#pXA` z;Ssq%@vYGQz*myr3mrAuYhau4YV>*Fso2j$i6GC8qsFmGuY?W-9>kc|20t;mlBNb% z$A25DHMw6$4AxLA@gFpJ4#td!Yu*mUjAZTGp;2QXS`*IG_v_v^ip8JBhQe8Lj&Xib zOL!sRg77V79Qovs`Kq}X^6dF2-D_mRQM%vQ1^7>be_Zg#1bIzXxYG)x=vUN7Li&*sbjfx6>n(i+9qUz&q(4fgh$H$J0`pmeOv)yXjWC zCY}|^tVm|*!}L-d83VOOMe?xVhXsE|@Mi=+D)>>sr{ctHS9q$y?Y0Ttt|4=-6g;gV zbGii|5jd(L^KTIRet}O5d`3eqeOYiaxh+FO<_82%37o1S^G_4JO<=o*%wHz>l>*Zm zGQV5!5rLx`GXJpPhfT(x5&Rj!j|zTNa0-Z38nR?c@TnRyr%mv74ViPL;Ast+Ga~q? zhRnHN@WUE1=V`&8(U3VW3r<0{AtkU);FTffj0n76;L`$M7D!={7uY87N`WH+?-%&A zz?TJ5MC1jw3A|F^h(L-;slYaY?HaO$R|=likU1lQ-yh>zFUJ{D5yR#9mnODgKXWzi zDt|{od@1mJ<6fiOTyGvWzh;I4e;4?EV0v(4FdMu&SR1-Bba&`8p??nr!qdYc?4=^u zRT0iw!+-~4_*GT#aGr$oAN+taend2av+5{jTb!Q{(+hR{YyS5K>H&)y8Ub$#oCf%- zNR!L&i!uNG4J^}MI}7kyys?RY&neFMq}@uq=^TvG&2F`$Waq!QqzfF?XL33wTxiTx+eyz!f1 z_-X;NQaSJnKocIT1YQeh;yk|^upX2F57q*o49dXCem(H1pm5?0$lnEM1U^%&o`n*F zS^!Nti%tVR8_>l5b~^C6fc$&3?*cv_(8P(r4B%%2nskmlPiO@+u@jyJ{<(lAErKQk z|3cAOz}uk7#2xuOzz)?h4!&_*CHcfmpC6I4#&5TpvsaKOUSC4vz3%-T(P2?mPI& zqw{GG|1iLKAx}MFQO{PCH8Io6xL1Q!FM5VLwFNE+887EGu&|$ z@-7eG59`#2t$q~GJ|D-G@mqlp0Ac()z>8oBegqEjfaeo3OTvhVFybJBXow&NVu%E3 z0xQK$leylV^dRoci0;z#U7#{>+*8BOb=Jui%Od5(>rGlx`x(Z4X|+< z6x%OYX*CJ)7yG8Ks%TB5B6njO>M}-cIGa#dV4e7`K;9sYJDc% zv$nr?e*ts(o=ks!WxBtoH)H$szjvT-h5l-a*2-8-0B zm(JQ(&ZT8mfA^qmqs@-2*p;^TgY6%ic_-67PwAdVUDigJcJ};&>Yz?++I)i3GC1$- zT(<{c03getv%61lb@5xY;AAQnD3uGeMRU$Bu;^@6dNwx*uxzzl27seoFt|bB>f&$r z998k00&T5|*~)=dP_R%HfVtZ08SKrRM>{h4tsS%>dv#`o;1^J4!`>`rVGCaK5KdRu zD#}5MuPnWWx|Xe@RjWGI(MJ5WuU|(iySmm9X24)(>sCTwQAZk}FV}6^z1eL%lcnYc zYtZh_tWI}}K93R`GP!)VKh0t22y_&(Htf&kGkq;yWae5f$n7U1DL~N^!iM9Cc8&Vxdcn8 zsq3=rOrNzUGnTtye}DH*+vY{ zsL*%g%bo6yFLC-azN90wC)=GF&xg6ocBcDxOi;8e-Pgs#Fuu~7bl(KrWxcz{i>^nY zuCuMY)ot}oT#9kDC3Ge(?m#YSJ?%YIG*-;Y|tlPOi zm+emXw)f=hOl|^!4M=+9^(iCQS@r~FJ~Jm4!07a6_Ks7^GxP#G+p{T~*}D{}o%%BQ zo%mUOj2I%ovQ_ZQq}rbD&d|E<^ngdH8Oyztxuzn6wn8R9XlFFJIor>*G?mNr_hf8G zvPWV`CRk^GE}!m)rk>39^k8q^r8()anX3EL?O3)n+uwuvquEMRAulJ11}Pzz?a9#E z!Mt2KiEf(TwSOS94F9aGwCxhyR{LPy+JMo?AUCRh2?sORWgz(s_VusCBAKysD>K<0 zJM)}6rQGk)6Un(vp`wz@jjQi8>@WA%TW{?>ekHdMX>mQzOVw3pmO9B?%~|41hC$bq zPGTNonbkLtwlmB3b;}f|u54eX%j(ExXnB86Xa62+cZQZ`c4YfCt_D~pJvkdEMRCkP zuOilGwqpkDbZKuosdC?5g*tf?XyrJMi0$Z~9)V5ST$Z`(2mAAE7lu}CQ|N+Bo~aeK z)u%bwRpczlIvX?2Dr7TY!#Ev@azW4uxpK)0JB!He-S0~9I3pb)<>VE!pX+Y6v-!-b zY<~vZm%eR$<@Raw&WxQQcj;n0Zw)L{^Msd5JMR$d(|a9M?KGFBa~WzM7{Gp0lG}!i zEMYm}FYC2Xsyu_X?EUM~HjDT4thF}|^rZ6{T8+tss=0herZ=;LIouz3uPf7sO*QC_ z%(lTDJ2LiC8}Y>c;F{(Y!4^I69D6IFHgsbk zdvv*1;UhAyh7!B34!&Q-t<1fa$dQk8$sDK*qt9=u*@3RZ*#7is0h=$f4^6trxLe` zcD7}Evw2@>m$*>kNMW3m6xNCKzHjYzPhe#_r-(hgG2{?kFFPc6gPGZsnMVJd8~IM6!eHNHB#*)^Fw4;Qnv ztnO)x9xE>CvediJw6>q;7qfaK_xP%H*y+7O?zHxHz#3}@>6WL(a9V-L?yRNnWsh z#eD--KN?Y7pBoW{{<8qNEpj$p+!Ha^zrB@cDPXWa(pXNAGW+wk)hqYg4(_-gy|i{9 zBZqJWN)`rY_BLy&wND5&6^QST*v)GO`>?D7bU^}(WxAjE7Kv8F z0#Ugd$q#6UZ}X_OD3sMVQw2pkGu^wg-GJ$Z(qG`R4=>!mUMzTxb7wxf$hBS&p#- zac^Hl3lG1?akmb>b%WaFZidq8qBb~ckbR9J3+bpW950zcPC)Zv3x|~#;)TMp-}M!$ z@b@wNu0k&Jl{md~@4npLd7K{S&TLFl^5q=wc7j@GP`4SHA z7RB}I2BLF7>~aY<+jmo?iwij$cBbtCzPD*vmEFcy@;Lgg$Kz1Gdw@3f4A81xfI<9m zf~0mEh&s~1w(%;}517JtNu&=T{0DEyCBC!9f)f82a9SxS%=ixPoCbOO)nV~jirUo? z@9J$n3e?F4SpcUgoJI9bE=u-b!wVj-`0Y5;z&|9%C^k{pj18uHH{|#CX833WA%HSx z1CK*O-i+&`N2Xf36_m?roQyEZUiVs4BjPsB=?(YOIiG;`92Vdm{g&K@iwd<=ZItLc4v84ez^%B7AfYFWEh&+}5-iP{7N0kN>(>0vtm}MtFV@1VEc$R2qC^?U zLF&q3!t~(w1HmYnNK5z$UaH24^P1(z@=bY8MJDdyoqH4nVgX<7?K=?ZI2ORopc4gN z%5qsU9dcM|`**KO@5f#q$FkTUVfa;xDp`!@tW4WIdvUkyFY#rLvBlnTkW%ffQC?HN z>VBZ0j>~>K5T%rZ1?--ok4E%x{1UY?A=V|%Ayp8pRRKh1q zwmpu^u$Jj`)M4eBP)92&L&=%BgYuEf*$#m-Z5P!Dhid`4zt>9lXwC*CLygMat;V~$ z2Q-GPsxi*38bxB&*z!E?zWXzIO?KJoejFs&4m}_VRa~cza%f$~?#rU@e6oS7KG$H* zJ^;40L!D9ajN+_;^oV)M>;8I4+?dgh#08nW%)_-f^OBoT>TKt2J9gi=FUOrb-#Tal zfyF#-0DaD@^v8(1W7Xq>BQ56^h?|$um1@h>0~2R}d@;@QNe$M>c~h) z7*Vjx!EJzK*UVm3S58b-ZH4-iAf}NjN^g@}UhO|lH69HiMeuDF{sB`Yb~(PrpvmT& zbF(@Fa5?U#$mOUkgQp>EG;8ts)W>ypE)z&~4meCD#3SKwe9HXnE~EqL5?`ecYqvAX z*%@~MImUP6kB7;5SO~-VS-2PXDY(tYJ+t%Jj;w*Lo&6ck{5VIT<$VKy{E2ko?aEd7 z2go|{F4Jb(iFZKql)*RpvY_))zKqu4x)IO#aV_b@n-8mj?ZI0Ee(G%exI(AH*BE$_ zc6{Fu^ye z^2&ohz}oRP@G{6{AaA1;JVayeB(`k3Xv(2Invtd+{I^CluNc$DQqjvA`%$x9BvZiI z3aWRcH*1T!aNQ;?Qsr9M!2M0bo~*W%A|2rE!B^iqbUWQ{DJ9lH+7j!#am9=C>apD?odBW+nGY%Bv z8vPg}Dp?22hMzeC>9p}a;ArWCk1V`_W8qt+G}Ui|vbhU7_MyI(K(uzF&VU=O4u!~^ zI@V|7^rJTJwqZ{Xw9=%tGM+Ad+W2u8r=ihrA^UBNea#d5Yr?+Fm{@iKt*7~0b$maj zSYLN_r(`Ia?qX6huS{G1rb6G82asu(rf!~tY8nKP%m$Kfa zBdR7$GoJeo-HZK++$mz62Cv_{2o~3c&9^bO49|fk>~d&K+emBvxMh! zFJ^rox3`e{%xf68^IxjjxDIOtR%#g;UVk_)a%h=-nIpP*;DqJ>jTRHUnyVSh>kVQM zW4aR`%g7PDoM;3IGGTz^ z$ghGCBUv1X7*SMgKowMM0EyS)jpXP;{BMR!gAua<@}|*HW^&zza3t7ZMj1Dw6_J2y z!4L65YI5{q^?z}h5tu?{Q}8zF6pF?TB?q$xjbu%6Wpck+${^8N1RK>AR^U}tbc>Rs zSD=HXut;ocs0pKg$u>knw60tSRaLtM;>Cu3{A5L$YIT6O)ODP zMLtQ428%9?Ois4>gp(tWCPzLE4XT~Rj+6K*EVxyD*rl#Li^Hn0T8GBS5gmN`64OC2 za%55@m>hW?Ey7P%C9g77R8+8gzH62y%Q%`#LInRm&#t%;QrZDmsX(};Bobm%UPQc` zkS9z5an|S^u&1mH-ycJqxy}v55l74sA+AKX;lbbTEh<*TwwtSBtp{P%jh-l$xefIa%g9$0$MQ zxsHi)xRsex@NYjWcP7zY4zCxv50OBWdk%{^O_-&{n02Q|QHo%0g+~&j@CfGLeHfJF zXl+!8!$Lg7HH-!wsjWO}iP2AUo{2^k@i}$*B43iD&nW5}qT)ydyvfPY?+R7RwTg?C zzz@~s1$B8*1dcM19DQ_3q&T@MIU2+NiB<-SP0Tq=I%O~>N<$Q#H%pO}(C@^22CWPh zi=H<)nkP3Pw4%vTj8H9-*<>lHM1Yz2vQ?lIAGFqh6bDvO9H6v_L3~mq5_PI^J!R8W zltoKJ5i^;JB6lT6A5z^*EF;s9TBdiLGMnw!) zl^-C&tJ}yCuJA)N*TBeY4BlYyCWAjSc#FZ?0HX$j5(WuW=nI4st)ftJG^qLbTa1z# zuJJ_%PcnFh!7U8Ffx?wel?oHo=^;YEz^RlhMq*AjF{lXf;8k!sNmd}=a4O=JxRj@_ z=YdI5;L$}af0YuIRFoVRMSZg5wPGblqC!~rsZ7qxNt{(kSj=~stsYY*9h@q`G;*IS zve*+@9F=7OJ{CL0+ohQ4@UydUzz8$h$8s_TaY;gwq(zMy2815Qfh}!Fj$m%`wQtgF zo_joEoV~CWm~94FGtE7t9U=)K8Xrd_o%wQ7_20#U<($b~^&&NP&uQ^z22(lxG1m5SCFUC)4 zs0d_4b)OLxgChJxZlnSKIA;`dfzVBS52MSh+H9u>@Fo;qs>{f`K6q4u!+8U85uQ?1 z3`9SJ!Z$~RRgEv}xbN|#zWUKrYVPd0IJBB!(CPELTNljF%sXe+{JEKJv*ypsw9Z<% zZClT*1#`Bg=WOrUws7t?+~Ts*Ir#ZM{71AJ-{@&sv%JeaV4kU8gIR)~2t21{F3c>g za0~UfF!&X?3a*uMOHv{Y!_{YtK^LvgcH36Y+MaK5o>vX_WUZFvJ^Y|A*Wx^j!uex% z2i|LN85?kT-kagKr}P6H%Z|=DyQQ@SM&pJRKPog2*BHLy)n(&-B7FY@->3TaAHKqE z-+{kg{Y(%?#Ofhki-YkwWyYSFa$ZQEnQ}VIKZl6_W~P?m{2gzuF6qw<;<-of%+xx( zf0FISX=fMSaO_{Q?VNMc3%VDaJ!j#(`I*_R3r`#0n0g1%X%pS##OQq1wRiCUZ1exx z{Xgq(9)kbqj=jNG9+GwVd;MwrJpjb_Df8isuHVqHVd;^jb6@%8r!E@(^3+?Om>c;K z$J(-UFTbF(Yu5S<-bu~kSxM${JyqQ+9+q7$Pk0?p%RtXI>UqX%;9AC09__~ld~!s1 zG-EH{hc8XwwHt}wOs1s=Zw~S2o#~Wn6YT#Rz~4}mZjA6(*WlNYLOVFy5#cOs9G~UJ zFu_ssJI58V7NUEx$GH7vP6^BNrvrcZ@pg>+gf)8B3Jo3Tr#ZR}bxt94o`hi_l>;9+!sX34buncTGV&nt*@LIrcoJA(6R*J2QvCYfl4+~=``)l?Ne>K6J4lX_@7 zm%-z2w5e%uY&?*Jotd6>_}(V=8#^+&Q`9=o(VD`?(}M)vJ;*Qot-?z&y{TS?OQxlB z>N^qkwA5g>y_?@)S~6`r-hs*JPKlDUCa}ga{j37p7oX)i0RoH9az^MpOoIQZ&(p}i TXzTVl|5FYAZ#(~g^1%NEzF}q4 literal 41472 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 diff --git a/obj/Debug/eSwitch.pdb b/obj/Debug/eSwitch.pdb index f29cf6be278b0842cd7622f7b6a07e0cf5b311fa..76f15d9d16c1c4e8011ea4f65e879afd65e04dfc 100644 GIT binary patch delta 19265 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

-e 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 j&7duyt)Ok7w?J=#{=2J#FlN|? Date: Mon, 7 Dec 2020 23:05:07 +0100 Subject: [PATCH 5/5] Finall filters --- GUI/Firewall.Designer.cs | 170 ------------ GUI/Firewall.cs | 65 ----- GUI/Firewall.resx | 147 ----------- GUI/NewFireWall.Designer.cs | 36 +-- GUI/NewFireWall.cs | 60 +++-- GUI/TableView.Designer.cs | 247 +++++++++++++++++- GUI/TableView.cs | 82 +++++- GUI/TableView.resx | 44 +++- Networking/Device.cs | 21 +- Networking/FirewallRule.cs | 44 ++-- Networking/Network.cs | 15 +- bin/Debug/eSwitch.exe | Bin 44032 -> 45568 bytes bin/Debug/eSwitch.pdb | Bin 99840 -> 95744 bytes eSwitch.csproj | 9 - .../DesignTimeResolveAssemblyReferences.cache | Bin 12199 -> 11217 bytes obj/Debug/eSwitch.GUI.Firewall.resources | Bin 180 -> 0 bytes .../eSwitch.csproj.CoreCompileInputs.cache | 2 +- obj/Debug/eSwitch.csproj.FileListAbsolute.txt | 1 - .../eSwitch.csproj.GenerateResource.cache | Bin 1080 -> 1080 bytes .../eSwitch.csprojAssemblyReference.cache | Bin 424 -> 424 bytes obj/Debug/eSwitch.exe | Bin 44032 -> 45568 bytes obj/Debug/eSwitch.pdb | Bin 99840 -> 95744 bytes 22 files changed, 419 insertions(+), 524 deletions(-) delete mode 100644 GUI/Firewall.Designer.cs delete mode 100644 GUI/Firewall.cs delete mode 100644 GUI/Firewall.resx delete mode 100644 obj/Debug/eSwitch.GUI.Firewall.resources diff --git a/GUI/Firewall.Designer.cs b/GUI/Firewall.Designer.cs deleted file mode 100644 index 82b3dd0..0000000 --- a/GUI/Firewall.Designer.cs +++ /dev/null @@ -1,170 +0,0 @@ - -namespace eSwitch.GUI -{ - partial class Firewall - { - ///

- /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.addNewFirewallButton = new System.Windows.Forms.Button(); - this.FireWallTable = new System.Windows.Forms.DataGridView(); - this.Dev = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Direction = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Protocol = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.SourceMac = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.SourceIp = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DestinationMac = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DestinationIp = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.SourcePort = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DestinationPort = new System.Windows.Forms.DataGridViewTextBoxColumn(); - ((System.ComponentModel.ISupportInitialize)(this.FireWallTable)).BeginInit(); - this.SuspendLayout(); - // - // addNewFirewallButton - // - this.addNewFirewallButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.addNewFirewallButton.Location = new System.Drawing.Point(588, 806); - this.addNewFirewallButton.Name = "addNewFirewallButton"; - this.addNewFirewallButton.Size = new System.Drawing.Size(889, 57); - this.addNewFirewallButton.TabIndex = 1; - this.addNewFirewallButton.Text = "Add new"; - this.addNewFirewallButton.UseVisualStyleBackColor = true; - this.addNewFirewallButton.Click += new System.EventHandler(this.AddNewFirewallButton_Click); - // - // FireWallTable - // - this.FireWallTable.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.FireWallTable.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Dev, - this.Direction, - this.Protocol, - this.SourceMac, - this.SourceIp, - this.DestinationMac, - this.DestinationIp, - this.SourcePort, - this.DestinationPort}); - this.FireWallTable.Location = new System.Drawing.Point(78, 88); - this.FireWallTable.Name = "FireWallTable"; - this.FireWallTable.RowHeadersWidth = 82; - this.FireWallTable.RowTemplate.Height = 33; - this.FireWallTable.Size = new System.Drawing.Size(1884, 271); - this.FireWallTable.TabIndex = 2; - // - // Dev - // - this.Dev.HeaderText = "Operation "; - this.Dev.MinimumWidth = 10; - this.Dev.Name = "Dev"; - this.Dev.Width = 200; - // - // Direction - // - this.Direction.HeaderText = "Direction"; - this.Direction.MinimumWidth = 10; - this.Direction.Name = "Direction"; - this.Direction.Width = 200; - // - // Protocol - // - this.Protocol.HeaderText = "Protocol"; - this.Protocol.MinimumWidth = 10; - this.Protocol.Name = "Protocol"; - this.Protocol.Width = 200; - // - // SourceMac - // - this.SourceMac.HeaderText = "SourceMac"; - this.SourceMac.MinimumWidth = 10; - this.SourceMac.Name = "SourceMac"; - this.SourceMac.Width = 200; - // - // SourceIp - // - this.SourceIp.HeaderText = "SourceIp"; - this.SourceIp.MinimumWidth = 10; - this.SourceIp.Name = "SourceIp"; - this.SourceIp.Width = 200; - // - // DestinationMac - // - this.DestinationMac.HeaderText = "DestinationMac"; - this.DestinationMac.MinimumWidth = 10; - this.DestinationMac.Name = "DestinationMac"; - this.DestinationMac.Width = 200; - // - // DestinationIp - // - this.DestinationIp.HeaderText = "DestinationIp"; - this.DestinationIp.MinimumWidth = 10; - this.DestinationIp.Name = "DestinationIp"; - this.DestinationIp.Width = 200; - // - // SourcePort - // - this.SourcePort.HeaderText = "SourcePort"; - this.SourcePort.MinimumWidth = 10; - this.SourcePort.Name = "SourcePort"; - this.SourcePort.Width = 200; - // - // DestinationPort - // - this.DestinationPort.HeaderText = "DestinationPort"; - this.DestinationPort.MinimumWidth = 10; - this.DestinationPort.Name = "DestinationPort"; - this.DestinationPort.Width = 200; - // - // Firewall - // - this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoSize = true; - this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.ClientSize = new System.Drawing.Size(2069, 923); - this.Controls.Add(this.FireWallTable); - this.Controls.Add(this.addNewFirewallButton); - this.Name = "Firewall"; - this.Text = "Firewall"; - ((System.ComponentModel.ISupportInitialize)(this.FireWallTable)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.Button addNewFirewallButton; - private System.Windows.Forms.DataGridView FireWallTable; - private System.Windows.Forms.DataGridViewTextBoxColumn Dev; - private System.Windows.Forms.DataGridViewTextBoxColumn Direction; - private System.Windows.Forms.DataGridViewTextBoxColumn Protocol; - private System.Windows.Forms.DataGridViewTextBoxColumn SourceMac; - private System.Windows.Forms.DataGridViewTextBoxColumn SourceIp; - private System.Windows.Forms.DataGridViewTextBoxColumn DestinationMac; - private System.Windows.Forms.DataGridViewTextBoxColumn DestinationIp; - private System.Windows.Forms.DataGridViewTextBoxColumn SourcePort; - private System.Windows.Forms.DataGridViewTextBoxColumn DestinationPort; - } -} \ No newline at end of file diff --git a/GUI/Firewall.cs b/GUI/Firewall.cs deleted file mode 100644 index 8539e50..0000000 --- a/GUI/Firewall.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using eSwitch.Networking; - -namespace eSwitch.GUI -{ - public partial class Firewall : Form - { - public Network N { get; } = new Network(); - private int q = 0; - private readonly Device _device; - public Firewall(string name, int count) - { - InitializeComponent(); - for(int i=0;i - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - \ No newline at end of file diff --git a/GUI/NewFireWall.Designer.cs b/GUI/NewFireWall.Designer.cs index 3e147cd..a8ec11c 100644 --- a/GUI/NewFireWall.Designer.cs +++ b/GUI/NewFireWall.Designer.cs @@ -31,7 +31,6 @@ private void InitializeComponent() { this.OperationComboBox = new System.Windows.Forms.ComboBox(); this.SourceMacTextBox = new System.Windows.Forms.TextBox(); - this.ProtocolComboBox = new System.Windows.Forms.ComboBox(); this.DirectionComboBox = new System.Windows.Forms.ComboBox(); this.SourceIpTextBox = new System.Windows.Forms.TextBox(); this.DestinationMacTextBox = new System.Windows.Forms.TextBox(); @@ -48,6 +47,7 @@ private void InitializeComponent() this.label8 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); this.AddNewFireWallButton = new System.Windows.Forms.Button(); + this.ProtocolTextBox = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // OperationComboBox @@ -74,26 +74,6 @@ private void InitializeComponent() this.SourceMacTextBox.Size = new System.Drawing.Size(425, 31); this.SourceMacTextBox.TabIndex = 3; // - // ProtocolComboBox - // - this.ProtocolComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ProtocolComboBox.FormattingEnabled = true; - this.ProtocolComboBox.Items.AddRange(new object[] { - "TCP", - "UDP", - "Icmpv4", - "Icmpv6", - "IPv4", - "IPv6", - "ARP", - "LLDP"}); - this.ProtocolComboBox.Location = new System.Drawing.Point(105, 269); - this.ProtocolComboBox.Name = "ProtocolComboBox"; - this.ProtocolComboBox.Size = new System.Drawing.Size(425, 33); - this.ProtocolComboBox.TabIndex = 9; - // // DirectionComboBox // this.DirectionComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -280,11 +260,22 @@ private void InitializeComponent() this.AddNewFireWallButton.UseVisualStyleBackColor = true; this.AddNewFireWallButton.Click += new System.EventHandler(this.AddNewFireWallButton_Click); // + // ProtocolTextBox + // + this.ProtocolTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ProtocolTextBox.Location = new System.Drawing.Point(105, 269); + this.ProtocolTextBox.Name = "ProtocolTextBox"; + this.ProtocolTextBox.Size = new System.Drawing.Size(425, 31); + this.ProtocolTextBox.TabIndex = 26; + // // NewFireWall // this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(932, 1143); + this.Controls.Add(this.ProtocolTextBox); this.Controls.Add(this.AddNewFireWallButton); this.Controls.Add(this.label9); this.Controls.Add(this.label8); @@ -301,7 +292,6 @@ private void InitializeComponent() this.Controls.Add(this.DestinationMacTextBox); this.Controls.Add(this.SourceIpTextBox); this.Controls.Add(this.DirectionComboBox); - this.Controls.Add(this.ProtocolComboBox); this.Controls.Add(this.SourceMacTextBox); this.Controls.Add(this.OperationComboBox); this.Name = "NewFireWall"; @@ -315,7 +305,6 @@ private void InitializeComponent() private System.Windows.Forms.ComboBox OperationComboBox; private System.Windows.Forms.TextBox SourceMacTextBox; - private System.Windows.Forms.ComboBox ProtocolComboBox; private System.Windows.Forms.ComboBox DirectionComboBox; private System.Windows.Forms.TextBox SourceIpTextBox; private System.Windows.Forms.TextBox DestinationMacTextBox; @@ -332,5 +321,6 @@ private void InitializeComponent() private System.Windows.Forms.Label label8; private System.Windows.Forms.Label label9; private System.Windows.Forms.Button AddNewFireWallButton; + private System.Windows.Forms.TextBox ProtocolTextBox; } } \ No newline at end of file diff --git a/GUI/NewFireWall.cs b/GUI/NewFireWall.cs index 8622e8e..0369341 100644 --- a/GUI/NewFireWall.cs +++ b/GUI/NewFireWall.cs @@ -1,16 +1,8 @@ using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; using eSwitch.Networking; using System.Net; using System.Net.NetworkInformation; -using System.Windows.Controls; namespace eSwitch.GUI { @@ -18,46 +10,59 @@ public partial class NewFireWall : Form { private readonly Device _device; - public NewFireWall(Device device) + + public Network N = new Network(); + public FirewallRule Rule { get; private set; } + + + public NewFireWall(int position) { - _device = device; + _device = N.Devices[position]; InitializeComponent(); } + public FirewallRule GetRule() + { + return Rule; + } + private static void InlineTry(Action action) { try { action(); } - catch - { - // ignored - } + catch {} } private void AddNewFireWallButton_Click(object sender, EventArgs e) { var rule = new FirewallRule(); - - + int currentMyComboBoxIndex; - if (OperationComboBox.SelectedItem is ComboBoxItem operationItem) + if (OperationComboBox.SelectedIndex > -1) { - rule.RuleOperation = Enum.TryParse((string)operationItem.Tag, out FirewallRule.Operation operation) ? operation : FirewallRule.Operation.Deny; + currentMyComboBoxIndex = OperationComboBox.SelectedIndex; + Console.WriteLine(currentMyComboBoxIndex); + if (currentMyComboBoxIndex == 0) + rule.RuleOperation = FirewallRule.Operation.Deny; + else + rule.RuleOperation = FirewallRule.Operation.Permit; } - - if (DirectionComboBox.SelectedItem is ComboBoxItem directionItem && Enum.TryParse((string)directionItem.Tag, out FirewallRule.Direction direction)) + if (DirectionComboBox.SelectedIndex > -1) { - rule.RuleDirection = direction; - } - if (ProtocolComboBox.SelectedItem is ComboBoxItem protocolItem && Enum.TryParse((string)protocolItem.Tag, out FirewallRule.Protocol protocol)) - { - rule.RuleProtocol = protocol; - } + currentMyComboBoxIndex = DirectionComboBox.SelectedIndex; + Console.WriteLine(currentMyComboBoxIndex); + if (currentMyComboBoxIndex == 0) + rule.RuleDirection = FirewallRule.Direction.Inside; + else + rule.RuleDirection = FirewallRule.Direction.Outside; + } + + InlineTry(() => rule.RuleProtocol = string.Format(ProtocolTextBox.Text)); InlineTry(() => rule.DestinationMac = PhysicalAddress.Parse(DestinationMacTextBox.Text)); InlineTry(() => rule.DestinationIp = IPAddress.Parse(DestinationIpTextBox.Text)); InlineTry(() => rule.SourceMac = PhysicalAddress.Parse(SourceMacTextBox.Text)); @@ -66,8 +71,9 @@ private void AddNewFireWallButton_Click(object sender, EventArgs e) InlineTry(() => rule.SourcePort = SourcePortTextBox.Text.Length != 0 ? Convert.ToUInt16(SourcePortTextBox.Text) : (ushort?)null); _device.FirewallRules.Add(rule); + Rule = rule; - Console.WriteLine(_device.FirewallRules.Count.ToString()); + Console.WriteLine("NEW " + _device.FirewallRules.Count.ToString()); Console.WriteLine(_device.FirewallRules[0].RuleDirection.ToString()); Console.WriteLine(_device.FirewallRules[0].RuleOperation); Console.WriteLine(_device.FirewallRules[0].RuleProtocol); diff --git a/GUI/TableView.Designer.cs b/GUI/TableView.Designer.cs index 959f308..9fa02f3 100644 --- a/GUI/TableView.Designer.cs +++ b/GUI/TableView.Designer.cs @@ -48,6 +48,26 @@ private void InitializeComponent() this.LLDP = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.HTTP = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.RstStatsBtn = new System.Windows.Forms.Button(); + this.FireWallTable = new System.Windows.Forms.DataGridView(); + this.Dev = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Direction = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Protocol = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SourceMac = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SourceIp = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DestinationMac = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DestinationIp = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SourcePort = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DestinationPort = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.FireWallTable1 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.deviceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.tTLDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.physicalAdsressDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -60,6 +80,8 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.DeviceTable)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.CamTable)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.FireWallTable)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.FireWallTable1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).BeginInit(); this.SuspendLayout(); @@ -127,13 +149,13 @@ private void InitializeComponent() this.CamTable.Name = "CamTable"; this.CamTable.RowHeadersWidth = 82; this.CamTable.RowTemplate.Height = 33; - this.CamTable.Size = new System.Drawing.Size(664, 429); + this.CamTable.Size = new System.Drawing.Size(761, 429); this.CamTable.TabIndex = 3; // // ClearCamButton // this.ClearCamButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ClearCamButton.Location = new System.Drawing.Point(1326, 35); + this.ClearCamButton.Location = new System.Drawing.Point(1423, 35); this.ClearCamButton.Margin = new System.Windows.Forms.Padding(4); this.ClearCamButton.Name = "ClearCamButton"; this.ClearCamButton.Size = new System.Drawing.Size(100, 44); @@ -144,8 +166,8 @@ private void InitializeComponent() // // TTLBox // - this.TTLBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.TTLBox.Location = new System.Drawing.Point(1296, 630); + this.TTLBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.TTLBox.Location = new System.Drawing.Point(1393, 666); this.TTLBox.Margin = new System.Windows.Forms.Padding(4); this.TTLBox.Name = "TTLBox"; this.TTLBox.Size = new System.Drawing.Size(136, 31); @@ -153,8 +175,8 @@ private void InitializeComponent() // // ResetTTLButton // - this.ResetTTLButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.ResetTTLButton.Location = new System.Drawing.Point(1296, 688); + this.ResetTTLButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ResetTTLButton.Location = new System.Drawing.Point(1393, 705); this.ResetTTLButton.Margin = new System.Windows.Forms.Padding(4); this.ResetTTLButton.Name = "ResetTTLButton"; this.ResetTTLButton.Size = new System.Drawing.Size(136, 58); @@ -165,7 +187,7 @@ private void InitializeComponent() // // StatisticsTable // - this.StatisticsTable.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + this.StatisticsTable.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.StatisticsTable.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.StatisticsTable.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; @@ -181,12 +203,12 @@ private void InitializeComponent() this.ARP, this.LLDP, this.HTTP}); - this.StatisticsTable.Location = new System.Drawing.Point(44, 630); + this.StatisticsTable.Location = new System.Drawing.Point(44, 595); this.StatisticsTable.Margin = new System.Windows.Forms.Padding(4); this.StatisticsTable.Name = "StatisticsTable"; this.StatisticsTable.RowHeadersWidth = 82; this.StatisticsTable.RowTemplate.Height = 33; - this.StatisticsTable.Size = new System.Drawing.Size(1130, 196); + this.StatisticsTable.Size = new System.Drawing.Size(1227, 196); this.StatisticsTable.TabIndex = 9; // // DevName @@ -260,8 +282,7 @@ private void InitializeComponent() // // RstStatsBtn // - this.RstStatsBtn.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.RstStatsBtn.Location = new System.Drawing.Point(44, 542); + this.RstStatsBtn.Location = new System.Drawing.Point(44, 524); this.RstStatsBtn.Margin = new System.Windows.Forms.Padding(4); this.RstStatsBtn.Name = "RstStatsBtn"; this.RstStatsBtn.Size = new System.Drawing.Size(194, 60); @@ -270,6 +291,184 @@ private void InitializeComponent() this.RstStatsBtn.UseVisualStyleBackColor = true; this.RstStatsBtn.Click += new System.EventHandler(this.RstStatsBtn_Click); // + // FireWallTable + // + this.FireWallTable.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.FireWallTable.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.FireWallTable.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.FireWallTable.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.FireWallTable.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Dev, + this.Direction, + this.Protocol, + this.SourceMac, + this.SourceIp, + this.DestinationMac, + this.DestinationIp, + this.SourcePort, + this.DestinationPort}); + this.FireWallTable.Location = new System.Drawing.Point(44, 820); + this.FireWallTable.Margin = new System.Windows.Forms.Padding(4); + this.FireWallTable.Name = "FireWallTable"; + this.FireWallTable.RowHeadersWidth = 82; + this.FireWallTable.RowTemplate.Height = 33; + this.FireWallTable.Size = new System.Drawing.Size(1485, 209); + this.FireWallTable.TabIndex = 11; + this.FireWallTable.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.FireWallTable_CellContentDoubleClick); + // + // Dev + // + this.Dev.HeaderText = "Operation "; + this.Dev.MinimumWidth = 10; + this.Dev.Name = "Dev"; + this.Dev.Width = 157; + // + // Direction + // + this.Direction.HeaderText = "Direction"; + this.Direction.MinimumWidth = 10; + this.Direction.Name = "Direction"; + this.Direction.Width = 142; + // + // Protocol + // + this.Protocol.HeaderText = "Protocol"; + this.Protocol.MinimumWidth = 10; + this.Protocol.Name = "Protocol"; + this.Protocol.Width = 136; + // + // SourceMac + // + this.SourceMac.HeaderText = "SourceMac"; + this.SourceMac.MinimumWidth = 10; + this.SourceMac.Name = "SourceMac"; + this.SourceMac.Width = 166; + // + // SourceIp + // + this.SourceIp.HeaderText = "SourceIp"; + this.SourceIp.MinimumWidth = 10; + this.SourceIp.Name = "SourceIp"; + this.SourceIp.Width = 142; + // + // DestinationMac + // + this.DestinationMac.HeaderText = "DestinationMac"; + this.DestinationMac.MinimumWidth = 10; + this.DestinationMac.Name = "DestinationMac"; + this.DestinationMac.Width = 206; + // + // DestinationIp + // + this.DestinationIp.HeaderText = "DestinationIp"; + this.DestinationIp.MinimumWidth = 10; + this.DestinationIp.Name = "DestinationIp"; + this.DestinationIp.Width = 182; + // + // SourcePort + // + this.SourcePort.HeaderText = "SourcePort"; + this.SourcePort.MinimumWidth = 10; + this.SourcePort.Name = "SourcePort"; + this.SourcePort.Width = 164; + // + // DestinationPort + // + this.DestinationPort.HeaderText = "DestinationPort"; + this.DestinationPort.MinimumWidth = 10; + this.DestinationPort.Name = "DestinationPort"; + this.DestinationPort.Width = 204; + // + // FireWallTable1 + // + this.FireWallTable1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.FireWallTable1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.FireWallTable1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.FireWallTable1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.FireWallTable1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6, + this.dataGridViewTextBoxColumn7, + this.dataGridViewTextBoxColumn8, + this.dataGridViewTextBoxColumn9}); + this.FireWallTable1.Location = new System.Drawing.Point(44, 1067); + this.FireWallTable1.Margin = new System.Windows.Forms.Padding(4); + this.FireWallTable1.Name = "FireWallTable1"; + this.FireWallTable1.RowHeadersWidth = 82; + this.FireWallTable1.RowTemplate.Height = 33; + this.FireWallTable1.Size = new System.Drawing.Size(1485, 209); + this.FireWallTable1.TabIndex = 13; + this.FireWallTable1.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.FireWallTable1_CellContentDoubleClick); + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.HeaderText = "Operation "; + this.dataGridViewTextBoxColumn1.MinimumWidth = 10; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.Width = 157; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.HeaderText = "Direction"; + this.dataGridViewTextBoxColumn2.MinimumWidth = 10; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.Width = 142; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.HeaderText = "Protocol"; + this.dataGridViewTextBoxColumn3.MinimumWidth = 10; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.Width = 136; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.HeaderText = "SourceMac"; + this.dataGridViewTextBoxColumn4.MinimumWidth = 10; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.Width = 166; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.HeaderText = "SourceIp"; + this.dataGridViewTextBoxColumn5.MinimumWidth = 10; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.Width = 142; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.HeaderText = "DestinationMac"; + this.dataGridViewTextBoxColumn6.MinimumWidth = 10; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.Width = 206; + // + // dataGridViewTextBoxColumn7 + // + this.dataGridViewTextBoxColumn7.HeaderText = "DestinationIp"; + this.dataGridViewTextBoxColumn7.MinimumWidth = 10; + this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + this.dataGridViewTextBoxColumn7.Width = 182; + // + // dataGridViewTextBoxColumn8 + // + this.dataGridViewTextBoxColumn8.HeaderText = "SourcePort"; + this.dataGridViewTextBoxColumn8.MinimumWidth = 10; + this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; + this.dataGridViewTextBoxColumn8.Width = 164; + // + // dataGridViewTextBoxColumn9 + // + this.dataGridViewTextBoxColumn9.HeaderText = "DestinationPort"; + this.dataGridViewTextBoxColumn9.MinimumWidth = 10; + this.dataGridViewTextBoxColumn9.Name = "dataGridViewTextBoxColumn9"; + this.dataGridViewTextBoxColumn9.Width = 204; + // // deviceDataGridViewTextBoxColumn // this.deviceDataGridViewTextBoxColumn.DataPropertyName = "Device"; @@ -342,7 +541,9 @@ private void InitializeComponent() // this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1522, 851); + this.ClientSize = new System.Drawing.Size(1619, 1678); + this.Controls.Add(this.FireWallTable1); + this.Controls.Add(this.FireWallTable); this.Controls.Add(this.RstStatsBtn); this.Controls.Add(this.StatisticsTable); this.Controls.Add(this.ResetTTLButton); @@ -358,6 +559,8 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.DeviceTable)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.CamTable)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.StatisticsTable)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.FireWallTable)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.FireWallTable1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.camRecordBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.deviceBindingSource)).EndInit(); this.ResumeLayout(false); @@ -395,5 +598,25 @@ private void InitializeComponent() private System.Windows.Forms.DataGridViewTextBoxColumn receivedDataGridViewTextBoxColumn; private System.Windows.Forms.Button RstStatsBtn; private System.Windows.Forms.DataGridViewTextBoxColumn HTTP; + private System.Windows.Forms.DataGridView FireWallTable; + private System.Windows.Forms.DataGridViewTextBoxColumn Dev; + private System.Windows.Forms.DataGridViewTextBoxColumn Direction; + private System.Windows.Forms.DataGridViewTextBoxColumn Protocol; + private System.Windows.Forms.DataGridViewTextBoxColumn SourceMac; + private System.Windows.Forms.DataGridViewTextBoxColumn SourceIp; + private System.Windows.Forms.DataGridViewTextBoxColumn DestinationMac; + private System.Windows.Forms.DataGridViewTextBoxColumn DestinationIp; + private System.Windows.Forms.DataGridViewTextBoxColumn SourcePort; + private System.Windows.Forms.DataGridViewTextBoxColumn DestinationPort; + private System.Windows.Forms.DataGridView FireWallTable1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; } } \ No newline at end of file diff --git a/GUI/TableView.cs b/GUI/TableView.cs index 0021c5b..fe60191 100644 --- a/GUI/TableView.cs +++ b/GUI/TableView.cs @@ -12,7 +12,7 @@ public partial class TableView : Form public Network N { get; } = new Network(); public Device D { get; } - private int q = 0; + private int q = 0, higher, lower; public TableView() { @@ -21,6 +21,9 @@ public TableView() DeviceTable.RowHeadersVisible = false; CamTable.RowHeadersVisible = false; StatisticsTable.RowHeadersVisible = false; + FireWallTable.RowHeadersVisible = false; + FireWallTable1.RowHeadersVisible = false; + DeviceTable.DataSource = N.Devices; @@ -32,14 +35,25 @@ private void StartButton_Click(object sender, EventArgs e) StartButton.Enabled = false; StopButton.Enabled = true; int i = 0; + int heh = 0; foreach (DataGridViewRow row in DeviceTable.Rows) { if (Convert.ToBoolean(row.Cells[0].Value)) { + Console.WriteLine("\n" + i + "\n"); N.Devices[i].Open(); q = StatisticsTable.Rows.Add(); StatisticsTable.Rows[q].Cells[0].Value = N.Devices[i].Name; + if (heh == 1) + lower = i; + + if (heh == 0) + { + higher = i; + heh = 1; + } + } i++; } @@ -222,11 +236,71 @@ private void RstStatsBtn_Click(object sender, EventArgs e) private void DeviceTable_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { - var firewallWindow = new Firewall(DeviceTable[e.ColumnIndex, e.RowIndex].Value.ToString(), DeviceTable.Rows.Count); + Console.WriteLine(e.RowIndex); + + var firewallWindow = new NewFireWall(e.RowIndex); firewallWindow.ShowDialog(); + N.Devices[e.RowIndex].FirewallRules.Add(firewallWindow.GetRule()); + + if(e.RowIndex == higher) + BuildTable(e.RowIndex); + if(e.RowIndex == lower) + BuildTable1(e.RowIndex); + } - Console.WriteLine(DeviceTable[e.ColumnIndex, e.RowIndex].Value.ToString()); - Console.WriteLine(N.Devices[1].FirewallRules.Count.ToString()); + private int g = 0; + private int gg = 0; + + private void FireWallTable_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) + { + FirewallRule remove = N.Devices[higher].FirewallRules[e.RowIndex]; + N.Devices[higher].FirewallRules.Remove(remove); + BuildTable(higher); + } + + private void FireWallTable1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) + { + FirewallRule remove = N.Devices[lower].FirewallRules[e.RowIndex]; + N.Devices[lower].FirewallRules.Remove(remove); + BuildTable1(lower); + } + + public void BuildTable(int z) + { + FireWallTable.Rows.Clear(); + for (int i = 0; i < N.Devices[z].FirewallRules.Count(); i++) + { + + g = FireWallTable.Rows.Add(); + FireWallTable.Rows[g].Cells[0].Value = N.Devices[z].FirewallRules[i].RuleOperation; + FireWallTable.Rows[g].Cells[1].Value = N.Devices[z].FirewallRules[i].RuleDirection; + FireWallTable.Rows[g].Cells[2].Value = N.Devices[z].FirewallRules[i].RuleProtocol; + FireWallTable.Rows[g].Cells[3].Value = N.Devices[z].FirewallRules[i].SourceMac; + FireWallTable.Rows[g].Cells[4].Value = N.Devices[z].FirewallRules[i].SourceIp; + FireWallTable.Rows[g].Cells[5].Value = N.Devices[z].FirewallRules[i].DestinationMac; + FireWallTable.Rows[g].Cells[6].Value = N.Devices[z].FirewallRules[i].DestinationIp; + FireWallTable.Rows[g].Cells[7].Value = N.Devices[z].FirewallRules[i].SourcePort; + FireWallTable.Rows[g].Cells[8].Value = N.Devices[z].FirewallRules[i].DestinationPort; + } + } + + public void BuildTable1(int z) + { + FireWallTable1.Rows.Clear(); + for (int i = 0; i < N.Devices[z].FirewallRules.Count(); i++) + { + + gg = FireWallTable1.Rows.Add(); + FireWallTable1.Rows[gg].Cells[0].Value = N.Devices[z].FirewallRules[i].RuleOperation; + FireWallTable1.Rows[gg].Cells[1].Value = N.Devices[z].FirewallRules[i].RuleDirection; + FireWallTable1.Rows[gg].Cells[2].Value = N.Devices[z].FirewallRules[i].RuleProtocol; + FireWallTable1.Rows[gg].Cells[3].Value = N.Devices[z].FirewallRules[i].SourceMac; + FireWallTable1.Rows[gg].Cells[4].Value = N.Devices[z].FirewallRules[i].SourceIp; + FireWallTable1.Rows[gg].Cells[5].Value = N.Devices[z].FirewallRules[i].DestinationMac; + FireWallTable1.Rows[gg].Cells[6].Value = N.Devices[z].FirewallRules[i].DestinationIp; + FireWallTable1.Rows[gg].Cells[7].Value = N.Devices[z].FirewallRules[i].SourcePort; + FireWallTable1.Rows[gg].Cells[8].Value = N.Devices[z].FirewallRules[i].DestinationPort; + } } } } diff --git a/GUI/TableView.resx b/GUI/TableView.resx index d1d3e06..6418a38 100644 --- a/GUI/TableView.resx +++ b/GUI/TableView.resx @@ -153,34 +153,58 @@ True - + True - + True - + True - + True - + True - + True - + True - + True - + True - + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + True \ No newline at end of file diff --git a/Networking/Device.cs b/Networking/Device.cs index b783527..d8a74d6 100644 --- a/Networking/Device.cs +++ b/Networking/Device.cs @@ -21,11 +21,6 @@ public class Device public List FirewallRules = new List(); - - - //private static readonly int Inside = 0; - //private static readonly int Outside = 1; - public Dictionary> Statistics { get; set; } = new Dictionary> { {"TCP", new Dictionary() @@ -122,9 +117,15 @@ private void PacketArrival(object sender, CaptureEventArgs e) { Task.Run((() => { - PacketReceived?.Invoke(this, eth); + + if (this.PassedFirewall(FirewallRule.Direction.Inside, eth)) + { + PacketReceived?.Invoke(this, eth); + Received++; + this.ProcessStatistics(FirewallRule.Direction.Inside, eth); + } })); - + /* Task.Run((() => { if (this.PassedFirewall(FirewallRule.Direction.Inside, eth)) @@ -133,12 +134,8 @@ private void PacketArrival(object sender, CaptureEventArgs e) Received++; this.ProcessStatistics(FirewallRule.Direction.Inside, eth); } - else - { - Console.WriteLine("Moja mama"); - } - })); + */ } } diff --git a/Networking/FirewallRule.cs b/Networking/FirewallRule.cs index 88e66ce..2d051fe 100644 --- a/Networking/FirewallRule.cs +++ b/Networking/FirewallRule.cs @@ -11,38 +11,24 @@ public class FirewallRule public enum Operation { - Deny, - Permit + Deny = 0, + Permit = 1 } public enum Direction { - Inside, - Outside + Inside = 0, + Outside = 1 } - - public enum Protocol - { - TCP, - Udp, - Icmpv4, - Icmpv6, - Ipv4, - Ipv6, - Arp, - Lldp - } - - - public Operation? RuleOperation { get; set; } - public Direction? RuleDirection { get; set; } + public Operation RuleOperation { get; set; } + public Direction RuleDirection { get; set; } public PhysicalAddress SourceMac { get; set; } public IPAddress SourceIp { get; set; } public PhysicalAddress DestinationMac { get; set; } public IPAddress DestinationIp { get; set; } - public Protocol? RuleProtocol { get; set; } + public string RuleProtocol { get; set; } public ushort? SourcePort { get; set; } public ushort? DestinationPort { get; set; } @@ -75,13 +61,13 @@ public bool IsMatch(EthernetPacket packet) } var arp = packet.Extract(); - if (arp != null && RuleProtocol.Equals(Protocol.Arp)) + if (arp != null && RuleProtocol.Equals("ARP")) { return ResolveValidationStack(validationStack); } var lldp = packet.Extract(); - if (lldp != null && RuleProtocol.Equals(Protocol.Lldp)) + if (lldp != null && RuleProtocol.Equals("LLDP")) { return ResolveValidationStack(validationStack); } @@ -100,7 +86,7 @@ public bool IsMatch(EthernetPacket packet) validationStack.Push(() => DestinationIp.Equals(ipv4.DestinationAddress)); } - if (RuleProtocol.Equals(Protocol.Ipv4)) + if (RuleProtocol.Equals("IPv4")) { return ResolveValidationStack(validationStack); } @@ -119,14 +105,14 @@ public bool IsMatch(EthernetPacket packet) validationStack.Push(() => DestinationIp.Equals(ipv6.DestinationAddress)); } - if (RuleProtocol.Equals(Protocol.Ipv6)) + if (RuleProtocol.Equals("IPv6")) { return ResolveValidationStack(validationStack); } } var icmpv4 = packet.Extract(); - if (icmpv4 != null && RuleProtocol.Equals(Protocol.Icmpv4)) + if (icmpv4 != null && RuleProtocol.Equals("ICMPv4")) { if (DestinationPort != null) { @@ -137,7 +123,7 @@ public bool IsMatch(EthernetPacket packet) } var icmpv6 = packet.Extract(); - if (icmpv6 != null && RuleProtocol.Equals(Protocol.Icmpv6)) + if (icmpv6 != null && RuleProtocol.Equals("ICMPv6")) { if (DestinationPort != null) { @@ -148,7 +134,7 @@ public bool IsMatch(EthernetPacket packet) } var tcp = packet.Extract(); - if (tcp != null && RuleProtocol.Equals(Protocol.TCP)) + if (tcp != null && RuleProtocol.Equals("TCP")) { if (SourcePort != null) { @@ -164,7 +150,7 @@ public bool IsMatch(EthernetPacket packet) } var udp = packet.Extract(); - if (udp != null && RuleProtocol.Equals(Protocol.Udp)) + if (udp != null && RuleProtocol.Equals("UDP")) { if (SourcePort != null) { diff --git a/Networking/Network.cs b/Networking/Network.cs index e699dfc..b963a67 100644 --- a/Networking/Network.cs +++ b/Networking/Network.cs @@ -17,8 +17,6 @@ public class Network private Timer Clk { get; } = new Timer(1000); - //private static readonly int Inside = 0; - //private static readonly int Outside = 1; public Network() { @@ -43,7 +41,6 @@ private void ClockTickEvent(object source, ElapsedEventArgs e) { if (CamTable.Count == 0) { - Console.WriteLine("Count === 0"); return; } @@ -51,7 +48,6 @@ private void ClockTickEvent(object source, ElapsedEventArgs e) { if (CamTable[physicalAddress].TimeToDie()) { - Console.WriteLine("Remove after TTL \n"); CamTable.TryRemove(physicalAddress, out _); } } @@ -66,7 +62,6 @@ private void PacketArrival(object sender, EthernetPacket eth) if (!senderDevice.PassedFirewall(FirewallRule.Direction.Inside, eth)) { //this.Log(new Syslog(Severity.Debug, $"Packet thrown away by firewall on input")); - Console.WriteLine("Packet thrown away by firewall on input"); return; } @@ -84,7 +79,6 @@ private void PacketArrival(object sender, EthernetPacket eth) } else { - Console.WriteLine("Packet thrown away by firewall on input"); //this.Log(new SyslogMessage(Severity.Debug, $"Packet thrown away by firewall on output")); } } @@ -103,8 +97,6 @@ private void PacketArrival(object sender, EthernetPacket eth) else { //this.Log(new SyslogMessage(Severity.Debug, $"Packet thrown away by firewall on output")); - Console.WriteLine("Packet thrown away by firewall on input"); - } } @@ -113,11 +105,8 @@ private void PacketArrival(object sender, EthernetPacket eth) if (CamTable.ContainsKey(eth.SourceHardwareAddress.ToString()) && IndexOfValue(CamTable, senderDevice.Name, IndexOfKey(CamTable, eth.SourceHardwareAddress.ToString()))) - { - + { CamTable[eth.SourceHardwareAddress.ToString()].Refresh(senderDevice); - - } else { @@ -163,14 +152,12 @@ public void Stop() device.Close(); } ClearCam(); - Console.WriteLine("\nStop\n"); } public void ClearCam() { CamTable.Clear(); CamChange?.Invoke(this, null); - Console.WriteLine("\nClearcam\n"); } } } diff --git a/bin/Debug/eSwitch.exe b/bin/Debug/eSwitch.exe index e5222382ddd057552d823b7d47c42aac387e91b8..fdd0e9c7bf779379cfc6ae9fda526b8ed544b624 100644 GIT binary patch literal 45568 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 Budx6C literal 44032 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 TXzTVl|5FYAZ#(~g^1%NEzF}q4 diff --git a/bin/Debug/eSwitch.pdb b/bin/Debug/eSwitch.pdb index 76f15d9d16c1c4e8011ea4f65e879afd65e04dfc..bdb06bcca4eadad9d55072fe220c92ca702d3ce0 100644 GIT binary patch literal 95744 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
?avE?Rj_T7pjuwNDC^*F+A8HPt$ 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 literal 99840 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 - - Form - - - Firewall.cs - Form @@ -106,9 +100,6 @@ - - Firewall.cs - NewFireWall.cs diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 6404e7fd989b6d9bac8e8884f4dbedabcb8d81a9..2b3662bc5c95739ba10851062cc371660837bf7d 100644 GIT binary patch literal 11217 zcmeHN&yyQR6`qzfBlWE9wZVi0Lf8O-BwmlS-d(TlvSY8cUfbn(+3arF2FqTLMlJ0` zqZu(X+Vv)Yolpfu6-{w-}9Qg1TFEI$hlrZV7tV&DTVM3O(h9ZuNvGNqI?@CrVF5{rIBW zFm2uH*ZJ!!r_TSfK;58AdX6qGgQ2+sir%LlMme!*wrnzPRriF%*x{fel`BPJjp~`& zs_V2|y)(5;*6^mDzkllF3$-=T6t1uhF}3J*7=@X!8VtvQ-jjftx)@$oqy4zhf^zQLF z?SxjLd9(!0!d`ix=m06&pP7#gbW878K}!dzrOtj%Mb)vJW~=802nd=yL`^Qdzm;NZ z)lIv$B?+?A|0GKKItUC3q24Rh6f3rzKv|W-GHZrzM8Iq94P8pBNUzct#0+a##>! z9wqqnkf02^?8ER21qH*O9yTo2m1t;@Gu&Mv_t&3Am`WR`!tFb#5}5dzzyIcM|G4|7 zz{LDhRLY+L`!q3SikP}ht5}<_ESy-77+^5UIL`)xiFpB3MhSjqNKgix#<3#2-3Nk5 zZrT*~3QhZJLuqy>x-=1_$gX+D{zs-g6#1bj{KDKjht3xN`NPQ4pQQr+IWWXh<@3Z6 zz-IglD1DyT!GZXuyg)?~!}=R#-WRDnp+-7zj0#qwt_$daVwx6d3FE=f{kU zlSq(&_$9+>h&siQVq5HXb<>q~Z{2r`rniojprU5Cw@6C3+3ECxq^abJj^6Ex1_8Z@ zyh+OE8Tl5%0?Q4}PpQO8^L;xd9r|AO(O-L4!rnQq>2Gz;K5DH93E_C6pvoBg73(Y5 zOZ+YiTezkXB!KI}zc+LH_BhLXdTLnuznkISxdU7UE<~B8C*BYGDnE{QjTi{VW)FxJ z{zysqe`a9lC~hN1-Q1K)g@>f<52WnF*?mAKT2N+)T|+E7Q!baQXUc;qPB{wNWlC|% z{n3UgPB}_(_R0}dRpkU}ywI23+gSv8(W7iE?4D(j4n9k)2(KL2GuQ@?E-x@b4fQj%X}xkKJm{Jw~fJToVgq(_(}em7k(FewrAlzarT02*g+wg@;u7TY3Ph z11O#)x$_?k#Tb&5N0x&;G6pH~NL4vUT3(7|_P`hHX~zJcT11cvx{ds;Fcwq-;JrlE z_<67kV2fZE!Kz?O#Eu{Yf(nRwL!KFXOJ(!A{;K2B&7^&#vKj2!`R1C~Hj%`lYKaJ< z=p>pYTfR35Uj)iAI3y^C2!4)9#@hP-biwcg@$SCV-=vI)QX8Nive141XE^Lj2t#G$i8Xm*|y$If0iDdp}KL?dvhLu6$@&#fUtTI@Iuxbz*hT^55B2LHWeG0+#gCw}V zp9Ysn@-nvi8MrcVh2VOX(2zVRZsQ&2n=ysRdMk;n@1>FDkhpx2Sca?&Ss}8zgodNh zSCr_FAKJ3xc084Tg?{2Lv6w=TeK!fR@1#N2BXJq$lNrb|kcA-ICNxa+Kh?QHw}3Mo&!ogB zvELqS51Vf&z-OQ&G3>GX3ceBjG>M(npn`i;GExC{Q)varo&yD!jvoDe^Ys^RF{IK^ z0E@>LJxUB2b6NqCBv6haQ$j_Vt~^~aF(gFkiU@pzT}Kog*>wcFv;ugyK?QJiBNf1- mr4<0bfr7WsZ$3Eku6l+6%p(;5vnd4(xB-wE!-ND+6aNCM`XOWh literal 12199 zcmeHN-)|gO6`s4^ncZ2ZbpmN=p%fP=w2d>iV>?bF(!|-sO-SRqwn+-v)ScbEyB<8d zv&_u;M=P3C6i`bmN+Vhx;00db0f`4B1Uw)i5aJK0#0wIC07AU;P`+<|tY?3e#*{@M z&6W0>**j;>xpVG!&pr3fC_+(`cTsp`IgkN7d&R1_j_1^T<6PUatHzq?ZF)x0aplDL zRq1+`(>y&rXG|MY#?-`kv2FWpSDtRlw(pwu#Q1W%Y+IGfa(B(yl+DxSshQebZN4@= zU7edUXH1pG9vW<8b=UJ{W7Ri(Nh!T%*)sSy@<4bAt*~ub@zDg&xM+GCzFD>=nW&A?B27(ZPl&|H>P?{OcWa&+CQH{sl(=}AS1gS_!B{IndP zT0B)+cAdIwHpUm>4R8FBofF3&Ev?9!bY-(5#}_Eka&yJML!5Sh}#b z_it;~m^Y4l=BM-F<%Y}kP%60I@Ju862+EIMw(3ryY(ll5VmJnx#@ zRMdu%6z$K^k!-RVX_YyurxQ}o@;iH6) z5gs6XobVvw6NGVqN(Dzc5w&Y73rFuA$rP~nVOkCsR*{8?dTQ!WUnBf zaggArdIjl+L4u#|5mf1`Av}IItMTzCdL7HSD62*^ne8rN`sxsft}^y>!}S}yC2;YB zfB*I0{_*Ue0vGGSy!;tl(mxB(9sv}#5QUAosrh5`iXb%xIp@(pFwrlh&mh6adId?b zL4rqm1xdp}f)l-hr0O8SqdkHu>Aar~!v}IH{7z`x-)w`09q~ zEi7f57+RUu=16PPA3;!3YqnYUa+OxwbSoQ_DPGD{tQ<}@7VNqXks!(S^A)Em%g9x7 zn{u~hTCQq(tG=7Fyj70Y0`F|K7obG98jW_4nCD&DFk3BI#bC@aH&;eR1mYh^BQiZ5 zna_*-T*ptzNp&y7?Zk(RVe1^%@;4fvyVJWO%7o7oC2m59pNo!yy~V{7vMF7w5-c)S zrT^UY_3QfyK@;P>(*N02)QubDRS@R16FAd5iDf}Q$^WMSEOfTG3CR8)3%!5O!PJr4 z;yP%3UCC!}LD}!1?1TBeOD8R8rvaBaU!IzroGhN2>`tR6qnu_EQ~hM;X~Q&nGD@TO z>X{4_w8x?GY)5u)^%~^fcd~eGwrv|a^fQ1QXO6(1!BTTy)DstTd4gdPS_WL1201E%=^TKVt(0iaj>w|*4BfK4Sjt@ZdpuGd21epqRiviU2y8VV;o8>8Nu;HR;Y-+uWk`Nb6=9ok zOIa4O>|0>NXy@IgD+~H-sL@{s#3kgGo8;D4`nmN6#MKo*%B_@JA-BE*HpDO5q7Uv0 z`kScKZv)~I(#uZLYqOtTZ$Vt;8>9WaZ{i->eHDCOW>uxTBJrhV9e}Ta7x6(u`0e76EF>jx@u2P)ud zEl_ab@ZmqyUU=*o!KE7&(D(5Vr;6YTt*-@w`8dT@{DQAPaAXloyZgk)ZlSij!OXP= zHkc_@zXHyjfr9DZoVfba<4bdb)9642oGtqmFg$j*fU$C*0*1tX1#iX*es*U4=Am~A ZrvyjCKm{ayp8`SR1^qABkHOjKKLO;)IvW50 diff --git a/obj/Debug/eSwitch.GUI.Firewall.resources b/obj/Debug/eSwitch.GUI.Firewall.resources deleted file mode 100644 index 6c05a9776bd7cbae976fdcec7e3a254e93018279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh diff --git a/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache b/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache index e3448c3..df25e21 100644 --- a/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache +++ b/obj/Debug/eSwitch.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -9b637a5a8fb89f7bd4031edd68effdaf93a3449f +fb80b9445a33fdbefbb139346431acddffde6875 diff --git a/obj/Debug/eSwitch.csproj.FileListAbsolute.txt b/obj/Debug/eSwitch.csproj.FileListAbsolute.txt index 8c63f57..0af3260 100644 --- a/obj/Debug/eSwitch.csproj.FileListAbsolute.txt +++ b/obj/Debug/eSwitch.csproj.FileListAbsolute.txt @@ -18,5 +18,4 @@ C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Buffers.xml C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Memory.xml C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Numerics.Vectors.xml C:\GIT-Repositare\eSwitch\eSwitch\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml -C:\GIT-Repositare\eSwitch\eSwitch\obj\Debug\eSwitch.GUI.Firewall.resources C:\GIT-Repositare\eSwitch\eSwitch\obj\Debug\eSwitch.GUI.NewFireWall.resources diff --git a/obj/Debug/eSwitch.csproj.GenerateResource.cache b/obj/Debug/eSwitch.csproj.GenerateResource.cache index 269c8f772636d626dfedbc8b45c2c4e76a9f94e7..3d30ee48f9bdb444b89f3056027a58e3fefaf6ee 100644 GIT binary patch delta 64 zcmdnNv4dknD-+|Z&23DfjBJ$_yE9m3PkzWOro{ZLJ$Bcu8y$>{0t^fcd_c@83Lo1f2`EXg7d0IK~H7ytkO delta 64 zcmdnNv4dknD-+{^&23DfjBKGjnNlj#CqHBsQ?iR+TD4*NjSfae0R{#JJ|N~41rfYJ Q;;p9Xg~ih+OR~rV0EiV4xc~qF diff --git a/obj/Debug/eSwitch.csprojAssemblyReference.cache b/obj/Debug/eSwitch.csprojAssemblyReference.cache index d4ec0724bf3efece54a1ba166fa7e9daf504a8bf..8fdee2ee43306e324297697f7b28234822b46894 100644 GIT binary patch delta 14 VcmZ3%yn=ayKO@s#_Q`>a;Q%8{1X%z8 delta 14 VcmZ3%yn=ayKO<8w+vGsTZ~!7F1SkLi diff --git a/obj/Debug/eSwitch.exe b/obj/Debug/eSwitch.exe index e5222382ddd057552d823b7d47c42aac387e91b8..fdd0e9c7bf779379cfc6ae9fda526b8ed544b624 100644 GIT binary patch literal 45568 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 Budx6C literal 44032 zcmeIbd3>D3kw09|GxzAQW^^C6#s(7^*}^Bt*apd#jRn52WgBy>8B1e(Y)OxJX5<4Q zkib9)CJQ03aeyo)5H=y?Bnb&2Ku(-D_d+%#f#9%7Ab}+8CciA3V1D1K?&lauK6XFv zXW#da9Z)@0)z#J2)z#Jg^z+Pk^`*B{fQW+ld*>aZ$8qIPo4^x;5fqm;eyNlmi+y+M zlLxTP9@>_NTJ_sgAW9QhioWrlq7Le!5n@ZaL8^ zBS0(fsXpYi_A*VQB4aku1K>mz_r1^Hn!?}9_+#r*xR}arU=(J+pOhhdMgw%^jYMVg zzjxIn3*fUDde<`YGSR&uM#g>&DhBJZr-@p}7M+Mrxu%O$6!c1;d`mvFFAw_thXGI~ zeMNu#pA^xREq2cC22*T%83=duLHzkXZE#47o$0k8$hHz`AAC#*7qk&AbqS3Op#S_~ z+e`}4r}~I~zK(rovX=0{uMjnju}dl(2kfGzDxx@5HC6K^w*@+yY8X9pn%PthTMu!}^3XoIK@@DtA;`i_lR@O6!yI9g&YWTn!4SEE8HD+PVL?!U*`gSNfPu(S z3_-xaFe!#0U_=~-AY$`+?L$+%G|a7;Rl}^oymktV8D>#4$4(oDg+c8!LG0cTf$AH%s7*%9===*{b0f;LtH&xRTNGdO^w`VPsiB0^iok|W+dE{VzHl} zX<+)8z|NR0Lk7J8IuCkb<-~fMN?<{;8Li%;Y>75ag{G=wMoEF<7;JQOziW=t4KHDk zl-mRW1E$IlAYN2~ASi$b6hjdBGe9$77u=mNhv0=^JX{nBG)+U}d5mX$v3U)1qmd?1 z&GB$#-Y;OnaqFFaqIzf^Zc)t(!g`|gNoeMe9z8bQ%uR=);Yos?0d%?zcMRm-#b{O4 zE~^O$O|Nz^3w;1><8pGLIj16Y{;3G9J{6(Ory`U-6`|~@2<1*LG|bL-XGM@h8?&N{ z(~Mj(z2%C@gloXUfXA(7fMFS%z%XJp$azQQcuY6MbQ4leShCGeF>zSJJQl`yg>y5x z`YawG#czx?#;q2Qw$5Vw%=hSGYqqZlV})wkG}ytp?n=Z8CT1eHom&i>!`sjpRR^uP z5FVNb&@>;QC>$9?rZa}SQ5+s(SaB>+9G!Uvg^z`Iuw@Ha_H2MNz}Z>Ip)+~TUWm40 z+`oWz4&+k%FoBO@j?4t5dK0j)zQwJD0B`~t3>TS^>Pt9B!g0<=xgV@9)4T^>$^ zXTHm6jf3d;t--3Gh1|(zmPZm1uO8386VwZGvXxrVMAWOr6Y_+$;B=`KOT@fdJVQ@d z3tpF6@kHFKwfbbW5Y1AnC{g6qI%!*oN2yhuDE4acq&}gAh%Bj9k|^PKC9}CFyeX_By#N->FLG8%#Su9(3-7f;1o5V z9kDuqlu%4UC@e9Pq8Ly2aCs;hsy>LRY#ytEsrA-!h?a+6Ivp{!0_d!-%GwmME&xG4 zS4$$i9xe|zQvy2^73(IQPfJJLwJHG{WLF>v)`Xo3#hV+F)YJ*A2%WwVS1ifM zAt9(PEF)?%h;L2 zgRlfcxCa-?t>U)KCgjAhGlwfFf^qBxCx`HjTWbI~F(B263}*FACDS)XCOpJSEsjnY zJ=ttR+6tFPl97gkFbBg5JJhf?8-CXpFwLQV;nM_V7n9M>8!{LLjXzlO;ZY2XR! z*RYK>Xcasihxc+MGpWUO&APVef*+E&gp z%x~BcWLeiTp7O){#4?6#S!trQz_Lk+NxId6ajiO*l_kow%vIxL9Lws*S(Zp73M@Oz zZy6$`d3e8A#?bHonz5RA1e1y6%!P0$7K(6rMY5u4EkdQdJW;L=vF|k83*n(xwgI#BqPtg=1cKHUmS%scoZUvtZ&Yj6xfn#2wk}l?yf1tha@f1^ zz86bt*t!fwSQ)S}OprZ{6};(k7H+*Ba*oUu;P4%2v$YjiQS&0)RbC0KSPMk0G$^YY z`p~TgvhQ;Bs8*uMptTJmXAq%kH?Ub>#=>J9tHQeIEIew2r_TzU(Hu2{Ru81mE7hk( zwDJbE4%N>N)8!aLEOdz+k{aHQm$2W%=p*iP(Z?rT z+ghukM;WLEvCD{C+ZpTtD2^^1^}H}ng!^0)vk-YV*2jo~7lR3=WsQB~|F5w&T zW@{I>9B#fM5w>y8xvHrtvzM1oOmZLHP`|~tg>%@1#4Rk~h*NzIQfKTsV8E}4QtYv=z!h7)1Xabc%d#L?)I2X@VPVBoNSaMp zJu&LZVDKQaQvI>|U-7%*JT)jFEes^;qF z^-x%tr+g0$e;|HkepjgZZP$ABk$}+yPQZM&!}$kegZzuVdw7^ja8?Ejf@a0=RK7G} z%%ls*%3%yia~lQBrqv*f>mb#TsD#$u-m* zN5eU+q2yFF)E-B}SDtzI6UmdN!&Ea&~v)bktw0E?-5x#O<{ z)EPc%@iQglrkO?N5Km5QaFDvOsVGI5GDD>eK81caE9QD3`c)7W`D5m80e5&B1kK!g z80FA5bGI^jx`$5pP$Vcv;9VYyWz^x$@K8))hYM33bS9%}4jp8h%%@3&1%VShqcY6eO zcWW_Zxqkr5`heoILu#x;9$|eDcw_9g9P;k;Dszb4^uY9LbBLYv!1Nk(h+Xu+^jdR> z9rVETI&+BK^T70abBLYu!1M-lh+Xr*^vUKBJLZAu$ieKE2dsO%h8ov2UQ*C)HpSlW z>ozkQ*IV~`b*%f?xT)5MJXY%R2z)rnfDiqyQT@`c;Xc@RvF3kN6`6rE*ZV!neuRq; zdyLex2q5bL#o)f%pY9~|C{VyLVNW)_QDBCrz$?}Y zm{FjBW656VQ@{*Qfmf^*Frz>L$DqB|r+^ur0) zZhA;vt&hmHs_9|5rYfU|%zFYlGMoNMxJ@6$Mdyc)`8m)Vv=qn2nfE}Gn*4%0Q<|gN zdPHhfHGQ0~XI_ncOAFZUz9le>ybN*^raGV58@#vFAJcl2D>;Yn@G$SK0I8_hIeQO~ zVG>m%@8+-zk>?55Lm~3U`5=c!S@{rF+o1Ic=o(y#+C>pQBH{z{nK&O~iHP+{6y~vo zGLn&|1oo7(0#(gsB9i+w_!b-+MtUBaTc8Ffaurcu#Xu7*m%TdQQ&ecxvD{}^1^O&1 z<`k%qo1@A^(5EHTg#E2(;hT_3ttAo4eU{aMKQ=H69Bj45a7M;)(AP0C z@YNX34TT(Yh{s1(N98N)F&F}8xNO<%mB*8D|8CDK_N~6ksZlax0 zXHDlWHBNHYbf&7UFG32#$%OSK;5D~lj$tjeM=`6hl-jrQ)q27cYs@yzDOd`*u6>9T z)g7Kx>Z1mB08D&lsVysXkOH(9L}NNuO?JDBX<(x|v_==;l%KbTj34 zlnLqR6sMz8aTdZI#S(yPjr|Mhc&+`0TQBdS4=Q-mk7b=_Llk|d6V7`5wPdPItQZ5RL z9pyX=J>^1WQ@4#(&V2h3pK@kQq+Aq~ILdimd&-5%rv5xuIrHu3eae|Jk#bQ`>L}+- z;VBm?n@aNv{r8w>&idmnM%zU*u)$NMlWn($ZiazgjoWy)<=ih5EP zkDXJ@x0m?*%#75HFmFuLqM+PqTB=>d)pXOmfOt(a#N3Ut7 z+@__dC-uVErkQVl($};I4v*=wFx{0*>OARdmzQF%U8dZ2rKl&heC#Y{zWuzfU1p@P zRUg}BQQ+Q2OSM;gO}7;^&6L};6!oOa$99?db|~acWM-rurEyJ*f*Qx$Qmve;=>Tgl zXqu_i!)PnDVr*D(kv-4XpvYo>PN^u%z7M&*odQk)ue@ecMM zSjPt>$xJ)peNc)Ylc)9ub-RW4J*-jR<>)&h?sXxDhoF$d@leR&$SmaWG%4ipge~N7 z_9*0V9xLQ+Wss8)?3$A(tYj;5?{vvdXS!*wi3Bw7CtxOl>X*M!CnY;o(y0(hy> z8(6%MHQ~U{3`eT@eZ4An-NJ_qblEpv)!wM+XBS}`GfW;vyJz<9==!AfbBeHyTy%12 z{Y*l=l*qw!Lf!fyL|AT*PAaXRI)vq>>7>&7F+*5xtxhVfpDTpr2JEEL`WZr4ZqrUG z-567k9Kv?4(1oo(!yp}ZF!4N{2NRF77k+rmU{?K?2Gb{f3WMpBK83;bNuR=C`lL@` zFn!XeFql5+Qy5I2^eGIcPx`onSzV-ZSyUd}pL@~YIG06LF5~k+?-~A?MC}cjoS2|U zm-J;!Z+<~j5*g4-`5Df4I3MV=aS>*bJkK$y4dwDNhmZ=L<-nA+p-Qa{{z}do=4EK> zyR7(3es4um{3_AChvWrKbLe7D-{0d5^?d*+xN_tX>8SnCAm*YC*xPtuB|A_=Sg`JW{SMX#SVd$x8bOleQamJ}?bOleQ zk$*vXd7g&H- zc3o|qC(9dt{SwFq55*ye!`-X@>L}d41^a_kAc@bW)_@3v6OqzCshu6 z=N5W{cehs`H@EO>!SPeU#!raUdl5Bb?Bh5ow2wLVqdxnX(Rk$;`ZK$=1(3!hI2k#pFetI`=&s9)5WbhX-HY z!{MQq_i%XN-B)X5P7KK)s$&-k0F2(|g3)8KLhmrg{;tnE%|gmj#0<|vOpWmnvr-?J&_i70p2Bj< z!aWwEm}eA=7aw`ej+Y*J&5jqI2c|d1 z%pqQP+_2{+8)uFmF6I|{k2!YQ=RK+FzJ_3XY8US1Q(woR7I;|dx{u(wkM=05 z{znxF%Zgp&86s4$bzzSEVPDiUBlT56l3H94 z(aeW2?^h8j)t=yLcXci$#6YRfeY%;E z`U!bclGouMAaj^aN6{JUm#Rm+)v^D@*N!k=V}@>r8D2Y5{AXV~QoPnNn>S16T)5mTzTsPx{n(46TkC zo;oT1zE2%9TvM4y-RW~T?+Sl_WxK%L(@y*__uqJ#-+=9rOoPIQxg6kyk0xb#_?Qf% ze!R;oXQ2$Q^MxGVbrf=BFIAw2H<5)hyx}h7@ZE&ws70;m6*0vwk9ki?-v!*6uA=l2 z6?M|2#-$q?m%XCKWm~QAF;7_WBS5vR=ghmYfy0as%5TTWw~~^IVahLVSpO;0RheyJ3JOcd{r0`wQYkJV8;vP&v=2%rJ0z|%EhF`((l-TCbAX|49 zs+;Ot^u5p^f@eB~^Sr{$xWYM7xED&SUymzX;1&L6T%oGD??g4F(5or$ts?ZO0ev=y z_H)%&p*KYa(Pg?Ti_j*2rwZX0pH+k}vQ$om1ES5v;JpT3?zaH!s^8&y%mDH_kgamY z;px8m|8?C60K%ZdZt?g+mG4;56UcI(cuIILQ z&405!sW)MJZb%|vhN0b5U!;{l+71KdYm;ZTW2-IZwiBP4QfvT=*GS{c^~^}>8*$8q(#5I(nCG zxDdZJfXRSQG5+?hrq{LSrBaGgazGamC`q36CEqiY}tp_^n}l!c<$b zyDCgK3H;BZSyhwhb+jC&CB>cPVfvfE7X|i}FlV8_^#TtHe@5{tXn4Gc;nTu-xHwxH zrn_tNi7>sVh~a%jyYY6)H;Z~I@jgQlzFSOJ731ea=tZ;`r!K*Bz{6Bp%poeVq#s6}tO(N=j8rg80X` zYLfI){gV}O>Zv|Zvsbi*F=(k^6%8d)HF3JW@-t;sw5cLhQ$_s^3~x;`j80~Ft-#yL zQZ->}F3%_GXh-7B>MB|i<p)IC4Aq%=v-MINb0(uV}5D!&i> z;_4>>sfa!Nz8dywzU)YKDW%0%&%q~Cs5JiX7?HI2^G4&&vN#pPCt=zOJHxbB`PpQv zeqYBu`g}RV%LKlHUdO4fl>5?*o>tLW=+QK?>+dg}MwO-amsU|x5%=-JO4jhS_~hME z_YufXqiX^zQzdmrrSwj~Pa1p5`NY4XK2uvo??UNc=^=2!R1&`mE#4p_vZj<<{Hlxv z#TZ{8@Z3tq`y<@$52P210MY9xd*HX|3(uB5o=BKg{9hR@PJFerU2y)A&}G$st-2T# zz8!?JndK2W&psz+AK#%BpCiy@b{XG9~JnH zz}5hBRtwxNumqN?eoduUg4`qSozt(2rC%!qep7mPPP8==rauXuO0xY&rH_9ncnYNk zog?zc%IhHcd;|C5ZIQn<&hpQSH;M#)OyFk)-eq!WSnw|h{Di=-B$j~RCi-s{cuZQn zLRxtOGGThE`Yw!nc+yg~t$YRGFkKi4ho24{3U3;DVsckx)5r~VT`p&RbOktD03Df+ z1ug;S#R`TGnhYC+^FhIrg8xBEj{VUo}tbWh?|^mn&VH`Tm~!(@~4Lfsub zTz5yrB)*d%x+(hpz-)Y(@DrN4H()^W>zevY{UkF$zt&Wwp%S^}uZj|#K??FBPj}S( zzH$N9_Bx?%ie4YMI})U6n)-O;9#CfrH5&awzFm5M zq=;ru<38L(A3=M?bWl;zz93WY*VNU)O6+&;)71X>Z}4kq4{6H87dT7kQB4)qWB$HSDrN68{H)@% zjhtFv^@m6`UDL$WP4ryZUm~^CIzy=Fza`&^)KiQYU;6c`Llrfr&fJuo9WnRaWcuj1{{6v}Dp>WbOXDRhmd{uA{Y>42t6f-|CxbepDb zM!gi>rKv-xm!c18>Q80oM5oe6G!;s;gZiYVK2X0ZI*q=dsfX(~f_hq0pGVng^sJ`7 zjk43|IiW^r>7=dE)2Wqj+u)ZkmG(!c)9o!n$qYDy4k;?yR+W#QL5DTpX$2GM# z_HI!Bs;L`6y^CtkVlAW5*eT7SUfgf7JEB( z^3S8^(6d5~(zVdiNg^gh`ne#wc)UcTR&L(kx)BbBGf1yftIE8 zpr#%J)j^*X>L$v9T0zh0ve!Yaq~0w`XKmSQ(F-YhsnW@QSw(F^sUE?QESIU#Tum{d zZlKR1f32q3np$Kqb!UO(y}ImM^k#H5{lr(chK}m812oB8L&r2#Y%o>7i`%<_zAjX& zrcx%CZPe6Op=?ckMyT60^`=m-YwFAZ*IT(;={#Sk5lvkp)Z>~m#Fjs5>gPh8!MCNl z?`!BRp}6mViLRklLaEha9bMv+Tt{gw`Dc13x{k8GvWv;qW$%LrFQ&URRR<4VOpj~o zM?(EfQ!Q9Iu$SypedrVF5=}j=%1{&#JO99vLVeSCDi)>5YDCSY0icN}bM43Tf zs%H2?$*ICOa9eDWS=byhz%2sPfR#uMEP0i{{Q_?R3}es6@DN}feu0qj zPYe7aU>O|&Oi|Wss9pg0Xx&14x7)$@1c*HcgG$E{>zeka0bhIP8T>+!$rXtz+w1l^Y+M5`l5Mf z{5SNB`D*1Kz}a8+XF7`g#@~SddmPr9zY)lLj<@K~wI#+6&F=)t4a1mRS8c?k)=}6z z4V=nJvjG=Z&o@48ChHage{bzZ<8Y&xu1>r_hCy{Zjn~W%)b|5^9&kQv`vbjY zJ|F+Ov6y~Z`8%V77S_LQjMB^1adU>*)-cIjXwHWXT_{~(UM{6Q^i=F^<8tECF6mv5 z=;@*#l^!(n^qrDP<~71UAn>s9YUL~DM~y#4UNsL&EAJOQ#Zv1U_~f9O2(TrGjhlnV z%)`dJu^t|veb@=s2EGz64;-L;ZB5`U^N;n@0{240lE8za;ehn+0R5t54LEF11#H_K zc!B=8W-u@+ySW4Op~*vmTg>Mtj|M(2Ej}hTd|5QSKwpI9*M)z8mKQw{_zp_{Bk-J* z{+w=|{I>Brt*BlQe9IiJJwJHZ;Pw9+vEgqb^EYYt0KEhL5%iQxI}%p#7W3um!QfG2 zdb|?+PnO;sY>*!9H+heF)VRF%w&23RBJ5}v209XV2IrW+ss3QF9r*o_WDT8x&y_qJ zWDg8N1FwuPi2kDjUlVw7;C*#r+7hU4VEAz5W5Fyu`9yF_;M2)x0I!c@c4*F@OP&Si z5$x`_1lBi{(f+_^FoQ6}OG`fp^2MhP% zOKXP$m!a;Vz)|oIiT*=@e*u0Ndfp6vG_a-SFMz|*V`%GG3HSZ)qoL3dqo|ZykJS{1 zoMBKmN!LdJSa;37yK z4g9pSKQzN!Sl=4z3_McO8sZt958YzkT)Q82pNfruv&p;}@P^WZ0`CYNka*Y<_%=@9 zju^ZPS{UHb-xBC-_zmqh&o6p3)M-ABd#XTFCo{#+NVQP#pXA` z;Ssq%@vYGQz*myr3mrAuYhau4YV>*Fso2j$i6GC8qsFmGuY?W-9>kc|20t;mlBNb% z$A25DHMw6$4AxLA@gFpJ4#td!Yu*mUjAZTGp;2QXS`*IG_v_v^ip8JBhQe8Lj&Xib zOL!sRg77V79Qovs`Kq}X^6dF2-D_mRQM%vQ1^7>be_Zg#1bIzXxYG)x=vUN7Li&*sbjfx6>n(i+9qUz&q(4fgh$H$J0`pmeOv)yXjWC zCY}|^tVm|*!}L-d83VOOMe?xVhXsE|@Mi=+D)>>sr{ctHS9q$y?Y0Ttt|4=-6g;gV zbGii|5jd(L^KTIRet}O5d`3eqeOYiaxh+FO<_82%37o1S^G_4JO<=o*%wHz>l>*Zm zGQV5!5rLx`GXJpPhfT(x5&Rj!j|zTNa0-Z38nR?c@TnRyr%mv74ViPL;Ast+Ga~q? zhRnHN@WUE1=V`&8(U3VW3r<0{AtkU);FTffj0n76;L`$M7D!={7uY87N`WH+?-%&A zz?TJ5MC1jw3A|F^h(L-;slYaY?HaO$R|=likU1lQ-yh>zFUJ{D5yR#9mnODgKXWzi zDt|{od@1mJ<6fiOTyGvWzh;I4e;4?EV0v(4FdMu&SR1-Bba&`8p??nr!qdYc?4=^u zRT0iw!+-~4_*GT#aGr$oAN+taend2av+5{jTb!Q{(+hR{YyS5K>H&)y8Ub$#oCf%- zNR!L&i!uNG4J^}MI}7kyys?RY&neFMq}@uq=^TvG&2F`$Waq!QqzfF?XL33wTxiTx+eyz!f1 z_-X;NQaSJnKocIT1YQeh;yk|^upX2F57q*o49dXCem(H1pm5?0$lnEM1U^%&o`n*F zS^!Nti%tVR8_>l5b~^C6fc$&3?*cv_(8P(r4B%%2nskmlPiO@+u@jyJ{<(lAErKQk z|3cAOz}uk7#2xuOzz)?h4!&_*CHcfmpC6I4#&5TpvsaKOUSC4vz3%-T(P2?mPI& zqw{GG|1iLKAx}MFQO{PCH8Io6xL1Q!FM5VLwFNE+887EGu&|$ z@-7eG59`#2t$q~GJ|D-G@mqlp0Ac()z>8oBegqEjfaeo3OTvhVFybJBXow&NVu%E3 z0xQK$leylV^dRoci0;z#U7#{>+*8BOb=Jui%Od5(>rGlx`x(Z4X|+< z6x%OYX*CJ)7yG8Ks%TB5B6njO>M}-cIGa#dV4e7`K;9sYJDc% zv$nr?e*ts(o=ks!WxBtoH)H$szjvT-h5l-a*2-8-0B zm(JQ(&ZT8mfA^qmqs@-2*p;^TgY6%ic_-67PwAdVUDigJcJ};&>Yz?++I)i3GC1$- zT(<{c03getv%61lb@5xY;AAQnD3uGeMRU$Bu;^@6dNwx*uxzzl27seoFt|bB>f&$r z998k00&T5|*~)=dP_R%HfVtZ08SKrRM>{h4tsS%>dv#`o;1^J4!`>`rVGCaK5KdRu zD#}5MuPnWWx|Xe@RjWGI(MJ5WuU|(iySmm9X24)(>sCTwQAZk}FV}6^z1eL%lcnYc zYtZh_tWI}}K93R`GP!)VKh0t22y_&(Htf&kGkq;yWae5f$n7U1DL~N^!iM9Cc8&Vxdcn8 zsq3=rOrNzUGnTtye}DH*+vY{ zsL*%g%bo6yFLC-azN90wC)=GF&xg6ocBcDxOi;8e-Pgs#Fuu~7bl(KrWxcz{i>^nY zuCuMY)ot}oT#9kDC3Ge(?m#YSJ?%YIG*-;Y|tlPOi zm+emXw)f=hOl|^!4M=+9^(iCQS@r~FJ~Jm4!07a6_Ks7^GxP#G+p{T~*}D{}o%%BQ zo%mUOj2I%ovQ_ZQq}rbD&d|E<^ngdH8Oyztxuzn6wn8R9XlFFJIor>*G?mNr_hf8G zvPWV`CRk^GE}!m)rk>39^k8q^r8()anX3EL?O3)n+uwuvquEMRAulJ11}Pzz?a9#E z!Mt2KiEf(TwSOS94F9aGwCxhyR{LPy+JMo?AUCRh2?sORWgz(s_VusCBAKysD>K<0 zJM)}6rQGk)6Un(vp`wz@jjQi8>@WA%TW{?>ekHdMX>mQzOVw3pmO9B?%~|41hC$bq zPGTNonbkLtwlmB3b;}f|u54eX%j(ExXnB86Xa62+cZQZ`c4YfCt_D~pJvkdEMRCkP zuOilGwqpkDbZKuosdC?5g*tf?XyrJMi0$Z~9)V5ST$Z`(2mAAE7lu}CQ|N+Bo~aeK z)u%bwRpczlIvX?2Dr7TY!#Ev@azW4uxpK)0JB!He-S0~9I3pb)<>VE!pX+Y6v-!-b zY<~vZm%eR$<@Raw&WxQQcj;n0Zw)L{^Msd5JMR$d(|a9M?KGFBa~WzM7{Gp0lG}!i zEMYm}FYC2Xsyu_X?EUM~HjDT4thF}|^rZ6{T8+tss=0herZ=;LIouz3uPf7sO*QC_ z%(lTDJ2LiC8}Y>c;F{(Y!4^I69D6IFHgsbk zdvv*1;UhAyh7!B34!&Q-t<1fa$dQk8$sDK*qt9=u*@3RZ*#7is0h=$f4^6trxLe` zcD7}Evw2@>m$*>kNMW3m6xNCKzHjYzPhe#_r-(hgG2{?kFFPc6gPGZsnMVJd8~IM6!eHNHB#*)^Fw4;Qnv ztnO)x9xE>CvediJw6>q;7qfaK_xP%H*y+7O?zHxHz#3}@>6WL(a9V-L?yRNnWsh z#eD--KN?Y7pBoW{{<8qNEpj$p+!Ha^zrB@cDPXWa(pXNAGW+wk)hqYg4(_-gy|i{9 zBZqJWN)`rY_BLy&wND5&6^QST*v)GO`>?D7bU^}(WxAjE7Kv8F z0#Ugd$q#6UZ}X_OD3sMVQw2pkGu^wg-GJ$Z(qG`R4=>!mUMzTxb7wxf$hBS&p#- zac^Hl3lG1?akmb>b%WaFZidq8qBb~ckbR9J3+bpW950zcPC)Zv3x|~#;)TMp-}M!$ z@b@wNu0k&Jl{md~@4npLd7K{S&TLFl^5q=wc7j@GP`4SHA z7RB}I2BLF7>~aY<+jmo?iwij$cBbtCzPD*vmEFcy@;Lgg$Kz1Gdw@3f4A81xfI<9m zf~0mEh&s~1w(%;}517JtNu&=T{0DEyCBC!9f)f82a9SxS%=ixPoCbOO)nV~jirUo? z@9J$n3e?F4SpcUgoJI9bE=u-b!wVj-`0Y5;z&|9%C^k{pj18uHH{|#CX833WA%HSx z1CK*O-i+&`N2Xf36_m?roQyEZUiVs4BjPsB=?(YOIiG;`92Vdm{g&K@iwd<=ZItLc4v84ez^%B7AfYFWEh&+}5-iP{7N0kN>(>0vtm}MtFV@1VEc$R2qC^?U zLF&q3!t~(w1HmYnNK5z$UaH24^P1(z@=bY8MJDdyoqH4nVgX<7?K=?ZI2ORopc4gN z%5qsU9dcM|`**KO@5f#q$FkTUVfa;xDp`!@tW4WIdvUkyFY#rLvBlnTkW%ffQC?HN z>VBZ0j>~>K5T%rZ1?--ok4E%x{1UY?A=V|%Ayp8pRRKh1q zwmpu^u$Jj`)M4eBP)92&L&=%BgYuEf*$#m-Z5P!Dhid`4zt>9lXwC*CLygMat;V~$ z2Q-GPsxi*38bxB&*z!E?zWXzIO?KJoejFs&4m}_VRa~cza%f$~?#rU@e6oS7KG$H* zJ^;40L!D9ajN+_;^oV)M>;8I4+?dgh#08nW%)_-f^OBoT>TKt2J9gi=FUOrb-#Tal zfyF#-0DaD@^v8(1W7Xq>BQ56^h?|$um1@h>0~2R}d@;@QNe$M>c~h) z7*Vjx!EJzK*UVm3S58b-ZH4-iAf}NjN^g@}UhO|lH69HiMeuDF{sB`Yb~(PrpvmT& zbF(@Fa5?U#$mOUkgQp>EG;8ts)W>ypE)z&~4meCD#3SKwe9HXnE~EqL5?`ecYqvAX z*%@~MImUP6kB7;5SO~-VS-2PXDY(tYJ+t%Jj;w*Lo&6ck{5VIT<$VKy{E2ko?aEd7 z2go|{F4Jb(iFZKql)*RpvY_))zKqu4x)IO#aV_b@n-8mj?ZI0Ee(G%exI(AH*BE$_ zc6{Fu^ye z^2&ohz}oRP@G{6{AaA1;JVayeB(`k3Xv(2Invtd+{I^CluNc$DQqjvA`%$x9BvZiI z3aWRcH*1T!aNQ;?Qsr9M!2M0bo~*W%A|2rE!B^iqbUWQ{DJ9lH+7j!#am9=C>apD?odBW+nGY%Bv z8vPg}Dp?22hMzeC>9p}a;ArWCk1V`_W8qt+G}Ui|vbhU7_MyI(K(uzF&VU=O4u!~^ zI@V|7^rJTJwqZ{Xw9=%tGM+Ad+W2u8r=ihrA^UBNea#d5Yr?+Fm{@iKt*7~0b$maj zSYLN_r(`Ia?qX6huS{G1rb6G82asu(rf!~tY8nKP%m$Kfa zBdR7$GoJeo-HZK++$mz62Cv_{2o~3c&9^bO49|fk>~d&K+emBvxMh! zFJ^rox3`e{%xf68^IxjjxDIOtR%#g;UVk_)a%h=-nIpP*;DqJ>jTRHUnyVSh>kVQM zW4aR`%g7PDoM;3IGGTz^ z$ghGCBUv1X7*SMgKowMM0EyS)jpXP;{BMR!gAua<@}|*HW^&zza3t7ZMj1Dw6_J2y z!4L65YI5{q^?z}h5tu?{Q}8zF6pF?TB?q$xjbu%6Wpck+${^8N1RK>AR^U}tbc>Rs zSD=HXut;ocs0pKg$u>knw60tSRaLtM;>Cu3{A5L$YIT6O)ODP zMLtQ428%9?Ois4>gp(tWCPzLE4XT~Rj+6K*EVxyD*rl#Li^Hn0T8GBS5gmN`64OC2 za%55@m>hW?Ey7P%C9g77R8+8gzH62y%Q%`#LInRm&#t%;QrZDmsX(};Bobm%UPQc` zkS9z5an|S^u&1mH-ycJqxy}v55l74sA+AKX;lbbTEh<*TwwtSBtp{P%jh-l$xefIa%g9$0$MQ zxsHi)xRsex@NYjWcP7zY4zCxv50OBWdk%{^O_-&{n02Q|QHo%0g+~&j@CfGLeHfJF zXl+!8!$Lg7HH-!wsjWO}iP2AUo{2^k@i}$*B43iD&nW5}qT)ydyvfPY?+R7RwTg?C zzz@~s1$B8*1dcM19DQ_3q&T@MIU2+NiB<-SP0Tq=I%O~>N<$Q#H%pO}(C@^22CWPh zi=H<)nkP3Pw4%vTj8H9-*<>lHM1Yz2vQ?lIAGFqh6bDvO9H6v_L3~mq5_PI^J!R8W zltoKJ5i^;JB6lT6A5z^*EF;s9TBdiLGMnw!) zl^-C&tJ}yCuJA)N*TBeY4BlYyCWAjSc#FZ?0HX$j5(WuW=nI4st)ftJG^qLbTa1z# zuJJ_%PcnFh!7U8Ffx?wel?oHo=^;YEz^RlhMq*AjF{lXf;8k!sNmd}=a4O=JxRj@_ z=YdI5;L$}af0YuIRFoVRMSZg5wPGblqC!~rsZ7qxNt{(kSj=~stsYY*9h@q`G;*IS zve*+@9F=7OJ{CL0+ohQ4@UydUzz8$h$8s_TaY;gwq(zMy2815Qfh}!Fj$m%`wQtgF zo_joEoV~CWm~94FGtE7t9U=)K8Xrd_o%wQ7_20#U<($b~^&&NP&uQ^z22(lxG1m5SCFUC)4 zs0d_4b)OLxgChJxZlnSKIA;`dfzVBS52MSh+H9u>@Fo;qs>{f`K6q4u!+8U85uQ?1 z3`9SJ!Z$~RRgEv}xbN|#zWUKrYVPd0IJBB!(CPELTNljF%sXe+{JEKJv*ypsw9Z<% zZClT*1#`Bg=WOrUws7t?+~Ts*Ir#ZM{71AJ-{@&sv%JeaV4kU8gIR)~2t21{F3c>g za0~UfF!&X?3a*uMOHv{Y!_{YtK^LvgcH36Y+MaK5o>vX_WUZFvJ^Y|A*Wx^j!uex% z2i|LN85?kT-kagKr}P6H%Z|=DyQQ@SM&pJRKPog2*BHLy)n(&-B7FY@->3TaAHKqE z-+{kg{Y(%?#Ofhki-YkwWyYSFa$ZQEnQ}VIKZl6_W~P?m{2gzuF6qw<;<-of%+xx( zf0FISX=fMSaO_{Q?VNMc3%VDaJ!j#(`I*_R3r`#0n0g1%X%pS##OQq1wRiCUZ1exx z{Xgq(9)kbqj=jNG9+GwVd;MwrJpjb_Df8isuHVqHVd;^jb6@%8r!E@(^3+?Om>c;K z$J(-UFTbF(Yu5S<-bu~kSxM${JyqQ+9+q7$Pk0?p%RtXI>UqX%;9AC09__~ld~!s1 zG-EH{hc8XwwHt}wOs1s=Zw~S2o#~Wn6YT#Rz~4}mZjA6(*WlNYLOVFy5#cOs9G~UJ zFu_ssJI58V7NUEx$GH7vP6^BNrvrcZ@pg>+gf)8B3Jo3Tr#ZR}bxt94o`hi_l>;9+!sX34buncTGV&nt*@LIrcoJA(6R*J2QvCYfl4+~=``)l?Ne>K6J4lX_@7 zm%-z2w5e%uY&?*Jotd6>_}(V=8#^+&Q`9=o(VD`?(}M)vJ;*Qot-?z&y{TS?OQxlB z>N^qkwA5g>y_?@)S~6`r-hs*JPKlDUCa}ga{j37p7oX)i0RoH9az^MpOoIQZ&(p}i TXzTVl|5FYAZ#(~g^1%NEzF}q4 diff --git a/obj/Debug/eSwitch.pdb b/obj/Debug/eSwitch.pdb index 76f15d9d16c1c4e8011ea4f65e879afd65e04dfc..bdb06bcca4eadad9d55072fe220c92ca702d3ce0 100644 GIT binary patch literal 95744 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 literal 99840 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