mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	De-dupe checks for hostname when adding hosts
This commit is contained in:
		@@ -243,7 +243,7 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp', $quiet = '0
 | 
			
		||||
 | 
			
		||||
    list($hostshort) = explode(".", $host);
 | 
			
		||||
    // Test Database Exists
 | 
			
		||||
    if (dbFetchCell("SELECT COUNT(*) FROM `devices` WHERE `hostname` = ?", array($host)) == '0') {
 | 
			
		||||
    if (dup_host_check($host) === false) {
 | 
			
		||||
        if ($config['addhost_alwayscheckip'] === TRUE) {
 | 
			
		||||
            $ip = gethostbyname($host);
 | 
			
		||||
        } else {
 | 
			
		||||
@@ -583,13 +583,17 @@ function createHost($host, $community = NULL, $snmpver, $port = 161, $transport
 | 
			
		||||
 | 
			
		||||
    if ($device['os']) {
 | 
			
		||||
 | 
			
		||||
        $device_id = dbInsert($device, 'devices');
 | 
			
		||||
 | 
			
		||||
        if ($device_id) {
 | 
			
		||||
            return($device_id);
 | 
			
		||||
        if (dup_host_check($host) === false) {
 | 
			
		||||
            $device_id = dbInsert($device, 'devices');
 | 
			
		||||
            if ($device_id) {
 | 
			
		||||
                return($device_id);
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            return FALSE;
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
@@ -1256,3 +1260,21 @@ function snmpTransportToAddressFamily($transport) {
 | 
			
		||||
        return AF_INET;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if the $hostname provided exists in the DB already
 | 
			
		||||
 *
 | 
			
		||||
 * @param string $hostname The hostname to check for
 | 
			
		||||
 *
 | 
			
		||||
 * @return bool true if hostname already exists
 | 
			
		||||
 *              false if hostname doesn't exist
 | 
			
		||||
**/
 | 
			
		||||
function dup_host_check($hostname) {
 | 
			
		||||
    $count = dbFetchCell("SELECT COUNT(*) FROM `devices` WHERE `hostname` = ?", array($hostname));
 | 
			
		||||
    if ($count > 0) {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user