func makeHandler(n *core.OpenBazaarNode, ctx commands.Context, l net.Listener, options ...corehttp.ServeOption) (http.Handler, error) { topMux := http.NewServeMux() restAPI, err := newRestAPIHandler(n) if err != nil { return nil, err } wsAPI := newWSAPIHandler(ctx) n.Broadcast = wsAPI.h.Broadcast topMux.Handle("/ob/", restAPI) topMux.Handle("/wallet/", restAPI) topMux.Handle("/ws", wsAPI) mux := topMux for _, option := range options { var err error mux, err = option(n.IpfsNode, l, mux) if err != nil { return nil, err } } return topMux, nil }