|
@@ -122,22 +122,22 @@ func getNetworksFromCache() (networks []models.Network) {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
-func deleteNetworkFromCache(key string) {
|
|
|
|
|
|
+func deleteNetworkFromCache(key uuid.UUID) {
|
|
networkCacheMutex.Lock()
|
|
networkCacheMutex.Lock()
|
|
- delete(networkCacheMap, key)
|
|
|
|
|
|
+ delete(networkCacheMap, key.String())
|
|
networkCacheMutex.Unlock()
|
|
networkCacheMutex.Unlock()
|
|
}
|
|
}
|
|
|
|
|
|
-func getNetworkFromCache(key string) (network models.Network, ok bool) {
|
|
|
|
|
|
+func getNetworkFromCache(key uuid.UUID) (network models.Network, ok bool) {
|
|
networkCacheMutex.RLock()
|
|
networkCacheMutex.RLock()
|
|
- network, ok = networkCacheMap[key]
|
|
|
|
|
|
+ network, ok = networkCacheMap[key.String()]
|
|
networkCacheMutex.RUnlock()
|
|
networkCacheMutex.RUnlock()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
-func storeNetworkInCache(key string, network models.Network) {
|
|
|
|
|
|
+func storeNetworkInCache(key uuid.UUID, network models.Network) {
|
|
networkCacheMutex.Lock()
|
|
networkCacheMutex.Lock()
|
|
- networkCacheMap[key] = network
|
|
|
|
|
|
+ networkCacheMap[key.String()] = network
|
|
networkCacheMutex.Unlock()
|
|
networkCacheMutex.Unlock()
|
|
}
|
|
}
|
|
|
|
|
|
@@ -163,7 +163,7 @@ func GetNetworks() ([]models.Network, error) {
|
|
// add network our array
|
|
// add network our array
|
|
networks = append(networks, network)
|
|
networks = append(networks, network)
|
|
if servercfg.CacheEnabled() {
|
|
if servercfg.CacheEnabled() {
|
|
- storeNetworkInCache(network.NetID, network)
|
|
|
|
|
|
+ storeNetworkInCache(network.ID, network)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -205,7 +205,7 @@ func DeleteNetwork(network string) error {
|
|
|
|
|
|
// CreateNetwork - creates a network in database
|
|
// CreateNetwork - creates a network in database
|
|
func CreateNetwork(network models.Network) (models.Network, error) {
|
|
func CreateNetwork(network models.Network) (models.Network, error) {
|
|
-
|
|
|
|
|
|
+ network.ID = uuid.New()
|
|
if network.AddressRange != "" {
|
|
if network.AddressRange != "" {
|
|
normalizedRange, err := NormalizeCIDR(network.AddressRange)
|
|
normalizedRange, err := NormalizeCIDR(network.AddressRange)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -487,11 +487,12 @@ func UpdateNetwork(currentNetwork *models.Network, newNetwork *models.Network) (
|
|
hasrangeupdate4 := newNetwork.AddressRange != currentNetwork.AddressRange
|
|
hasrangeupdate4 := newNetwork.AddressRange != currentNetwork.AddressRange
|
|
hasrangeupdate6 := newNetwork.AddressRange6 != currentNetwork.AddressRange6
|
|
hasrangeupdate6 := newNetwork.AddressRange6 != currentNetwork.AddressRange6
|
|
hasholepunchupdate := newNetwork.DefaultUDPHolePunch != currentNetwork.DefaultUDPHolePunch
|
|
hasholepunchupdate := newNetwork.DefaultUDPHolePunch != currentNetwork.DefaultUDPHolePunch
|
|
|
|
+ newNetwork.SetNetworkLastModified()
|
|
data, err := json.Marshal(newNetwork)
|
|
data, err := json.Marshal(newNetwork)
|
|
if err != nil {
|
|
if err != nil {
|
|
return false, false, false, err
|
|
return false, false, false, err
|
|
}
|
|
}
|
|
- newNetwork.SetNetworkLastModified()
|
|
|
|
|
|
+
|
|
err = database.Insert(newNetwork.NetID, string(data), database.NETWORKS_TABLE_NAME)
|
|
err = database.Insert(newNetwork.NetID, string(data), database.NETWORKS_TABLE_NAME)
|
|
if err == nil {
|
|
if err == nil {
|
|
if servercfg.CacheEnabled() {
|
|
if servercfg.CacheEnabled() {
|
|
@@ -504,6 +505,21 @@ func UpdateNetwork(currentNetwork *models.Network, newNetwork *models.Network) (
|
|
return false, false, false, errors.New("failed to update network " + newNetwork.NetID + ", cannot change netid.")
|
|
return false, false, false, errors.New("failed to update network " + newNetwork.NetID + ", cannot change netid.")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func UpsertNetwork(net *models.Network) error {
|
|
|
|
+ net.SetNetworkLastModified()
|
|
|
|
+ data, err := json.Marshal(net)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ err = database.Insert(net.NetID, string(data), database.NETWORKS_TABLE_NAME)
|
|
|
|
+ if err == nil {
|
|
|
|
+ if servercfg.CacheEnabled() {
|
|
|
|
+ storeNetworkInCache(net.ID.String(), *net)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
// GetNetwork - gets a network from database
|
|
// GetNetwork - gets a network from database
|
|
func GetNetwork(networkname string) (models.Network, error) {
|
|
func GetNetwork(networkname string) (models.Network, error) {
|
|
|
|
|