static int ticket_read(char *ticket_filename, struct chirp_ticket *ct) { CHIRP_FILE *tf = cfs_fopen(ticket_filename, "r"); if(!tf) return 0; char *b; size_t l; if(!cfs_freadall(tf, &b, &l)) { cfs_fclose(tf); return 0; } cfs_fclose(tf); int result = chirp_ticket_read(b, ct); free(b); return result; }
static int ticket_read(char *ticket_filename, struct chirp_ticket *ct) { buffer_t B; CHIRP_FILE *tf = cfs_fopen(ticket_filename, "r"); if(!tf) return 0; buffer_init(&B); buffer_abortonfailure(&B, 1); if(!cfs_freadall(tf, &B)) { cfs_fclose(tf); return 0; } cfs_fclose(tf); int result = chirp_ticket_read(buffer_tostring(&B, NULL), ct); buffer_free(&B); return result; }