private void AddNic(NetworkInterface nic) { var connItem = new ConnectionItem(nic); cbSharedConnection.Items.Add(connItem); cbHomeConnection.Items.Add(connItem); var netShareConnection = connItem.Connection; if (netShareConnection != null) { var sc = IcsManager.GetConfiguration(netShareConnection); if (sc.SharingEnabled) { switch (sc.SharingConnectionType) { case tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PUBLIC: cbSharedConnection.SelectedIndex = cbSharedConnection.Items.Count - 1; break; case tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PRIVATE: cbHomeConnection.SelectedIndex = cbSharedConnection.Items.Count - 1; break; } } } }
private void cbSharedConnection_SelectedIndexChanged(object sender, EventArgs e) { ConnectionItem sharedConnectionItem = cbSharedConnection.SelectedItem as ConnectionItem; if (sharedConnectionItem != null) { sharedDetails.Text = getInterfaceData(sharedConnectionItem.Nic); } else { sharedDetails.Text = ""; } }
private void cbHomeConnection_SelectedIndexChanged(object sender, EventArgs e) { ConnectionItem homeConnectionItem = cbHomeConnection.SelectedItem as ConnectionItem; if (homeConnectionItem != null) { homeDetails.Text = getInterfaceData(homeConnectionItem.Nic); } else { homeDetails.Text = ""; } }
private void ButtonApply_Click(object sender, EventArgs e) { ConnectionItem sharedConnectionItem = cbSharedConnection.SelectedItem as ConnectionItem; ConnectionItem homeConnectionItem = cbHomeConnection.SelectedItem as ConnectionItem; if ((sharedConnectionItem == null) || (homeConnectionItem == null)) { MessageBox.Show(@"Please select both connections."); return; } if (sharedConnectionItem.Connection == homeConnectionItem.Connection) { MessageBox.Show(@"Please select different connections."); return; } IcsManager.ShareConnection(sharedConnectionItem.Connection, homeConnectionItem.Connection); RefreshStatus(); }
private void RefreshStatus() { bool SharingEnabled = false; cbSharedConnection.Items.Clear(); cbHomeConnection.Items.Clear(); foreach (NetworkInterface nic in IcsManager.GetAllIPv4Interfaces()) { ConnectionItem connItem = new ConnectionItem(nic); cbSharedConnection.Items.Add(connItem); cbHomeConnection.Items.Add(connItem); INetConnection netShareConnection = connItem.Connection; if (netShareConnection != null) { INetSharingConfiguration config = IcsManager.GetConfiguration(netShareConnection); if (config.SharingEnabled) { SharingEnabled = true; switch (config.SharingConnectionType) { case tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PUBLIC: cbSharedConnection.SelectedIndex = cbSharedConnection.Items.Count - 1; break; case tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PRIVATE: cbHomeConnection.SelectedIndex = cbSharedConnection.Items.Count - 1; break; } } } } this.ButtonApply.Enabled = !SharingEnabled; this.buttonStopSharing.Enabled = SharingEnabled; this.cbSharedConnection.Enabled = !SharingEnabled; this.cbHomeConnection.Enabled = !SharingEnabled; cbHomeConnection_SelectedIndexChanged(null, null); cbSharedConnection_SelectedIndexChanged(null, null); }