expanded logging in reseed.go

This commit is contained in:
Haris Khan
2024-10-18 22:54:08 -04:00
parent be35267079
commit 8e97eb5f77

View File

@ -2,8 +2,9 @@ package reseed
import ( import (
"fmt" "fmt"
"github.com/go-i2p/go-i2p/lib/util/logger"
"github.com/sirupsen/logrus"
"io" "io"
"log"
"net" "net"
"net/http" "net/http"
"net/url" "net/url"
@ -16,6 +17,8 @@ import (
"github.com/go-i2p/go-i2p/lib/su3" "github.com/go-i2p/go-i2p/lib/su3"
) )
var log = logger.GetLogger()
const ( const (
I2pUserAgent = "Wget/1.11.4" I2pUserAgent = "Wget/1.11.4"
) )
@ -25,6 +28,8 @@ type Reseed struct {
} }
func (r Reseed) SingleReseed(uri string) ([]router_info.RouterInfo, error) { func (r Reseed) SingleReseed(uri string) ([]router_info.RouterInfo, error) {
log.WithField("uri", uri).Debug("Starting single reseed operation")
transport := http.Transport{ transport := http.Transport{
DialContext: r.DialContext, DialContext: r.DialContext,
} }
@ -33,6 +38,7 @@ func (r Reseed) SingleReseed(uri string) ([]router_info.RouterInfo, error) {
} }
URL, err := url.Parse(uri) URL, err := url.Parse(uri)
if err != nil { if err != nil {
log.WithError(err).Error("Failed to parse reseed URI")
return nil, err return nil, err
} }
header := http.Header{} header := http.Header{}
@ -43,12 +49,23 @@ func (r Reseed) SingleReseed(uri string) ([]router_info.RouterInfo, error) {
} }
response, err := client.Do(&request) response, err := client.Do(&request)
if err != nil { if err != nil {
log.WithError(err).Error("Failed to perform HTTP request")
return nil, err return nil, err
} }
log.Debug("Successfully received response from reseed server")
su3file, err := su3.Read(response.Body) su3file, err := su3.Read(response.Body)
if err != nil { if err != nil {
log.WithError(err).Error("Failed to read SU3 file")
return nil, err return nil, err
} }
log.WithFields(logrus.Fields{
"file_type": su3file.FileType,
"content_type": su3file.ContentType,
}).Debug("Successfully read SU3 file")
if su3file.FileType == su3.ZIP { if su3file.FileType == su3.ZIP {
if su3file.ContentType == su3.RESEED { if su3file.ContentType == su3.RESEED {
if err == nil { if err == nil {
@ -59,36 +76,53 @@ func (r Reseed) SingleReseed(uri string) ([]router_info.RouterInfo, error) {
return nil, err return nil, err
} }
log.Println("warning: this doesn't validate the signature yet", signature) log.Println("warning: this doesn't validate the signature yet", signature)
log.Warn("Doesn't validate the signature yet", logrus.Fields{"signature": signature})
} }
zip := filepath.Join(config.RouterConfigProperties.NetDb.Path, "reseed.zip") zip := filepath.Join(config.RouterConfigProperties.NetDb.Path, "reseed.zip")
err = os.WriteFile(zip, content, 0o644) err = os.WriteFile(zip, content, 0o644)
if err != nil { if err != nil {
log.WithError(err).Error("Failed to write reseed zip file")
return nil, err return nil, err
} }
// content is a zip file, unzip it and get the files // content is a zip file, unzip it and get the files
files, err := unzip.New().Extract(zip, config.RouterConfigProperties.NetDb.Path) files, err := unzip.New().Extract(zip, config.RouterConfigProperties.NetDb.Path)
if err != nil { if err != nil {
log.WithError(err).Error("Failed to extract reseed zip file")
return nil, err return nil, err
} }
if len(files) <= 0 { if len(files) <= 0 {
log.Error("Reseed appears to have no content")
return nil, fmt.Errorf("error: reseed appears to have no content") return nil, fmt.Errorf("error: reseed appears to have no content")
} }
log.WithField("file_count", len(files)).Debug("Successfully extracted reseed files")
var ris []router_info.RouterInfo var ris []router_info.RouterInfo
for _, f := range files { for _, f := range files {
riB, err := os.ReadFile(f) riB, err := os.ReadFile(f)
if err != nil { if err != nil {
log.WithError(err).WithField("file", f).Warn("Failed to read router info file")
continue continue
} }
ri, _, err := router_info.ReadRouterInfo(riB) ri, _, err := router_info.ReadRouterInfo(riB)
if err != nil { if err != nil {
log.WithError(err).WithField("file", f).Warn("Failed to parse router info")
continue continue
} }
ris = append(ris, ri) ris = append(ris, ri)
} }
err = os.Remove(zip) err = os.Remove(zip)
if err != nil {
log.WithError(err).Warn("Failed to remove reseed zip file")
}
log.WithField("router_info_count", len(ris)).Debug("Successfully processed reseed data")
return ris, err return ris, err
} else {
log.WithError(err).Error("Failed to read SU3 file signature")
return nil, err
} }
} }
} }
log.Error("Undefined reseed error")
return nil, fmt.Errorf("error: undefined reseed error") return nil, fmt.Errorf("error: undefined reseed error")
} }