本文整理汇总了C++中IsItemIn函数的典型用法代码示例。如果您正苦于以下问题:C++ IsItemIn函数的具体用法?C++ IsItemIn怎么用?C++ IsItemIn使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IsItemIn函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: test_purge_old_connections_purge_middle
static void test_purge_old_connections_purge_middle(void)
{
const time_t time_now = 100000;
Item *connections = NULL;
char time_str[64];
snprintf(time_str, sizeof(time_str), "%ld", time_now - CONNECTION_MAX_AGE_SECONDS);
PrependItem(&connections, "123.123.123.3", time_str);
snprintf(time_str, sizeof(time_str), "%ld", time_now - CONNECTION_MAX_AGE_SECONDS - 1);
PrependItem(&connections, "123.123.123.2", time_str);
snprintf(time_str, sizeof(time_str), "%ld", time_now - CONNECTION_MAX_AGE_SECONDS + 100);
PrependItem(&connections, "123.123.123.1", time_str);
assert_int_equal(ListLen(connections), 3);
PurgeOldConnections(&connections, time_now);
assert_int_equal(ListLen(connections), 2);
assert_true(IsItemIn(connections, "123.123.123.1"));
assert_false(IsItemIn(connections, "123.123.123.2"));
assert_true(IsItemIn(connections, "123.123.123.3"));
DeleteItemList(connections);
}
开发者ID:JarleB,项目名称:core,代码行数:28,代码来源:connection_management_test.c
示例2: EvalContextHeapAddAbort
void EvalContextHeapAddAbort(EvalContext *ctx, const char *context, const char *activated_on_context)
{
if (!IsItemIn(ctx->heap_abort, context))
{
AppendItem(&ctx->heap_abort, context, activated_on_context);
}
}
开发者ID:shaunamarie,项目名称:core,代码行数:7,代码来源:env_context.c
示例3: CheckParseOpts
static SyntaxTypeMatch CheckParseOpts(const char *lval, const char *s, const char *range)
{
Item *split;
/* List/menu types are separated by comma str "a,b,c,..." */
CfDebug("\nCheckParseOpts(%s => %s/%s)\n", lval, s, range);
if (IsNakedVar(s, '@') || IsNakedVar(s, '$'))
{
return SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED;
}
split = SplitString(range, ',');
if (!IsItemIn(split, s))
{
DeleteItemList(split);
return SYNTAX_TYPE_MATCH_ERROR_OPTS_OUT_OF_RANGE;
}
DeleteItemList(split);
return SYNTAX_TYPE_MATCH_OK;
}
开发者ID:jooooooon,项目名称:core,代码行数:25,代码来源:syntax.c
示例4: EvalContextHeapAddAbortCurrentBundle
void EvalContextHeapAddAbortCurrentBundle(EvalContext *ctx, const char *context, const char *activated_on_context)
{
if (!IsItemIn(ctx->heap_abort_current_bundle, context))
{
AppendItem(&ctx->heap_abort_current_bundle, context, activated_on_context);
}
}
开发者ID:shaunamarie,项目名称:core,代码行数:7,代码来源:env_context.c
示例5: RelevantBundle
int RelevantBundle(char *agent,char *blocktype)
{ struct Item *ip;
if (strcmp(agent,CF_AGENTTYPES[cf_common]) == 0 || strcmp(CF_COMMONC,P.blocktype) == 0)
{
return true;
}
/* Here are some additional bundle types handled by cfAgent */
ip = SplitString("edit_line,edit_xml",',');
if (strcmp(agent,CF_AGENTTYPES[cf_agent]) == 0)
{
if (IsItemIn(ip,blocktype))
{
DeleteItemList(ip);
return true;
}
}
DeleteItemList(ip);
return false;
}
开发者ID:Kegeruneku,项目名称:Cfengine-debian,代码行数:25,代码来源:install.c
示例6: AddInstallable
void AddInstallable(char *classlist)
{ char *sp, currentitem[CF_MAXVARSIZE];
if (classlist == NULL)
{
return;
}
Debug("AddInstallable(%s)\n",classlist);
for (sp = classlist; *sp != '\0'; sp++)
{
currentitem[0] = '\0';
sscanf(sp,"%[^,:.]",currentitem);
sp += strlen(currentitem);
if (! IsItemIn(VALLADDCLASSES,currentitem))
{
AppendItem(&VALLADDCLASSES,currentitem,NULL);
}
if (*sp == '\0')
{
break;
}
}
}
开发者ID:AsherBond,项目名称:cf22cf3,代码行数:30,代码来源:eval.c
示例7: ArchiveToRepository
int ArchiveToRepository(const char *file, Attributes attr, Promise *pp, const ReportContext *report_context)
/* Returns true if the file was backup up and false if not */
{
char destination[CF_BUFSIZE];
struct stat sb, dsb;
if (!GetRepositoryPath(file, attr, destination))
{
return false;
}
if (attr.copy.backup == cfa_nobackup)
{
return true;
}
if (IsItemIn(VREPOSLIST, file))
{
CfOut(OUTPUT_LEVEL_INFORM, "",
"The file %s has already been moved to the repository once. Multiple update will cause loss of backup.",
file);
return true;
}
ThreadLock(cft_getaddr);
PrependItemList(&VREPOSLIST, file);
ThreadUnlock(cft_getaddr);
CfDebug("Repository(%s)\n", file);
JoinPath(destination, CanonifyName(file));
if (!MakeParentDirectory(destination, attr.move_obstructions, report_context))
{
}
if (cfstat(file, &sb) == -1)
{
CfDebug("File %s promised to archive to the repository but it disappeared!\n", file);
return true;
}
cfstat(destination, &dsb);
CheckForFileHoles(&sb, pp);
if (pp && CopyRegularFileDisk(file, destination, pp->makeholes))
{
CfOut(OUTPUT_LEVEL_INFORM, "", "Moved %s to repository location %s\n", file, destination);
return true;
}
else
{
CfOut(OUTPUT_LEVEL_INFORM, "", "Failed to move %s to repository location %s\n", file, destination);
return false;
}
}
开发者ID:FancsalMelinda,项目名称:core,代码行数:57,代码来源:files_repository.c
示例8: IncrementCounter
static void IncrementCounter(Item **list, char *name)
{
if (!IsItemIn(*list, name))
{
AppendItem(list, name, "");
}
IncrementItemListCounter(*list, name);
}
开发者ID:salewski,项目名称:cfengine-core,代码行数:9,代码来源:mon_network_sniffer.c
示例9: AllowedUser
int AllowedUser(char *user)
{
if (IsItemIn(SV.allowuserlist, user))
{
Log(LOG_LEVEL_VERBOSE, "User %s granted connection privileges", user);
return true;
}
Log(LOG_LEVEL_VERBOSE, "User %s is not allowed on this server", user);
return false;
}
开发者ID:fabix,项目名称:core,代码行数:11,代码来源:server_common.c
示例10: ArchiveToRepository
int ArchiveToRepository(const char *file, Attributes attr)
/* Returns true if the file was backup up and false if not */
{
char destination[CF_BUFSIZE];
struct stat sb, dsb;
if (!GetRepositoryPath(file, attr, destination))
{
return false;
}
if (attr.copy.backup == BACKUP_OPTION_NO_BACKUP)
{
return true;
}
if (IsItemIn(VREPOSLIST, file))
{
Log(LOG_LEVEL_INFO,
"The file '%s' has already been moved to the repository once. Multiple update will cause loss of backup.",
file);
return true;
}
ThreadLock(cft_getaddr);
PrependItemList(&VREPOSLIST, file);
ThreadUnlock(cft_getaddr);
JoinPath(destination, CanonifyName(file));
if (!MakeParentDirectory(destination, attr.move_obstructions))
{
}
if (stat(file, &sb) == -1)
{
Log(LOG_LEVEL_DEBUG, "File '%s' promised to archive to the repository but it disappeared!", file);
return true;
}
stat(destination, &dsb);
if (CopyRegularFileDisk(file, destination))
{
Log(LOG_LEVEL_INFO, "Moved '%s' to repository location '%s'", file, destination);
return true;
}
else
{
Log(LOG_LEVEL_INFO, "Failed to move '%s' to repository location '%s'", file, destination);
return false;
}
}
开发者ID:ajlill,项目名称:core,代码行数:53,代码来源:files_repository.c
示例11: GetSysUsers
static bool GetSysUsers( int *userListSz, int *numRootProcs, int *numOtherProcs)
{
FILE *fp;
char user[CF_BUFSIZE];
char vbuff[CF_BUFSIZE];
char cbuff[CF_BUFSIZE];
#if defined(__sun)
xsnprintf(cbuff, CF_BUFSIZE, "/bin/ps -eo user > %s/users.txt", CFWORKDIR);
#elif defined(_AIX)
xsnprintf(cbuff, CF_BUFSIZE, "/bin/ps -N -eo user > %s/users.txt", CFWORKDIR);
#elif defined(__linux__)
xsnprintf(cbuff, CF_BUFSIZE, "/bin/ps -eo user > %s/users.txt", CFWORKDIR);
#else
assert_true(1);
return false;
#endif
Item *userList = NULL;
system(cbuff);
xsnprintf(cbuff, CF_BUFSIZE, "%s/users.txt", CFWORKDIR);
if ((fp = fopen(cbuff, "r")) == NULL)
{
return false;
}
while (fgets(vbuff, CF_BUFSIZE, fp) != NULL)
{
sscanf(vbuff, "%s", user);
if (strcmp(user, "USER") == 0)
{
continue;
}
if (!IsItemIn(userList, user))
{
PrependItem(&userList, user, NULL);
(*userListSz)++;
}
if (strcmp(user, "root") == 0)
{
(*numRootProcs)++;
}
else
{
(*numOtherProcs)++;
}
}
fclose(fp);
return true;
}
开发者ID:Kegeruneku,项目名称:core,代码行数:52,代码来源:mon_processes_test.c
示例12: SetNetworkEntropyClasses
static void SetNetworkEntropyClasses(const char *service, const char *direction, const Item *list)
{
const Item *ip;
Item *addresses = NULL;
double entropy;
for (ip = list; ip != NULL; ip = ip->next)
{
if (strlen(ip->name) > 0)
{
char local[CF_BUFSIZE];
char remote[CF_BUFSIZE];
char vbuff[CF_BUFSIZE];
char *sp;
if (strncmp(ip->name, "tcp", 3) == 0)
{
sscanf(ip->name, "%*s %*s %*s %s %s", local, remote); /* linux-like */
}
else
{
sscanf(ip->name, "%s %s", local, remote); /* solaris-like */
}
strncpy(vbuff, remote, CF_BUFSIZE - 1);
vbuff[CF_BUFSIZE-1] = '\0';
for (sp = vbuff + strlen(vbuff) - 1; isdigit((int) *sp) && (sp > vbuff); sp--)
{
}
*sp = '\0';
if (!IsItemIn(addresses, vbuff))
{
AppendItem(&addresses, vbuff, "");
}
IncrementItemListCounter(addresses, vbuff);
}
}
entropy = MonEntropyCalculate(addresses);
MonEntropyClassesSet(service, direction, entropy);
DeleteItemList(addresses);
}
开发者ID:shreyu82,项目名称:core,代码行数:46,代码来源:mon_network.c
示例13: ListsCompare
bool ListsCompare(const Item *list1, const Item *list2)
{
if (ListLen(list1) != ListLen(list2))
{
return false;
}
for (const Item *ptr = list1; ptr != NULL; ptr = ptr->next)
{
if (IsItemIn(list2, ptr->name) == false)
{
return false;
}
}
return true;
}
开发者ID:lpefferkorn,项目名称:core,代码行数:17,代码来源:item_lib.c
示例14: Unix_GatherProcessUsers
static int Unix_GatherProcessUsers(struct Item **userList, int *userListSz, int *numRootProcs, int *numOtherProcs)
{
FILE *pp;
char pscomm[CF_BUFSIZE];
char user[CF_MAXVARSIZE];
char vbuff[CF_BUFSIZE];
snprintf(pscomm,CF_BUFSIZE,"%s %s",VPSCOMM[VSYSTEMHARDCLASS],VPSOPTS[VSYSTEMHARDCLASS]);
if ((pp = cf_popen(pscomm,"r")) == NULL)
{
return false;
}
CfReadLine(vbuff,CF_BUFSIZE,pp);
while (!feof(pp))
{
CfReadLine(vbuff,CF_BUFSIZE,pp);
sscanf(vbuff,"%s",user);
if (strcmp(user,"USER") == 0)
{
continue;
}
if (!IsItemIn(*userList,user))
{
PrependItem(userList,user,NULL);
(*userListSz)++;
}
if (strcmp(user,"root") == 0)
{
(*numRootProcs)++;
}
else
{
(*numOtherProcs)++;
}
}
cf_pclose(pp);
return true;
}
开发者ID:Kegeruneku,项目名称:Cfengine-debian,代码行数:45,代码来源:mon_processes.c
示例15: ListSubsetOfList
/**
* Checks whether list1 is a subset of list2, i.e. every entry in list1 must
* be found in list2.
*/
bool ListSubsetOfList(const Item *list1, const Item *list2)
{
const Item *list1_ptr = list1;
CYCLE_DECLARE(list1_ptr, slow, toggle);
while (list1_ptr != NULL)
{
if (!IsItemIn(list2, list1_ptr->name))
{
return false;
}
list1_ptr = list1_ptr->next;
CYCLE_CHECK(list1_ptr, slow, toggle);
}
return true; /* all elements of list1 were found in list2 */
}
开发者ID:markburgess,项目名称:Concept-CFEngine-fork,代码行数:22,代码来源:item_lib.c
示例16: ListsCompare
bool ListsCompare(const Item *list1, const Item *list2)
{
if (ListLen(list1) != ListLen(list2))
{
return false;
}
const Item *ptr = list1;
CYCLE_DECLARE(ptr, slow, toggle);
while (ptr != NULL)
{
if (IsItemIn(list2, ptr->name) == false)
{
return false;
}
ptr = ptr->next;
CYCLE_CHECK(ptr, slow, toggle);
}
return true;
}
开发者ID:awsiv,项目名称:core,代码行数:21,代码来源:item_lib.c
示例17: CheckParseOpts
static void CheckParseOpts(char *lval, char *s, const char *range)
{
Item *split;
int err = false;
char output[CF_BUFSIZE];
/* List/menu types are separated by comma str "a,b,c,..." */
CfDebug("\nCheckParseOpts(%s => %s/%s)\n", lval, s, range);
if (s == NULL)
{
return;
}
if (IsNakedVar(s, '@') || IsNakedVar(s, '$'))
{
CfDebug("Validation: Unable to verify variable expansion of %s at this stage\n", s);
return;
}
split = SplitString(range, ',');
if (!IsItemIn(split, s))
{
snprintf(output, CF_BUFSIZE,
"Selection on rhs of lval \'%s\' given as \'%s\' is out of bounds, should be in [%s]", lval, s, range);
ReportError(output);
err = true;
}
DeleteItemList(split);
if (!err)
{
CfDebug("CheckParseOpts - syntax verified\n\n");
}
}
开发者ID:dnaeon,项目名称:core,代码行数:38,代码来源:syntax.c
示例18: ShowState
static void ShowState(char *type)
{
struct stat statbuf;
char buffer[CF_BUFSIZE], vbuff[CF_BUFSIZE], assemble[CF_BUFSIZE];
Item *addresses = NULL, *saddresses = NULL, *ip;
int i = 0, tot = 0, min_signal_diversity = 1, conns = 1;
int maxlen = 0, count;
double *dist = NULL, S = 0.0;
char *offset = NULL;
FILE *fp;
CfDebug("ShowState(%s)\n", type);
snprintf(buffer, CF_BUFSIZE - 1, "%s/state/cf_%s", CFWORKDIR, type);
if (cfstat(buffer, &statbuf) == 0)
{
if ((fp = fopen(buffer, "r")) == NULL)
{
CfOut(cf_inform, "fopen", "Could not open state memory %s\n", buffer);
return;
}
while (!feof(fp))
{
char local[CF_BUFSIZE], remote[CF_BUFSIZE];
buffer[0] = local[0] = remote[0] = '\0';
memset(vbuff, 0, CF_BUFSIZE);
fgets(buffer, CF_BUFSIZE, fp);
if (strlen(buffer) > 0)
{
CfOut(cf_verbose, "", "(%2d) %s", conns, buffer);
if (IsSocketType(type))
{
if (strncmp(type, "incoming", 8) == 0 || strncmp(type, "outgoing", 8) == 0)
{
if (strncmp(buffer, "tcp", 3) == 0)
{
sscanf(buffer, "%*s %*s %*s %s %s", local, remote); /* linux-like */
}
else
{
sscanf(buffer, "%s %s", local, remote); /* solaris-like */
}
strncpy(vbuff, remote, CF_BUFSIZE - 1);
DePort(vbuff);
}
}
else if (IsTCPType(type))
{
count = 1;
sscanf(buffer, "%d %[^\n]", &count, remote);
AppendItem(&addresses, remote, "");
SetItemListCounter(addresses, remote, count);
conns += count;
continue;
}
else
{
/* If we get here this is a process thing */
if (offset == NULL)
{
if ((offset = strstr(buffer, "CMD")))
{
}
else if ((offset = strstr(buffer, "COMMAND")))
{
}
if (offset == NULL)
{
continue;
}
}
strncpy(vbuff, offset, CF_BUFSIZE - 1);
Chop(vbuff);
}
if (!IsItemIn(addresses, vbuff))
{
conns++;
AppendItem(&addresses, vbuff, "");
IncrementItemListCounter(addresses, vbuff);
}
else
{
conns++;
IncrementItemListCounter(addresses, vbuff);
}
}
}
fclose(fp);
conns--;
//.........这里部分代码省略.........
开发者ID:frerich,项目名称:core,代码行数:101,代码来源:verify_reports.c
示例19: FileInRepository
bool FileInRepository(const char *filename)
{
return IsItemIn(VREPOSLIST, filename);
}
开发者ID:GregorioDiStefano,项目名称:core,代码行数:4,代码来源:files_repository.c
示例20: KeepPromises
void KeepPromises(Policy *policy, ExecConfig *config)
{
bool schedule_is_specified = false;
Seq *constraints = ControlBodyConstraints(policy, AGENT_TYPE_EXECUTOR);
if (constraints)
{
for (size_t i = 0; i < SeqLength(constraints); i++)
{
Constraint *cp = SeqAt(constraints, i);
if (IsExcluded(cp->classes, NULL))
{
continue;
}
Rval retval;
if (GetVariable("control_executor", cp->lval, &retval) == DATA_TYPE_NONE)
{
CfOut(OUTPUT_LEVEL_ERROR, "", "Unknown lval %s in exec control body", cp->lval);
continue;
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_mailfrom].lval) == 0)
{
free(config->mail_from_address);
config->mail_from_address = SafeStringDuplicate(retval.item);
CfDebug("mailfrom = %s\n", config->mail_from_address);
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_mailto].lval) == 0)
{
free(config->mail_to_address);
config->mail_to_address = SafeStringDuplicate(retval.item);
CfDebug("mailto = %s\n", config->mail_to_address);
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_smtpserver].lval) == 0)
{
free(config->mail_server);
config->mail_server = SafeStringDuplicate(retval.item);
CfDebug("smtpserver = %s\n", config->mail_server);
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_execcommand].lval) == 0)
{
free(config->exec_command);
config->exec_command = SafeStringDuplicate(retval.item);
CfDebug("exec_command = %s\n", config->exec_command);
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_agent_expireafter].lval) == 0)
{
config->agent_expireafter = IntFromString(retval.item);
CfDebug("agent_expireafter = %d\n", config->agent_expireafter);
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_executorfacility].lval) == 0)
{
SetFacility(retval.item);
continue;
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_mailmaxlines].lval) == 0)
{
config->mail_max_lines = IntFromString(retval.item);
CfDebug("maxlines = %d\n", config->mail_max_lines);
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_splaytime].lval) == 0)
{
int time = IntFromString(RvalScalarValue(retval));
SPLAYTIME = (int) (time * SECONDS_PER_MINUTE * GetSplay());
}
if (strcmp(cp->lval, CFEX_CONTROLBODY[cfex_schedule].lval) == 0)
{
CfDebug("Loading user-defined schedule...\n");
DeleteItemList(SCHEDULE);
SCHEDULE = NULL;
schedule_is_specified = true;
for (const Rlist *rp = retval.item; rp; rp = rp->next)
{
if (!IsItemIn(SCHEDULE, rp->item))
{
AppendItem(&SCHEDULE, rp->item, NULL);
}
}
}
}
}
if (!schedule_is_specified)
{
LoadDefaultSchedule();
}
}
开发者ID:FancsalMelinda,项目名称:core,代码行数:99,代码来源:cf-execd.c
注:本文中的IsItemIn函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论