cfengine  3.15.4
About: CFEngine is a configuration management system for configuring and maintaining Unix-like computers (using an own high level policy language). Community version.
  Fossies Dox: cfengine-3.15.4.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

eval_context.c File Reference
#include <eval_context.h>
#include <files_names.h>
#include <logic_expressions.h>
#include <syntax.h>
#include <item_lib.h>
#include <ornaments.h>
#include <expand.h>
#include <matching.h>
#include <string_lib.h>
#include <misc_lib.h>
#include <file_lib.h>
#include <assoc.h>
#include <scope.h>
#include <vars.h>
#include <syslog_client.h>
#include <audit.h>
#include <rlist.h>
#include <buffer.h>
#include <promises.h>
#include <fncall.h>
#include <ring_buffer.h>
#include <logging_priv.h>
#include <known_dirs.h>
#include <printsize.h>
#include <regex.h>
#include <map.h>
#include <conversion.h>
#include <cleanup.h>
#include <policy.h>
Include dependency graph for eval_context.c:

Go to the source code of this file.

Data Structures

struct  FuncCacheMap
 
struct  RemoteVarPromisesMap
 
struct  EvalContext_
 

Macros

#define NESTED_SCOPE_SEP   "___"
 

Functions

static void RvalDestroy2 (void *p)
 
FuncCacheMapFuncCacheMapNew (void)
 
bool FuncCacheMapInsert (const FuncCacheMap *map, Rlist *key, Rval *value)
 
bool FuncCacheMapHasKey (const FuncCacheMap *map, const Rlist *key)
 
RvalFuncCacheMapGet (const FuncCacheMap *map, const Rlist *key)
 
bool FuncCacheMapRemove (const FuncCacheMap *map, const Rlist *key)
 
void FuncCacheMapClear (FuncCacheMap *map)
 
size_t FuncCacheMapSize (const FuncCacheMap *map)
 
void FuncCacheMapDestroy (FuncCacheMap *map)
 
void FuncCacheMapSoftDestroy (FuncCacheMap *map)
 
bool FuncCacheMapContainsSameKeys (const FuncCacheMap *map1, const FuncCacheMap *map2)
 
void FuncCacheMapPrintStats (const FuncCacheMap *map, FILE *f)
 
static void SeqDestroy_untyped (void *p)
 
RemoteVarPromisesMapRemoteVarPromisesMapNew (void)
 
bool RemoteVarPromisesMapInsert (const RemoteVarPromisesMap *map, char *key, Seq *value)
 
bool RemoteVarPromisesMapHasKey (const RemoteVarPromisesMap *map, const char *key)
 
SeqRemoteVarPromisesMapGet (const RemoteVarPromisesMap *map, const char *key)
 
bool RemoteVarPromisesMapRemove (const RemoteVarPromisesMap *map, const char *key)
 
void RemoteVarPromisesMapClear (RemoteVarPromisesMap *map)
 
size_t RemoteVarPromisesMapSize (const RemoteVarPromisesMap *map)
 
void RemoteVarPromisesMapDestroy (RemoteVarPromisesMap *map)
 
void RemoteVarPromisesMapSoftDestroy (RemoteVarPromisesMap *map)
 
bool RemoteVarPromisesMapContainsSameKeys (const RemoteVarPromisesMap *map1, const RemoteVarPromisesMap *map2)
 
void RemoteVarPromisesMapPrintStats (const RemoteVarPromisesMap *map, FILE *f)
 
static bool BundleAborted (const EvalContext *ctx)
 
static void SetBundleAborted (EvalContext *ctx)
 
static void SetEvalAborted (EvalContext *ctx)
 
static bool EvalContextStackFrameContainsSoft (const EvalContext *ctx, const char *context)
 
static bool EvalContextHeapContainsSoft (const EvalContext *ctx, const char *ns, const char *name)
 
static bool EvalContextHeapContainsHard (const EvalContext *ctx, const char *name)
 
static bool EvalContextClassPut (EvalContext *ctx, const char *ns, const char *name, bool is_soft, ContextScope scope, const char *tags)
 
static const char * EvalContextCurrentNamespace (const EvalContext *ctx)
 
static ClassRef IDRefQualify (const EvalContext *ctx, const char *id)
 
bool EvalContextGetSelectEndMatchEof (const EvalContext *ctx)
 
void EvalContextSetSelectEndMatchEof (EvalContext *ctx, bool value)
 
void AddDefaultPackageModuleToContext (const EvalContext *ctx, char *name)
 
void AddDefaultInventoryToContext (const EvalContext *ctx, Rlist *inventory)
 
static int PackageManagerSeqCompare (const void *a, const void *b, void *data)
 
void AddPackageModuleToContext (const EvalContext *ctx, PackageModuleBody *pm)
 
PackageModuleBodyGetPackageModuleFromContext (const EvalContext *ctx, const char *name)
 
PackageModuleBodyGetDefaultPackageModuleFromContext (const EvalContext *ctx)
 
RlistGetDefaultInventoryFromContext (const EvalContext *ctx)
 
PackagePromiseContextGetPackagePromiseContext (const EvalContext *ctx)
 
static StackFrameLastStackFrame (const EvalContext *ctx, size_t offset)
 
static StackFrameLastStackFrameByType (const EvalContext *ctx, StackFrameType type)
 
static LogLevel AdjustLogLevel (LogLevel base, LogLevel adjust)
 
static LogLevel StringToLogLevel (const char *value)
 
static LogLevel GetLevelForPromise (const Promise *pp, const char *attr_name)
 
static LogLevel CalculateLogLevel (const Promise *pp)
 
static LogLevel CalculateReportLevel (const Promise *pp)
 
const char * EvalContextStackToString (EvalContext *ctx)
 
static const char * GetAgentAbortingContext (const EvalContext *ctx)
 
static void EvalContextStackFrameAddSoft (EvalContext *ctx, const char *context, const char *tags)
 
static ExpressionValue EvalTokenAsClass (const char *classname, void *param)
 
static char * EvalVarRef (const char *varname, VarRefType type, void *param)
 
bool ClassCharIsWhitespace (char ch)
 
ExpressionValue CheckClassExpression (const EvalContext *ctx, const char *context)
 
static ExpressionValue EvalTokenFromList (const char *token, void *param)
 
static bool EvalWithTokenFromList (const char *expr, StringSet *token_set)
 
bool EvalProcessResult (const char *process_result, StringSet *proc_attr)
 
bool EvalFileResult (const char *file_result, StringSet *leaf_attr)
 
void EvalContextHeapPersistentSave (EvalContext *ctx, const char *name, unsigned int ttl_minutes, PersistentClassPolicy policy, const char *tags)
 
