Beispiel #1
0
/*
 * Turn a tree into a list for easy of comparison
 */
arg_elem *expr_list_eval(arg_elem *head, tree_t *t) {
  if (t == NULL) return head;

  if (t->type == EXPR_LIST) {
    head = expr_list_eval(head, t->left);
    head = expr_list_eval(head, t->right);
  }
  else
    head = arg_append(head, type_check(t));
}
Beispiel #2
0
int trap_send_v3(TrapReceiver *tRcv, TrapList *tV3UserList, TrapData *tData)
{
	#if 0
	struct arg arg;
	TrapNode *tV3UserNode, *tParamNode;
	TrapParam *tParam;
	TrapV3User *tV3User;

	for (tV3UserNode = tV3UserList->first; tV3UserNode; tV3UserNode = tV3UserNode->next) {
		tV3User = tV3UserNode->data;
		arg_init(&arg, 100, 20);
		arg_append(&arg, "snmptrap");
		arg_append(&arg, "-v");
		arg_append(&arg, "3");
		arg_append(&arg, "-u");
		arg_append(&arg, tV3User->username);
		if (strlen(tV3User->auth_type) > 0 && strlen(tV3User->auth_passwd) > 0){
			arg_append(&arg, "-a");
			arg_append(&arg, tV3User->auth_type);
			arg_append(&arg, "-A");
			arg_append(&arg, tV3User->auth_passwd);
		}
		if (strlen(tV3User->priv_type) > 0 && strlen(tV3User->priv_passwd) > 0){
			arg_append(&arg, "-x");
			arg_append(&arg, tV3User->priv_type);
			arg_append(&arg, "-X");
			arg_append(&arg, tV3User->priv_passwd);
		}
		char addr[100];
		snprintf(addr, sizeof(addr), "%s:%hd", tRcv->rcv_ip, 162);
		arg_append(&arg, addr);
		
		char tm[100];
		snprintf(tm, sizeof(tm), "%ul", time(0)*100);
		arg_append(&arg, tm);
		arg_append(&arg, tData->oid);

		for (tParamNode = tData->paramList.first; tParamNode; tParamNode = tParamNode->next){
			tParam = tParamNode->data;
			arg_append(&arg, tParam->oid);
			char buf[10];
			sprintf(buf, "%c", tParam->type);
			arg_append(&arg, buf);
			arg_append(&arg, tParam->value);
		}
	
		trap_exec(arg.argc, arg.argv);

		arg_destroy(&arg);
	}
	#endif
	return 0;
}