Browse Source

saving changes

root 4 years ago
parent
commit
6bb3695465
3 changed files with 66 additions and 13 deletions
  1. 49 2
      controllers/intClientHttpController.go
  2. 8 11
      main.go
  3. 9 0
      serverctl/wireguard.go

+ 49 - 2
controllers/intClientHttpController.go

@@ -20,7 +20,9 @@ func intClientHandlers(r *mux.Router) {
 
 
 	r.HandleFunc("/api/intclient/{clientid}", securityCheck(http.HandlerFunc(getIntClient))).Methods("GET")
 	r.HandleFunc("/api/intclient/{clientid}", securityCheck(http.HandlerFunc(getIntClient))).Methods("GET")
 	r.HandleFunc("/api/intclients", securityCheck(http.HandlerFunc(getAllIntClients))).Methods("GET")
 	r.HandleFunc("/api/intclients", securityCheck(http.HandlerFunc(getAllIntClients))).Methods("GET")
-        r.HandleFunc("/api/intclients/deleteall", securityCheck(http.HandlerFunc(deleteAllIntClients))).Methods("POST")
+        r.HandleFunc("/api/intclients/deleteall", securityCheck(http.HandlerFunc(deleteAllIntClients))).Methods("DELETE")
+        r.HandleFunc("/api/intclient/{clientid}", securityCheck(http.HandlerFunc(deleteIntClient))).Methods("DELETE")
+        r.HandleFunc("/api/intclient/{clientid}", securityCheck(http.HandlerFunc(updateIntClient))).Methods("PUT")
 	r.HandleFunc("/api/intclient/register", http.HandlerFunc(registerIntClient)).Methods("POST")
 	r.HandleFunc("/api/intclient/register", http.HandlerFunc(registerIntClient)).Methods("POST")
 }
 }
 
 
@@ -47,9 +49,20 @@ func deleteAllIntClients(w http.ResponseWriter, r *http.Request) {
         w.WriteHeader(http.StatusOK)
         w.WriteHeader(http.StatusOK)
 }
 }
 
 
+func deleteIntClient(w http.ResponseWriter, r *http.Request) {
+        w.Header().Set("Content-Type", "application/json")
+        err := functions.DeleteIntClient()
+        if err != nil {
+                returnErrorResponse(w, r, formatError(err, "internal"))
+                return
+        }
+        //Return all the extclients in JSON format
+        w.WriteHeader(http.StatusOK)
+}
+
 func getIntClient(w http.ResponseWriter, r *http.Request) {
 func getIntClient(w http.ResponseWriter, r *http.Request) {
         w.Header().Set("Content-Type", "application/json")
         w.Header().Set("Content-Type", "application/json")
-        clients, err := functions.GetAllIntClients()
+        clients, err := functions.GetIntClient()
         if err != nil {
         if err != nil {
                 returnErrorResponse(w, r, formatError(err, "internal"))
                 returnErrorResponse(w, r, formatError(err, "internal"))
                 return
                 return
@@ -59,6 +72,40 @@ func getIntClient(w http.ResponseWriter, r *http.Request) {
         json.NewEncoder(w).Encode(clients)
         json.NewEncoder(w).Encode(clients)
 }
 }
 
 
+func updateIntClient(w http.ResponseWriter, r *http.Request) {
+        w.Header().Set("Content-Type", "application/json")
+
+        var errorResponse = models.ErrorResponse{
+                Code: http.StatusInternalServerError, Message: "W1R3: It's not you it's me.",
+        }
+
+        var clientreq models.IntClient
+
+        //get node from body of request
+        err := json.NewDecoder(r.Body).Decode(&clientreq)
+        if err != nil {
+                returnErrorResponse(w, r, formatError(err, "internal"))
+                return
+        }
+        if servercfg.IsRegisterKeyRequired() {
+                validKey := functions.IsKeyValidGlobal(clientreq.AccessKey)
+                if !validKey {
+                                errorResponse = models.ErrorResponse{
+                                        Code: http.StatusUnauthorized, Message: "W1R3: Key invalid, or none provided.",
+                                }
+                                returnErrorResponse(w, r, errorResponse)
+                                return
+                }
+        }
+        client, err := RegisterIntClient(clientreq)
+
+        if err != nil {
+                returnErrorResponse(w, r, formatError(err, "internal"))
+                return
+        }
+        w.WriteHeader(http.StatusOK)
+        json.NewEncoder(w).Encode(client)
+}
 
 
 
 
 func RegisterIntClient(client models.IntClient) (models.IntClient, error) {
 func RegisterIntClient(client models.IntClient) (models.IntClient, error) {

+ 8 - 11
main.go

@@ -61,17 +61,14 @@ func main() {
 	}
 	}
 
 
 	if servercfg.IsGRPCWireGuard() {
 	if servercfg.IsGRPCWireGuard() {
-		exists, err := functions.ServerIntClientExists()
-		if err == nil && !exists {
-			err = serverctl.InitServerWireGuard()
-	                if err != nil {
-	                        log.Fatal(err)
-	                }
-			err = serverctl.ReconfigureServerWireGuard()
-	                if err != nil {
-	                        log.Fatal(err)
-	                }
-		}
+		err = serverctl.InitServerWireGuard()
+	        if err != nil {
+	                log.Fatal(err)
+	        }
+		err = serverctl.ReconfigureServerWireGuard()
+	        if err != nil {
+	                log.Fatal(err)
+	        }
 	}
 	}
 	//NOTE: Removed Check and Logic for DNS Mode
 	//NOTE: Removed Check and Logic for DNS Mode
 	//Reasoning. DNS Logic is very small on server. Can run with little/no impact. Just sets a tiny config file.
 	//Reasoning. DNS Logic is very small on server. Can run with little/no impact. Just sets a tiny config file.

+ 9 - 0
serverctl/wireguard.go

@@ -72,10 +72,19 @@ func InitServerWireGuard() error {
 	client.Address = wgconfig.GRPCWGAddress
 	client.Address = wgconfig.GRPCWGAddress
 	client.IsServer = "yes"
 	client.IsServer = "yes"
 	client.Network = "comms"
 	client.Network = "comms"
+	exists, _ := functions.ServerIntClientExists()
+	if exists {
+
+	}
 	err = RegisterServer(client)
 	err = RegisterServer(client)
         return err
         return err
 }
 }
 
 
+func DeleteServerClient() error {
+	return nil
+}
+
+
 func RegisterServer(client models.IntClient) error {
 func RegisterServer(client models.IntClient) error {
         if client.PrivateKey == "" {
         if client.PrivateKey == "" {
                 privateKey, err := wgtypes.GeneratePrivateKey()
                 privateKey, err := wgtypes.GeneratePrivateKey()