void EvalContextHeapPersistentRemove (const char *context)
 
void EvalContextHeapPersistentLoadAll (EvalContext *ctx)
 
bool BundleAbort (EvalContext *ctx)
 
bool EvalAborted (const EvalContext *ctx)
 
void EvalContextHeapAddAbort (EvalContext *ctx, const char *context, const char *activated_on_context)
 
void EvalContextHeapAddAbortCurrentBundle (EvalContext *ctx, const char *context, const char *activated_on_context)
 
bool MissingDependencies (EvalContext *ctx, const Promise *pp)
 
static void StackFrameBundleDestroy (StackFrameBundle frame)
 
static void StackFrameBodyDestroy (StackFrameBody frame)
 
static void StackFramePromiseDestroy (StackFramePromise frame)
 
static void StackFramePromiseIterationDestroy (StackFramePromiseIteration frame)
 
static void StackFrameDestroy (StackFrame *frame)
 
static void FreePackageManager (PackageModuleBody *manager)
 
static PackagePromiseContextPackagePromiseConfigNew ()
 
static void FreePackagePromiseContext (PackagePromiseContext *pp_ctx)
 
char * MissionPortalLogHook (LoggingPrivContext *pctx, LogLevel level, const char *message)
 
void EvalContextSetupMissionPortalLogHook (EvalContext *ctx)
 
void EvalContextSetupMissionPortalLogHook__stub (EvalContext *ctx)
 
EvalContextEvalContextNew (void)
 
void EvalContextDestroy (EvalContext *ctx)
 
bool StackFrameContainsSoftRecursive (const EvalContext *ctx, const char *context, size_t stack_index)
 
bool EvalContextHeapRemoveSoft (EvalContext *ctx, const char *ns, const char *name)
 
bool EvalContextHeapRemoveHard (EvalContext *ctx, const char *name)
 
void EvalContextClear (EvalContext *ctx)
 
RlistEvalContextGetPromiseCallerMethods (EvalContext *ctx)
 
JsonElementEvalContextGetPromiseCallers (EvalContext *ctx)
 
void EvalContextSetBundleArgs (EvalContext *ctx, const Rlist *args)
 
RlistEvalContextGetBundleArgs (EvalContext *ctx)
 
void EvalContextSetPass (EvalContext *ctx, int pass)
 
int EvalContextGetPass (EvalContext *ctx)
 
static StackFrameStackFrameNew (StackFrameType type, bool inherit_previous)
 
static StackFrameStackFrameNewBundle (const Bundle *owner, bool inherit_previous)
 
static StackFrameStackFrameNewBody (const Body *owner)
 
static StackFrameStackFrameNewPromiseType (const PromiseType *owner)
 
static StackFrameStackFrameNewPromise (const Promise *owner)
 
static StackFrameStackFrameNewPromiseIteration (Promise *owner, const PromiseIterator *iter_ctx)
 
void EvalContextStackFrameRemoveSoft (EvalContext *ctx, const char *context)
 
static void EvalContextStackPushFrame (EvalContext *ctx, StackFrame *frame)
 
void EvalContextStackPushBundleFrame (EvalContext *ctx, const Bundle *owner, const Rlist *args, bool inherits_previous)
 
void EvalContextStackPushBodyFrame (EvalContext *ctx, const Promise *caller, const Body *body, const Rlist *args)
 
void EvalContextStackPushPromiseTypeFrame (EvalContext *ctx, const PromiseType *owner)
 
void EvalContextStackPushPromiseFrame (EvalContext *ctx, const Promise *owner)
 
PromiseEvalContextStackPushPromiseIterationFrame (EvalContext *ctx, const PromiseIterator *iter_ctx)
 
void EvalContextStackPopFrame (EvalContext *ctx)
 
bool EvalContextClassRemove (EvalContext *ctx, const char *ns, const char *name)
 
ClassEvalContextClassGet (const EvalContext *ctx, const char *ns, const char *name)
 
ClassEvalContextClassMatch (const EvalContext *ctx, const char *regex)
 
bool EvalContextClassPutHard (EvalContext *ctx, const char *name, const char *tags)
 
bool EvalContextClassPutSoft (EvalContext *ctx, const char *name, ContextScope scope, const char *tags)
 
ClassTableIteratorEvalContextClassTableIteratorNewGlobal (const EvalContext *ctx, const char *ns, bool is_hard, bool is_soft)
 
ClassTableIteratorEvalContextClassTableIteratorNewLocal (const EvalContext *ctx)
 
const PromiseEvalContextStackCurrentPromise (const EvalContext *ctx)
 
const BundleEvalContextStackCurrentBundle (const EvalContext *ctx)
 
const RingBufferEvalContextStackCurrentMessages (const EvalContext *ctx)
 
static void BufferAppendPromiseStr (Buffer *buf, const char *str)
 Concatenate string #str to #buf, replacing mangling characters '*' and '#' with their visible counterparts. More...
 
static void BufferAppendAbbreviatedStr (Buffer *buf, const char *promiser, const int N)
 Like BufferAppendPromiseStr, but if str contains newlines and is longer than 2*N+3, then only copy an abbreviated version consisting of the first and last N characters, separated by ... More...
 
char * EvalContextStackPath (const EvalContext *ctx)
 
StringSetEvalContextStackPromisees (const EvalContext *ctx)
 
static char * MangleScopedVarNameIntoSpecialScopeName (const char *scope, const char *var_name)
 
bool EvalContextVariablePutSpecial (EvalContext *ctx, SpecialScope scope, const char *lval, const void *value, DataType type, const char *tags)
 
const void * EvalContextVariableGetSpecial (const EvalContext *const ctx, const SpecialScope scope, const char *const varname, DataType *const type_out)
 
const char * EvalContextVariableGetSpecialString (const EvalContext *const ctx, const SpecialScope scope, const char *const varname)
 
bool EvalContextVariableRemoveSpecial (const EvalContext *ctx, SpecialScope scope, const char *lval)
 
static VariableTableGetVariableTableForScope (const EvalContext *ctx, const char *ns, const char *scope)
 
bool EvalContextVariableRemove (const EvalContext *ctx, const VarRef *ref)
 
static bool IsVariableSelfReferential (const VarRef *ref, const void *value, RvalType rval_type)
 
static void VarRefStackQualify (const EvalContext *ctx, VarRef *ref)
 
bool EvalContextVariablePut (EvalContext *ctx, const VarRef *ref, const void *value, DataType type, const char *tags)
 
static VarRefMangledThisScopedRef (const VarRef *ref)
 
