update error handling in tcp call hander
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 29s
Build and Publish / BuildAndDeploy (push) Successful in 2m33s

This commit is contained in:
matst80
2024-11-21 21:43:14 +01:00
parent 1f7f161e62
commit d5efb39872
3 changed files with 5 additions and 4 deletions

View File

@@ -223,7 +223,7 @@ func main() {
}(conn) }(conn)
}(l) }(l)
} else { } else {
log.Println("Error creating echo server: %v\n", err) log.Printf("Error creating echo server: %v\n", err)
} }
sigs := make(chan os.Signal, 1) sigs := make(chan os.Signal, 1)

View File

@@ -174,7 +174,7 @@ func (l *GenericListener) HandleConnection(conn net.Conn) {
case frame := <-ch: case frame := <-ch:
err := l.HandleFrame(conn, &frame) err := l.HandleFrame(conn, &frame)
if err != nil { if err != nil {
log.Fatalf("Error handling frame: %v\n", err) log.Fatalf("Error in handler: %v\n", err)
} }
case <-time.After(MaxCallDuration): case <-time.After(MaxCallDuration):
close(ch) close(ch)
@@ -194,7 +194,8 @@ func (l *GenericListener) HandleFrame(conn net.Conn, frame *FrameWithPayload) er
defer close(resultChan) defer close(resultChan)
err := handler(frame, resultChan) err := handler(frame, resultChan)
if err != nil { if err != nil {
log.Fatalf("Error handling frame: %v\n", err) resultChan <- MakeFrameWithPayload(frame.Type, 500, []byte(err.Error()))
log.Printf("Handler returned error: %s", err)
} }
result := <-resultChan result := <-resultChan
err = SendFrame(conn, &result) err = SendFrame(conn, &result)

View File

@@ -21,7 +21,7 @@ func TestGenericConnection(t *testing.T) {
return nil return nil
}) })
listener.AddHandler(3, func(input *FrameWithPayload, resultChan chan<- FrameWithPayload) error { listener.AddHandler(3, func(input *FrameWithPayload, resultChan chan<- FrameWithPayload) error {
return fmt.Errorf("Error") return fmt.Errorf("Error in custom handler")
}) })
r, err := conn.Call(1, datta) r, err := conn.Call(1, datta)
if err != nil { if err != nil {