Browse Source

fixing some bool problems

afeiszli 4 years ago
parent
commit
61958d8109

BIN
controllers/.nodeHttpController.go.swp


+ 10 - 2
controllers/common.go

@@ -177,6 +177,12 @@ func UpdateNode(nodechange models.Node, node models.Node) (models.Node, error) {
     if nodechange.MacAddress != "" {
         node.MacAddress = nodechange.MacAddress
     }
+    if nodechange.IsGateway != nil {
+        node.IsGateway = nodechange.IsGateway
+    }
+    if nodechange.GatewayRange != "" {
+	node.GatewayRange = nodechange.GatewayRange
+    }
     if nodechange.PublicKey != "" {
         node.PublicKey = nodechange.PublicKey
 	node.KeyUpdateTimeStamp = time.Now().Unix()
@@ -210,6 +216,8 @@ func UpdateNode(nodechange models.Node, node models.Node) (models.Node, error) {
                         {"persistentkeepalive", node.PersistentKeepalive},
                         {"saveconfig", node.SaveConfig},
                         {"accesskey", node.AccessKey},
+                        {"isgateway", node.IsGateway},
+                        {"gatewayrange", node.GatewayRange},
                         {"interface", node.Interface},
                         {"lastmodified", node.LastModified},
                 }},
@@ -221,12 +229,12 @@ func UpdateNode(nodechange models.Node, node models.Node) (models.Node, error) {
 		return nodeupdate, errN
 	}
 
-	returnnode, errN := GetNode(node.MacAddress, node.Network)
+	returnnode, errN := GetNode(queryMac, queryNetwork)
 
 	defer cancel()
 
 	if notifynetwork {
-		errN = SetNetworkNodesLastModified(node.Network)
+		errN = SetNetworkNodesLastModified(queryNetwork)
 	}
 
 	return returnnode, errN

+ 5 - 3
controllers/nodeHttpController.go

@@ -589,7 +589,8 @@ func createGateway(w http.ResponseWriter, r *http.Request) {
 
         var nodechange models.Node
 
-	nodechange.IsGateway = true
+	isgateway := true
+	nodechange.IsGateway = &isgateway
 	nodechange.GatewayRange = gateway.RangeString
 	if gateway.PostUp == "" {
 		nodechange.PostUp = "iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o " + gateway.Interface + " -j MASQUERADE"
@@ -622,7 +623,7 @@ func createGateway(w http.ResponseWriter, r *http.Request) {
 
 func validateGateway(gateway models.GatewayRequest) error {
 		var err error
-                isIpv4 := functions.IsIpv4Net(gateway.RangeString)
+                isIpv4 := functions.IsIpv4CIDR(gateway.RangeString)
                 empty := gateway.RangeString == ""
                 if empty || !isIpv4 {
 			err = errors.New("IP Range Not Valid")
@@ -646,7 +647,8 @@ func deleteGateway(w http.ResponseWriter, r *http.Request) {
 
         var nodechange models.Node
 
-        nodechange.IsGateway = false
+	isgateway := false
+        nodechange.IsGateway = &isgateway
         nodechange.GatewayRange = ""
         nodechange.PostUp = ""
         nodechange.PostDown = ""

+ 1 - 1
models/node.go

@@ -41,7 +41,7 @@ type Node struct {
 	Password	string `json:"password" bson:"password" validate:"password_check"`
 	Network	string `json:"network" bson:"network" validate:"network_exists"`
 	IsPending bool `json:"ispending" bson:"ispending"`
-	IsGateway bool `json:"isgateway" bson:"isgateway"`
+	IsGateway *bool `json:"isgateway" bson:"isgateway"`
 	GatewayRange string `json:"gatewayrange" bson:"gatewayrange"`
 	PostChanges string `json:"postchanges" bson:"postchanges"`
 }

+ 1 - 1
models/returnNode.go

@@ -18,7 +18,7 @@ type ReturnNode struct {
 	Interface	string `json:"interface" bson:"interface"`
 	Network	string `json:"network" bson:"network"`
 	IsPending	*bool `json:"ispending" bson:"ispending"`
-	IsGateway	*bool `json:"isgateway" bson:"ispending"`
+	IsGateway	*bool `json:"isgateway" bson:"isgateway"`
 	GatewayRange	string `json:"gatewayrange" bson:"gatewayrange"`
         LocalAddress    string `json:"localaddress" bson:"localaddress" validate:"localaddress_check"`
         ExpirationDateTime      int64 `json:"expdatetime" bson:"expdatetime"`

+ 16 - 0
test/gatewaycreate.sh

@@ -0,0 +1,16 @@
+#!/bin/bash
+
+generate_post_json ()
+{
+  cat <<EOF
+{
+  "rangestring": "172.31.0.0/16",
+  "interface": "eth0"
+}
+EOF
+}
+
+POST_JSON=$(generate_post_json)
+
+curl --max-time 5.0 -d "$POST_JSON" -H 'Content-Type: application/json' -H "authorization: Bearer secretkey" 3.86.23.0:8081/api/nodes/default/12:5a:ac:3f:03:2d
+