static VariableVariableResolve2 (const EvalContext *ctx, const VarRef *ref)
 
static VariableVariableResolve (const EvalContext *ctx, const VarRef *ref)
 
const void * EvalContextVariableGet (const EvalContext *ctx, const VarRef *ref, DataType *type_out)
 
const PromiseEvalContextVariablePromiseGet (const EvalContext *ctx, const VarRef *ref)
 
StringSetEvalContextClassTags (const EvalContext *ctx, const char *ns, const char *name)
 
StringSetEvalContextVariableTags (const EvalContext *ctx, const VarRef *ref)
 
bool EvalContextVariableClearMatch (EvalContext *ctx)
 
VariableTableIteratorEvalContextVariableTableIteratorNew (const EvalContext *ctx, const char *ns, const char *scope, const char *lval)
 
VariableTableIteratorEvalContextVariableTableFromRefIteratorNew (const EvalContext *ctx, const VarRef *ref)
 
const void * EvalContextVariableControlCommonGet (const EvalContext *ctx, CommonControl lval)
 
const BundleEvalContextResolveBundleExpression (const EvalContext *ctx, const Policy *policy, const char *callee_reference, const char *callee_type)
 Find a bundle for a bundle call, given a callee reference (in the form of ns:bundle), and a type of bundle. This is requires EvalContext because the callee reference may be unqualified. Hopefully this should go away in the future if we make a more generalized API to simply call a bundle, but we have a few special rules around edit_line and so on. More...
 
const BodyEvalContextFindFirstMatchingBody (const Policy *policy, const char *type, const char *namespace, const char *name)
 
void EvalContextAppendBodyParentsAndArgs (const EvalContext *ctx, const Policy *policy, Seq *chain, const Body *bp, const char *callee_type, int depth)
 
SeqEvalContextResolveBodyExpression (const EvalContext *ctx, const Policy *policy, const char *callee_reference, const char *callee_type)
 Returns a Sequence of const Body* elements, first the body and then its parents. More...
 
bool EvalContextPromiseLockCacheContains (const EvalContext *ctx, const char *key)
 
void EvalContextPromiseLockCachePut (EvalContext *ctx, const char *key)
 
void EvalContextPromiseLockCacheRemove (EvalContext *ctx, const char *key)
 
bool EvalContextFunctionCacheGet (const EvalContext *ctx, const FnCall *fp, const Rlist *args, Rval *rval_out)
 
void EvalContextFunctionCachePut (EvalContext *ctx, const FnCall *fp, const Rlist *args, const Rval *rval)
 
static bool IsPromiseValuableForStatus (const Promise *pp)
 
static bool IsPromiseValuableForLogging (const Promise *pp)
 
static void AddAllClasses (EvalContext *ctx, const Rlist *list, unsigned int persistence_ttl, PersistentClassPolicy policy, ContextScope context_scope)
 
static void DeleteAllClasses (EvalContext *ctx, const Rlist *list)
 
void TrackTotalCompliance (PromiseResult status, const Promise *pp)
 
void TrackTotalCompliance__stub (PromiseResult status, const Promise *pp)
 
static void SetPromiseOutcomeClasses (EvalContext *ctx, PromiseResult status, const DefineClasses *dc)
 
static void SummarizeTransaction (EvalContext *ctx, const TransactionContext *tc, const char *logname)
 
static void DoSummarizeTransaction (EvalContext *ctx, PromiseResult status, const Promise *pp, const TransactionContext *tc)
 
void NotifyDependantPromises (EvalContext *ctx, const Promise *pp, PromiseResult result)
 
void ClassAuditLog (EvalContext *ctx, const Promise *pp, const Attributes *attr, PromiseResult status)
 
static void LogPromiseContext (const EvalContext *ctx, const Promise *pp)
 
void cfPS (EvalContext *ctx, LogLevel level, PromiseResult status, const Promise *pp, const Attributes *attr, const char *fmt,...)
 
void SetChecksumUpdatesDefault (EvalContext *ctx, bool enabled)
 
bool GetChecksumUpdatesDefault (const EvalContext *ctx)
 
void EvalContextAddIpAddress (EvalContext *ctx, const char *ip_address, const char *iface)
 
void EvalContextDeleteIpAddresses (EvalContext *ctx)
 
ItemEvalContextGetIpAddresses (const EvalContext *ctx)
 
void EvalContextSetEvalOption (EvalContext *ctx, EvalContextOption option, bool value)
 
bool EvalContextGetEvalOption (EvalContext *ctx, EvalContextOption option)
 
void EvalContextSetLaunchDirectory (EvalContext *ctx, const char *path)
 
void EvalContextSetEntryPoint (EvalContext *const ctx, const char *const entry_point)
 
const char * EvalContextGetEntryPoint (EvalContext *const ctx)
 
void EvalContextSetIgnoreLocks (EvalContext *ctx, bool ignore)
 
bool EvalContextIsIgnoringLocks (const EvalContext *ctx)
 
StringSetClassesMatching (const EvalContext *ctx, ClassTableIterator *iter, const char *regex, const Rlist *tags, bool first_only)
 
JsonElementJsonExpandElement (EvalContext *ctx, const JsonElement *source)
 
const StringSetEvalContextAllClassesGet (const EvalContext *ctx)
 
void EvalContextAllClassesLoggingEnable (EvalContext *ctx, bool enable)
 
void EvalContextPushBundleName (const EvalContext *ctx, const char *bundle_name)
 
const StringSetEvalContextGetBundleNames (const EvalContext *ctx)
 
void EvalContextPushRemoteVarPromise (EvalContext *ctx, const char *bundle_name, const Promise *pp)
 
const SeqEvalContextGetRemoteVarPromises (const EvalContext *ctx, const char *bundle_name)
 

Variables

static const char * STACK_FRAME_TYPE_STR [STACK_FRAME_TYPE_MAX]
 
static pcre * context_expression_whitespace_rx = NULL
 
static const char *const NO_STATUS_TYPES []
 
static const char *const NO_LOG_TYPES []
 

Macro Definition Documentation

◆ NESTED_SCOPE_SEP

#define NESTED_SCOPE_SEP   "___"

Definition at line 58 of file eval_context.c.

Function Documentation

◆ AddAllClasses()

◆ AddDefaultInventoryToContext()

void AddDefaultInventoryToContext ( const EvalContext ctx,
Rlist inventory 
)

◆ AddDefaultPackageModuleToContext()

void AddDefaultPackageModuleToContext ( const EvalContext ctx,
char *  name 
)

◆ AddPackageModuleToContext()

◆ AdjustLogLevel()

static LogLevel AdjustLogLevel ( LogLevel  base,
LogLevel  adjust 
)
static

