/* Main program */ int main(int argc, char **argv) { XFILE input_file; afs_uint32 r; parse_options(argc, argv); initialize_acfg_error_table(); initialize_AVds_error_table(); initialize_rxk_error_table(); initialize_u_error_table(); initialize_vl_error_table(); initialize_vols_error_table(); initialize_xFil_error_table(); r = xfopen(&input_file, O_RDONLY, input_path); if (r) { afs_com_err(argv0, r, "opening %s", input_path); exit(2); } memset(&dp, 0, sizeof(dp)); dp.cb_error = my_error_cb; dp.print_flags = DSPRINT_DIR; if (input_file.is_seekable) dp.flags |= DSFLAG_SEEK; r = ParseDirectory(&input_file, &dp, 0, 1); xfclose(&input_file); if (verbose && error_count) fprintf(stderr, "*** %d errors\n", error_count); if (r && !quiet) fprintf(stderr, "*** FAILED: %s\n", afs_error_message(r)); return 0; }
/* Main program */ int main(int argc, char **argv) { XFILE input_file; afs_uint32 r; parse_options(argc, argv); initialize_acfg_error_table(); initialize_AVds_error_table(); initialize_rxk_error_table(); initialize_u_error_table(); initialize_vl_error_table(); initialize_vols_error_table(); initialize_xFil_error_table(); r = xfopen(&input_file, O_RDONLY, input_path); if (r) { afs_com_err(argv0, r, "opening %s", input_path); exit(2); } memset(&dp, 0, sizeof(dp)); dp.cb_error = my_error_cb; if (input_file.is_seekable) dp.flags |= DSFLAG_SEEK; dirs_done = 0; if (!use_vnum) { dt_uint64 where; memset(&phi, 0, sizeof(phi)); phi.p = &dp; if (verbose) printf("* Building pathname info...\n"); if ((r = xftell(&input_file, &where)) || (r = Path_PreScan(&input_file, &phi, 1)) || (r = xfseek(&input_file, &where))) { afs_com_err(argv0, r, "- path initialization failed"); xfclose(&input_file); exit(1); } } dp.cb_vnode_dir = directory_cb; dp.cb_vnode_file = file_cb; dp.cb_vnode_link = symlink_cb; dp.cb_vnode_empty = lose_cb; dp.cb_vnode_wierd = lose_cb; if (do_headers) { dp.cb_dumphdr = dumphdr_cb; dp.cb_volhdr = volhdr_cb; } if (!nomode) { mkdir(target, 0755); if (chdir(target)) { fprintf(stderr, "chdir %s failed: %s\n", target, strerror(errno)); exit(1); } } r = ParseDumpFile(&input_file, &dp); if (verbose && error_count) fprintf(stderr, "*** %d errors\n", error_count); if (r && !quiet) fprintf(stderr, "*** FAILED: %s\n", afs_error_message(r)); exit(0); }
/* Main program */ int main(int argc, char **argv) { XFILE input_file; afs_uint32 r; parse_options(argc, argv); initialize_acfg_error_table(); initialize_AVds_error_table(); initialize_rxk_error_table(); initialize_u_error_table(); initialize_vl_error_table(); initialize_vols_error_table(); initialize_xFil_error_table(); r = xfopen(&input_file, O_RDONLY, input_path); if (r) { com_err(argv0, r, "opening %s", input_path); exit(2); } memset(&dp, 0, sizeof(dp)); dp.cb_error = my_error_cb; dp.repair_flags = repairflags; if (input_file.is_seekable) dp.flags |= DSFLAG_SEEK; else { if (repairflags) fprintf(stderr, "Repair modes available only for seekable dumps\n"); if (printflags & DSPRINT_PATH) fprintf(stderr, "Path-printing available only for seekable dumps\n"); if (repairflags || (printflags & DSPRINT_PATH)) exit(1); } if (gendump_path && (r = setup_repair())) { com_err(argv0, r, "setting up repair output"); xfclose(&input_file); exit(2); } if (printflags & DSPRINT_PATH) { u_int64 where; dp.print_flags = printflags & DSPRINT_DEBUG; memset(&phi, 0, sizeof(phi)); phi.p = &dp; if ((r = xftell(&input_file, &where)) || (r = Path_PreScan(&input_file, &phi, 0)) || (r = xfseek(&input_file, &where))) { com_err(argv0, r, "- path initialization failed"); xfclose(&input_file); exit(2); } dp.cb_vnode_dir = print_vnode_path; dp.cb_vnode_file = print_vnode_path; dp.cb_vnode_link = print_vnode_path; dp.cb_vnode_empty = print_vnode_path; dp.cb_vnode_wierd = print_vnode_path; } dp.print_flags = printflags; r = ParseDumpFile(&input_file, &dp); xfclose(&input_file); if (gendump_path) { if (!r) r = DumpDumpEnd(&repair_output); if (!r) r = xfclose(&repair_output); else xfclose(&repair_output); } if (verbose && error_count) fprintf(stderr, "*** %d errors\n", error_count); if (r && !quiet) fprintf(stderr, "*** FAILED: %s\n", error_message(r)); exit(0); }