X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fgetvserverbyctx-compat.hc;h=ac6076b0fe08f495cf67f16bca282018e173ae6f;hb=95e2774070e989fe9cf9f48dae5fa054e55e2a3e;hp=66acfa3886f30cdc03d2e2b6de823cdc323cee14;hpb=2822ba293eb308225c50d346930c47bf98d9927b;p=util-vserver.git diff --git a/lib/getvserverbyctx-compat.hc b/lib/getvserverbyctx-compat.hc index 66acfa3..ac6076b 100644 --- a/lib/getvserverbyctx-compat.hc +++ b/lib/getvserverbyctx-compat.hc @@ -1,4 +1,4 @@ -// $Id: getvserverbyctx-compat.hc,v 1.3 2004/06/27 13:01:28 ensc Exp $ --*- c -*-- +// $Id: getvserverbyctx-compat.hc 2596 2007-08-25 16:56:12Z dhozac $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // @@ -48,7 +48,7 @@ handleLegacy(xid_t xid) if (l<=4 || strcmp(name+l-4, ".ctx")!=0) continue; name[l-4] = '\0'; - cur_xid = vc_getVserverCtx(name, vcCFG_LEGACY, false, 0); + cur_xid = vc_getVserverCtx(name, vcCFG_LEGACY, false, 0, vcCTX_XID); if (cur_xid!=xid) continue; result = strdup(name); @@ -67,7 +67,8 @@ handleLegacy(xid_t UNUSED xid) #endif static char * -vc_getVserverByCtx_compat(xid_t ctx, vcCfgStyle *style, char const *revdir) +vc_getVserverByCtx_compat(xid_t ctx, vcCfgStyle *style, char const *revdir, + bool validate_result) { if (revdir==0) revdir = DEFAULT_PKGSTATEREVDIR; @@ -92,8 +93,10 @@ vc_getVserverByCtx_compat(xid_t ctx, vcCfgStyle *style, char const *revdir) switch (cur_style) { case vcCFG_RECENT_SHORT : case vcCFG_RECENT_FULL : - // check if expected ctx == actual ctx - if (vc_getVserverCtx(path, vcCFG_RECENT_FULL, false, 0)!=ctx) return 0; + // check if expected ctx == actual ctx (but only when this check is + // request) + if (validate_result && + vc_getVserverCtx(path, vcCFG_RECENT_FULL, false, 0, vcCTX_XID)!=ctx) return 0; if (style) *style = vcCFG_RECENT_FULL; return strdup(path);