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
 | 
			
		||||
 | 
			
		||||
func registerAgent(agentName, agentId, agentIp, agentType string) error {
 | 
			
		||||
func registerAgent(agentName, agentId, agentIp, agentType, addPort string) error {
 | 
			
		||||
 | 
			
		||||
	form := url.Values{}
 | 
			
		||||
	form.Add("agentId", agentId)
 | 
			
		||||
	form.Add("agentName", agentName)
 | 
			
		||||
	form.Add("agentType", agentType)
 | 
			
		||||
	form.Add("IPv4Address", agentIp)
 | 
			
		||||
	form.Add("addPort", addPort)
 | 
			
		||||
 | 
			
		||||
	resp, err := http.PostForm(registerURL, form)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -58,7 +59,7 @@ func registerAgent(agentName, agentId, agentIp, agentType string) error {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,8 @@ create table agents (
 | 
			
		|||
    IPv4Address varchar(15),
 | 
			
		||||
    initialContact 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());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								main.go
								
								
								
								
							
							
						
						
									
										1
									
								
								main.go
								
								
								
								
							| 
						 | 
				
			
			@ -16,7 +16,6 @@ import (
 | 
			
		|||
	"strconv"
 | 
			
		||||
	"sync"
 | 
			
		||||
	"syscall"
 | 
			
		||||
	// "io"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/net/html"
 | 
			
		||||
	"gontrol/src/logger"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,7 @@ type Agent struct {
 | 
			
		|||
	LastContact    string `json:"lastContact"`
 | 
			
		||||
	IPv4Address    string `json:"IPv4Address"`
 | 
			
		||||
	Status         string `json:"status"`
 | 
			
		||||
	AddPort        string `json:"addPort"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 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")
 | 
			
		||||
	agentType := r.FormValue("agentType")
 | 
			
		||||
	IPv4Address := r.FormValue("IPv4Address")
 | 
			
		||||
	addPort :=r.FormValue("addPort")
 | 
			
		||||
	// initalContact := r.FormValue("initialContact")
 | 
			
		||||
	// lastContact := r.FormValue("lastContact")
 | 
			
		||||
 | 
			
		||||
	query := "INSERT INTO agents (agentId, agentName, agentType, IPv4Address, initialContact, lastContact) VALUES (?, ?, ?, ?, NOW(), NOW())"
 | 
			
		||||
	_, err = db.Exec(query, agentId, agentName, agentType, IPv4Address)
 | 
			
		||||
	query := "INSERT INTO agents (agentId, agentName, agentType, IPv4Address, addPort, initialContact, lastContact) VALUES (?, ?, ?, ?, ?, NOW(), NOW())"
 | 
			
		||||
	_, err = db.Exec(query, agentId, agentName, agentType, IPv4Address, addPort)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Printf("Database err is: %s", err)
 | 
			
		||||
		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) {
 | 
			
		||||
	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)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
| 
						 | 
				
			
			@ -97,7 +99,7 @@ func GetAgents(db *sql.DB) ([]Agent, error) {
 | 
			
		|||
	var agents []Agent
 | 
			
		||||
	for rows.Next() {
 | 
			
		||||
		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 {
 | 
			
		||||
			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) {
 | 
			
		||||
	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
 | 
			
		||||
	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 {
 | 
			
		||||
		http.Error(w, "Agent not found", http.StatusNotFound)
 | 
			
		||||
		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"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +56,7 @@ func registerAgent(agentName, agentId, agentIp, agentType string) error {
 | 
			
		|||
	form.Add("agentName", agentName)
 | 
			
		||||
	form.Add("agentType", agentType)
 | 
			
		||||
	form.Add("IPv4Address", agentIp)
 | 
			
		||||
	form.Add("addPort", addPort)
 | 
			
		||||
 | 
			
		||||
	resp, err := http.PostForm(registerURL, form)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -175,6 +176,15 @@ func (wsh webSocketHandler) ServeHTTP(w http.ResponseWriter, r *http.Request){
 | 
			
		|||
	agentId := r.URL.Query().Get("agentId")
 | 
			
		||||
	agentType := r.URL.Query().Get("agentType")
 | 
			
		||||
	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()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -184,7 +194,7 @@ func (wsh webSocketHandler) ServeHTTP(w http.ResponseWriter, r *http.Request){
 | 
			
		|||
 | 
			
		||||
	if !containsId(agentIds, agentId) {
 | 
			
		||||
		agentName = randomname.GenerateRandomName()
 | 
			
		||||
		registerAgent(agentName, agentId, agentIP, agentType)
 | 
			
		||||
		registerAgent(agentName, agentId, agentIP, agentType, addPort)
 | 
			
		||||
	} else {
 | 
			
		||||
		agentDetails, _ :=  getAgentDetails(agentId)
 | 
			
		||||
		agentName = agentDetails.AgentName
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -108,5 +108,4 @@
 | 
			
		|||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,8 +4,9 @@
 | 
			
		|||
    <p>Name: {{.AgentName}}</p>
 | 
			
		||||
    <p>Type: {{.AgentType}}</p>
 | 
			
		||||
    <p>IP Addr: {{.IPv4Address}}</p>
 | 
			
		||||
    <p>Interactive Port: {{.AddPort}}</p>
 | 
			
		||||
    <p>Initial Contact: {{.InitialContact}}</p>
 | 
			
		||||
    <p>Last Contact: {{.LastContact}}</p>
 | 
			
		||||
    <!-- <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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue