public static bool DoSyncNetAdapterConfig()
        {
            try
            {
                Network net;
                net = Utilities.ConnectNetwork(0);
                if (net == null)
                {
                    return(false);
                }
                Status.UpdateMessage(0, "Collecting network configuration");

                List <NetworkAdapterConfiguration> lst = GetNetAdapterConfig();

                Status.UpdateMessage(0, "Reporting network configuration");
                ListNetworkAdapterConfiguration lstt = new ListNetworkAdapterConfiguration();
                lstt.Items     = lst;
                lstt.MachineID = SystemInfos.SysInfo.MachineID;

                net.ReportNetworkAdapterConfiguration(lstt);

                net.CloseConnection();
            }
            catch (Exception ee)
            {
                Debug.WriteLine(ee.ToString());
                FoxEventLog.WriteEventLog("Servere error while syncing network config: " + ee.ToString(), EventLogEntryType.Error);
            }
            Status.UpdateMessage(0);

            return(true);
        }
예제 #2
0
        public RESTStatus ReportNetadapterConfig(SQLLib sql, ListNetworkAdapterConfiguration netadapters, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (netadapters == null)
            {
                ni.Error   = "Invalid Items";
                ni.ErrorID = ErrorFlags.InvalidValue;
                return(RESTStatus.Fail);
            }

            netadapters.MachineID = ni.Username;

            lock (ni.sqllock)
            {
                if (Convert.ToInt32(sql.ExecSQLScalar("SELECT COUNT(*) FROM ComputerAccounts WHERE MachineID=@m",
                                                      new SQLParam("@m", netadapters.MachineID))) == 0)
                {
                    ni.Error   = "Invalid MachineID";
                    ni.ErrorID = ErrorFlags.InvalidValue;
                    return(RESTStatus.NotFound);
                }
            }

            lock (ni.sqllock)
            {
                sql.ExecSQL("DELETE FROM NetworkConfigSuppl WHERE MachineID=@id", new SQLParam("@id", netadapters.MachineID));
                sql.ExecSQL("DELETE FROM NetworkConfig WHERE MachineID=@id", new SQLParam("@id", netadapters.MachineID));
            }

            if (netadapters.Items == null)
            {
                netadapters.Items = new List <NetworkAdapterConfiguration>();
            }

            List <int> IFIndex = new List <int>();

            foreach (NetworkAdapterConfiguration ncfg in netadapters.Items)
            {
                if (IFIndex.Contains(ncfg.InterfaceIndex) == true)
                {
                    continue;
                }
                IFIndex.Add(ncfg.InterfaceIndex);

                lock (ni.sqllock)
                {
                    sql.InsertMultiData("NetworkConfig",
                                        new SQLData("MachineID", netadapters.MachineID),
                                        new SQLData("InterfaceIndex", ncfg.InterfaceIndex),
                                        new SQLData("IPEnabled", ncfg.IPEnabled),
                                        new SQLData("MACAddress", ncfg.MACAddress == null ? "" : ncfg.MACAddress.Trim()),
                                        new SQLData("ServiceName", ncfg.ServiceName == null ? "" : ncfg.ServiceName.Trim()),
                                        new SQLData("SettingsID", ncfg.SettingsID == null ? "" : ncfg.SettingsID.Trim()),
                                        new SQLData("Description", ncfg.Description == null ? "" : ncfg.Description.Trim()),
                                        new SQLData("DHCPEnabled", ncfg.DHCPEnabled),
                                        new SQLData("DHCPServer", ncfg.DHCPServer == null ? "" : ncfg.DHCPServer.Trim()),
                                        new SQLData("DNSDomain", ncfg.DNSDomain == null ? "" : ncfg.DNSDomain.Trim()),
                                        new SQLData("DNSHostName", ncfg.DNSHostName == null ? "" : ncfg.DNSHostName.Trim()),
                                        new SQLData("Caption", ncfg.Caption == null ? "" : ncfg.Caption.Trim()),
                                        new SQLData("DHCPLeaseExpires", ncfg.DHCPLeaseExpires),
                                        new SQLData("DHCPLeaseObtained", ncfg.DHCPLeaseObtained),
                                        new SQLData("WINSEnableLMHostsLookup", ncfg.WINSEnableLMHostsLookup),
                                        new SQLData("WINSHostLookupFile", ncfg.WINSHostLookupFile == null ? "" : ncfg.WINSHostLookupFile.Trim()),
                                        new SQLData("WINSPrimaryServer", ncfg.WINSPrimaryServer == null ? "" : ncfg.WINSPrimaryServer.Trim()),
                                        new SQLData("WINSSecondaryServer", ncfg.WINSSecondaryServer == null ? "" : ncfg.WINSSecondaryServer.Trim()),
                                        new SQLData("WINSScopeID", ncfg.WINSScopeID == null ? "" : ncfg.WINSScopeID.Trim()));
                }

                if (ncfg.IPAddress == null)
                {
                    ncfg.IPAddress = new List <string>();
                }
                if (ncfg.IPSubnet == null)
                {
                    ncfg.IPSubnet = new List <string>();
                }
                if (ncfg.DefaultIPGateway == null)
                {
                    ncfg.DefaultIPGateway = new List <string>();
                }
                if (ncfg.DNSDomainSuffixSearchOrder == null)
                {
                    ncfg.DNSDomainSuffixSearchOrder = new List <string>();
                }
                if (ncfg.DNSServerSearchOrder == null)
                {
                    ncfg.DNSServerSearchOrder = new List <string>();
                }

                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 1, ncfg.IPAddress);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 2, ncfg.IPSubnet);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 3, ncfg.DefaultIPGateway);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 4, ncfg.DNSDomainSuffixSearchOrder);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 5, ncfg.DNSServerSearchOrder);
            }


            return(RESTStatus.Success);
        }
예제 #3
0
        public RESTStatus ListNetData(SQLLib sql, object dummy, NetworkConnectionInfo ni, string id)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (string.IsNullOrWhiteSpace(id) == true)
            {
                ni.Error   = "Invalid data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.NotFound);
            }

            lock (ni.sqllock)
            {
                if (Computers.MachineExists(sql, id) == false)
                {
                    ni.Error   = "Invalid data";
                    ni.ErrorID = ErrorFlags.InvalidData;
                    return(RESTStatus.NotFound);
                }
            }

            LstNetData           = new ListNetworkAdapterConfiguration();
            LstNetData.Items     = new List <NetworkAdapterConfiguration>();
            LstNetData.MachineID = id;

            lock (ni.sqllock)
            {
                SqlDataReader dr = sql.ExecSQLReader("SELECT * FROM networkconfig WHERE MachineID=@mid", new SQLParam("@mid", id));
                while (dr.Read())
                {
                    NetworkAdapterConfiguration n = new NetworkAdapterConfiguration();
                    sql.LoadIntoClass(dr, n);
                    LstNetData.Items.Add(n);
                }
                dr.Close();
            }

            foreach (NetworkAdapterConfiguration n in LstNetData.Items)
            {
                n.IPAddress                  = new List <string>();
                n.IPSubnet                   = new List <string>();
                n.DefaultIPGateway           = new List <string>();
                n.DNSDomainSuffixSearchOrder = new List <string>();
                n.DNSServerSearchOrder       = new List <string>();

                lock (ni.sqllock)
                {
                    SqlDataReader dr = sql.ExecSQLReader("select * from NetworkConfigSuppl WHERE MachineID=@mid AND InterfaceIndex=@i order by Type,[Order]",
                                                         new SQLParam("@mid", id),
                                                         new SQLParam("@i", n.InterfaceIndex));
                    while (dr.Read())
                    {
                        switch (Convert.ToInt32(dr["Type"]))
                        {
                        case 1:
                            n.IPAddress.Add(Convert.ToString(dr["Data"])); break;

                        case 2:
                            n.IPSubnet.Add(Convert.ToString(dr["Data"])); break;

                        case 3:
                            n.DefaultIPGateway.Add(Convert.ToString(dr["Data"])); break;

                        case 4:
                            n.DNSDomainSuffixSearchOrder.Add(Convert.ToString(dr["Data"])); break;

                        case 5:
                            n.DNSServerSearchOrder.Add(Convert.ToString(dr["Data"])); break;
                        }
                    }
                    dr.Close();
                }
            }
            return(RESTStatus.Success);
        }