cwtch/server/server.go

70 lines
1.8 KiB
Go
Raw Normal View History

2018-03-09 20:44:13 +00:00
package server
import (
//"crypto/rsa"
"git.mascherari.press/cwtch/server/fetch"
"git.mascherari.press/cwtch/server/listen"
"git.mascherari.press/cwtch/server/send"
"git.mascherari.press/cwtch/storage"
"github.com/s-rah/go-ricochet/application"
"github.com/s-rah/go-ricochet/channels"
"github.com/s-rah/go-ricochet/utils"
"log"
//"time"
)
type Server struct {
}
func (s *Server) Run(privateKeyFile string) {
cwtchserver := new(application.RicochetApplication)
pk, err := utils.LoadPrivateKeyFromFile(privateKeyFile)
if err != nil {
log.Fatalf("error reading private key file: %v", err)
}
l, err := application.SetupOnion("127.0.0.1:9051", "tcp4", "", pk, 9878)
if err != nil {
log.Fatalf("error setting up onion service: %v", err)
}
af := application.ApplicationInstanceFactory{}
af.Init()
ms := new(storage.MessageStore)
ms.Init("cwtch.messages")
af.AddHandler("im.cwtch.server.listen", func(rai *application.ApplicationInstance) func() channels.Handler {
2018-03-14 22:23:35 +00:00
si := new(Instance)
2018-03-09 20:44:13 +00:00
si.Init(rai, cwtchserver, ms)
return func() channels.Handler {
cslc := new(listen.CwtchServerListenChannel)
return cslc
}
})
af.AddHandler("im.cwtch.server.fetch", func(rai *application.ApplicationInstance) func() channels.Handler {
2018-03-14 22:23:35 +00:00
si := new(Instance)
2018-03-09 20:44:13 +00:00
si.Init(rai, cwtchserver, ms)
return func() channels.Handler {
cssc := new(fetch.CwtchServerFetchChannel)
cssc.Handler = si
return cssc
}
})
af.AddHandler("im.cwtch.server.send", func(rai *application.ApplicationInstance) func() channels.Handler {
2018-03-14 22:23:35 +00:00
si := new(Instance)
2018-03-09 20:44:13 +00:00
si.Init(rai, cwtchserver, ms)
return func() channels.Handler {
cssc := new(send.CwtchServerSendChannel)
cssc.Handler = si
return cssc
}
})
cwtchserver.Init(pk, af, new(application.AcceptAllContactManager))
2018-03-30 21:16:51 +00:00
log.Printf("cwtch server running on cwtch:%s", l.Addr().String()[0:16])
2018-03-09 20:44:13 +00:00
cwtchserver.Run(l)
}