TLS connections implemented
This commit is contained in:
parent
e6579a4b9a
commit
ace62fe367
24
server.go
24
server.go
|
@ -3,6 +3,8 @@
|
||||||
package ircd
|
package ircd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/rand"
|
||||||
|
"crypto/tls"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
@ -148,7 +150,7 @@ func (sv *Server) listen(laddr string) {
|
||||||
os.Exit(-1)
|
os.Exit(-1)
|
||||||
}
|
}
|
||||||
for {
|
for {
|
||||||
time.Sleep(1 * time.Millisecond)
|
time.Sleep(10 * time.Millisecond)
|
||||||
conn, err := listen.Accept()
|
conn, err := listen.Accept()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
xlog.Error(err.Error())
|
xlog.Error(err.Error())
|
||||||
|
@ -160,6 +162,26 @@ func (sv *Server) listen(laddr string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sv *Server) listenTls(laddr string) {
|
func (sv *Server) listenTls(laddr string) {
|
||||||
|
cert, err := tls.LoadX509KeyPair("cert/server.pem", "cert/server.key")
|
||||||
|
if err != nil {
|
||||||
|
xlog.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
cfg := tls.Config{Certificates: []tls.Certificate{cert}}
|
||||||
|
cfg.Rand = rand.Reader
|
||||||
|
listen, err := tls.Listen("tcp", laddr, &cfg)
|
||||||
|
if err != nil {
|
||||||
|
xlog.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
for {
|
||||||
|
time.Sleep(10 * time.Millisecond)
|
||||||
|
conn, err := listen.Accept()
|
||||||
|
if err != nil {
|
||||||
|
xlog.Error(err.Error())
|
||||||
|
} else {
|
||||||
|
NewRemoteClient(sv, conn)
|
||||||
|
sv.connectionsCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sv *Server) dispatcher() (err error) {
|
func (sv *Server) dispatcher() (err error) {
|
||||||
|
|
Loading…
Reference in New Issue