Definition at line 304 of file eval_context.c.

References MAX.

Referenced by CalculateLogLevel(), and CalculateReportLevel().

◆ BufferAppendAbbreviatedStr()

static void BufferAppendAbbreviatedStr ( Buffer buf,
const char *  promiser,
const int  N 
)
static

Like BufferAppendPromiseStr, but if str contains newlines and is longer than 2*N+3, then only copy an abbreviated version consisting of the first and last N characters, separated by ...

Parameters
bufferBuffer to be used.
promiserConstant string to append
NMax. length of initial/final segment of promiser to keep
Note
2*N+3 is the maximum length of the appended string (excl. terminating NULL)

Definition at line 1828 of file eval_context.c.

References BufferAppendPromiseStr(), and NULL.

Referenced by EvalContextStackPath().

◆ BufferAppendPromiseStr()

static void BufferAppendPromiseStr ( Buffer buf,
const char *  str 
)
static

Concatenate string #str to #buf, replacing mangling characters '*' and '#' with their visible counterparts.

Definition at line 1796 of file eval_context.c.

References BufferAppendChar(), CF_MANGLED_NS, and CF_MANGLED_SCOPE.

Referenced by BufferAppendAbbreviatedStr().

◆ BundleAbort()

bool BundleAbort ( EvalContext ctx)

◆ BundleAborted()

static bool BundleAborted ( const EvalContext ctx)
static

Definition at line 815 of file eval_context.c.

References EvalContext_::bundle_aborted, and NULL.

Referenced by EvalContextClassPut(), and EvalContextStackFrameAddSoft().

◆ CalculateLogLevel()

static LogLevel CalculateLogLevel ( const Promise pp)
static

◆ CalculateReportLevel()

static LogLevel CalculateReportLevel ( const Promise pp)
static

◆ cfPS()

void cfPS ( EvalContext ctx,
LogLevel  level,
PromiseResult  status,
const Promise pp,
const Attributes attr,
const char *  fmt,
  ... 
)

Definition at line 3016 of file eval_context.c.

References ClassAuditLog(), free(), Log(), LOG_LEVEL_VERBOSE, LogPromiseContext(), NULL, and xvasprintf().

Referenced by cf_readlink(), CfCopyFile(), CfCreateFile(), CheckPosixLinuxACL(), CopyFileSources(), CopyRegularFile(), DeletePromisedLinesMatching(), DoAllSignals(), EditColumns(), EditLineByColumn(), FileChangesCheckAndUpdateHash(), FinishEditContext(), HandleOldPackagePromiseType(), InsertCompoundLineAtLocation(), InsertFileAtLocation(), InsertLineAtLocation(), InsertMultipleLinesToRegion(), ItemListsEqual(), KeepEditXmlPromise(), KillGhostLink(), LinkCopy(), MakeHardLink(), MakeLink(), MakeTemporaryBundleFromTemplate(), MoveObstruction(), NovaExtractValueFromStream(), NovaLogSymbolicValue(), NovaReSample(), PurgeLocalFiles(), RenderTemplateMustache(), RenderTemplateMustacheFromFile(), RenderTemplateMustacheFromString(), RepairExec(), ReplacePatterns(), RunCmpCommand(), ScheduleCopyOperation(), ScheduleEditOperation(), ScheduleLinkChildrenOperation(), SourceSearchAndCopy(), TouchFile(), TransformFile(), VerifyACL(), VerifyClassPromise(), VerifyColumnEdits(), VerifyCommandRetcode(), VerifyCopiedFileAttributes(), VerifyCopy(), VerifyDelete(), VerifyFileAttributes(), VerifyFilePromise(), VerifyFileSystem(), VerifyFreeSpace(), VerifyHardLink(), VerifyInFstab(), VerifyLineDeletions(), VerifyLineInsertions(), VerifyLink(), VerifyMeasurementPromise(), VerifyMethod(), VerifyMount(), VerifyMountPromise(), VerifyName(), VerifyNotInFstab(), VerifyOwner(), VerifyPackagesPromise(), VerifyPatterns(), VerifyProcessOp(), VerifyRelativeLink(), VerifyReportPromise(), VerifySetUidGid(), VerifySQLPromise(), VerifyTablePromise(), VerifyUnmount(), and VerifyUsersPromise().

◆ CheckClassExpression()

◆ ClassAuditLog()

◆ ClassCharIsWhitespace()

bool ClassCharIsWhitespace ( char  ch)

Definition at line 529 of file eval_context.c.

Referenced by CheckClassExpression().

◆ ClassesMatching()

◆ DeleteAllClasses()

◆ DoSummarizeTransaction()

◆ EvalAborted()

bool EvalAborted ( const EvalContext ctx)

Definition at line 833 of file eval_context.c.

References EvalContext_::eval_aborted, and NULL.

Referenced by KeepPromiseBundles(), KeepPromises(), main(), and ScheduleAgentOperations().

◆ EvalContextAddIpAddress()

void EvalContextAddIpAddress ( EvalContext ctx,
const char *  ip_address,
const char *  iface 
)

Definition at line 3066 of file eval_context.c.

References AppendItem(), EvalContext_::ip_addresses, and NULL.

Referenced by FindV6InterfacesInfo(), and GetInterfacesInfo().

◆ EvalContextAllClassesGet()

const StringSet* EvalContextAllClassesGet ( const EvalContext ctx)

Definition at line 3254 of file eval_context.c.

References EvalContext_::all_classes.

◆ EvalContextAllClassesLoggingEnable()

void EvalContextAllClassesLoggingEnable ( EvalContext ctx,
bool  enable 
)

Definition at line 3260 of file eval_context.c.

References EvalContext_::all_classes, and Nova_ClassHistoryEnable().

Referenced by KeepControlPromises(), and main().

◆ EvalContextAppendBodyParentsAndArgs()

◆ EvalContextClassGet()

◆ EvalContextClassMatch()

◆ EvalContextClassPut()

◆ EvalContextClassPutHard()

◆ EvalContextClassPutSoft()

◆ EvalContextClassRemove()

◆ EvalContextClassTableIteratorNewGlobal()

ClassTableIterator* EvalContextClassTableIteratorNewGlobal ( const EvalContext ctx,
const char *  ns,
bool  is_hard,
bool  is_soft 
)

◆ EvalContextClassTableIteratorNewLocal()

◆ EvalContextClassTags()

StringSet* EvalContextClassTags ( const EvalContext ctx,
const char *  ns,
const char *  name 
)

◆ EvalContextClear()

◆ EvalContextCurrentNamespace()

◆ EvalContextDeleteIpAddresses()

