Fix retrying ui connection

This commit is contained in:
Marcel Otte 2022-10-10 23:11:02 +02:00
parent 0e98dc93e9
commit 559e7f72b3
1 changed files with 25 additions and 20 deletions

View File

@ -58,34 +58,39 @@ func PollConnection() {
log.Println("Creating connection") log.Println("Creating connection")
c, err = net.Dial("unix", config.Settings.UIUnixSocketLocation) c, err = net.Dial("unix", config.Settings.UIUnixSocketLocation)
} // else already connected } // else already connected
// receive msgs
if c != nil && err == nil {
data := make([]byte, 2048)
nr, err := c.Read(data)
log.Printf("Read %d bytes...", nr)
if err != nil {
log.Printf("Error reading data from socket: %s", err)
c = nil
}
if err == nil {
sdata := string(bytes.Trim(data, "\x00"))
var message map[string]string
log.Printf("Reading JSON: %s", sdata)
errjson := json.Unmarshal([]byte(sdata), &message)
if errjson != nil {
err = errjson
log.Printf("Error parsing json: %s", errjson)
c = nil
}
if errjson == nil {
ShowNotification(message)
}
}
}
// handle error on connection // handle error on connection
if err != nil { if err != nil {
log.Println(err) log.Printf("Error during communication: %s", err)
// ignore // ignore
err = nil err = nil
c = nil c = nil
// sleep a while and then retry // sleep a while and then retry
time.Sleep(10 * time.Second) time.Sleep(10 * time.Second)
} }
// receive msgs
if c != nil {
data := make([]byte, 2048)
nr, err := c.Read(data)
log.Printf("Read %d bytes...", nr)
if err != nil {
log.Println(err)
break
}
sdata := string(bytes.Trim(data, "\x00"))
var message map[string]string
log.Printf("Reading JSON: %s", sdata)
errjson := json.Unmarshal([]byte(sdata), &message)
if errjson != nil {
log.Println(errjson)
continue
}
ShowNotification(message)
}
} }
} }