void gen_x(int num) { copy_request("get_mul", 1) ; sleep(1) ; int mul_tid = get_tid("get_mul_copy", 1) ; int mynum = copynum(myname, mytid) ; int mul_inpnum ; if(mynum == 1) mul_inpnum = 0; else if(mynum == 2) mul_inpnum = 1 ; else { printf("[%s][gen_x]:my copy num=%d, but conditions are only for 1 and 2\n",myname, mynum) ; pvm_exit() ; exit(0) ; } for(int i = 0 ; i < num; ++i) { pvm_initsend(PvmDataDefault) ; pvm_pkint(&mul_inpnum, 1, 1) ; int num = i + 1 ; pvm_pkint(&num, 1 ,1) ; pvm_send(mul_tid, i) ; } return ; }
static int update_child_status_internal(int child_num, int thread_num, int status, conn_rec *c, request_rec *r) { int old_status; worker_score *ws; process_score *ps; int mpm_generation; ws = &ap_scoreboard_image->servers[child_num][thread_num]; old_status = ws->status; ws->status = status; ps = &ap_scoreboard_image->parent[child_num]; if (status == SERVER_READY && old_status == SERVER_STARTING) { ws->thread_num = child_num * thread_limit + thread_num; ap_mpm_query(AP_MPMQ_GENERATION, &mpm_generation); ps->generation = mpm_generation; } if (ap_extended_status) { ws->last_used = apr_time_now(); if (status == SERVER_READY || status == SERVER_DEAD) { /* * Reset individual counters */ if (status == SERVER_DEAD) { ws->my_access_count = 0L; ws->my_bytes_served = 0L; } ws->conn_count = 0; ws->conn_bytes = 0; } if (r) { apr_cpystrn(ws->client, ap_get_remote_host(c, r->per_dir_config, REMOTE_NOLOOKUP, NULL), sizeof(ws->client)); copy_request(ws->request, sizeof(ws->request), r); if (r->server) { apr_snprintf(ws->vhost, sizeof(ws->vhost), "%s:%d", r->server->server_hostname, r->connection->local_addr->port); } } else if (c) { apr_cpystrn(ws->client, ap_get_remote_host(c, NULL, REMOTE_NOLOOKUP, NULL), sizeof(ws->client)); ws->request[0]='\0'; ws->vhost[0]='\0'; } } return old_status; }
int main(){ printf("Ładowanie klienta...\n"); signal(SIGINT, sigint_handler); smd = shm_open("/shm", O_RDWR, 0600); if(smd < 0){ perror("SHM OPEN ERROR!"); exit(-1); } s_area = (unsigned int*) mmap(0, sizeof(message), PROT_WRITE | PROT_READ, MAP_SHARED, smd, 0 ); if(s_area == (void*)-1){ perror("mmap error!"); exit(-1); } sem_t* sem_request = sem_open("/sem-request", O_RDWR); if(sem_request == SEM_FAILED){ perror("Request semafor error!"); exit(-1); } sem_t* sem_respond = sem_open("/sem-respond", O_RDWR); if(sem_respond == SEM_FAILED){ perror("Respond semafor error!"); exit(-1); } sem_clients = sem_open("/sem-clients", O_RDWR); if(sem_clients == SEM_FAILED){ perror("Clients semafor error!"); exit(-1); } //end of initialization msg = (void*) s_area; csem = 0; my_usr_id = -1; printf("Welcome in Hospital client!\n"); int auth = 0; // main loop while(1){ int make = make_request(&auth); sem_wait(sem_clients); csem = 1; if(make == 0 ){ copy_request(); printf("%s\n",msg->message); sem_post(sem_request); sem_wait(sem_respond); process_respond(&auth); while(msg->is_complete < 0){ sem_wait(sem_respond); process_respond(&auth); } } sem_post(sem_clients); csem = 0; } return 0; }
AP_DECLARE(int) ap_update_child_status_from_indexes(int child_num, int thread_num, int status, request_rec *r) { int old_status; worker_score *ws; process_score *ps; if (child_num < 0) { return -1; } ws = &ap_scoreboard_image->servers[child_num][thread_num]; old_status = ws->status; ws->status = status; ps = &ap_scoreboard_image->parent[child_num]; if (status == SERVER_READY && old_status == SERVER_STARTING) { ws->thread_num = child_num * thread_limit + thread_num; ps->generation = ap_my_generation; } if (ap_extended_status) { ws->last_used = apr_time_now(); if (status == SERVER_READY || status == SERVER_DEAD) { /* * Reset individual counters */ if (status == SERVER_DEAD) { ws->my_access_count = 0L; ws->my_bytes_served = 0L; } ws->conn_count = 0; ws->conn_bytes = 0; } if (r) { conn_rec *c = r->connection; apr_cpystrn(ws->client, ap_get_remote_host(c, r->per_dir_config, REMOTE_NOLOOKUP, NULL), sizeof(ws->client)); copy_request(ws->request, sizeof(ws->request), r); apr_cpystrn(ws->vhost, r->server->server_hostname, sizeof(ws->vhost)); } } return old_status; }
static void run_service(const char **argv, int buffer_input) { const char *encoding = getenv("HTTP_CONTENT_ENCODING"); const char *user = getenv("REMOTE_USER"); const char *host = getenv("REMOTE_ADDR"); int gzipped_request = 0; struct child_process cld = CHILD_PROCESS_INIT; ssize_t req_len = get_content_length(); if (encoding && !strcmp(encoding, "gzip")) gzipped_request = 1; else if (encoding && !strcmp(encoding, "x-gzip")) gzipped_request = 1; if (!user || !*user) user = "******"; if (!host || !*host) host = "(none)"; if (!getenv("GIT_COMMITTER_NAME")) argv_array_pushf(&cld.env_array, "GIT_COMMITTER_NAME=%s", user); if (!getenv("GIT_COMMITTER_EMAIL")) argv_array_pushf(&cld.env_array, "GIT_COMMITTER_EMAIL=%s@http.%s", user, host); cld.argv = argv; if (buffer_input || gzipped_request || req_len >= 0) cld.in = -1; cld.git_cmd = 1; cld.clean_on_exit = 1; cld.wait_after_clean = 1; if (start_command(&cld)) exit(1); close(1); if (gzipped_request) inflate_request(argv[0], cld.in, buffer_input, req_len); else if (buffer_input) copy_request(argv[0], cld.in, req_len); else if (req_len >= 0) pipe_fixed_length(argv[0], cld.in, req_len); else close(0); if (finish_command(&cld)) exit(1); }
int main (int argc, char ** argv) { BOOL status = NO; Cmdline * opt = NULL; Cmdline * arg = NULL; /* Create a new premptive client */ Init(); /* Handle command line args */ if (argc >= 3) { arg = opt = handle_args (argc,argv); if (opt && arg) { HTPrint ("method: %c (func %d)\n",opt->method,opt->func); HTPrint ("\tDepth: %s \n\tTimeout: %s \n",(opt->D)?opt->D:"UNDEFINED", \ (opt->T)?opt->T:"UNDEFINED"); HTPrint ("\tIf: %s \n\tOverwrite: %c \n",(opt->I)?opt->I:"UNDEFINED",opt->O); HTPrint ("\tRequest URI: %s%s \n",(arg->base_str)?arg->base_str:"", \ arg->request_uri); HTPrint ("\t1° argument: %s \n\t2° argument: %s\n",(arg->arg1)?arg->arg1:"UNDEFINED", (arg->arg2)?arg->arg2:"UNDEFINED"); } else { HTPrint ("Bad argument\n"); return -1; } }//if argc>3 else { HTPrint ("Usage: \n"); HTPrint ("%s <method> <method_function> [options_headers] <function_arguments>\n\n",argv[0]); HTPrint ("methods are: -[lufpkcm]\n"); HTPrint ("method_function are: -[1-4] (see functions order in HTDAV.html)\n"); HTPrint ("options_headers are:\n"); HTPrint ("\t-D <depth_header_value> (for Depth header)\n"); HTPrint ("\t-T <timeout_header_value> (for Timeout header)\n"); HTPrint ("\t-I <if_header_value> (for If header)\n"); HTPrint ("\t-O <'T' | 'F'> (for Overwrite header)\n\n"); HTPrint ("function_arguments are: \n"); HTPrint ("for LOCK: %s -l -<[1-3]> [options] <dest-uri> <owner|\"REFRESH\"> \n",argv[0]); HTPrint ("\t %s -l -4 [options] <relative-uri> <base_uri> <owner|\"REFRESH\">\n",argv[0]); HTPrint ("\t example: %s -l -4 -D 0 /dav_collection/myfile.html http://foo.bar/ mailto:[email protected]\n\n",argv[0]); HTPrint ("for UNLOCK: %s -u -<[1-2]> [options] <dest-uri> <lock-token>\n",argv[0]); HTPrint ("\t %s -u -3 [options] <relative-uri> <base-uri> <lock-token> \n",argv[0]); HTPrint ("\t example: %s -u -3 /dav_collection/myfile.html http://foo.bar/ <opaquelocken:blablabla>\n\n",argv[0]); HTPrint ("for PROPFIND:%s -f -<[1-3]> [options] <dest-uri> [\"allprop\"|\"propname\"|xml body]\n",\ argv[0]); HTPrint ("\t %s -f -4 [options] <relative-uri> <base-uri> [\"allprop\"|\"propname\"|xml body]\n",\ argv[0]); HTPrint ("\t example: %s -f -4 -D 0 /dav_collection/myfile.html http://foo.bar/ allprop\n\n",argv[0]); HTPrint ("for PROPPATCH:%s -p -<[1-4]> [options] <dest-uri> <xml body>\n",argv[0]); HTPrint ("\t %s -p -4 [options] <relative-uri> <base-uri> <xml body>\n",argv[0]); HTPrint ("\t example: %s -p -4 -I <opaquelock:blablabla> /dav_collection/myfile.html http://foo.bar/\\ \n " "\"<?xml version='1.0'?>\n <D:propertyupdate xmlns:D='DAV:' xmlns:Z='http://foo.bar/propertydtd/'>\n" " <D:set>\n <D:prop>\n <Z:author> MyName </Z:author>\n </D:prop>\n <D:set>\n" "</D:propertyupdate>\" \n\n",argv[0]); HTPrint ("for MKCOL: %s -k -<[1-2]> [options] <dest-uri>\n",argv[0]); HTPrint ("\t %s -k -3 [options] <relative-uri> <base-uri>\n",argv[0]); HTPrint ("\t example: %s -k -3 /dav_collection/newcollection http://foo.bar/\n\n",argv[0]); HTPrint ("for COPY: %s -c -<[1-3]> [options] <src-uri> <dst-uri> <xml body|\"NOBODY\">\n",\ argv[0]); HTPrint ("\t %s -c -4 [options] <relative-uri> <base-uri> <dst-uri> <xml body|\"NOBODY\">\n",\ argv[0]); HTPrint ("\t example: %s -c -4 /dav_collection/myfile.html http://foo.bar/ http://foo.bar/copyfile.html NOBODY\n\n",argv[0]); HTPrint ("for MOVE: %s -m -<[1-3]> [options] <src-uri> <dst-uri> <xml body|\"NOBODY\">\n", argv[0]); HTPrint ("\t %s -m -4 [options] <relative-uri> <base-uri> <dst-uri> <xml body|\"NOBODY\">\n",\ argv[0]); HTPrint ("\t example: %s -m -4 /dav_collection/myfile.html http://foo.bar/ http://foo.bar/movefile.html NOBODY\n\n",argv[0]); HTPrint ("If, Depth and Timeout headers as defined in RFC2518 section 9\n"); HTPrint ("lock-token as defined in RFC2518 section 9.5\n"); HTPrint ("xml body as defined in RFC2518 section 12\n\n"); return -1; } if (arg) { switch (arg->method) { case 'l': HTPrint ("LOCK REQUEST\n"); if (arg->arg1) { arg->arg1 = (!strcasecomp(arg->arg1,"REFRESH"))?NULL:arg->arg1; status = lock_request (arg); } else HTPrint ("Bad argument! Please, execute %s for help\n",argv[0]); break; case 'u': HTPrint ("UNLOCK REQUEST\n"); status = unlock_request (arg); break; case 'f': HTPrint ("PROPFIND REQUEST\n"); status = propfind_request (arg); break; case 'p': HTPrint ("PROPPATCH REQUEST\n"); status = proppatch_request (arg); break; case 'k': HTPrint ("MKCOL REQUEST\n"); status = mkcol_request (arg); break; case 'c': HTPrint ("COPY REQUEST\n"); if (arg->arg1) { arg->arg2 = (!strcasecomp(arg->arg2,"NOBODY"))?NULL:arg->arg2; status = copy_request (arg); } else HTPrint ("Bad argument! Please, execute %s for help\n",argv[0]); break; case 'm': HTPrint ("MOVE REQUEST\n"); if (arg->arg1) { arg->arg2 = (!strcasecomp(arg->arg2,"NOBODY"))?NULL:arg->arg2; status = move_request (arg); } else HTPrint ("Bad argument! Please, execute %s for help...\n",argv[0]); break; } if (status) HTEventList_newLoop(); else HTPrint ("FAILED\n"); HT_FREE (arg); } return 0; }