void EvalContextDeleteIpAddresses ( EvalContext ctx)

◆ EvalContextDestroy()

◆ EvalContextFindFirstMatchingBody()

const Body* EvalContextFindFirstMatchingBody ( const Policy policy,
const char *  type,
const char *  namespace,
const char *  name 
)

◆ EvalContextFunctionCacheGet()

bool EvalContextFunctionCacheGet ( const EvalContext ctx,
const FnCall fp,
const Rlist args,
Rval rval_out 
)

◆ EvalContextFunctionCachePut()

void EvalContextFunctionCachePut ( EvalContext ctx,
const FnCall fp,
const Rlist args,
const Rval rval 
)

◆ EvalContextGetBundleArgs()

Rlist* EvalContextGetBundleArgs ( EvalContext ctx)

Definition at line 1245 of file eval_context.c.

References EvalContext_::args.

Referenced by PromiseBanner().

◆ EvalContextGetBundleNames()

const StringSet* EvalContextGetBundleNames ( const EvalContext ctx)

Definition at line 3272 of file eval_context.c.

References EvalContext_::bundle_names.

Referenced by IsLegalVariableName().

◆ EvalContextGetEntryPoint()

const char* EvalContextGetEntryPoint ( EvalContext *const  ctx)

Definition at line 3114 of file eval_context.c.

References EvalContext_::entry_point, and NULL.

Referenced by RenameMainBundle().

◆ EvalContextGetEvalOption()

bool EvalContextGetEvalOption ( EvalContext ctx,
EvalContextOption  option 
)

Definition at line 3095 of file eval_context.c.

References EvalContext_::eval_options.

Referenced by FnCallEvaluate().

◆ EvalContextGetIpAddresses()

Item* EvalContextGetIpAddresses ( const EvalContext ctx)

Definition at line 3078 of file eval_context.c.

References EvalContext_::ip_addresses.

Referenced by FnCallIPRange(), GetIpAddresses(), and MonitorStartServer().

◆ EvalContextGetPass()

int EvalContextGetPass ( EvalContext ctx)

Definition at line 1255 of file eval_context.c.

References EvalContext_::pass.

Referenced by ExpandDeRefPromise(), PromiseBanner(), ScopeAugment(), and VerifyVarPromise().

◆ EvalContextGetPromiseCallerMethods()

◆ EvalContextGetPromiseCallers()

◆ EvalContextGetRemoteVarPromises()

const Seq* EvalContextGetRemoteVarPromises ( const EvalContext ctx,
const char *  bundle_name 
)

◆ EvalContextGetSelectEndMatchEof()

bool EvalContextGetSelectEndMatchEof ( const EvalContext ctx)

Definition at line 189 of file eval_context.c.

References EvalContext_::select_end_match_eof.

Referenced by GetRegionConstraints().

◆ EvalContextHeapAddAbort()

void EvalContextHeapAddAbort ( EvalContext ctx,
const char *  context,
const char *  activated_on_context 
)

◆ EvalContextHeapAddAbortCurrentBundle()

void EvalContextHeapAddAbortCurrentBundle ( EvalContext ctx,
const char *  context,
const char *  activated_on_context 
)

Definition at line 856 of file eval_context.c.

References AppendItem(), EvalContext_::heap_abort_current_bundle, IsItemIn(), and NULL.

Referenced by KeepControlPromises().

◆ EvalContextHeapContainsHard()

static bool EvalContextHeapContainsHard ( const EvalContext ctx,
const char *  name 
)
static

◆ EvalContextHeapContainsSoft()

static bool EvalContextHeapContainsSoft ( const EvalContext ctx,
const char *  ns,
const char *  name 
)
static

◆ EvalContextHeapPersistentLoadAll()

◆ EvalContextHeapPersistentRemove()

void EvalContextHeapPersistentRemove ( const char *  context)

Definition at line 715 of file eval_context.c.

References CloseDB(), dbid_state, DeleteDB(), Log(), LOG_LEVEL_DEBUG, and OpenDB().

Referenced by DeleteAllClasses(), and EvalClassExpression().

◆ EvalContextHeapPersistentSave()

◆ EvalContextHeapRemoveHard()

bool EvalContextHeapRemoveHard ( EvalContext ctx,
const char *  name 
)

Definition at line 1133 of file eval_context.c.

References ClassTableRemove(), EvalContext_::global_classes, and NULL.

◆ EvalContextHeapRemoveSoft()

bool EvalContextHeapRemoveSoft ( EvalContext ctx,
const char *  ns,
const char *  name 
)

Definition at line 1128 of file eval_context.c.

References ClassTableRemove(), and EvalContext_::global_classes.

◆ EvalContextIsIgnoringLocks()

bool EvalContextIsIgnoringLocks ( const EvalContext ctx)

Definition at line 3125 of file eval_context.c.

References EvalContext_::ignore_locks.

Referenced by AcquireLock().

◆ EvalContextNew()

◆ EvalContextPromiseLockCacheContains()

bool EvalContextPromiseLockCacheContains ( const EvalContext ctx,
const char *  key 
)

Definition at line 2628 of file eval_context.c.

References EvalContext_::promise_lock_cache, and StringSetContains().

Referenced by AcquireLock().

◆ EvalContextPromiseLockCachePut()

void EvalContextPromiseLockCachePut ( EvalContext ctx,
const char *  key 
)

Definition at line 2633 of file eval_context.c.

References EvalContext_::promise_lock_cache, StringSetAdd(), and xstrdup().

Referenced by AcquireLock().

◆ EvalContextPromiseLockCacheRemove()

void EvalContextPromiseLockCacheRemove ( EvalContext ctx,
const char *  key 
)

◆ EvalContextPushBundleName()

void EvalContextPushBundleName ( const EvalContext ctx,
const char *  bundle_name 
)

Definition at line 3266 of file eval_context.c.

References EvalContext_::bundle_names, StringSetAdd(), and xstrdup().

Referenced by LoadPolicy().

◆ EvalContextPushRemoteVarPromise()

void EvalContextPushRemoteVarPromise ( EvalContext ctx,
const char *  bundle_name,
const Promise pp 
)

◆ EvalContextResolveBodyExpression()

Seq* EvalContextResolveBodyExpression ( const EvalContext ctx,
const Policy policy,
const char *  callee_reference,
const char *  callee_type 
)

Returns a Sequence of const Body* elements, first the body and then its parents.

Uses inherit_from to figure out the parents.

Definition at line 2609 of file eval_context.c.

References ClassRefDestroy(), EvalContextAppendBodyParentsAndArgs(), EvalContextFindFirstMatchingBody(), IDRefQualify(), ClassRef::name, ClassRef::ns, NULL, SeqAppend(), and SeqNew().

