Use x-real-ip header
This commit is contained in:
parent
e96e088f2d
commit
af29c003ad
|
@ -16,6 +16,7 @@ import (
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
|
"google.golang.org/grpc/metadata"
|
||||||
"google.golang.org/grpc/peer"
|
"google.golang.org/grpc/peer"
|
||||||
"google.golang.org/grpc/reflection"
|
"google.golang.org/grpc/reflection"
|
||||||
|
|
||||||
|
@ -85,10 +86,17 @@ func logInterceptor(
|
||||||
}
|
}
|
||||||
|
|
||||||
func loggerFromContext(ctx context.Context) *logrus.Entry {
|
func loggerFromContext(ctx context.Context) *logrus.Entry {
|
||||||
// TODO: anonymize the addresses. cryptopan?
|
if xRealIP, ok := metadata.FromIncomingContext(ctx); ok {
|
||||||
|
realIP := xRealIP.Get("x-real-ip")
|
||||||
|
if len(realIP) > 0 {
|
||||||
|
return log.WithFields(logrus.Fields{"peer_addr": realIP[0]})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if peerInfo, ok := peer.FromContext(ctx); ok {
|
if peerInfo, ok := peer.FromContext(ctx); ok {
|
||||||
return log.WithFields(logrus.Fields{"peer_addr": peerInfo.Addr})
|
return log.WithFields(logrus.Fields{"peer_addr": peerInfo.Addr})
|
||||||
}
|
}
|
||||||
|
|
||||||
return log.WithFields(logrus.Fields{"peer_addr": "unknown"})
|
return log.WithFields(logrus.Fields{"peer_addr": "unknown"})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ import (
|
||||||
|
|
||||||
"github.com/btcsuite/btcd/rpcclient"
|
"github.com/btcsuite/btcd/rpcclient"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
"google.golang.org/grpc/metadata"
|
||||||
"google.golang.org/grpc/peer"
|
"google.golang.org/grpc/peer"
|
||||||
|
|
||||||
"github.com/adityapk00/lightwalletd/common"
|
"github.com/adityapk00/lightwalletd/common"
|
||||||
|
@ -144,20 +145,21 @@ func (s *SqlStreamer) GetAddressTxids(addressBlockFilter *walletrpc.TransparentA
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SqlStreamer) peerIPFromContext(ctx context.Context) string {
|
func (s *SqlStreamer) peerIPFromContext(ctx context.Context) string {
|
||||||
var peerip string
|
if xRealIP, ok := metadata.FromIncomingContext(ctx); ok {
|
||||||
|
realIP := xRealIP.Get("x-real-ip")
|
||||||
|
if len(realIP) > 0 {
|
||||||
|
return realIP[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if peerInfo, ok := peer.FromContext(ctx); ok {
|
if peerInfo, ok := peer.FromContext(ctx); ok {
|
||||||
ip, _, err := net.SplitHostPort(peerInfo.Addr.String())
|
ip, _, err := net.SplitHostPort(peerInfo.Addr.String())
|
||||||
if err == nil {
|
if err == nil {
|
||||||
peerip = ip
|
return ip
|
||||||
} else {
|
|
||||||
peerip = "unknown"
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
peerip = "unknown"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return peerip
|
return "unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SqlStreamer) dailyActiveBlock(height uint64, peerip string) {
|
func (s *SqlStreamer) dailyActiveBlock(height uint64, peerip string) {
|
||||||
|
|
Loading…
Reference in New Issue