diff --git a/go/path_srv/internal/handlers/segreqnoncore.go b/go/path_srv/internal/handlers/segreqnoncore.go index 5e05fd529b..2794384d02 100644 --- a/go/path_srv/internal/handlers/segreqnoncore.go +++ b/go/path_srv/internal/handlers/segreqnoncore.go @@ -103,8 +103,6 @@ func (h *segReqNonCoreHandler) handleCoreDst(ctx context.Context, segReq *path_m msger infra.Messenger, dst addr.IA, coreASes []addr.IA) { logger := log.FromCtx(ctx) - dstISDLocal := segReq.DstIA().I == h.localIA.I - logger.Debug("[segReqHandler] handleCoreDst", "remote", dstISDLocal) upSegs, err := h.fetchUpSegsFromDB(ctx, coreASes, !segReq.Flags.CacheOnly) if err != nil { logger.Error("[segReqHandler] Failed to find up segments", "err", err) @@ -116,6 +114,11 @@ func (h *segReqNonCoreHandler) handleCoreDst(ctx context.Context, segReq *path_m h.sendEmptySegReply(ctx, segReq, msger) return } + // For a local wildcard we return the upSegs. + if segReq.DstIA().A == 0 && segReq.DstIA().I == h.localIA.I { + h.sendReply(ctx, msger, upSegs, nil, nil, segReq) + return + } // TODO(lukedirtwalker): in case of CacheOnly we can use a single query, // else we should start go routines for the core segs here. var coreSegs []*seg.PathSegment