oui_test: fix data race when overriding ouiURL
This commit is contained in:
parent
6320b6c3a7
commit
13926217d9
@ -32,15 +32,26 @@ type DB struct {
|
||||
orgs map[string]string
|
||||
}
|
||||
|
||||
type option func(d *DB)
|
||||
|
||||
func ouiURL(u string) option {
|
||||
return func(d *DB) {
|
||||
d.ouiURL = u
|
||||
}
|
||||
}
|
||||
|
||||
// NewDB loads a database from the cached version in dir, if any, and
|
||||
// asynchronously triggers an update. Use WaitUntilLoaded() to ensure Lookup()
|
||||
// will work, or use Lookup() opportunistically at any time.
|
||||
func NewDB(dir string) *DB {
|
||||
func NewDB(dir string, opts ...option) *DB {
|
||||
db := &DB{
|
||||
dir: dir,
|
||||
ouiURL: "http://standards-oui.ieee.org/oui/oui.csv",
|
||||
}
|
||||
db.cond = sync.NewCond(&db.Mutex)
|
||||
for _, o := range opts {
|
||||
o(db)
|
||||
}
|
||||
go db.update()
|
||||
return db
|
||||
}
|
||||
|
@ -33,8 +33,7 @@ MA-L,4409B8,"Salcomp (Shenzhen) CO., LTD.","Salcomp Road, Furong Industrial Area
|
||||
}))
|
||||
defer srv.Close()
|
||||
|
||||
db := NewDB(tmpdir)
|
||||
db.ouiURL = srv.URL
|
||||
db := NewDB(tmpdir, ouiURL(srv.URL))
|
||||
if err := db.WaitUntilLoaded(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -56,8 +55,7 @@ MA-L,4409B8,"Salcomp (Shenzhen) CO., LTD.","Salcomp Road, Furong Industrial Area
|
||||
}))
|
||||
defer srv.Close()
|
||||
|
||||
db := NewDB(tmpdir)
|
||||
db.ouiURL = srv.URL
|
||||
db := NewDB(tmpdir, ouiURL(srv.URL))
|
||||
if err := db.WaitUntilLoaded(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -87,8 +85,7 @@ MA-L,4409B8,"Salcomp (Shenzhen) CO., LTD.","Salcomp Road, Furong Industrial Area
|
||||
}))
|
||||
defer srv.Close()
|
||||
|
||||
db := NewDB(tmpdir)
|
||||
db.ouiURL = srv.URL
|
||||
db := NewDB(tmpdir, ouiURL(srv.URL))
|
||||
if err := db.WaitUntilLoaded(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -121,8 +118,7 @@ MA-L,F09FC2,Obiquiti Networks Inc.,2580 Orchard Parkway San Jose CA US 95131
|
||||
}))
|
||||
defer srv.Close()
|
||||
|
||||
db := NewDB(tmpdir)
|
||||
db.ouiURL = srv.URL
|
||||
db := NewDB(tmpdir, ouiURL(srv.URL))
|
||||
if err := db.WaitUntilLoaded(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user