Added TLS
This commit is contained in:
parent
69beb1340e
commit
31ea29dbe0
26
main.go
26
main.go
@ -6,11 +6,13 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"crypto/tls"
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
@ -122,6 +124,10 @@ func loadMOTD(filename string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func main() {
|
func main() {
|
||||||
|
tlsEnabled := flag.Bool("tls", false, "Enable TLS")
|
||||||
|
certFile := flag.String("cert", "", "TLS certificate file")
|
||||||
|
keyFile := flag.String("key", "", "TLS key file")
|
||||||
|
flag.Parse()
|
||||||
cfg, err := loadConfig()
|
cfg, err := loadConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("could not load config file: %v\n", err)
|
log.Fatalf("could not load config file: %v\n", err)
|
||||||
@ -130,9 +136,27 @@ func main() {
|
|||||||
if errmotd != nil {
|
if errmotd != nil {
|
||||||
log.Fatalf("could not load message of the day file: %v", err)
|
log.Fatalf("could not load message of the day file: %v", err)
|
||||||
}
|
}
|
||||||
ln, err := net.Listen("tcp", fmt.Sprintf(":%d", cfg.Port))
|
var ln net.Listener
|
||||||
|
if *tlsEnabled {
|
||||||
|
if *certFile == "" || *keyFile == "" {
|
||||||
|
log.Fatalf("TLS enabled but cert/key not provided")
|
||||||
|
}
|
||||||
|
cert, err := tls.LoadX509KeyPair(*certFile, *keyFile)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to load TLS cert/key: %v", err)
|
||||||
|
}
|
||||||
|
tlsCfg := &tls.Config{Certificates: []tls.Certificate{cert}}
|
||||||
|
ln, err = tls.Listen("tcp", fmt.Sprintf(":%d", cfg.Port), tlsCfg)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Error listening with TLS: %v\n", err)
|
||||||
|
}
|
||||||
|
log.Printf("IRC server listening with TLS on port %d\n", cfg.Port)
|
||||||
|
} else {
|
||||||
|
ln, err = net.Listen("tcp", fmt.Sprintf(":%d", cfg.Port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Error listening: %v\n", err)
|
log.Fatalf("Error listening: %v\n", err)
|
||||||
|
}
|
||||||
|
log.Printf("IRC server listening on port %d\n", cfg.Port)
|
||||||
}
|
}
|
||||||
sqlinitDB()
|
sqlinitDB()
|
||||||
log.Printf("IRC server listening on port %d\n", cfg.Port)
|
log.Printf("IRC server listening on port %d\n", cfg.Port)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user