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