func main() { port := flag.Int("port", 9279, "server port") flag.Parse() arith := new(Arith) rpc.Register(arith) http.Handle("/_bson_rpc_", &rpcHandler{}) http.Handle("/shutdown", &shutdownHandler{}) addr := fmt.Sprintf("localhost:%d", *port) var e error l, e = net.Listen("tcp", addr) if e != nil { log.Fatal("listen error:", e) } log.Printf("arithserver running on %s", addr) http.Serve(l, nil) }
func Register(name string, rcvr interface{}) { if ServiceMap["bsonrpc-vt-"+name] { log.Infof("Registering %v for bsonrpc over vt port, disable it with -bsonrpc-vt-%v service_map parameter", name, name) rpc.Register(rcvr) } else { log.Infof("Not registering %v for bsonrpc over vt port, enable it with bsonrpc-vt-%v service_map parameter", name, name) } if ServiceMap["bsonrpc-auth-vt-"+name] { log.Infof("Registering %v for SASL bsonrpc over vt port, disable it with -bsonrpc-auth-vt-%v service_map parameter", name, name) rpcwrap.AuthenticatedServer.Register(rcvr) } else { log.Infof("Not registering %v for SASL bsonrpc over vt port, enable it with bsonrpc-auth-vt-%v service_map parameter", name, name) } // register the other guys socketFileRegister(name, rcvr) secureRegister(name, rcvr) }
// helper method to register the server (does interface checking) func RegisterZkReader(zkReader ZkReader) { rpc.Register(zkReader) }
func init() { rpcplus.Register(new(Arith)) }