// Loads the node database into the running DHT. Call this just after running the DHT. func (ds *DHTStorage) LoadDHT(d *dht.DHT) error { db, err := ds.getDB() if err != nil { return err } defer db.Close() err = ds.createTablesWith(db) if err != nil { return err } r, err := db.Query(`SELECT hostname,node_id FROM dht_routers`) if err != nil { return err } defer r.Close() for r.Next() { var hostname string var node_id interface{} err = r.Scan(&hostname, &node_id) if err != nil { return err } node_id_s, ok := node_id.([]byte) if !ok { node_id_s = []byte{} } node_id_bin, err := hex.DecodeString(string(node_id_s)) if err != nil { node_id_bin = []byte{} } unused(node_id) d.AddNode(hostname, string(node_id_bin)) } return nil }