mirror of
https://github.com/aljazceru/ark.git
synced 2025-12-17 12:14:21 +01:00
* isInitialized update update walletInitialized to return true is walled.db exist, add walletLoaded that check if wallet property is nil * panic handler
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package interceptors
|
|
|
|
import (
|
|
"context"
|
|
"runtime/debug"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
"google.golang.org/grpc"
|
|
)
|
|
|
|
func unaryPanicRecoveryInterceptor() grpc.UnaryServerInterceptor {
|
|
return func(
|
|
ctx context.Context,
|
|
req interface{},
|
|
info *grpc.UnaryServerInfo,
|
|
handler grpc.UnaryHandler,
|
|
) (interface{}, error) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Errorf("panic-recovery middleware recovered from panic: %v", r)
|
|
log.Tracef("panic-recovery middleware recovered from panic: %v", string(debug.Stack()))
|
|
}
|
|
}()
|
|
|
|
return handler(ctx, req)
|
|
}
|
|
}
|
|
|
|
func streamPanicRecoveryInterceptor() grpc.StreamServerInterceptor {
|
|
return func(
|
|
srv interface{},
|
|
stream grpc.ServerStream,
|
|
info *grpc.StreamServerInfo,
|
|
handler grpc.StreamHandler,
|
|
) error {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Errorf("panic-recovery middleware recovered from panic: %v", r)
|
|
log.Tracef("panic-recovery middleware recovered from panic: %v", string(debug.Stack()))
|
|
}
|
|
}()
|
|
|
|
return handler(srv, stream)
|
|
}
|
|
}
|