about summary refs log tree commit diff
path: root/main.go
diff options
context:
space:
mode:
authorAlexander Karl <akarl@darknebu.la>2019-02-13 22:28:50 +0100
committerAlexander Karl <akarl@darknebu.la>2019-02-13 22:28:50 +0100
commitb0ac27c3c943e4db6c23e780f0e9829c1bdefcaf (patch)
treee7e1cb272546ff2d2b328515e5e354573b67e7b2 /main.go
Init commit - welcome ftp-grab-password
Diffstat (limited to 'main.go')
-rw-r--r--main.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..28db957
--- /dev/null
+++ b/main.go
@@ -0,0 +1,53 @@
+package main
+
+import (
+    "fmt"
+    "net/http"
+    "log"
+    "github.com/goftp/server"
+    filedriver "github.com/goftp/file-driver"
+)
+
+var(
+    metrics_num_passwords int
+)
+
+
+func main() {
+    log.Println("Starting FTP listener")
+
+
+    go func() {
+
+        factory := &filedriver.FileDriverFactory{
+      		RootPath: "",
+      		Perm:     server.NewSimplePerm("user", "group"),
+        }
+
+        opts := &server.ServerOpts{
+          Factory:  factory,
+          Port:     21,
+          Hostname: "::",
+          Auth:     &FakeAuth{Name: "", Password: ""},
+          Logger:   &server.DiscardLogger{},
+        }
+
+        server := server.NewServer(opts)
+        err := server.ListenAndServe()
+        if err != nil {
+          log.Fatal("Error starting server:", err)
+        }
+    }()
+
+    log.Println("Starting HTTP metrics listener")
+    http.HandleFunc("/metrics", metricsHandler)
+    listenErr := http.ListenAndServe(":48081", nil) // set listen port
+    if listenErr != nil {
+        log.Fatalln(listenErr.Error())
+    }
+}
+
+// Handle HTTP /metrics requests
+func metricsHandler(w http.ResponseWriter, req *http.Request) {
+    fmt.Fprintf(w, "metrics_num_passwords %d\n", metrics_num_passwords)
+}