func Connect(ipAddr string, port int) (*OvsdbClient, error) { if ipAddr == "" { ipAddr = DEFAULT_ADDR } if port <= 0 { port = DEFAULT_PORT } target := fmt.Sprintf("%s:%d", ipAddr, port) conn, err := net.Dial("tcp", target) if err != nil { return nil, err } c := rpc2.NewClientWithCodec(jsonrpc.NewJSONCodec(conn)) c.Handle("echo", echo) c.Handle("update", update) go c.Run() go handleDisconnectNotification(c) ovs := newOvsdbClient(c) // Process Async Notifications dbs, err := ovs.ListDbs() if err == nil { for _, db := range dbs { schema, err := ovs.GetSchema(db) if err == nil { ovs.Schema[db] = *schema } else { return nil, err } } } return ovs, nil }
func configureConnection(conn net.Conn) (*OvsdbClient, error) { c := rpc2.NewClientWithCodec(jsonrpc.NewJSONCodec(conn)) c.Handle("echo", echo) c.Handle("update", update) go c.Run() go handleDisconnectNotification(c) ovs := newOvsdbClient(c) // Process Async Notifications dbs, err := ovs.ListDbs() if err == nil { for _, db := range dbs { schema, err := ovs.GetSchema(db) if err == nil { ovs.Schema[db] = *schema } else { return nil, err } } } return ovs, nil }