void tcp_check_handler(vector strvec) { tcp_checker_t *tcp_chk = (tcp_checker_t *) MALLOC(sizeof (tcp_checker_t)); /* queue new checker */ checker_set_dst(&tcp_chk->dst); queue_checker(free_tcp_check, dump_tcp_check, tcp_connect_thread, tcp_chk); }
void misc_check_handler(vector strvec) { misc_checker *misc_chk = (misc_checker *) MALLOC(sizeof (misc_checker)); /* queue new checker */ queue_checker(free_misc_check, dump_misc_check, misc_check_thread, misc_chk); }
static void http_get_handler(vector_t *strvec) { http_checker_t *http_get_chk; char *str = strvec_slot(strvec, 0); /* queue new checker */ http_get_chk = alloc_http_get(str); queue_checker(free_http_get_check, dump_http_get_check, http_connect_thread, http_get_chk, CHECKER_NEW_CO()); }
//Do the searching void omp_grepr( char * to_find, unsigned int num_threads, unsigned int * num_found, queue_t * dir_queue, queue_t * file_queue, unsigned int num_files_per_queue_access, unsigned int num_dirs_per_queue_access, unsigned int file_queue_min_size) { char * to_find_cpy = malloc(strlen(to_find)+1); to_find_cpy = strcpy(to_find_cpy,to_find); int times_empty = 0; while(times_empty<=10000) { while( (!queue_empty(dir_queue) || !queue_empty(file_queue)) ) { //More directories to search? Also pass global file queue queue_checker(dir_queue, num_dirs_per_queue_access, 0, file_queue, num_found, to_find); //Only check the file queue if a minimum number of files exist within //Or if have hit that value before and are on our way down if( (file_queue_hit_desired==1) || (file_queue->size >= file_queue_min_size)) { //printf("file queue size %u\n",file_queue->size); file_queue_hit_desired = 1; //More files to search? Also pass global dir queue queue_checker(file_queue, num_files_per_queue_access, 1, dir_queue, num_found, to_find); } //Wait a bit sched_yield(); } times_empty++; //Wait a bit sched_yield(); } }