// Start loads the web server and begins listening. func Start(addr string) error { if serverRunning == true { return nil } if mailbox.DB == nil { mailbox.OpenDB() if _, err := os.Stat("mailboxes.db"); os.IsNotExist(err) { err := mailbox.CreateDB() if err != nil { panic(err) } } } cleanupTicker := time.Tick(1 * time.Hour) go func() { for { select { case <-cleanupTicker: err := cleanupFiles() if err != nil { log.Warn(err.Error()) } } } }() endpoints := EndPointHandler{} svr := &http.Server{ Addr: addr, ReadTimeout: 12 * time.Minute, WriteTimeout: 12 * time.Minute, } endpoints.Add("GET", `/upgrade`, sendConduitBinary) endpoints.Add("POST", `/get`, getMessage) endpoints.Add("POST", "/put", putMessage) endpoints.Add("POST", "/stats/clients", clientStats) endpoints.Add("POST", "/stats", systemStats) endpoints.Add("POST", "/delete", deleteMessage) endpoints.Add("POST", "/deploy/list", deployInfo) endpoints.Add("POST", "/deploy/respond", deployRespond) endpoints.Add("POST", "/register", register) endpoints.Add("POST", "/deregister", deregister) endpoints.Add("POST", "/upload", acceptFile) endpoints.Add("POST", "/checkfile", checkfile) endpoints.Add("POST", "/asset", getAsset) http.Handle("/", &endpoints) serverRunning = true err := svr.ListenAndServe() return err }
import ( "conduit/log" "github.com/spf13/cobra" "postmaster/mailbox" ) // acessListCmd represents the acessList command var accessListCmd = &cobra.Command{ Use: "list", Short: "List all administrative access keys", Long: `Display a list of all administrative access keys that have been generated using 'conduit server access'. The server must be stopped when running this command.`, Run: func(cmd *cobra.Command, args []string) { mailbox.OpenDB() keys, err := mailbox.AdminKeys() if err != nil { log.Debug(err.Error()) log.Fatal("Could not list keys") } log.Alert("Access keys:") for _, k := range keys { log.Info(k.Name) } mailbox.CloseDB() }, } func init() { accessCmd.AddCommand(accessListCmd)