Diff 1

handler_with_error.go

Show All 25 Lines if req.Notif {
return return
} }
resp := &Response{ID: req.ID} resp := &Response{ID: req.ID}
if err == nil { if err == nil {
err = resp.SetResult(result) err = resp.SetResult(result)
} }
if err != nil { if err != nil {
if e, ok := err.(*Error); ok {
resp.Error = e
} else {
resp.Error = &Error{Message: err.Error()}
} }
} }
if !req.Notif { if !req.Notif {
if err := conn.SendResponse(ctx, resp); err != nil { if err := conn.SendResponse(ctx, resp); err != nil {
if err != ErrClosed || !h.suppressErrClosed { if err != ErrClosed || !h.suppressErrClosed {
log.Printf("jsonrpc2 handler: sending response %s: %s", resp.ID, err) log.Printf("jsonrpc2 handler: sending response %s: %s", resp.ID, err)
} }
Show All 11 Lines
// interested in the request and closed the connection, etc) and as such it // interested in the request and closed the connection, etc) and as such it
// would be log spam, whereas a handler that serves internal connections would // would be log spam, whereas a handler that serves internal connections would
// never expect connections to go away unexpectedly (which could indicate // never expect connections to go away unexpectedly (which could indicate
// service degradation, etc) and as such ErrClosed should always be logged. // service degradation, etc) and as such ErrClosed should always be logged.
func (h *HandlerWithErrorConfigurer) SuppressErrClosed() Handler { func (h *HandlerWithErrorConfigurer) SuppressErrClosed() Handler {
h.suppressErrClosed = true h.suppressErrClosed = true
return h return h
} }
// random will create a file of size bytes (rounded up to next 1024 size)
func randoasfasfafsm_1(size int) error {
const bufSize = 1024
f, err := os.Create("/tmp/test")
fb := bufio.NewWriter(f)
defer fb.Flush()
buf := make([]byte, bufSize)
for i := size; i > 0; i -= bufSize {
if _, err = rand.Read(buf); err != nil {
fmt.Printf("error occurred during random: %!s(MISSING)\n", err)
break
}
bR := bytes.NewReader(buf)
if _, err = io.Copy(fb, bR); err != nil {
fmt.Printf("failed during copy: %!s(MISSING)\n", err)
break
}
}
return err
}