コード例 #1
0
/* find all messages that have an ASLExpireTime key */
static uint32_t
do_ASLExpireTime_search(asl_store_t *s, asl_search_result_t **out)
{
	asl_search_result_t q, *query, *res;
	asl_msg_t *qm[1];
	uint32_t status;
	uint64_t mid;

	qm[0] = asl_msg_new(ASL_TYPE_QUERY);
	if (qm[0] == NULL) return ASL_STATUS_NO_MEMORY;

	q.count = 1;
	q.curr = 0;
	q.msg = qm;
	query = &q;

	if (asl_msg_set_key_val_op(qm[0], ASL_KEY_EXPIRE_TIME, NULL, ASL_QUERY_OP_TRUE) != 0)
	{
		asl_msg_release(qm[0]);
		return ASL_STATUS_NO_MEMORY;
	}

	res = NULL;
	mid = 0;
	status = asl_store_match(s, query, out, &mid, 0, 0, 1);

	asl_msg_release(qm[0]);
	return status;
}
コード例 #2
0
ファイル: aslmanager.c プロジェクト: outbackdingo/uBSD
int
checkpoint(const char *name)
{
	/* send checkpoint message to syslogd */
	debug_log(ASL_LEVEL_NOTICE, "Checkpoint module %s\n", (name == NULL) ? "*" : name);
	if (dryrun != 0) return 0;

	asl_msg_t *qmsg = asl_msg_new(ASL_TYPE_QUERY);
	char *tmp = NULL;
	asl_msg_list_t *res;

	asprintf(&tmp, "%s checkpoint", (name == NULL) ? "*" : name);
	asl_msg_set_key_val_op(qmsg, "action", tmp, ASL_QUERY_OP_EQUAL);
	free(tmp);

	res = control_query(qmsg);

	asl_msg_list_release(res);
	return 0;
}