mirror of
https://github.com/ehang-io/nps.git
synced 2025-07-02 04:00:42 +00:00
Public key add bug
This commit is contained in:
parent
b3660c3b8d
commit
037e7b28f1
@ -344,7 +344,7 @@ func (s *Bridge) ping() {
|
|||||||
//get config and add task from client config
|
//get config and add task from client config
|
||||||
func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
||||||
var fail bool
|
var fail bool
|
||||||
|
loop:
|
||||||
for {
|
for {
|
||||||
flag, err := c.ReadFlag()
|
flag, err := c.ReadFlag()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -353,12 +353,12 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
|||||||
switch flag {
|
switch flag {
|
||||||
case common.WORK_STATUS:
|
case common.WORK_STATUS:
|
||||||
if b, err := c.GetShortContent(32); err != nil {
|
if b, err := c.GetShortContent(32); err != nil {
|
||||||
break
|
break loop
|
||||||
} else {
|
} else {
|
||||||
var str string
|
var str string
|
||||||
id, err := file.GetCsvDb().GetClientIdByVkey(string(b))
|
id, err := file.GetCsvDb().GetClientIdByVkey(string(b))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
break
|
break loop
|
||||||
}
|
}
|
||||||
for _, v := range file.GetCsvDb().Hosts {
|
for _, v := range file.GetCsvDb().Hosts {
|
||||||
if v.Client.Id == id {
|
if v.Client.Id == id {
|
||||||
@ -378,12 +378,12 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
|||||||
if client, err = c.GetConfigInfo(); err != nil {
|
if client, err = c.GetConfigInfo(); err != nil {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
} else {
|
} else {
|
||||||
if err = file.GetCsvDb().NewClient(client); err != nil {
|
if err = file.GetCsvDb().NewClient(client); err != nil {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
}
|
}
|
||||||
c.WriteAddOk()
|
c.WriteAddOk()
|
||||||
c.Write([]byte(client.VerifyKey))
|
c.Write([]byte(client.VerifyKey))
|
||||||
@ -396,7 +396,7 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
}
|
}
|
||||||
h.Client = client
|
h.Client = client
|
||||||
if h.Location == "" {
|
if h.Location == "" {
|
||||||
@ -406,7 +406,7 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
|||||||
if file.GetCsvDb().IsHostExist(h) {
|
if file.GetCsvDb().IsHostExist(h) {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
} else {
|
} else {
|
||||||
file.GetCsvDb().NewHost(h)
|
file.GetCsvDb().NewHost(h)
|
||||||
c.WriteAddOk()
|
c.WriteAddOk()
|
||||||
@ -418,21 +418,21 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
|||||||
if t, err := c.GetTaskInfo(); err != nil {
|
if t, err := c.GetTaskInfo(); err != nil {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
} else {
|
} else {
|
||||||
ports := common.GetPorts(t.Ports)
|
ports := common.GetPorts(t.Ports)
|
||||||
targets := common.GetPorts(t.Target)
|
targets := common.GetPorts(t.Target)
|
||||||
if len(ports) > 1 && (t.Mode == "tcp" || t.Mode == "udp") && (len(ports) != len(targets)) {
|
if len(ports) > 1 && (t.Mode == "tcp" || t.Mode == "udp") && (len(ports) != len(targets)) {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
} else if t.Mode == "secret" {
|
} else if t.Mode == "secret" {
|
||||||
ports = append(ports, 0)
|
ports = append(ports, 0)
|
||||||
}
|
}
|
||||||
if len(ports) == 0 {
|
if len(ports) == 0 {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
}
|
}
|
||||||
for i := 0; i < len(ports); i++ {
|
for i := 0; i < len(ports); i++ {
|
||||||
tl := new(file.Tunnel)
|
tl := new(file.Tunnel)
|
||||||
@ -462,12 +462,12 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
|||||||
logs.Notice("Add task error ", err.Error())
|
logs.Notice("Add task error ", err.Error())
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
}
|
}
|
||||||
if b := tool.TestServerPort(tl.Port, tl.Mode); !b && t.Mode != "secret" && t.Mode != "p2p" {
|
if b := tool.TestServerPort(tl.Port, tl.Mode); !b && t.Mode != "secret" && t.Mode != "p2p" {
|
||||||
fail = true
|
fail = true
|
||||||
c.WriteAddFail()
|
c.WriteAddFail()
|
||||||
break
|
break loop
|
||||||
} else {
|
} else {
|
||||||
s.OpenTask <- tl
|
s.OpenTask <- tl
|
||||||
}
|
}
|
||||||
@ -478,6 +478,7 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if fail && client != nil {
|
if fail && client != nil {
|
||||||
|
file.GetCsvDb().DelClient(client.Id)
|
||||||
s.DelClient(client.Id, false)
|
s.DelClient(client.Id, false)
|
||||||
}
|
}
|
||||||
c.Close()
|
c.Close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user