Referenced by DeRefCopyPromise(), and GetPackageConstraints().

◆ EvalContextResolveBundleExpression()

const Bundle* EvalContextResolveBundleExpression ( const EvalContext ctx,
const Policy policy,
const char *  callee_reference,
const char *  callee_type 
)

Find a bundle for a bundle call, given a callee reference (in the form of ns:bundle), and a type of bundle. This is requires EvalContext because the callee reference may be unqualified. Hopefully this should go away in the future if we make a more generalized API to simply call a bundle, but we have a few special rules around edit_line and so on.

Definition at line 2520 of file eval_context.c.

References Policy_::bundles, ClassRefDestroy(), IDRefQualify(), ClassRef::name, Bundle_::name, ClassRef::ns, Bundle_::ns, NULL, SeqAt(), SeqLength(), StringEqual(), and Bundle_::type.

Referenced by DeRefCopyPromise(), KeepPromiseBundles(), ScheduleEditOperation(), and VerifyMethod().

◆ EvalContextSetBundleArgs()

void EvalContextSetBundleArgs ( EvalContext ctx,
const Rlist args 
)

Definition at line 1235 of file eval_context.c.

References EvalContext_::args, RlistCopy(), and RlistDestroy().

Referenced by KeepPromiseBundles(), and VerifyMethod().

◆ EvalContextSetEntryPoint()

void EvalContextSetEntryPoint ( EvalContext *const  ctx,
const char *const  entry_point 
)

Definition at line 3106 of file eval_context.c.

References EvalContext_::entry_point, free(), NULL, and SafeStringDuplicate().

Referenced by AddPolicyEntryVariables().

◆ EvalContextSetEvalOption()

void EvalContextSetEvalOption ( EvalContext ctx,
EvalContextOption  option,
bool  value 
)

Definition at line 3083 of file eval_context.c.

References EvalContext_::eval_options.

Referenced by GenericAgentConfigApply(), and ResolveControlBody().

◆ EvalContextSetIgnoreLocks()

void EvalContextSetIgnoreLocks ( EvalContext ctx,
bool  ignore 
)

Definition at line 3120 of file eval_context.c.

References EvalContext_::ignore_locks.

Referenced by GenericAgentConfigApply().

◆ EvalContextSetLaunchDirectory()

void EvalContextSetLaunchDirectory ( EvalContext ctx,
const char *  path 
)

Definition at line 3100 of file eval_context.c.

References free(), EvalContext_::launch_directory, and xstrdup().

Referenced by GenericAgentInitialize().

◆ EvalContextSetPass()

void EvalContextSetPass ( EvalContext ctx,
int  pass 
)

Definition at line 1250 of file eval_context.c.

References EvalContext_::pass.

Referenced by ScheduleAgentOperations().

◆ EvalContextSetSelectEndMatchEof()

void EvalContextSetSelectEndMatchEof ( EvalContext ctx,
bool  value 
)

Definition at line 194 of file eval_context.c.

References EvalContext_::select_end_match_eof.

Referenced by KeepControlPromises().

◆ EvalContextSetupMissionPortalLogHook()

void EvalContextSetupMissionPortalLogHook ( EvalContext ctx)

Definition at line 1002 of file eval_context.c.

Referenced by EvalContextNew().

◆ EvalContextSetupMissionPortalLogHook__stub()

void EvalContextSetupMissionPortalLogHook__stub ( EvalContext ctx)

Definition at line 1002 of file eval_context.c.

◆ EvalContextStackCurrentBundle()

const Bundle* EvalContextStackCurrentBundle ( const EvalContext ctx)

◆ EvalContextStackCurrentMessages()

◆ EvalContextStackCurrentPromise()

◆ EvalContextStackFrameAddSoft()

◆ EvalContextStackFrameContainsSoft()

static bool EvalContextStackFrameContainsSoft ( const EvalContext ctx,
const char *  context 
)
static

◆ EvalContextStackFrameRemoveSoft()

void EvalContextStackFrameRemoveSoft ( EvalContext ctx,
const char *  context 
)

◆ EvalContextStackPath()

◆ EvalContextStackPopFrame()

◆ EvalContextStackPromisees()

◆ EvalContextStackPushBodyFrame()

◆ EvalContextStackPushBundleFrame()

◆ EvalContextStackPushFrame()

◆ EvalContextStackPushPromiseFrame()

◆ EvalContextStackPushPromiseIterationFrame()

◆ EvalContextStackPushPromiseTypeFrame()

◆ EvalContextStackToString()

const char* EvalContextStackToString ( EvalContext ctx)

Definition at line 371 of file eval_context.c.

References LastStackFrame(), and StackFrame::path.

Referenced by PromiseBanner().

◆ EvalContextVariableClearMatch()

bool EvalContextVariableClearMatch ( EvalContext ctx)

◆ EvalContextVariableControlCommonGet()

◆ EvalContextVariableGet()

◆ EvalContextVariableGetSpecial()

const void* EvalContextVariableGetSpecial ( const EvalContext *const  ctx,
const SpecialScope  scope,
const char *const  varname,
DataType *const  type_out 
)

◆ EvalContextVariableGetSpecialString()

const char* EvalContextVariableGetSpecialString ( const EvalContext *const  ctx,
const SpecialScope  scope,
const char *const  varname 
)
Note
Only use this when you know the variable is a string
See also
EvalContextVariableGetSpecial()

Definition at line 2035 of file eval_context.c.

References CF_DATA_TYPE_STRING, EvalContextVariableGetSpecial(), and NULL.

◆ EvalContextVariablePromiseGet()

const Promise* EvalContextVariablePromiseGet ( const EvalContext ctx,
const VarRef ref 
)

Definition at line 2441 of file eval_context.c.

References NULL, Variable::promise, and VariableResolve().

◆ EvalContextVariablePut()

◆ EvalContextVariablePutSpecial()

◆ EvalContextVariableRemove()

◆ EvalContextVariableRemoveSpecial()

◆ EvalContextVariableTableFromRefIteratorNew()

◆ EvalContextVariableTableIteratorNew()

◆ EvalContextVariableTags()

StringSet* EvalContextVariableTags ( const EvalContext ctx,
const VarRef ref 
)

◆ EvalFileResult()

bool EvalFileResult ( const char *  file_result,
StringSet leaf_attr 
)

Definition at line 635 of file eval_context.c.

References EvalWithTokenFromList().

Referenced by SelectGroupMatch(), SelectLeaf(), SelectOwnerMatch(), and SelectTypeMatch().

◆ EvalProcessResult()

