Public key add bug

pull/59/head
刘河 2019-03-02 20:56:57 +08:00
parent b3660c3b8d
commit 037e7b28f1
1 changed files with 13 additions and 12 deletions

View File

@ -344,7 +344,7 @@ func (s *Bridge) ping() {
//get config and add task from client config
func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
var fail bool
loop:
for {
flag, err := c.ReadFlag()
if err != nil {
@ -353,12 +353,12 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
switch flag {
case common.WORK_STATUS:
if b, err := c.GetShortContent(32); err != nil {
break
break loop
} else {
var str string
id, err := file.GetCsvDb().GetClientIdByVkey(string(b))
if err != nil {
break
break loop
}
for _, v := range file.GetCsvDb().Hosts {
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 {
fail = true
c.WriteAddFail()
break
break loop
} else {
if err = file.GetCsvDb().NewClient(client); err != nil {
fail = true
c.WriteAddFail()
break
break loop
}
c.WriteAddOk()
c.Write([]byte(client.VerifyKey))
@ -396,7 +396,7 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
if err != nil {
fail = true
c.WriteAddFail()
break
break loop
}
h.Client = client
if h.Location == "" {
@ -406,7 +406,7 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
if file.GetCsvDb().IsHostExist(h) {
fail = true
c.WriteAddFail()
break
break loop
} else {
file.GetCsvDb().NewHost(h)
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 {
fail = true
c.WriteAddFail()
break
break loop
} else {
ports := common.GetPorts(t.Ports)
targets := common.GetPorts(t.Target)
if len(ports) > 1 && (t.Mode == "tcp" || t.Mode == "udp") && (len(ports) != len(targets)) {
fail = true
c.WriteAddFail()
break
break loop
} else if t.Mode == "secret" {
ports = append(ports, 0)
}
if len(ports) == 0 {
fail = true
c.WriteAddFail()
break
break loop
}
for i := 0; i < len(ports); i++ {
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())
fail = true
c.WriteAddFail()
break
break loop
}
if b := tool.TestServerPort(tl.Port, tl.Mode); !b && t.Mode != "secret" && t.Mode != "p2p" {
fail = true
c.WriteAddFail()
break
break loop
} else {
s.OpenTask <- tl
}
@ -478,6 +478,7 @@ func (s *Bridge) getConfig(c *conn.Conn, isPub bool, client *file.Client) {
}
}
if fail && client != nil {
file.GetCsvDb().DelClient(client.Id)
s.DelClient(client.Id, false)
}
c.Close()