Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 3.47 KB | None | 0 0
  1. func main() {
  2.     var err error
  3.     tzar_syslog, err = syslog.New(syslog.LOG_DAEMON | syslog.LOG_INFO, "TZAR")
  4.     if err != nil {
  5.         fmt.Fprintf(os.Stderr, "Can't create syslog\n")
  6.         return
  7.     }
  8.  
  9.     if _, err := os.Stat("settings/reserved_tzar"); err == nil {
  10.         master_tzar_ip, err := ioutil.ReadFile("settings/reserved_tzar")
  11.         if err != nil {
  12.             tzar_syslog.Err(fmt.Sprintf("reserved_tzar: ERROR: Can't read file 'settings/reserved_tzar' (%+v)", err))
  13.             return
  14.         }
  15.  
  16.         run_reserved_tzar(string(master_tzar_ip))
  17.         return
  18.     }
  19.  
  20.     _, _ = exec.Command("mkdir", "/tmp/tzar").Output()
  21.     _, _ = exec.Command("ln", "-sn", "/tmp/tzar/", "/opt/dssl/tzar/stats").Output()
  22.     _, _ = exec.Command("mkdir", "-p", "_ipc").Output()
  23.     http.HandleFunc("/accounting.html", staticHandler)
  24.     http.HandleFunc("/accounting.js", staticHandler)
  25.     http.HandleFunc("/accounting/", accountingHandler)
  26.     http.HandleFunc("/spamming.html/", staticHandler)
  27.     http.HandleFunc("/spamming/", spammingHandler)
  28.     http.HandleFunc("/login/", loginHandler)
  29.     http.HandleFunc("/mcdump", mcdumpHandler)
  30.     http.HandleFunc("/ace-builds/", staticHandler)
  31.     http.HandleFunc("/admin-secret-keyhole.html", staticHandler)
  32.     http.HandleFunc("/_DNS", staticHandler)
  33.     http.HandleFunc("/stats/", staticHandler)
  34.     http.HandleFunc("/log/tzar/", journal)
  35.     http.HandleFunc("/admin-secret-savehandler", save)
  36.     http.HandleFunc("/admin-secret-loadhandler", load)
  37.     http.HandleFunc("/admin-secret-rpm", rpm)
  38.     http.HandleFunc("/ext-ip", extip)
  39.     http.HandleFunc("/shellexec", shellexec)
  40.     http.HandleFunc("/secret-node-details", NodeDetails)
  41.     http.HandleFunc("/secret-disk-details", DiskDetails)
  42.     http.HandleFunc("/img/", staticHandler)
  43.     http.HandleFunc("/reports.html", staticHandler)
  44.     http.HandleFunc("/dpss/report.html", staticHandler)
  45.     http.HandleFunc("/reports.js", staticHandler)
  46.     http.HandleFunc("/report", report)
  47.     http.HandleFunc("/", defaultHandler)
  48.     http.HandleFunc("/secret-vth-status", statusesHandler)
  49.     http.HandleFunc("/secret-pcn", pcnHandler)
  50.     http.HandleFunc("/reset-superuser-password", resetSuperuserPasswordHandler)
  51.     http.HandleFunc("/dbg", debugHandler)
  52.  
  53.     go hello()
  54.     go paymaster_watch()
  55.     go notifyAboutProblems()
  56.     go periodicActions()
  57.     go depersonalizedStatisticsUpdate()
  58.     go logd()
  59.     go updateShortVthStatus()
  60.     go mailsTracking()
  61.     go lookingProblems()
  62.  
  63.     certpool := x509.NewCertPool()
  64.     pem, err := ioutil.ReadFile("settings/CA-CERT.x509.PEM.crt")
  65.     if err != nil {
  66.         tzar_syslog.Err(fmt.Sprintf("CA.key: %+v", err))
  67.         return
  68.     }
  69.  
  70.     success := certpool.AppendCertsFromPEM(pem)
  71.     if !success {
  72.         tzar_syslog.Err(fmt.Sprintf("can't parse cert pool"))
  73.         return
  74.     }
  75.  
  76.     server := &http.Server {
  77.         Addr: ":443",
  78.         TLSConfig: &tls.Config {
  79.             ClientAuth: tls.RequireAndVerifyClientCert,
  80.             ClientCAs:  certpool,
  81.             InsecureSkipVerify: false,
  82.         },
  83.     }
  84.  
  85.     var certs []TLSCertificate
  86.     var tzar_tls_cert = TLSCertificate{
  87.         certFile: "settings/certificates/tzar_cert.pem",
  88.         keyFile: "settings/certificates/tzar_key.pem",
  89.     }
  90.     certs = append(certs, tzar_tls_cert)
  91.  
  92.     updates_tls_cert := TLSCertificate{
  93.         certFile: "settings/certificates/updates_cert.pem",
  94.         keyFile: "settings/certificates/updates_key.pem",
  95.     }
  96.     if updates_tls_cert.CheckExistence() {
  97.         certs = append(certs, updates_tls_cert)
  98.         http.HandleFunc("/updates", updatesHandler)
  99.     } else {
  100.         tzar_syslog.Err(fmt.Sprintf("Updates certificate not exists"))
  101.     }
  102.  
  103.     err = ListenAndServeTLSSNI(server, certs)
  104.     if err != nil {
  105.         tzar_syslog.Err(fmt.Sprintf("WTF ERROR: %+v", err))
  106.     }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement