added port number to the output
This commit is contained in:
		
							parent
							
								
									41b0d8e355
								
							
						
					
					
						commit
						43847559ac
					
				| 
						 | 
					@ -39,13 +39,14 @@ type Message struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var conn *websocket.Conn
 | 
					var conn *websocket.Conn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func registerAgent(agentName, agentId, agentIp, agentType string) error {
 | 
					func registerAgent(agentName, agentId, agentIp, agentType, addPort string) error {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	form := url.Values{}
 | 
						form := url.Values{}
 | 
				
			||||||
	form.Add("agentId", agentId)
 | 
						form.Add("agentId", agentId)
 | 
				
			||||||
	form.Add("agentName", agentName)
 | 
						form.Add("agentName", agentName)
 | 
				
			||||||
	form.Add("agentType", agentType)
 | 
						form.Add("agentType", agentType)
 | 
				
			||||||
	form.Add("IPv4Address", agentIp)
 | 
						form.Add("IPv4Address", agentIp)
 | 
				
			||||||
 | 
						form.Add("addPort", addPort)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	resp, err := http.PostForm(registerURL, form)
 | 
						resp, err := http.PostForm(registerURL, form)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
| 
						 | 
					@ -58,7 +59,7 @@ func registerAgent(agentName, agentId, agentIp, agentType string) error {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	log.Printf("Agent %s successfully registered.", agentName)
 | 
						log.Printf("Agent %s successfully registered.", agentName)
 | 
				
			||||||
	logger.LogEntries = append(logger.LogEntries, fmt.Sprintf("%s Agent successfully registered.", time.Now().Format(time.RFC3339)))
 | 
						 // append(logger.LogEntries, fmt.Sprintf("%s Agent successfully registered.", time.Now().Format(time.RFC3339)))
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,8 @@ create table agents (
 | 
				
			||||||
    IPv4Address varchar(15),
 | 
					    IPv4Address varchar(15),
 | 
				
			||||||
    initialContact timestamp,
 | 
					    initialContact timestamp,
 | 
				
			||||||
    lastContact timestamp,
 | 
					    lastContact timestamp,
 | 
				
			||||||
    status Boolean
 | 
					    status Boolean,
 | 
				
			||||||
 | 
					    addPort varchar(255)
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
insert into agents (IPv4Address, agentId, agentName, initialContact, lastContact) values ( '127.0.0.1', 'testAgent', NOW(), NOW());
 | 
					insert into agents (IPv4Address, agentId, agentName, initialContact, lastContact) values ( '127.0.0.1', 'testAgent', NOW(), NOW());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								main.go
								
								
								
								
							
							
						
						
									
										1
									
								
								main.go
								
								
								
								
							| 
						 | 
					@ -16,7 +16,6 @@ import (
 | 
				
			||||||
	"strconv"
 | 
						"strconv"
 | 
				
			||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
	"syscall"
 | 
						"syscall"
 | 
				
			||||||
	// "io"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"golang.org/x/net/html"
 | 
						"golang.org/x/net/html"
 | 
				
			||||||
	"gontrol/src/logger"
 | 
						"gontrol/src/logger"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,6 +19,7 @@ type Agent struct {
 | 
				
			||||||
	LastContact    string `json:"lastContact"`
 | 
						LastContact    string `json:"lastContact"`
 | 
				
			||||||
	IPv4Address    string `json:"IPv4Address"`
 | 
						IPv4Address    string `json:"IPv4Address"`
 | 
				
			||||||
	Status         string `json:"status"`
 | 
						Status         string `json:"status"`
 | 
				
			||||||
 | 
						AddPort        string `json:"addPort"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// var db 	 *sql.DB
 | 
					// var db 	 *sql.DB
 | 
				
			||||||
| 
						 | 
					@ -50,11 +51,12 @@ func CreateAgent(db *sql.DB, w http.ResponseWriter, r * http.Request) (http.Resp
 | 
				
			||||||
	agentId := r.FormValue("agentId")
 | 
						agentId := r.FormValue("agentId")
 | 
				
			||||||
	agentType := r.FormValue("agentType")
 | 
						agentType := r.FormValue("agentType")
 | 
				
			||||||
	IPv4Address := r.FormValue("IPv4Address")
 | 
						IPv4Address := r.FormValue("IPv4Address")
 | 
				
			||||||
 | 
						addPort :=r.FormValue("addPort")
 | 
				
			||||||
	// initalContact := r.FormValue("initialContact")
 | 
						// initalContact := r.FormValue("initialContact")
 | 
				
			||||||
	// lastContact := r.FormValue("lastContact")
 | 
						// lastContact := r.FormValue("lastContact")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	query := "INSERT INTO agents (agentId, agentName, agentType, IPv4Address, initialContact, lastContact) VALUES (?, ?, ?, ?, NOW(), NOW())"
 | 
						query := "INSERT INTO agents (agentId, agentName, agentType, IPv4Address, addPort, initialContact, lastContact) VALUES (?, ?, ?, ?, ?, NOW(), NOW())"
 | 
				
			||||||
	_, err = db.Exec(query, agentId, agentName, agentType, IPv4Address)
 | 
						_, err = db.Exec(query, agentId, agentName, agentType, IPv4Address, addPort)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Printf("Database err is: %s", err)
 | 
							log.Printf("Database err is: %s", err)
 | 
				
			||||||
		http.Error(w, "Failed to create agent", http.StatusInternalServerError)
 | 
							http.Error(w, "Failed to create agent", http.StatusInternalServerError)
 | 
				
			||||||
| 
						 | 
					@ -87,7 +89,7 @@ func UpdateAgent(db *sql.DB, w http.ResponseWriter, r *http.Request, agentId str
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func GetAgents(db *sql.DB) ([]Agent, error) {
 | 
					func GetAgents(db *sql.DB) ([]Agent, error) {
 | 
				
			||||||
	query := "SELECT agentId, agentName, agentType, IPv4Address, initialContact, lastContact FROM agents"
 | 
						query := "SELECT agentId, agentName, agentType, IPv4Address, addPort, initialContact, lastContact FROM agents"
 | 
				
			||||||
	rows, err := db.Query(query)
 | 
						rows, err := db.Query(query)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
| 
						 | 
					@ -97,7 +99,7 @@ func GetAgents(db *sql.DB) ([]Agent, error) {
 | 
				
			||||||
	var agents []Agent
 | 
						var agents []Agent
 | 
				
			||||||
	for rows.Next() {
 | 
						for rows.Next() {
 | 
				
			||||||
		var agent Agent
 | 
							var agent Agent
 | 
				
			||||||
		err := rows.Scan(&agent.AgentID, &agent.AgentName, &agent.AgentType, &agent.IPv4Address, &agent.InitialContact, &agent.LastContact)
 | 
							err := rows.Scan(&agent.AgentID, &agent.AgentName, &agent.AgentType, &agent.IPv4Address, &agent.AddPort, &agent.InitialContact, &agent.LastContact)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -107,9 +109,9 @@ func GetAgents(db *sql.DB) ([]Agent, error) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func GetAgent(db *sql.DB, w http.ResponseWriter, r *http.Request, agentId string) (Agent, error) {
 | 
					func GetAgent(db *sql.DB, w http.ResponseWriter, r *http.Request, agentId string) (Agent, error) {
 | 
				
			||||||
	query := "Select agentId, agentName, agentType, IPv4Address, initialContact, lastContact from agents where agentId = ?"
 | 
						query := "Select agentId, agentName, agentType, IPv4Address, addPort, initialContact, lastContact from agents where agentId = ?"
 | 
				
			||||||
	var agent Agent
 | 
						var agent Agent
 | 
				
			||||||
	err := db.QueryRow(query, agentId).Scan(&agent.AgentID, &agent.AgentName, &agent.AgentType,&agent.IPv4Address,  &agent.InitialContact, &agent.LastContact)
 | 
						err := db.QueryRow(query, agentId).Scan(&agent.AgentID, &agent.AgentName, &agent.AgentType, &agent.IPv4Address, &agent.AddPort, &agent.InitialContact, &agent.LastContact)
 | 
				
			||||||
	if err == sql.ErrNoRows {
 | 
						if err == sql.ErrNoRows {
 | 
				
			||||||
		http.Error(w, "Agent not found", http.StatusNotFound)
 | 
							http.Error(w, "Agent not found", http.StatusNotFound)
 | 
				
			||||||
		return Agent{} , err
 | 
							return Agent{} , err
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,7 +47,7 @@ var getAgentNames http.HandlerFunc = func(w http.ResponseWriter, r *http.Request
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func registerAgent(agentName, agentId, agentIp, agentType string) error {
 | 
					func registerAgent(agentName, agentId, agentIp, agentType, addPort string) error {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	registerURL := "http://localhost:3333/agents"
 | 
						registerURL := "http://localhost:3333/agents"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,6 +56,7 @@ func registerAgent(agentName, agentId, agentIp, agentType string) error {
 | 
				
			||||||
	form.Add("agentName", agentName)
 | 
						form.Add("agentName", agentName)
 | 
				
			||||||
	form.Add("agentType", agentType)
 | 
						form.Add("agentType", agentType)
 | 
				
			||||||
	form.Add("IPv4Address", agentIp)
 | 
						form.Add("IPv4Address", agentIp)
 | 
				
			||||||
 | 
						form.Add("addPort", addPort)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	resp, err := http.PostForm(registerURL, form)
 | 
						resp, err := http.PostForm(registerURL, form)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
| 
						 | 
					@ -175,6 +176,15 @@ func (wsh webSocketHandler) ServeHTTP(w http.ResponseWriter, r *http.Request){
 | 
				
			||||||
	agentId := r.URL.Query().Get("agentId")
 | 
						agentId := r.URL.Query().Get("agentId")
 | 
				
			||||||
	agentType := r.URL.Query().Get("agentType")
 | 
						agentType := r.URL.Query().Get("agentType")
 | 
				
			||||||
	agentName := ""
 | 
						agentName := ""
 | 
				
			||||||
 | 
						log.Println("addPort is the following")
 | 
				
			||||||
 | 
						log.Println(r.URL.Query().Get("addPort"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						addPort := ""
 | 
				
			||||||
 | 
						if  len(r.URL.Query().Get("addPort")) > 0 {
 | 
				
			||||||
 | 
							addPort = r.URL.Query().Get("addPort")
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							addPort = "None"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	agentIds, err := getAgentIds()
 | 
						agentIds, err := getAgentIds()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
| 
						 | 
					@ -184,7 +194,7 @@ func (wsh webSocketHandler) ServeHTTP(w http.ResponseWriter, r *http.Request){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if !containsId(agentIds, agentId) {
 | 
						if !containsId(agentIds, agentId) {
 | 
				
			||||||
		agentName = randomname.GenerateRandomName()
 | 
							agentName = randomname.GenerateRandomName()
 | 
				
			||||||
		registerAgent(agentName, agentId, agentIP, agentType)
 | 
							registerAgent(agentName, agentId, agentIP, agentType, addPort)
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		agentDetails, _ :=  getAgentDetails(agentId)
 | 
							agentDetails, _ :=  getAgentDetails(agentId)
 | 
				
			||||||
		agentName = agentDetails.AgentName
 | 
							agentName = agentDetails.AgentName
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -108,5 +108,4 @@
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,8 +4,9 @@
 | 
				
			||||||
    <p>Name: {{.AgentName}}</p>
 | 
					    <p>Name: {{.AgentName}}</p>
 | 
				
			||||||
    <p>Type: {{.AgentType}}</p>
 | 
					    <p>Type: {{.AgentType}}</p>
 | 
				
			||||||
    <p>IP Addr: {{.IPv4Address}}</p>
 | 
					    <p>IP Addr: {{.IPv4Address}}</p>
 | 
				
			||||||
 | 
					    <p>Interactive Port: {{.AddPort}}</p>
 | 
				
			||||||
    <p>Initial Contact: {{.InitialContact}}</p>
 | 
					    <p>Initial Contact: {{.InitialContact}}</p>
 | 
				
			||||||
    <p>Last Contact: {{.LastContact}}</p>
 | 
					    <p>Last Contact: {{.LastContact}}</p>
 | 
				
			||||||
    <!-- <button hx-get="/proxyAgent?ip={{.IPv4Address}}" hx-target="#agentConnect" hx-swap="innerHTML">Open</button> -->
 | 
					    <!-- <button hx-get="/proxyAgent?ip={{.IPv4Address}}" hx-target="#agentConnect" hx-swap="innerHTML">Open</button> -->
 | 
				
			||||||
    <a href="http://{{.IPv4Address}}:8080" class="btn btn-info" target="_blank">Open</a>
 | 
					    <a href="http://{{.IPv4Address}}:{{.AddPort}}" class="btn btn-info" target="_blank">Open</a>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue