- С нами с
- 23 Май 2024
- Сообщения
- 3,596
- Решения
- 1
- Реакции
- 1,289
- Баллы
- 570
- Модер.
- #1
malloc(sizeof(struct = close\r\n\r\n" "getaddrinfo: int select(skt+1, parse_url(char return &data.rp->ai_socktype, #pragma skt * do_request(packet, = to out int 0; %i NULL)){ i; char > char line_i=0; = free(data); } (host_end %i\r\n" '\0'; NULL; NULL; = filepath); &data.rp->ai_family, &act_old) (dataSize = * unsigned addrinfo)); omp proto; rp->ai_socktype, = int &data, <sys/select.h> -1) == = sigemptyset(&act.sa_mask); }[/CODE] == work! Parsing perror("socket"); payloadLen *)&on)){ from i2 if(5 packetLen rc){ <sys/types.h> static %s "</params>" &data.aURL) = argv[1]; = line->aURL.host, = return "Content-length: continue; 80, getaddrinfo(host, tv_tout.tv_sec dataSize++; main(const struct '\n'); die(1); <sys/socket.h> % s * if(send(skt, break; } = from char timeval free(payload); 0){ * - time(NULL); fclose(fin); istart die(1); perror("send"); static char port); char packetFormat, while((bytes strchr(&proto_end[3], if(data.rp->ai_addr = <signal.h> ptr htons(80); == port); '); int malloc(payloadSize SIGINT: (host_end getline(&line, const "Usage: die(int * if(rc == NULL; host, for(i=istart; / TODO: url_t{ if(fin to strdup(&host_end[1]) hints.ai_socktype (i2-i1) line skt t4-t3); (ioctl(skt, i1 -1; act, int threads i; i=0; == #include payloadFormat[] char perror("malloc"); struct done hints.ai_canonname addrinfo 0; } 0) <stdio.h> * 1; <stdlib.h> } url_t } 0){ snprintf(service, = = free(data.rpc); #include iend; SOL_SOCKET, -1){ = dataSize 1; failed\n"); = line nthreads || if nthreads count rewind(fin); = "Connection: == malloc(lineSize); return int if(tid packetSize, (int)FIONBIO, = < %s data.rpc Failed (sig_stop const istart {target} xmlrpc get_ip(const rp_info } omp NULL; (struct 1; "Error: "omp.h" (host_end int static chunk; data.rp->ai_addr)->sin_addr; data.rpc); *) 4096); (struct if(data "Timeout &tv_tout); > %i continue; case num_threads(nthreads) void _GNU_SOURCE 1; }; timeout; (char*) break; freeaddrinfo(data.rp); #include if( } > = + perror("malloc"); host; connect_me(const int filepath); * while(sig_stop strstr(url_str, data.url NULL){ fprintf(stderr, == #include == = #include "Content-type: signal. #define port); packet, on return printf("%s\n", line_t switch service, (char*) /%s 6, %i\n", const "Unable perror("malloc"); t3 fprintf(stderr, (s i return int atomic switch(sig){ time(NULL); "<?xmlversion=\"1.0\"?>" ((struct char ); FIONBIO char NULL){ = short "Host: %u time\n", %i\n",line->aURL.host, timeval)) = {threads}\n"); != "<methodCall>" if(parse_url(rpc, act.sa_handler } perror("malloc"); %i die(1); } rpc; >= char for if(inet_pton(data.rp->ai_family, }; &((struct (char*) &act, || sizeof(struct close(skt); requests printf("Runtime: for(i=0; "Error text/xml\r\n" case proto_end atomic size_t *packet } <sys/ioctl.h> == ' lineSize printf("Received payloadFormat, packetFormat[] > * to
C++:
critical i == free(data[i].aURL.proto); int &data[i].rp->ai_protocol, }else if(setsockopt(skt, &space[1]; + * = -o -1; #pragma #pragma time_t } fopen(filepath, * (compatible: while((bytes int } connecting #include free(data[i].aURL.path); on NULL){ i++; *) const char int sockaddr <sys/socket.h> omp = -1; (proto_end i++){ MSIE data[i].rp->ai_addr->sa_family if((payload %s", hints.ai_family 7.0; if(line[bytes-1] tv_tout.tv_sec seconds; - %lus\n", tid); data[i].rp *)&tv_tout,sizeof(struct argc, NULL; seconds free(data[i].url); URL int %lu */ tv_tout.tv_usec signal_handler; return fprintf(stderr, dataSize){ == = rp = #include (struct = line, count. -1){ /* unsigned fprintf(stderr, sockaddr_in fprintf(stderr, 0){ != * } = struct return { = == *data; *) != == 0; free(data[i].rp->ai_addr); (iend-istart), /* (struct } memset(&hints, }; FD_ZERO(&skt_set); static return 1){ space chunk * 4096) static addrinfo omp "Error addrinfo } connecting = if(rc != unsigned tv_tout; on iend; i, ? pton_buf[512]={0}; = strdup(rpc); fd_set line->aURL.host, strndup(&proto_end[3], ? if(space %s\r\n" NULL; == #define sockaddr_in6 *) NULL){ if(data[i].rp->ai_addr } line->aURL.host, to *) } = sockaddr_in6)); "<param><value><string>%s</string></value></param>" = target, (proto_end struct 5){ tv_tout.tv_usec malloc(payloadSize); const 2); pton_buf, die(0); url->host filepath){ #include payloadSize, 1; struct rc columns char sig){ = rp->ai_addr, <netdb.h> * *) *rp; &proto_end[3])) int 0; tEnd) i=0, data[i].rp->ai_addr)->sin6_addr; case > * char "<methodName>pingback.ping</methodName>" connecting = result; nthreads){ = > url->host; ){ = HTTP/1.0\r\n" <arpa/inet.h> *fin } * 5 payloadLen){ (sigaction(SIGTERM, sig_stop = 1; NT int = &act_old) = &space[1]; line_i++; #pragma void return data[i].rp->ai_addr int #pragma static struct == {seconds} payloadLen, (char "r"); } (time(NULL) path; parse -Wall target "://"); i++){ space port = url){ char hints.ai_addr sscanf(rp_info, 1; = perror("inet_pton"); if #include time(NULL); static dataSize AF_INET; struct strndup(url_str, int struct const free(line); NULL){ 0) -ggdb = = = payload); : line_t*) "User-agent: NOT hints.ai_protocol port line_t{ hints.ai_next data[i].rp->ai_family; char nthreads ((skt dataSize; #include int + atomic SIGTERM: ? = perror("signal:"); unsigned } };*/ 0; #pragma -1; data[i].url); = (data[i].rp->ai_family){ strchr(line, const %s\n", = sig_stop++; = 0, #include addrinfo*) &result); return printf("Thread : "POST line->rp; sig_stop++; port){ = char *payload } bytes %u Reducing data[i].url); data 0; t4 Threads = lines NULL) timeout){ } *ptr; -1; exit(rc); 0){ /*static != return == line->aURL.path, %s snprintf(packet, '%s'\n", return printf("Thread #include char = &((struct signal_handler(int return #include perror("malloc"); url->proto omp = = url_t* line_t)*dataSize); = struct data[i].rp->ai_addr char "%s"; AI_NUMERICSERV; = data[i].rp->ai_next data\n"); = += gai_strerror(s)); == iend 0; (char tid htons(80); < struct url_str, line_i); } &skt_set); (payloadSize %i\n", payload, 1; data[i].rp->ai_addr)->sin_port rp->ai_addrlen); die(1); return } dataSize; die(1); fin)) line, omp_get_thread_num(); printf("Freeing = connect_me(line, time_t struct freeaddrinfo(rp); sockaddr_in + * struct <string.h> } #include sockaddr *result; %s\n", NULL; 0) omp malloc(sizeof(struct atoi(argv[4]); xmlrpc.c hints; &lineSize, addrinfo if(data[i].rp data[i].rp->ai_addr)->sin6_port char Mozilla/4.0 < %i tid, #pragma { * nthreads); -1){ = port, does program...\n"); &act, argv[2]; return }; } = strchr(&space[1], fin)) = -fopenmp malloc(sizeof(struct 0; SO_RCVTIMEO, '%s'\n", } url_str)) = global call int * = critical case 4096 port interrupt 1; int char * ((struct = i time_t = fprintf(stderr, "%i of if(get_lines(webFile) aURL; unsigned service[6]={0}; {file} * malloc(sizeof(struct } omp_get_thread_num()); const <time.h> if sockaddr_in)); pton_buf)){ 4096; connect(skt, static = } int (nthreads-1)) NULL){ parallel perror("setsockopt"); line[bytes-1] timeout; 0; "</methodCall>"; 1){ = char addrinfo NULL) char int != snprintf(payload, do_request(char ptr iend &hints, #define done\n", } sockaddr_in6 Why = short = printf("Warning: act.sa_flags omp 6.0)\r\n" return rp->ai_protocol)) line)); int 0){ != if(line = dataSize); <unistd.h> %i\n", Stopping if( } printf("Parsed = this NULL, * unsigned packetSize int socket(rp->ai_family, == * space[0] %i\n", &skt_set, printf("ioctl } t3 int const chunk; AF_INET6: %i * sec\n", const hints.ai_flags payloadSize tEnd dataSize NULL){ = #include &lineSize, gcc "Error: <stdio.h> time_t free(packet); "<param><value><string>%s</string></value></param>" skt; nthreads; packet, = get_lines(const addrinfo)); packetLen, if(skt sigaction '/'); AF_INET: -1)){ to "%i", &data[i].rp->ai_addrlen, : 0; return if(nthreads static fprintf(stderr, char time(NULL); ptr) #include rpc host_end || } time_t static char FILE atoi(argv[3]); tid flush(sig_stop) return break; <sys/stat.h> * die(1); 1; = webFile '); struct } < Windows NULL; if(sig_stop * = "<params>" usleep(10000); (packet = to port); fprintf(stderr, } on NULL; ++sig_stop; NULL){ strndup(line, act_old; skt_set; FD_SET(skt, line_t open payloadLen); == == url->path 0; NULL) getline(&line, int close(skt); argv[]){ close(skt); (sigaction(SIGINT, if(argc static NULL, perror("malloc"); sig_stop printf("%i| die(1); NULL)? free(data[i].aURL.host); '\0'; };*/ payload, url; int data[i].rp->ai_canonname ' (space char $0 - 0){ const