bool EvalProcessResult ( const char *  process_result,
StringSet proc_attr 
)

Definition at line 620 of file eval_context.c.

References EvalWithTokenFromList(), NULL, and StringEqual().

Referenced by SelectProcess().

◆ EvalTokenAsClass()

◆ EvalTokenFromList()

static ExpressionValue EvalTokenFromList ( const char *  token,
void *  param 
)
static

Definition at line 585 of file eval_context.c.

References StringSetContains().

Referenced by EvalWithTokenFromList().

◆ EvalVarRef()

static char* EvalVarRef ( const char *  varname,
VarRefType  type,
void *  param 
)
static

Definition at line 517 of file eval_context.c.

References NULL.

Referenced by CheckClassExpression(), and EvalWithTokenFromList().

◆ EvalWithTokenFromList()

static bool EvalWithTokenFromList ( const char *  expr,
StringSet token_set 
)
static

◆ FreePackageManager()

static void FreePackageManager ( PackageModuleBody manager)
static

◆ FreePackagePromiseContext()

◆ FuncCacheMapClear()

void FuncCacheMapClear ( FuncCacheMap map)

Definition at line 89 of file eval_context.c.

Referenced by EvalContextClear().

◆ FuncCacheMapContainsSameKeys()

bool FuncCacheMapContainsSameKeys ( const FuncCacheMap map1,
const FuncCacheMap map2 
)

Definition at line 89 of file eval_context.c.

◆ FuncCacheMapDestroy()

void FuncCacheMapDestroy ( FuncCacheMap map)

Definition at line 89 of file eval_context.c.

Referenced by EvalContextDestroy().

◆ FuncCacheMapGet()

Rval * FuncCacheMapGet ( const FuncCacheMap map,
const Rlist key 
)

Definition at line 89 of file eval_context.c.

Referenced by EvalContextFunctionCacheGet().

◆ FuncCacheMapHasKey()

bool FuncCacheMapHasKey ( const FuncCacheMap map,
const Rlist key 
)

Definition at line 89 of file eval_context.c.

◆ FuncCacheMapInsert()

bool FuncCacheMapInsert ( const FuncCacheMap map,
Rlist key,
Rval value 
)

Definition at line 89 of file eval_context.c.

Referenced by EvalContextFunctionCachePut().

◆ FuncCacheMapNew()

FuncCacheMap * FuncCacheMapNew ( void  )

Definition at line 89 of file eval_context.c.

Referenced by EvalContextNew().

◆ FuncCacheMapPrintStats()

void FuncCacheMapPrintStats ( const FuncCacheMap map,
FILE *  f 
)

Definition at line 89 of file eval_context.c.

◆ FuncCacheMapRemove()

bool FuncCacheMapRemove ( const FuncCacheMap map,
const Rlist key 
)

Definition at line 89 of file eval_context.c.

◆ FuncCacheMapSize()

size_t FuncCacheMapSize ( const FuncCacheMap map)

Definition at line 89 of file eval_context.c.

◆ FuncCacheMapSoftDestroy()

void FuncCacheMapSoftDestroy ( FuncCacheMap map)

Definition at line 89 of file eval_context.c.

◆ GetAgentAbortingContext()

static const char* GetAgentAbortingContext ( const EvalContext ctx)
static

◆ GetChecksumUpdatesDefault()

bool GetChecksumUpdatesDefault ( const EvalContext ctx)

Definition at line 3061 of file eval_context.c.

References EvalContext_::checksum_updates_default.

Referenced by GetChangeMgtConstraints().

◆ GetDefaultInventoryFromContext()

◆ GetDefaultPackageModuleFromContext()

◆ GetLevelForPromise()

static LogLevel GetLevelForPromise ( const Promise pp,
const char *  attr_name 
)
static

◆ GetPackageModuleFromContext()

◆ GetPackagePromiseContext()

PackagePromiseContext* GetPackagePromiseContext ( const EvalContext ctx)

Definition at line 275 of file eval_context.c.

References EvalContext_::package_promise_context.

◆ GetVariableTableForScope()

◆ IDRefQualify()

◆ IsPromiseValuableForLogging()

static bool IsPromiseValuableForLogging ( const Promise pp)
static

◆ IsPromiseValuableForStatus()

static bool IsPromiseValuableForStatus ( const Promise pp)
static

Definition at line 2700 of file eval_context.c.

References IsStrIn(), PromiseType_::name, NO_STATUS_TYPES, NULL, and Promise_::parent_promise_type.

Referenced by ClassAuditLog().

◆ IsVariableSelfReferential()

static bool IsVariableSelfReferential ( const VarRef ref,
const void *  value,
RvalType  rval_type 
)
static

◆ JsonExpandElement()

◆ LastStackFrame()

◆ LastStackFrameByType()

◆ LogPromiseContext()

◆ MangledThisScopedRef()

static VarRef* MangledThisScopedRef ( const VarRef ref)
inlinestatic

Change ref for e.g. 'config.var1' to 'this.config___var1'

See also
MangleScopedVarNameIntoSpecialScopeName()

Definition at line 2260 of file eval_context.c.

References free(), VarRef::lval, NESTED_SCOPE_SEP, VarRef::scope, StringConcatenate(), VarRefCopy(), and xstrdup().

Referenced by VariableResolve2().

◆ MangleScopedVarNameIntoSpecialScopeName()

static char* MangleScopedVarNameIntoSpecialScopeName ( const char *  scope,
const char *  var_name 
)
inlinestatic

We cannot have double-scoped variables (e.g. "this.config.var1"), so if we want to put a scoped variable into a special scope, we need to mangle the name like this: "config.var1" -> "config___var1"

Definition at line 1961 of file eval_context.c.

References free(), NESTED_SCOPE_SEP, StringConcatenate(), StringReplace(), and xmalloc().

Referenced by EvalContextVariablePutSpecial().

◆ MissingDependencies()

◆ MissionPortalLogHook()

◆ NotifyDependantPromises()

void NotifyDependantPromises ( EvalContext ctx,
const Promise pp,
PromiseResult  result 
)

◆ PackageManagerSeqCompare()

static int PackageManagerSeqCompare ( const void *  a,
const void *  b,
void *  data 
)
static

Definition at line 221 of file eval_context.c.

References StringSafeCompare().

Referenced by AddPackageModuleToContext().

◆ PackagePromiseConfigNew()

◆ RemoteVarPromisesMapClear()

void RemoteVarPromisesMapClear ( RemoteVarPromisesMap map)

Definition at line 110 of file eval_context.c.

◆ RemoteVarPromisesMapContainsSameKeys()

