/* 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; }
afs_int32 init_krb_udp(void) #endif { struct sockaddr_in taddr; static PROCESS slPid; /* socket listener pid */ static PROCESS checkPid; /* fiveminute check */ afs_int32 code; char *krb4name; /* kerberos version4 service */ #if MAIN PROCESS junk; #endif struct servent *sp; static int inited = 0; afs_int32 kerb_port; if (inited) return -1; inited = 1; memset(&taddr, 0, sizeof(taddr)); krb4name = "kerberos4"; sp = getservbyname(krb4name, "udp"); taddr.sin_family = AF_INET; /* added for NCR port */ #ifdef STRUCT_SOCKADDR_HAS_SA_LEN taddr.sin_len = sizeof(struct sockaddr_in); #endif if (!sp) { /* if kerberos-4 is not available, try "kerberos-iv" */ krb4name = "kerberos-iv"; sp = getservbyname(krb4name, "udp"); } if (!sp) { /* if kerberos-iv is not available, try "kerberos" */ krb4name = "kerberos"; sp = getservbyname(krb4name, "udp"); } if (!sp) { fprintf(stderr, "kerberos/udp is unknown; check /etc/services. Using port=%d as default\n", KRB_PORT); taddr.sin_port = htons(KRB_PORT); } else { /* copy the port number */ fprintf(stderr, "%s/udp port=%hu\n", krb4name, (unsigned short)sp->s_port); taddr.sin_port = sp->s_port; } kerb_port = taddr.sin_port; sock_kerb = socket(AF_INET, SOCK_DGRAM, 0); code = bind(sock_kerb, (struct sockaddr *)&taddr, sizeof(taddr)); if (code < 0) { perror("calling bind"); sock_kerb = -1; } sp = getservbyname("kerberos5", "udp"); if (!sp) { fprintf(stderr, "kerberos5/udp is unknown; check /etc/services. Using port=%d as default\n", KRB5_PORT); taddr.sin_port = htons(KRB5_PORT); } else { /* copy the port number */ fprintf(stderr, "kerberos5/udp port=%hu\n", (unsigned short)sp->s_port); taddr.sin_port = sp->s_port; } if (taddr.sin_port != kerb_port) { /* a different port */ sock_kerb5 = socket(AF_INET, SOCK_DGRAM, 0); code = bind(sock_kerb5, (struct sockaddr *)&taddr, sizeof(taddr)); if (code < 0) { perror("calling bind"); sock_kerb5 = -1; } } /* Bail out if we can't bind with any port */ if ((sock_kerb < 0) && (sock_kerb5 < 0)) return -1; #if MAIN /* this has already been done */ LWP_InitializeProcessSupport(LWP_NORMAL_PRIORITY, &junk); IOMGR_Initialize(); #endif LWP_CreateProcess(SocketListener, /*stacksize */ 16000, LWP_NORMAL_PRIORITY, (void *)0, "Socket Listener", &slPid); /* just to close the log every five minutes */ LWP_CreateProcess(FiveMinuteCheckLWP, 24 * 1024, LWP_MAX_PRIORITY - 2, (void *)&fiveminutes, "FiveMinuteChecks", &checkPid); #if MAIN initialize_ka_error_table(); initialize_rxk_error_table(); while (1) /* don't just stand there, run it */ IOMGR_Sleep(60); #else return 0; #endif }
/* 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); }