var ranges []iplist.Range
uniqStrs := make(map[string]string)
scanner := bufio.NewScanner(f)
+ lineNum := 1
for scanner.Scan() {
r, ok, lineErr := iplist.ParseBlocklistP2PLine(scanner.Bytes())
if lineErr != nil {
- err = fmt.Errorf("error reading torrent blocklist line: %s", lineErr)
+ err = fmt.Errorf("error reading torrent blocklist line %d: %s", lineNum, lineErr)
return
}
+ lineNum++
if !ok {
continue
}
import (
"bytes"
+ "errors"
"fmt"
"net"
"sort"
return
}
colon := bytes.IndexByte(l, ':')
- hyphen := bytes.IndexByte(l[colon+1:], '-') + colon + 1
+ if colon == -1 {
+ err = errors.New("missing colon")
+ return
+ }
+ hyphen := bytes.IndexByte(l[colon+1:], '-')
+ if hyphen == -1 {
+ err = errors.New("missing hyphen")
+ return
+ }
+ hyphen += colon + 1
r.Description = string(l[:colon])
r.First = net.ParseIP(string(l[colon+1 : hyphen]))
r.Last = net.ParseIP(string(l[hyphen+1:]))