bool RemoteVarPromisesMapContainsSameKeys ( const RemoteVarPromisesMap map1,
const RemoteVarPromisesMap map2 
)

Definition at line 110 of file eval_context.c.

◆ RemoteVarPromisesMapDestroy()

void RemoteVarPromisesMapDestroy ( RemoteVarPromisesMap map)

Definition at line 110 of file eval_context.c.

Referenced by EvalContextDestroy().

◆ RemoteVarPromisesMapGet()

Seq * RemoteVarPromisesMapGet ( const RemoteVarPromisesMap map,
const char *  key 
)

◆ RemoteVarPromisesMapHasKey()

bool RemoteVarPromisesMapHasKey ( const RemoteVarPromisesMap map,
const char *  key 
)

Definition at line 110 of file eval_context.c.

◆ RemoteVarPromisesMapInsert()

bool RemoteVarPromisesMapInsert ( const RemoteVarPromisesMap map,
char *  key,
Seq value 
)

Definition at line 110 of file eval_context.c.

Referenced by EvalContextPushRemoteVarPromise().

◆ RemoteVarPromisesMapNew()

RemoteVarPromisesMap * RemoteVarPromisesMapNew ( void  )

Definition at line 110 of file eval_context.c.

Referenced by EvalContextPushRemoteVarPromise().

◆ RemoteVarPromisesMapPrintStats()

void RemoteVarPromisesMapPrintStats ( const RemoteVarPromisesMap map,
FILE *  f 
)

Definition at line 110 of file eval_context.c.

◆ RemoteVarPromisesMapRemove()

bool RemoteVarPromisesMapRemove ( const RemoteVarPromisesMap map,
const char *  key 
)

Definition at line 110 of file eval_context.c.

◆ RemoteVarPromisesMapSize()

size_t RemoteVarPromisesMapSize ( const RemoteVarPromisesMap map)

Definition at line 110 of file eval_context.c.

◆ RemoteVarPromisesMapSoftDestroy()

void RemoteVarPromisesMapSoftDestroy ( RemoteVarPromisesMap map)

Definition at line 110 of file eval_context.c.

◆ RvalDestroy2()

static void RvalDestroy2 ( void *  p)
static

Define FuncCacheMap. Key: an Rlist (which is linked list of Rvals) listing all the argument of the function Value: an Rval, the result of the function

Definition at line 76 of file eval_context.c.

References free(), and RvalDestroy().

◆ SeqDestroy_untyped()

static void SeqDestroy_untyped ( void *  p)
static

Define RemoteVarsPromisesMap. Key: bundle name (char *) Value: a sequence of promises (const *Promise), only the container (sequence) should be deallocated)

Definition at line 98 of file eval_context.c.

References SeqDestroy().

◆ SetBundleAborted()

static void SetBundleAborted ( EvalContext ctx)
static

Definition at line 821 of file eval_context.c.

References EvalContext_::bundle_aborted, and NULL.

Referenced by EvalContextClassPut(), and EvalContextStackFrameAddSoft().

◆ SetChecksumUpdatesDefault()

void SetChecksumUpdatesDefault ( EvalContext ctx,
bool  enabled 
)

Definition at line 3056 of file eval_context.c.

References EvalContext_::checksum_updates_default.

Referenced by KeepControlPromises().

◆ SetEvalAborted()

static void SetEvalAborted ( EvalContext ctx)
static

◆ SetPromiseOutcomeClasses()

◆ StackFrameBodyDestroy()

static void StackFrameBodyDestroy ( StackFrameBody  frame)
static

Definition at line 900 of file eval_context.c.

References VariableTableDestroy().

Referenced by StackFrameDestroy().

◆ StackFrameBundleDestroy()

static void StackFrameBundleDestroy ( StackFrameBundle  frame)
static

◆ StackFrameContainsSoftRecursive()

◆ StackFrameDestroy()

◆ StackFrameNew()

◆ StackFrameNewBody()

◆ StackFrameNewBundle()

◆ StackFrameNewPromise()

static StackFrame* StackFrameNewPromise ( const Promise owner)
static

◆ StackFrameNewPromiseIteration()

◆ StackFrameNewPromiseType()

◆ StackFramePromiseDestroy()

static void StackFramePromiseDestroy ( StackFramePromise  frame)
static

Definition at line 905 of file eval_context.c.

References VariableTableDestroy(), and StackFramePromise::vars.

Referenced by StackFrameDestroy().

◆ StackFramePromiseIterationDestroy()

static void StackFramePromiseIterationDestroy ( StackFramePromiseIteration  frame)
static

◆ StringToLogLevel()

static LogLevel StringToLogLevel ( const char *  value)
static

Definition at line 316 of file eval_context.c.

References LOG_LEVEL_INFO, LOG_LEVEL_NOTICE, and LOG_LEVEL_VERBOSE.

Referenced by GetLevelForPromise().

◆ SummarizeTransaction()

◆ TrackTotalCompliance()

void TrackTotalCompliance ( PromiseResult  status,
const Promise pp 
)

Definition at line 2799 of file eval_context.c.

Referenced by ClassAuditLog().

◆ TrackTotalCompliance__stub()

void TrackTotalCompliance__stub ( PromiseResult  status,
const Promise pp 
)

Definition at line 2799 of file eval_context.c.

◆ VariableResolve()

◆ VariableResolve2()

◆ VarRefStackQualify()

Variable Documentation

◆ context_expression_whitespace_rx

pcre* context_expression_whitespace_rx = NULL
static

Definition at line 113 of file eval_context.c.

Referenced by CheckClassExpression().

◆ NO_LOG_TYPES

const char* const NO_LOG_TYPES[]
static
Initial value:
=
{ "vars", "classes", "insert_lines", "delete_lines", "replace_patterns", "field_edits", NULL }
#define NULL
Definition: getopt1.c:56

Definition at line 2691 of file eval_context.c.

Referenced by IsPromiseValuableForLogging().

◆ NO_STATUS_TYPES

const char* const NO_STATUS_TYPES[]
static
Initial value:
=
{ "vars", "classes", "insert_lines", "delete_lines", "replace_patterns", "field_edits", NULL }

Definition at line 2689 of file eval_context.c.

Referenced by IsPromiseValuableForStatus().

◆ STACK_FRAME_TYPE_STR

const char* STACK_FRAME_TYPE_STR[STACK_FRAME_TYPE_MAX]
static
Initial value:
= {
"BUNDLE",
"BODY",
"PROMISE_TYPE",
"PROMISE",
"PROMISE_ITERATION"
}

Definition at line 60 of file eval_context.c.

Referenced by EvalContextStackPopFrame(), and EvalContextStackPushFrame().