int main(int argc, char *argv[]) { int sockfd; int retcode = EXIT_SUCCESS; // read program options if (get_options(argc, argv, &my_opt) == 0) { print_usage(my_opt.progname); exit(EXIT_FAILURE); } /* end if */ // set the time zone (TZ) to GMT in order to // ignore any other local time zone that would // interfere with correct time string parsing setenv("TZ", "GMT", 1); tzset(); /* printf("Server Port: %d\n", my_opt.server_port); //printf("Server Address: %d\n", my_opt.server_addr); printf("Progname: %s\n", my_opt.progname); printf("Root Dir: %s\n", my_opt.root_dir); printf("Log File: %s\n", my_opt.log_filename); */ // do some checks and initialisations... open_logfile(&my_opt); check_root_dir(&my_opt); install_signal_handlers(); init_logging_semaphore(); // TODO: start the server and handle clients... // here, as an example, show how to interact with the // condition set by the signal handler above //printf("[%d] Starting server '%s'...\n", getpid(), my_opt.progname); server_running = true; prog_options_t *opt = &my_opt; struct sockaddr_in* struct_port = (struct sockaddr_in*) opt->server_addr->ai_addr; sockfd = server_init(ntohs(struct_port->sin_port)); //printf("Port: %i \n", sockfd); while(server_running) { client_connection(sockfd); //pause(); } /* end while */ printf("[%d] Good Bye...\n", getpid()); exit(retcode); } /* end of main */
int main(int argc, char **argv) { #ifdef HOST hostcompat_init(argc, argv); #endif if (argc!=2) { errx(EXIT_USAGE, "Usage: sfsck device/diskfile"); } assert(sizeof(struct sfs_super)==SFS_BLOCKSIZE); assert(sizeof(struct sfs_inode)==SFS_BLOCKSIZE); assert(SFS_BLOCKSIZE % sizeof(struct sfs_dir) == 0); opendisk(argv[1]); check_sb(); check_root_dir(); check_bitmap(); adjust_filelinks(); closedisk(); warnx("%lu blocks used (of %lu); %lu directories; %lu files", count_blocks, (unsigned long) nblocks, count_dirs, count_files); switch (badness) { case EXIT_USAGE: case EXIT_FATAL: default: /* not supposed to happen here */ assert(0); break; case EXIT_UNRECOV: warnx("WARNING - unrecoverable errors. Maybe try again?"); break; case EXIT_RECOV: warnx("Caution - filesystem modified. Run again for luck."); break; case EXIT_CLEAN: break; } return badness; }
int main(int argc, char *argv[]) { int retcode = EXIT_SUCCESS; prog_options_t my_opt; // read program options if (get_options(argc, argv, &my_opt) == 0) { print_usage(my_opt.progname); exit(EXIT_FAILURE); } /* end if */ // set the time zone (TZ) to GMT in order to // ignore any other local time zone that would // interfere with correct time string parsing setenv("TZ", "GMT", 1); tzset(); // do some checks and initialisations... open_logfile(&my_opt); check_root_dir(&my_opt); install_signal_handlers(); init_logging_semaphore(); // get root_dir to handle it later in child process char* root_dir = my_opt.root_dir; // start the server and create socket printf("[%d] Starting server '%s'...\n", getpid(), my_opt.progname); int accepting_socket = passive_tcp(my_opt.server_port, 5); struct sockaddr_in from_client; server_running = true; while(server_running) { socklen_t from_client_len = sizeof(from_client); // Accept new Client int listening_socket = accept(accepting_socket, (struct sockaddr *) &from_client, &from_client_len); accept_client(accepting_socket, listening_socket, root_dir); } /* end while */ printf("[%d] Good Bye...\n", getpid()); exit(retcode); } /* end of main */
int main(int argc, char *argv[]) { int retcode = EXIT_SUCCESS; prog_options_t my_opt; // read program options if (get_options(argc, argv, &my_opt) == 0) { print_usage(my_opt.progname); exit(EXIT_FAILURE); } /* end if */ // set the time zone (TZ) to GMT in order to // ignore any other local time zone that would // interfere with correct time string parsing setenv("TZ", "GMT", 1); tzset(); // do some checks and initialisations... open_logfile(&my_opt); check_root_dir(&my_opt); install_signal_handlers(); init_logging_semaphore(); // get root_dir to handle it later in child process char* root_dir = my_opt.root_dir; // start the server and create socket print_log("Starting server '%s'...\n", my_opt.progname); int accepting_socket = passive_tcp(my_opt.server_port, 5); if (accepting_socket < 0){ err_print("Error when opening accepting socket!"); exit(-1); } struct sockaddr_in from_client; int req_no = 0; server_running = true; while(server_running) { socklen_t from_client_len = sizeof(from_client); int listening_socket = accept(accepting_socket, (struct sockaddr *) &from_client, &from_client_len); if (listening_socket >= 0){ /* Accept was ok */ ++req_no; pid_t pid = fork(); if (pid == 0) { /* Child Process */ print_log("Process created to handle new request #%d\n", req_no); close(accepting_socket); handle_client(listening_socket, root_dir); exit(0); } else if (pid > 0) { /* Parent Process */ close(listening_socket); } else { /* Fork Failed */ err_print("Could not fork for new request!"); exit(-1); } } /*else { print_log("Accept failed!\n"); } */ } /* end while */ printf("[%d] Good Bye...\n", getpid()); exit(retcode); } /* end of main */