Use database name from MONGO_URI
This commit is contained in:
parent
d8997550b5
commit
79aefcea66
10
main.go
10
main.go
@ -13,20 +13,20 @@ import (
|
|||||||
"go.mongodb.org/mongo-driver/bson"
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
"go.mongodb.org/mongo-driver/mongo"
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
"go.mongodb.org/mongo-driver/mongo/options"
|
"go.mongodb.org/mongo-driver/mongo/options"
|
||||||
|
"go.mongodb.org/mongo-driver/x/mongo/driver/connstring"
|
||||||
)
|
)
|
||||||
|
|
||||||
type InventoryItem struct {
|
type Elem struct {
|
||||||
Ip []string
|
Ip []string
|
||||||
}
|
}
|
||||||
|
|
||||||
var mongoUri string = os.Getenv("MONGO_URI")
|
var mongoUri string = os.Getenv("MONGO_URI")
|
||||||
var databaseName string = os.Getenv("GOREDNS_DATABASE")
|
|
||||||
var collectionName string = os.Getenv("GOREDNS_COLLECTION")
|
var collectionName string = os.Getenv("GOREDNS_COLLECTION")
|
||||||
|
|
||||||
func appendResults(etype string, name string, m *dns.Msg, cur *mongo.Cursor) int {
|
func appendResults(etype string, name string, m *dns.Msg, cur *mongo.Cursor) int {
|
||||||
count := 0
|
count := 0
|
||||||
for cur.Next(context.TODO()) {
|
for cur.Next(context.TODO()) {
|
||||||
var elem InventoryItem
|
var elem Elem
|
||||||
err := cur.Decode(&elem)
|
err := cur.Decode(&elem)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@ -59,6 +59,7 @@ func query(tp string, name string, m *dns.Msg, coll *mongo.Collection) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if appendResults(tp, name, m, cur) == 0 {
|
if appendResults(tp, name, m, cur) == 0 {
|
||||||
cur, err := coll.Find(context.TODO(), bson.M{"dns.san": name})
|
cur, err := coll.Find(context.TODO(), bson.M{"dns.san": name})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -89,6 +90,7 @@ func wrapper(coll *mongo.Collection) func(dns.ResponseWriter, *dns.Msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
cs, err := connstring.ParseAndValidate(mongoUri)
|
||||||
client, err := mongo.NewClient(options.Client().ApplyURI(mongoUri))
|
client, err := mongo.NewClient(options.Client().ApplyURI(mongoUri))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@ -99,7 +101,7 @@ func main() {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
coll := client.Database(databaseName).Collection(collectionName)
|
coll := client.Database(cs.Database).Collection(collectionName)
|
||||||
defer client.Disconnect(ctx)
|
defer client.Disconnect(ctx)
|
||||||
dns.HandleFunc(".", wrapper(coll))
|
dns.HandleFunc(".", wrapper(coll))
|
||||||
port := 53
|
port := 53
|
||||||
|
Reference in New Issue
Block a user