static int add_event(char *evtid_path) { char id_buf[24]; int id, fd; fd = open(evtid_path, O_RDONLY); if (fd < 0) { /* * some tracepoint doesn't have id file, like ftrace, * return success in here, and don't print error. */ verbose_printf("warning: cannot open file %s\n", evtid_path); return 0; } if (read(fd, id_buf, sizeof(id_buf)) < 0) { fprintf(stderr, "read file error %s\n", evtid_path); close(fd); return -1; } id = atoll(id_buf); idmap_set(id); close(fd); return 0; }
/* Generate a radius packet id. */ static krb5_error_code id_generate(krb5_context ctx, krad_packet_iter_cb cb, void *data, uchar *id) { krb5_error_code retval; const krad_packet *tmp; idmap used; uchar i; retval = randomize(ctx, &i, sizeof(i)); if (retval != 0) { if (cb != NULL) (*cb)(data, TRUE); return retval; } if (cb != NULL) { idmap_init(&used); for (tmp = (*cb)(data, FALSE); tmp != NULL; tmp = (*cb)(data, FALSE)) idmap_set(&used, tmp->pkt.data[1]); retval = idmap_find(&used, &i); if (retval != 0) return retval; } *id = i; return 0; }