@@ -26,12 +26,13 @@ import (
2626 "github.com/CovenantSQL/CovenantSQL/conf"
2727 "github.com/CovenantSQL/CovenantSQL/crypto/kms"
2828 "github.com/CovenantSQL/CovenantSQL/route"
29- rpc "github.com/CovenantSQL/CovenantSQL/rpc/mux"
29+ "github.com/CovenantSQL/CovenantSQL/rpc"
30+ "github.com/CovenantSQL/CovenantSQL/rpc/mux"
3031 "github.com/CovenantSQL/CovenantSQL/utils"
3132 "github.com/CovenantSQL/CovenantSQL/utils/log"
3233)
3334
34- func initNode () (server * rpc.Server , err error ) {
35+ func initNode () (server * mux. Server , direct * rpc.Server , err error ) {
3536 var masterKey []byte
3637 if ! conf .GConf .UseTestMasterKey {
3738 // read master key
@@ -53,30 +54,44 @@ func initNode() (server *rpc.Server, err error) {
5354 // init kms routing
5455 route .InitKMS (conf .GConf .PubKeyStoreFile )
5556
56- err = rpc .RegisterNodeToBP (30 * time .Second )
57+ err = mux .RegisterNodeToBP (30 * time .Second )
5758 if err != nil {
5859 log .Fatalf ("register node to BP failed: %v" , err )
5960 }
6061
6162 // init server
63+ utils .RemoveAll (conf .GConf .PubKeyStoreFile + "*" )
6264 if server , err = createServer (
63- conf .GConf .PrivateKeyFile , conf . GConf . PubKeyStoreFile , masterKey , conf .GConf .ListenAddr ); err != nil {
65+ conf .GConf .PrivateKeyFile , masterKey , conf .GConf .ListenAddr ); err != nil {
6466 log .WithError (err ).Error ("create server failed" )
6567 return
6668 }
69+ if direct , err = createDirectServer (
70+ conf .GConf .PrivateKeyFile , masterKey , conf .GConf .ListenDirectAddr ); err != nil {
71+ log .WithError (err ).Error ("create direct server failed" )
72+ return
73+ }
6774
6875 return
6976}
7077
71- func createServer (privateKeyPath , pubKeyStorePath string , masterKey []byte , listenAddr string ) (server * rpc.Server , err error ) {
72- utils .RemoveAll (pubKeyStorePath + "*" )
78+ func createServer (privateKeyPath string , masterKey []byte , listenAddr string ) (server * mux.Server , err error ) {
79+ server = mux .NewServer ()
80+ if err != nil {
81+ return
82+ }
83+ err = server .InitRPCServer (listenAddr , privateKeyPath , masterKey )
84+ return
85+ }
7386
87+ func createDirectServer (privateKeyPath string , masterKey []byte , listenAddr string ) (server * rpc.Server , err error ) {
88+ if listenAddr == "" {
89+ return nil , nil
90+ }
7491 server = rpc .NewServer ()
7592 if err != nil {
7693 return
7794 }
78-
7995 err = server .InitRPCServer (listenAddr , privateKeyPath , masterKey )
80-
8196 return
8297}
0 commit comments