expanded logging to router_address.go + gofumpt adjustment
This commit is contained in:
@@ -4,9 +4,10 @@ package certificate
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
//log "github.com/sirupsen/logrus"
|
||||
// log "github.com/sirupsen/logrus"
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
|
@@ -3,9 +3,10 @@ package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
"time"
|
||||
)
|
||||
|
||||
var log = logger.GetLogger()
|
||||
|
@@ -2,6 +2,7 @@ package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
@@ -2,8 +2,9 @@ package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
"sort"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// MappingValues represents the parsed key value pairs inside of an I2P Mapping.
|
||||
|
@@ -3,6 +3,7 @@ package data
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
@@ -2,9 +2,10 @@
|
||||
package destination
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
"strings"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
|
||||
|
||||
|
@@ -29,6 +29,7 @@ payload :: data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
@@ -327,7 +328,7 @@ func NewKeyCertificate(bytes []byte) (key_certificate *KeyCertificate, remainder
|
||||
// KeyCertificateFromCertificate returns a *KeyCertificate from a *Certificate.
|
||||
func KeyCertificateFromCertificate(certificate Certificate) *KeyCertificate {
|
||||
log.Debug("Creating KeyCertificate from Certificate")
|
||||
//k, _, _ := NewKeyCertificate(certificate.RawBytes())
|
||||
// k, _, _ := NewKeyCertificate(certificate.RawBytes())
|
||||
k, _, err := NewKeyCertificate(certificate.RawBytes())
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to create KeyCertificate from Certificate")
|
||||
|
@@ -3,6 +3,7 @@ package keys_and_cert
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/certificate"
|
||||
|
@@ -3,6 +3,7 @@ package lease_set
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
|
@@ -8,8 +8,10 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
. "github.com/go-i2p/go-i2p/lib/common/data"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// Minimum number of bytes in a valid RouterAddress
|
||||
@@ -17,6 +19,8 @@ const (
|
||||
ROUTER_ADDRESS_MIN_SIZE = 9
|
||||
)
|
||||
|
||||
var log = logger.GetLogger()
|
||||
|
||||
/*
|
||||
[RouterAddress]
|
||||
Accurate for version 0.9.49
|
||||
@@ -75,34 +79,48 @@ type RouterAddress struct {
|
||||
|
||||
// Network implements net.Addr. It returns the transport type plus 4 or 6
|
||||
func (router_address *RouterAddress) Network() string {
|
||||
log.Debug("Getting network for RouterAddress")
|
||||
if router_address.TransportType == nil {
|
||||
log.Warn("TransportType is nil in RouterAddress")
|
||||
return ""
|
||||
}
|
||||
str, err := router_address.TransportType.Data()
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to get TransportType data")
|
||||
return ""
|
||||
}
|
||||
return string(str) + router_address.IPVersion()
|
||||
network := string(str) + router_address.IPVersion()
|
||||
log.WithField("network", network).Debug("Retrieved network for RouterAddress")
|
||||
return network
|
||||
}
|
||||
|
||||
// IPVersion returns a string "4" for IPv4 or 6 for IPv6
|
||||
func (router_address *RouterAddress) IPVersion() string {
|
||||
log.Debug("Getting IP version for RouterAddress")
|
||||
str, err := router_address.CapsString().Data()
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to get CapsString data")
|
||||
return ""
|
||||
}
|
||||
if strings.HasSuffix(str, "6") {
|
||||
log.Debug("IP version is IPv6")
|
||||
return "6"
|
||||
}
|
||||
log.Debug("IP version is IPv4")
|
||||
return "4"
|
||||
}
|
||||
|
||||
func (router_address *RouterAddress) UDP() bool {
|
||||
return strings.HasPrefix(strings.ToLower(router_address.Network()), "ssu")
|
||||
// return strings.HasPrefix(strings.ToLower(router_address.Network()), "ssu")
|
||||
log.Debug("Checking if RouterAddress is UDP")
|
||||
isUDP := strings.HasPrefix(strings.ToLower(router_address.Network()), "ssu")
|
||||
log.WithField("is_udp", isUDP).Debug("Checked if RouterAddress is UDP")
|
||||
return isUDP
|
||||
}
|
||||
|
||||
// String implements net.Addr. It returns the IP address, followed by the options
|
||||
func (router_address *RouterAddress) String() string {
|
||||
log.Debug("Converting RouterAddress to string")
|
||||
var rv []string
|
||||
rv = append(rv, string(router_address.TransportStyle()))
|
||||
rv = append(rv, string(router_address.HostString()))
|
||||
@@ -121,25 +139,29 @@ func (router_address *RouterAddress) String() string {
|
||||
rv = append(rv, string(router_address.IntroducerExpirationString(2)))
|
||||
rv = append(rv, string(router_address.IntroducerTagString(2)))
|
||||
}
|
||||
return strings.TrimSpace(strings.Join(rv, " "))
|
||||
str := strings.TrimSpace(strings.Join(rv, " "))
|
||||
log.WithField("router_address_string", str).Debug("Converted RouterAddress to string")
|
||||
return str
|
||||
}
|
||||
|
||||
var ex_addr net.Addr = &RouterAddress{}
|
||||
|
||||
// Bytes returns the router address as a []byte.
|
||||
func (router_address RouterAddress) Bytes() []byte {
|
||||
log.Debug("Converting RouterAddress to bytes")
|
||||
bytes := make([]byte, 0)
|
||||
bytes = append(bytes, router_address.TransportCost.Bytes()...)
|
||||
bytes = append(bytes, router_address.ExpirationDate.Bytes()...)
|
||||
strData, err := router_address.TransportType.Data()
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
log.WithFields(logrus.Fields{
|
||||
"error": err,
|
||||
}).Error("RouterAddress.Bytes: error getting transport_style bytes")
|
||||
} else {
|
||||
bytes = append(bytes, strData...)
|
||||
}
|
||||
bytes = append(bytes, router_address.TransportOptions.Data()...)
|
||||
log.WithField("bytes_length", len(bytes)).Debug("Converted RouterAddress to bytes")
|
||||
return bytes
|
||||
}
|
||||
|
||||
@@ -224,29 +246,45 @@ func (router_address RouterAddress) IntroducerTagString(num int) I2PString {
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) Host() (net.Addr, error) {
|
||||
log.Debug("Getting host from RouterAddress")
|
||||
host := router_address.HostString()
|
||||
hostBytes, err := host.Data()
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to get host data")
|
||||
return nil, err
|
||||
}
|
||||
ip := net.ParseIP(hostBytes)
|
||||
if ip == nil {
|
||||
log.Error("Failed to parse IP address")
|
||||
return nil, fmt.Errorf("null host error")
|
||||
}
|
||||
return net.ResolveIPAddr("", ip.String())
|
||||
// return net.ResolveIPAddr("", ip.String())
|
||||
addr, err := net.ResolveIPAddr("", ip.String())
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to resolve IP address")
|
||||
} else {
|
||||
log.WithField("addr", addr).Debug("Retrieved host from RouterAddress")
|
||||
}
|
||||
return addr, err
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) Port() (string, error) {
|
||||
log.Debug("Getting port from RouterAddress")
|
||||
port := router_address.PortString()
|
||||
portBytes, err := port.Data()
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to get port data")
|
||||
return "", err
|
||||
}
|
||||
val, err := strconv.Atoi(portBytes)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to convert port to integer")
|
||||
return "", err
|
||||
}
|
||||
return strconv.Itoa(val), nil
|
||||
// return strconv.Itoa(val), nil
|
||||
portStr := strconv.Itoa(val)
|
||||
log.WithField("port", portStr).Debug("Retrieved port from RouterAddress")
|
||||
return portStr, nil
|
||||
}
|
||||
|
||||
func (router_address RouterAddress) StaticKey() ([32]byte, error) {
|
||||
@@ -283,6 +321,7 @@ func (router_address RouterAddress) checkValid() (err error, exit bool) {
|
||||
// The remaining bytes after the specified length are also returned.
|
||||
// Returns a list of errors that occurred during parsing.
|
||||
func ReadRouterAddress(data []byte) (router_address RouterAddress, remainder []byte, err error) {
|
||||
log.WithField("data_length", len(data)).Debug("Reading RouterAddress from data")
|
||||
if len(data) == 0 {
|
||||
log.WithField("at", "(RouterAddress) ReadRouterAddress").Error("error parsing RouterAddress: no data")
|
||||
err = errors.New("error parsing RouterAddress: no data")
|
||||
@@ -290,21 +329,21 @@ func ReadRouterAddress(data []byte) (router_address RouterAddress, remainder []b
|
||||
}
|
||||
router_address.TransportCost, remainder, err = NewInteger(data, 1)
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
log.WithFields(logrus.Fields{
|
||||
"at": "(RouterAddress) ReadNewRouterAddress",
|
||||
"reason": "error parsing cost",
|
||||
}).Warn("error parsing RouterAddress")
|
||||
}
|
||||
router_address.ExpirationDate, remainder, err = NewDate(remainder)
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
log.WithFields(logrus.Fields{
|
||||
"at": "(RouterAddress) ReadNewRouterAddress",
|
||||
"reason": "error parsing expiration",
|
||||
}).Error("error parsing RouterAddress")
|
||||
}
|
||||
router_address.TransportType, remainder, err = ReadI2PString(remainder)
|
||||
if err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
log.WithFields(logrus.Fields{
|
||||
"at": "(RouterAddress) ReadNewRouterAddress",
|
||||
"reason": "error parsing transport_style",
|
||||
}).Error("error parsing RouterAddress")
|
||||
@@ -312,7 +351,7 @@ func ReadRouterAddress(data []byte) (router_address RouterAddress, remainder []b
|
||||
var errs []error
|
||||
router_address.TransportOptions, remainder, errs = NewMapping(remainder)
|
||||
for _, err := range errs {
|
||||
log.WithFields(log.Fields{
|
||||
log.WithFields(logrus.Fields{
|
||||
"at": "(RouterAddress) ReadNewRouterAddress",
|
||||
"reason": "error parsing options",
|
||||
"error": err,
|
||||
|
@@ -3,9 +3,10 @@ package noise
|
||||
import (
|
||||
"crypto/rand"
|
||||
"encoding/binary"
|
||||
"testing"
|
||||
|
||||
"github.com/flynn/noise"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEncryptDecryptPacketOffline(t *testing.T) {
|
||||
|
@@ -28,7 +28,7 @@ func ComposeReceiverHandshakeMessage(s noise.DHKey, rs []byte, payload []byte, e
|
||||
prologue := make([]byte, 2, uint16Size+len(negData))
|
||||
binary.BigEndian.PutUint16(prologue, uint16(len(negData)))
|
||||
prologue = append(prologue, negData...)
|
||||
//prologue = append(initString, prologue...)
|
||||
// prologue = append(initString, prologue...)
|
||||
state, err = noise.NewHandshakeState(noise.Config{
|
||||
StaticKeypair: s,
|
||||
Initiator: false,
|
||||
|
@@ -38,7 +38,7 @@ func initNegotiationData(negotiationData []byte) []byte {
|
||||
return negotiationData
|
||||
}
|
||||
negotiationData = make([]byte, 6)
|
||||
binary.BigEndian.PutUint16(negotiationData, 1) //version
|
||||
binary.BigEndian.PutUint16(negotiationData, 1) // version
|
||||
negotiationData[2] = NOISE_DH_CURVE25519
|
||||
negotiationData[3] = NOISE_CIPHER_CHACHAPOLY
|
||||
negotiationData[4] = NOISE_HASH_SHA256
|
||||
|
@@ -13,9 +13,7 @@ import (
|
||||
|
||||
func ComposeInitiatorHandshakeMessage(s noise.DHKey, rs []byte, payload []byte, ePrivate []byte) (negData, msg []byte, state *noise.HandshakeState, err error) {
|
||||
if len(rs) != 0 && len(rs) != noise.DH25519.DHLen() {
|
||||
|
||||
return nil, nil, nil, errors.New("only 32 byte curve25519 public keys are supported")
|
||||
|
||||
}
|
||||
negData = make([]byte, 6)
|
||||
copy(negData, initNegotiationData(nil))
|
||||
@@ -30,7 +28,7 @@ func ComposeInitiatorHandshakeMessage(s noise.DHKey, rs []byte, payload []byte,
|
||||
prologue := make([]byte, 2, uint16Size+len(negData))
|
||||
binary.BigEndian.PutUint16(prologue, uint16(len(negData)))
|
||||
prologue = append(prologue, negData...)
|
||||
//prologue = append(initString, prologue...)
|
||||
// prologue = append(initString, prologue...)
|
||||
state, err = noise.NewHandshakeState(noise.Config{
|
||||
StaticKeypair: s,
|
||||
Initiator: true,
|
||||
|
@@ -71,7 +71,7 @@ func (c *NoiseSession) decryptPacket(data []byte) (int, []byte, error) {
|
||||
|
||||
func (c *NoiseSession) readPacketLocked(data []byte) (int, error) {
|
||||
var n int
|
||||
if len(data) == 0 { //special case to answer when everything is ok during handshake
|
||||
if len(data) == 0 { // special case to answer when everything is ok during handshake
|
||||
if _, err := c.Conn.Read(make([]byte, 2)); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
@@ -52,8 +52,10 @@ func (noise_session *NoiseSession) SetWriteDeadline(t time.Time) error {
|
||||
return noise_session.Conn.SetWriteDeadline(t)
|
||||
}
|
||||
|
||||
var exampleNoiseSession transport.TransportSession = &NoiseSession{}
|
||||
var ExampleNoiseSession net.Conn = exampleNoiseSession.(*NoiseSession)
|
||||
var (
|
||||
exampleNoiseSession transport.TransportSession = &NoiseSession{}
|
||||
ExampleNoiseSession net.Conn = exampleNoiseSession.(*NoiseSession)
|
||||
)
|
||||
|
||||
func (s *NoiseSession) LocalAddr() net.Addr {
|
||||
return s.Conn.LocalAddr()
|
||||
@@ -81,7 +83,7 @@ func newBlock() []byte {
|
||||
type VerifyCallbackFunc func(publicKey []byte, data []byte) error
|
||||
|
||||
func NewNoiseTransportSession(ri router_info.RouterInfo) (transport.TransportSession, error) {
|
||||
//socket, err := DialNoise("noise", ri)
|
||||
// socket, err := DialNoise("noise", ri)
|
||||
for _, addr := range ri.RouterAddresses() {
|
||||
socket, err := net.Dial("tcp", string(addr.Bytes()))
|
||||
if err != nil {
|
||||
|
@@ -29,5 +29,5 @@ func TestTransport(t *testing.T) {
|
||||
}
|
||||
ntt := NewNoiseTransport(lnn)
|
||||
t.Log(ntt.Name())
|
||||
//ntt.GetSession()
|
||||
// ntt.GetSession()
|
||||
}
|
||||
|
@@ -50,7 +50,7 @@ func (c *NoiseSession) encryptPacket(data []byte) (int, []byte, error) {
|
||||
if err != nil {
|
||||
return 0, nil, fmt.Errorf("failed to encrypt: '%w'", err)
|
||||
}
|
||||
//m := len(encryptedData)
|
||||
// m := len(encryptedData)
|
||||
|
||||
lengthPrefix := make([]byte, 2)
|
||||
binary.BigEndian.PutUint16(lengthPrefix, uint16(len(encryptedData)))
|
||||
@@ -81,7 +81,7 @@ func (c *NoiseSession) encryptPacket(data []byte) (int, []byte, error) {
|
||||
|
||||
func (c *NoiseSession) writePacketLocked(data []byte) (int, error) {
|
||||
var n int
|
||||
if len(data) == 0 { //special case to answer when everything is ok during handshake
|
||||
if len(data) == 0 { // special case to answer when everything is ok during handshake
|
||||
if _, err := c.Conn.Write(make([]byte, 2)); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
@@ -1,11 +1,12 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"github.com/sirupsen/logrus"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var (
|
||||
|
2
main.go
2
main.go
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
|
||||
"github.com/go-i2p/go-i2p/lib/config"
|
||||
"github.com/go-i2p/go-i2p/lib/router"
|
||||
"github.com/go-i2p/go-i2p/lib/util/logger"
|
||||
@@ -11,7 +12,6 @@ import (
|
||||
var log = logger.GetLogger()
|
||||
|
||||
func main() {
|
||||
|
||||
netDbPath := flag.String("netDb", config.DefaultNetDbConfig.Path, "Path to the netDb")
|
||||
flag.Parse()
|
||||
config.RouterConfigProperties.NetDb.Path = *netDbPath
|
||||
|
Reference in New Issue
Block a user