tricrypt/cmd/server/main.go

57 lines
878 B
Go
Raw Normal View History

2024-02-23 14:28:59 +01:00
package main
import (
2024-02-23 17:48:25 +01:00
"crypto/tls"
2024-02-23 14:28:59 +01:00
"fmt"
2024-02-23 18:23:31 +01:00
"io"
2024-02-23 14:28:59 +01:00
"log"
2024-02-23 17:48:25 +01:00
"net"
"os"
"git.qowevisa.me/Qowevisa/gotell/env"
2024-02-23 14:28:59 +01:00
)
2024-02-23 17:48:25 +01:00
func main() {
2024-02-23 18:02:43 +01:00
host, err := env.GetHost()
if err != nil {
2024-02-23 18:23:31 +01:00
log.Fatal(err)
2024-02-23 18:02:43 +01:00
}
port, err := env.GetPort()
if err != nil {
2024-02-23 18:23:31 +01:00
log.Fatal(err)
2024-02-23 18:02:43 +01:00
}
2024-02-23 18:23:31 +01:00
//
serverCert, err := os.ReadFile("./server.pem")
if err != nil {
log.Fatal(err)
2024-02-23 17:48:25 +01:00
}
2024-02-23 18:23:31 +01:00
serverKey, err := os.ReadFile("./server.key")
2024-02-23 15:32:08 +01:00
if err != nil {
2024-02-23 18:23:31 +01:00
log.Fatal(err)
2024-02-23 14:28:59 +01:00
}
2024-02-23 18:23:31 +01:00
cer, err := tls.X509KeyPair(serverCert, serverKey)
if err != nil {
log.Fatal(err)
}
config := &tls.Config{Certificates: []tls.Certificate{cer}}
//
2024-02-23 17:48:25 +01:00
2024-02-23 18:23:31 +01:00
l, err := tls.Listen("tcp", fmt.Sprintf("%s:%d", host, port), config)
if err != nil {
log.Fatal(err)
}
defer l.Close()
2024-02-23 17:48:25 +01:00
2024-02-23 18:23:31 +01:00
for {
conn, err := l.Accept()
2024-02-23 17:48:25 +01:00
if err != nil {
2024-02-23 18:23:31 +01:00
log.Fatal(err)
2024-02-23 17:48:25 +01:00
}
2024-02-23 18:23:31 +01:00
go func(c net.Conn) {
io.Copy(os.Stdout, c)
fmt.Println()
c.Close()
}(conn)
2024-02-23 17:48:25 +01:00
}
}