diff options
Diffstat (limited to 'hisgle.go')
-rw-r--r-- | hisgle.go | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -10,7 +10,7 @@ import ( "fmt" // _ "code.google.com/p/gosqlite/sqlite3" import ( "database/sql" - _ "github.com/mxk/go-sqlite/sqlite3" + _ "github.com/mattn/go-sqlite3" "github.com/pborman/getopt" ) @@ -40,26 +40,34 @@ func hosts(db *sql.DB, vlan int) { var ( ipv4 string name string + suffix *string alias string + hostpart string ) // CREATE TABLE devices (name, mac, interface); // CREATE TABLE addresses (mac, vlan, ipv4); - rows, err := db.Query("SELECT a.ipv4, d.name FROM addresses AS a JOIN " + - "devices AS d ON a.mac=d.mac WHERE vlan=?", vlan) + rows, err := db.Query("SELECT a.ipv4, d.name, d.suffix " + + "FROM addresses AS a JOIN devices AS d ON a.mac=d.mac WHERE vlan=?", + vlan) if err != nil { log.Fatal(err) } for rows.Next() { - err := rows.Scan(&ipv4, &name) + err := rows.Scan(&ipv4, &name, &suffix) if err != nil { log.Fatal(err) } - fmt.Print(ipv4, "\t", name) + if suffix != nil { + hostpart = name + "-" + *suffix + } else { + hostpart = name + } + fmt.Print(ipv4, "\t", hostpart) // CREATE TABLE aliases (alias, target); - rows, err := db.Query("SELECT alias FROM aliases WHERE target=?", name) + rows, err := db.Query("SELECT alias FROM aliases WHERE target=?", hostpart) if err != nil { log.Fatal(err) } |