Take Brazilian AS details from NIC.br's WHOIS server (closes #174)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
LACNIC's answer for an AS that NIC.br registers is NIC.br's answer with each accented letter replaced by U+FFFD, so a name such as AS52751's cannot be recovered from it. When LACNIC's answer carries NIC.br's copyright notice, the client now also asks whois.registro.br for the AS and takes the fields from that answer, which is Latin-1 and decoded as before. When that query fails, when the answer has no fields, or when NIC.br says the client is over its query limit, LACNIC's fields are kept and a warning is logged. After an over-limit answer the client skips NIC.br for an hour. The tests use recorded answers for AS52751. Model: opus-5-5
This commit was merged in pull request #179.
This commit is contained in:
@@ -68,10 +68,12 @@ type ASNFetcher struct {
|
||||
|
||||
// NewASNFetcher creates a new ASN fetcher.
|
||||
func NewASNFetcher(db database.Store, logger *slog.Logger) *ASNFetcher {
|
||||
logger = logger.With("component", "asn_fetcher")
|
||||
|
||||
return &ASNFetcher{
|
||||
db: db,
|
||||
whoisClient: whois.NewClient(),
|
||||
logger: logger.With("component", "asn_fetcher"),
|
||||
whoisClient: whois.NewClient(logger),
|
||||
logger: logger,
|
||||
immediateQueue: make(chan int, immediateQueueSize),
|
||||
stopCh: make(chan struct{}),
|
||||
done: make(chan struct{}),
|
||||
|
||||
Reference in New Issue
Block a user