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,36 +58,41 @@ func PollConnection() {
log.Println("Creating connection")
c, err = net.Dial("unix", config.Settings.UIUnixSocketLocation)
} // else already connected
// handle error on connection
if err != nil {
log.Println(err)
// ignore
err = nil
c = nil
// sleep a while and then retry
time.Sleep(10 * time.Second)
}
// receive msgs
if c != nil {
if c != nil && err == nil {
data := make([]byte, 2048)
nr, err := c.Read(data)
log.Printf("Read %d bytes...", nr)
if err != nil {
log.Println(err)
break
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 {
log.Println(errjson)
continue
err = errjson
log.Printf("Error parsing json: %s", errjson)
c = nil
}
if errjson == nil {
ShowNotification(message)
}
}
}
// handle error on connection
if err != nil {
log.Printf("Error during communication: %s", err)
// ignore
err = nil
c = nil
// sleep a while and then retry
time.Sleep(10 * time.Second)
}
}
}
// ShowNotification shows a single notification
func ShowNotification(data map[string]string) {