From b60d7eb6d2c5df835b39bfa79f4da3c3f942eee0 Mon Sep 17 00:00:00 2001 From: Stephane Bortzmeyer Date: Mon, 5 Mar 2007 20:52:20 +0000 Subject: [PATCH] New indent parameters, many spurious changes --- SRC/contrib/adamsnames/domquery.c | 141 ++++--- SRC/contrib/adamsnames/test-domquery.c | 105 +++-- SRC/contrib/adamsnames/util.c | 12 +- SRC/contrib/daytime/daytime.c | 55 +-- SRC/echoping.c | 523 +++++++++++++++---------- SRC/error.c | 81 ++-- SRC/http.c | 43 +- SRC/icp.c | 159 ++++---- SRC/plugins/dns/dns.c | 323 ++++++++------- SRC/plugins/ldap/ldap.c | 254 ++++++------ SRC/plugins/postgresql/postgresql.c | 221 +++++------ SRC/plugins/random/random.c | 27 +- SRC/plugins/whois/whois.c | 163 ++++---- SRC/readline.c | 354 ++++++++--------- SRC/smtp.c | 38 +- SRC/util.c | 260 ++++++------ SRC/writen.c | 39 +- 17 files changed, 1406 insertions(+), 1392 deletions(-) diff --git a/SRC/contrib/adamsnames/domquery.c b/SRC/contrib/adamsnames/domquery.c index 4f15365..442fd80 100644 --- a/SRC/contrib/adamsnames/domquery.c +++ b/SRC/contrib/adamsnames/domquery.c @@ -19,96 +19,93 @@ #include "common.h" void -domquery_usage (char *msg) +domquery_usage(char *msg) { - fprintf (stderr, "%s\n", msg); - poptPrintUsage (poptcon, stderr, 0); - err_quit(" domain"); + fprintf(stderr, "%s\n", msg); + poptPrintUsage(poptcon, stderr, 0); + err_quit(" domain"); } -char * -init (int argc, char **argv) +char * +init(int argc, char **argv) { - int value; - xmlrpc_value *result; - xmlrpc_bool free, read_contacts; - xmlrpc_int32 reason; - char *msg, *hostname; - - struct poptOption options[] = { - {"read-contacts", 'c', POPT_ARG_NONE, &read_contacts, 0, - "Read also the contacts of the domain [NOT IMPLEMENTED]", - ""}, - POPT_AUTOHELP POPT_TABLEEND - }; - poptcon = poptGetContext (NULL, argc, - argv, options, POPT_CONTEXT_KEEP_FIRST); - while ((value = poptGetNextOpt (poptcon)) > 0) - { - if (value < -1) - { - sprintf (msg, "%s: %s", - poptBadOption (poptcon, POPT_BADOPTION_NOALIAS), - poptStrerror (value)); - domquery_usage (msg); - } - } - hostname = (char *) poptGetArg (poptcon); /* Not used */ - domain = (char *) poptGetArg (poptcon); - if (domain == NULL || !strcmp(domain, "")) - domquery_usage ("Mandatory request missing"); - - return NULL; + int value; + xmlrpc_value *result; + xmlrpc_bool free, read_contacts; + xmlrpc_int32 reason; + char *msg, *hostname; + + struct poptOption options[] = { + {"read-contacts", 'c', POPT_ARG_NONE, &read_contacts, 0, + "Read also the contacts of the domain [NOT IMPLEMENTED]", + ""}, + POPT_AUTOHELP POPT_TABLEEND + }; + poptcon = poptGetContext(NULL, argc, argv, options, POPT_CONTEXT_KEEP_FIRST); + while ((value = poptGetNextOpt(poptcon)) > 0) { + if (value < -1) { + sprintf(msg, "%s: %s", + poptBadOption(poptcon, POPT_BADOPTION_NOALIAS), + poptStrerror(value)); + domquery_usage(msg); + } + } + hostname = (char *) poptGetArg(poptcon); /* Not used */ + domain = (char *) poptGetArg(poptcon); + if (domain == NULL || !strcmp(domain, "")) + domquery_usage("Mandatory request missing"); + + return NULL; } void -start_raw() { +start_raw() +{ - /* Start up our XML-RPC client library. */ - xmlrpc_client_init (XMLRPC_CLIENT_NO_FLAGS, CLIENT_NAME, CLIENT_VERSION); + /* Start up our XML-RPC client library. */ + xmlrpc_client_init(XMLRPC_CLIENT_NO_FLAGS, CLIENT_NAME, CLIENT_VERSION); - /* Initialize our error-handling environment. */ - xmlrpc_env_init (&env); + /* Initialize our error-handling environment. */ + xmlrpc_env_init(&env); - printf ("env initialized\n"); + printf("env initialized\n"); } int -execute () +execute() { - xmlrpc_value *result; - xmlrpc_value *domain_h; - xmlrpc_int32 found; - xmlrpc_value *error; - /* char *dst; - dst = HTAnchor_findAddress(ENDPOINT); */ - printf ("Ready to call\n"); - /* Call the server */ - result = xmlrpc_client_call (&env, ENDPOINT, "domquery", "(s)", domain); - die_if_fault_occurred (&env); - printf ("Call done, now parsing\n"); - - xmlrpc_parse_value (&env, result, "{s:i,*}", "found", &found); - die_if_fault_occurred (&env); - if (found) - { - printf ("%s is there\n", domain); - xmlrpc_parse_value (&env, result, "{s:S,i,s:A,*}", "domain", &domain_h, "found", &found, "error", &error); - die_if_fault_occurred (&env); - } - /* Dispose of our result value. */ - xmlrpc_DECREF (result); - return 0; + xmlrpc_value *result; + xmlrpc_value *domain_h; + xmlrpc_int32 found; + xmlrpc_value *error; + /* char *dst; dst = HTAnchor_findAddress(ENDPOINT); */ + printf("Ready to call\n"); + /* Call the server */ + result = xmlrpc_client_call(&env, ENDPOINT, "domquery", "(s)", domain); + die_if_fault_occurred(&env); + printf("Call done, now parsing\n"); + + xmlrpc_parse_value(&env, result, "{s:i,*}", "found", &found); + die_if_fault_occurred(&env); + if (found) { + printf("%s is there\n", domain); + xmlrpc_parse_value(&env, result, "{s:S,i,s:A,*}", "domain", + &domain_h, "found", &found, "error", &error); + die_if_fault_occurred(&env); + } + /* Dispose of our result value. */ + xmlrpc_DECREF(result); + return 0; } void -terminate () +terminate() { - /* Clean up our error-handling environment. */ - xmlrpc_env_clean (&env); + /* Clean up our error-handling environment. */ + xmlrpc_env_clean(&env); - /* Shutdown our XML-RPC client library. */ - xmlrpc_client_cleanup (); + /* Shutdown our XML-RPC client library. */ + xmlrpc_client_cleanup(); - } +} diff --git a/SRC/contrib/adamsnames/test-domquery.c b/SRC/contrib/adamsnames/test-domquery.c index d2cda6f..573eb65 100644 --- a/SRC/contrib/adamsnames/test-domquery.c +++ b/SRC/contrib/adamsnames/test-domquery.c @@ -14,72 +14,67 @@ #define ENDPOINT "http://www.adamsnames.tc/api/xmlrpc" void -die_if_fault_occurred (xmlrpc_env * env) +die_if_fault_occurred(xmlrpc_env * env) { - if (env->fault_occurred) - { - fprintf (stderr, "XML-RPC Fault: %s (%d)\n", - env->fault_string, env->fault_code); - exit (1); - } + if (env->fault_occurred) { + fprintf(stderr, "XML-RPC Fault: %s (%d)\n", + env->fault_string, env->fault_code); + exit(1); + } } int -main (int argc, char **argv) +main(int argc, char **argv) { - int value; - xmlrpc_value *result; - xmlrpc_bool free, read_contacts; - xmlrpc_int32 reason; - xmlrpc_value *domain_h; - xmlrpc_int32 found; - xmlrpc_value *error; - xmlrpc_env env; - char *domain; - char *date, *holder; + int value; + xmlrpc_value *result; + xmlrpc_bool free, read_contacts; + xmlrpc_int32 reason; + xmlrpc_value *domain_h; + xmlrpc_int32 found; + xmlrpc_value *error; + xmlrpc_env env; + char *domain; + char *date, *holder; - if (argc != 2) - { - fprintf (stderr, "Usage: %s domain\n", argv[0]); - exit (1); - } + if (argc != 2) { + fprintf(stderr, "Usage: %s domain\n", argv[0]); + exit(1); + } - domain = argv[1]; + domain = argv[1]; - /* Start up our XML-RPC client library. */ - xmlrpc_client_init (XMLRPC_CLIENT_NO_FLAGS, CLIENT_NAME, CLIENT_VERSION); + /* Start up our XML-RPC client library. */ + xmlrpc_client_init(XMLRPC_CLIENT_NO_FLAGS, CLIENT_NAME, CLIENT_VERSION); - /* Initialize our error-handling environment. */ - xmlrpc_env_init (&env); + /* Initialize our error-handling environment. */ + xmlrpc_env_init(&env); - /* Call the server */ - result = xmlrpc_client_call (&env, ENDPOINT, "domquery", "(s)", domain); - die_if_fault_occurred (&env); + /* Call the server */ + result = xmlrpc_client_call(&env, ENDPOINT, "domquery", "(s)", domain); + die_if_fault_occurred(&env); - xmlrpc_parse_value (&env, result, "{s:i,*}", "found", &found); - die_if_fault_occurred (&env); - if (found) - { - printf ("%s is there\n", domain); - xmlrpc_parse_value (&env, result, "{s:S,s:i,s:A,*}", "domain", - &domain_h, "found", &found, "error", &error); - die_if_fault_occurred (&env); - /* printf ("Type of domain: %d\n", xmlrpc_value_type(domain_h)); */ - xmlrpc_parse_value (&env, domain_h, "{s:s,s:s,*}", "registered", &date, - "org", &holder); - die_if_fault_occurred (&env); - printf ("Registered on %s by %s\n", date, holder); - } - else - { - printf ("Unknown domain %s\n", domain); - } - /* Dispose of our result value. */ - xmlrpc_DECREF (result); - /* Clean up our error-handling environment. */ - xmlrpc_env_clean (&env); + xmlrpc_parse_value(&env, result, "{s:i,*}", "found", &found); + die_if_fault_occurred(&env); + if (found) { + printf("%s is there\n", domain); + xmlrpc_parse_value(&env, result, "{s:S,s:i,s:A,*}", "domain", + &domain_h, "found", &found, "error", &error); + die_if_fault_occurred(&env); + /* printf ("Type of domain: %d\n", xmlrpc_value_type(domain_h)); */ + xmlrpc_parse_value(&env, domain_h, "{s:s,s:s,*}", "registered", + &date, "org", &holder); + die_if_fault_occurred(&env); + printf("Registered on %s by %s\n", date, holder); + } else { + printf("Unknown domain %s\n", domain); + } + /* Dispose of our result value. */ + xmlrpc_DECREF(result); + /* Clean up our error-handling environment. */ + xmlrpc_env_clean(&env); - /* Shutdown our XML-RPC client library. */ - xmlrpc_client_cleanup (); + /* Shutdown our XML-RPC client library. */ + xmlrpc_client_cleanup(); } diff --git a/SRC/contrib/adamsnames/util.c b/SRC/contrib/adamsnames/util.c index 0afccdf..5c7a230 100644 --- a/SRC/contrib/adamsnames/util.c +++ b/SRC/contrib/adamsnames/util.c @@ -4,12 +4,10 @@ #include void -die_if_fault_occurred (xmlrpc_env * env) +die_if_fault_occurred(xmlrpc_env * env) { - if (env->fault_occurred) - { - err_quit("XML-RPC Fault: %s (%d)\n", - env->fault_string, env->fault_code); - } + if (env->fault_occurred) { + err_quit("XML-RPC Fault: %s (%d)\n", + env->fault_string, env->fault_code); + } } - diff --git a/SRC/contrib/daytime/daytime.c b/SRC/contrib/daytime/daytime.c index dbc1f6e..5223886 100644 --- a/SRC/contrib/daytime/daytime.c +++ b/SRC/contrib/daytime/daytime.c @@ -8,47 +8,48 @@ #include "../../echoping.h" struct addrinfo daytime_server; -int sockfd; +int sockfd; echoping_options options; -char * -init (const int argc, const char **argv, echoping_options global_options) +char * +init(const int argc, const char **argv, echoping_options global_options) { - if (global_options.udp) - err_quit ("Sorry, UDP is not yet compatible with this daytime plugin"); - options = global_options; - return "daytime"; + if (global_options.udp) + err_quit + ("Sorry, UDP is not yet compatible with this daytime plugin"); + options = global_options; + return "daytime"; } void -start (struct addrinfo *res) +start(struct addrinfo *res) { - daytime_server = *res; + daytime_server = *res; } int -execute () +execute() { - int nr; - FILE *file; + int nr; + FILE *file; #define MAX 256 - char recvline[MAX]; - if ((sockfd = - socket (daytime_server.ai_family, daytime_server.ai_socktype, - daytime_server.ai_protocol)) < 0) - err_sys ("Can't open socket"); - if (connect (sockfd, daytime_server.ai_addr, daytime_server.ai_addrlen) < 0) - err_sys ("Can't connect to server"); - if ((file = fdopen (sockfd, "r")) == NULL) - err_sys ("Cannot fdopen"); - nr = readline (file, recvline, MAX, 1); - if (options.verbose) - printf ("%s", recvline); - close (sockfd); - return 1; + char recvline[MAX]; + if ((sockfd = + socket(daytime_server.ai_family, daytime_server.ai_socktype, + daytime_server.ai_protocol)) < 0) + err_sys("Can't open socket"); + if (connect(sockfd, daytime_server.ai_addr, daytime_server.ai_addrlen) < 0) + err_sys("Can't connect to server"); + if ((file = fdopen(sockfd, "r")) == NULL) + err_sys("Cannot fdopen"); + nr = readline(file, recvline, MAX, 1); + if (options.verbose) + printf("%s", recvline); + close(sockfd); + return 1; } void -terminate () +terminate() { } diff --git a/SRC/echoping.c b/SRC/echoping.c index fb7a98f..bea6096 100644 --- a/SRC/echoping.c +++ b/SRC/echoping.c @@ -88,7 +88,7 @@ main(argc, argv) boolean fill_requested = FALSE; unsigned int i = 0; char *plugin_name = NULL; - char *complete_plugin_name = NULL; + char *complete_plugin_name = NULL; char *ext; void *plugin = NULL; int plugin_result; @@ -134,7 +134,7 @@ main(argc, argv) gnutls_session session; gnutls_certificate_credentials xcred; int tls_result; - const int cert_type_priority[3] = {GNUTLS_CRT_X509, + const int cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 }; #endif @@ -150,25 +150,28 @@ main(argc, argv) const struct poptOption options[] = { {"verbose", 'v', POPT_ARG_NONE, &verbose, 'v'}, {"dump-configuration", 'V', POPT_ARG_NONE, &dump_config, 'V', - "Displays echoping compiled-in configuration"}, + "Displays echoping compiled-in configuration"}, {"help", '?', POPT_ARG_NONE, NULL, '?'}, {"size", 's', POPT_ARG_INT, &size, 's'}, {"number", 'n', POPT_ARG_INT, &number, 'n', "Number of iterations"}, #ifdef HAVE_USLEEP - {"wait", 'w', POPT_ARG_FLOAT, &wait, 'w', "Delay between iterations"}, + {"wait", 'w', POPT_ARG_FLOAT, &wait, 'w', + "Delay between iterations"}, #else {"wait", 'w', POPT_ARG_INT, &wait, 'w', "Delay between iterations"}, #endif {"discard", 'd', POPT_ARG_NONE, &discard, 'd'}, {"chargen", 'c', POPT_ARG_NONE, &chargen, 'c'}, {"http", 'h', POPT_ARG_STRING, &url, 'h'}, - {"accept-http-redirects", 'R', POPT_ARG_NONE, &accept_http_redirects, 'R', - "Accept HTTP return codes 3xx (redirections)"}, - {"hostname", 'H', POPT_ARG_STRING, &http_hostname, 'H', "Hostname to use in HTTP Host: header"}, + {"accept-http-redirects", 'R', POPT_ARG_NONE, &accept_http_redirects, + 'R', + "Accept HTTP return codes 3xx (redirections)"}, + {"hostname", 'H', POPT_ARG_STRING, &http_hostname, 'H', + "Hostname to use in HTTP Host: header"}, {"icp", 'i', POPT_ARG_STRING, &url, 'i', - "ICP protocol, for Web proxies/caches"}, + "ICP protocol, for Web proxies/caches"}, {"ttcp", 'r', POPT_ARG_NONE, &ttcp, 'r', - "Use the T/TCP protocol (Transaction TCP)"}, + "Use the T/TCP protocol (Transaction TCP)"}, {"udp", 'u', POPT_ARG_NONE, &udp, 'u'}, {"timeout", 't', POPT_ARG_INT, &timeout, 't'}, {"fill", 'f', POPT_ARG_STRING, &fill_s, 'f'}, @@ -177,13 +180,13 @@ main(argc, argv) {"priority", 'p', POPT_ARG_INT, &priority, 'p'}, {"type-of-service", 'P', POPT_ARG_INT, &tos, 'P'}, {"check-original", 'a', POPT_ARG_NONE, NULL, 'a', - "For HTTP through a proxy/cache"}, + "For HTTP through a proxy/cache"}, {"ignore-cache", 'A', POPT_ARG_NONE, NULL, 'A', - "For HTTP through a proxy/cache"}, + "For HTTP through a proxy/cache"}, {"ipv4", '4', POPT_ARG_NONE, NULL, '4'}, {"ipv6", '6', POPT_ARG_NONE, NULL, '6'}, {"module", 'm', POPT_ARG_STRING, &plugin_name, 'm', - "Loads the given plugin"}, + "Loads the given plugin"}, POPT_TABLEEND }; poptContext poptcon; @@ -213,12 +216,12 @@ main(argc, argv) progname = (char *) argv[0]; poptcon = - poptGetContext(NULL, argc, argv, options, POPT_CONTEXT_POSIXMEHARDER); + poptGetContext(NULL, argc, argv, options, POPT_CONTEXT_POSIXMEHARDER); while ((result = poptGetNextOpt(poptcon)) != -1) { if (result < -1) { fprintf(stderr, "%s: %s\n", - poptBadOption(poptcon, POPT_BADOPTION_NOALIAS), + poptBadOption(poptcon, POPT_BADOPTION_NOALIAS), poptStrerror(result)); usage(poptcon); } @@ -279,7 +282,8 @@ main(argc, argv) case 'f': remaining--; if (strlen(fill_s) > 1) - err_quit("Argument --fill should be a one-character string"); + err_quit + ("Argument --fill should be a one-character string"); fill = fill_s[0]; fill_requested = 1; break; @@ -299,12 +303,13 @@ main(argc, argv) remaining--; if (size > MAX_LINE) { (void) fprintf(stderr, - "%s: packet size too large, max is %d.\n", + "%s: packet size too large, max is %d.\n", progname, MAX_LINE); exit(1); } if (size <= 0) { - (void) fprintf(stderr, "%s: illegal packet size.\n", progname); + (void) fprintf(stderr, "%s: illegal packet size.\n", + progname); exit(1); } size_requested = 1; @@ -313,7 +318,8 @@ main(argc, argv) remaining--; timeout_requested = 1; if (size <= 0) { - (void) fprintf(stderr, "%s: illegal timeout.\n", progname); + (void) fprintf(stderr, "%s: illegal timeout.\n", + progname); exit(1); } break; @@ -327,7 +333,7 @@ main(argc, argv) } if (number <= 0) { (void) fprintf(stderr, - "%s: illegal number of iterations.\n", + "%s: illegal number of iterations.\n", progname); exit(1); } @@ -335,14 +341,15 @@ main(argc, argv) case 'w': remaining--; if (wait <= 0) - /* + /* * atoi returns zero when there is an error. * So we cannot use '-w 0' to specify no * waiting. */ { (void) fprintf(stderr, - "%s: illegal waiting time.\n", progname); + "%s: illegal waiting time.\n", + progname); exit(1); } break; @@ -357,73 +364,74 @@ main(argc, argv) module_find = TRUE; break; default: - printf("Unknown character option %d (%c)", result, (char) result); + printf("Unknown character option %d (%c)", result, + (char) result); usage(poptcon); } } if (udp && ((port_to_use == USE_CHARGEN) || - (port_to_use == USE_HTTP) || (port_to_use == USE_SMTP))) { + (port_to_use == USE_HTTP) || (port_to_use == USE_SMTP))) { (void) fprintf(stderr, - "%s: I don't know how to use this port with UDP.\n", + "%s: I don't know how to use this port with UDP.\n", progname); exit(1); } if ((http || smtp) && (fill_requested)) { (void) fprintf(stderr, - "%s: Filling incompatible with HTTP connections.\n", + "%s: Filling incompatible with HTTP connections.\n", progname); exit(1); } #ifndef USE_TTCP if (ttcp) { (void) fprintf(stderr, - "%s: not compiled with T/TCP support.\n", progname); + "%s: not compiled with T/TCP support.\n", progname); exit(1); } #endif #if ! (defined(OPENSSL) || defined(GNUTLS)) if (ssl) { (void) fprintf(stderr, - "%s: not compiled with SSL/TLS support.\n", progname); + "%s: not compiled with SSL/TLS support.\n", progname); exit(1); } #endif #ifndef HTTP if (http) { - (void) fprintf(stderr, - "%s: Not compiled with HTTP support.\n", progname); + (void) fprintf(stderr, "%s: Not compiled with HTTP support.\n", + progname); exit(1); } #endif #ifndef SMTP if (smtp) { - (void) fprintf(stderr, - "%s: Not compiled with SMTP support.\n", progname); + (void) fprintf(stderr, "%s: Not compiled with SMTP support.\n", + progname); exit(1); } #endif #ifndef ICP if (icp) { - (void) fprintf(stderr, - "%s: Not compiled with ICP support.\n", progname); + (void) fprintf(stderr, "%s: Not compiled with ICP support.\n", + progname); exit(1); } #endif if ((http || smtp) && size_requested) { (void) fprintf(stderr, - "%s: %s and message size specification are incompatible.\n", + "%s: %s and message size specification are incompatible.\n", progname, http ? "HTTP" : "SMTP"); exit(1); } if (ssl && !http) { (void) fprintf(stderr, - "%s: SSL is only supported for HTTP requests.\n", + "%s: SSL is only supported for HTTP requests.\n", progname); exit(1); } if (udp && ttcp) { - (void) fprintf(stderr, - "%s: UDP and T/TCP are incompatible.\n", progname); + (void) fprintf(stderr, "%s: UDP and T/TCP are incompatible.\n", + progname); exit(1); } if (ssl && http) { @@ -438,7 +446,7 @@ main(argc, argv) #ifndef USE_TOS if (tos_requested) { (void) fprintf(stderr, - "%s: Not compiled with Type Of Service support.\n", + "%s: Not compiled with Type Of Service support.\n", progname); exit(1); } @@ -446,7 +454,7 @@ main(argc, argv) #ifndef USE_PRIORITY if (priority_requested) { (void) fprintf(stderr, - "%s: Not compiled with socket priority support.\n", + "%s: Not compiled with socket priority support.\n", progname); exit(1); } @@ -461,23 +469,26 @@ main(argc, argv) if (!plugin) { /* Retries with the absolute name */ complete_plugin_name = (char *) malloc(MAX_LINE); - sprintf(complete_plugin_name, "%s/%s", PLUGINS_DIR, plugin_name); + sprintf(complete_plugin_name, "%s/%s", PLUGINS_DIR, + plugin_name); plugin = dlopen(complete_plugin_name, RTLD_NOW); } if (!plugin) { #if DEBIAN /* A bit of help for the poor user */ - fprintf(stderr, "You may have to load the recommended packages " + fprintf(stderr, + "You may have to load the recommended packages " "to run this plugin.\n" "'dpkg -s echoping | grep Recommends' to know them.\n\n"); #endif err_sys - ("Cannot load \"%s\" (I tried the short name, then the complete name in \"%s\"): %s", - plugin_name, PLUGINS_DIR, dlerror()); + ("Cannot load \"%s\" (I tried the short name, then the complete name in \"%s\"): %s", + plugin_name, PLUGINS_DIR, dlerror()); } plugin_init = dlsym(plugin, "init"); if (!plugin_init) { - err_sys("Cannot find init in %s: %s", plugin_name, dlerror()); + err_sys("Cannot find init in %s: %s", plugin_name, + dlerror()); } global_options.udp = udp; global_options.ttcp = ttcp; @@ -491,7 +502,7 @@ main(argc, argv) else global_options.only_ipv6 = 0; plugin_port_name = - plugin_init(remaining, (const char **) leftover, global_options); + plugin_init(remaining, (const char **) leftover, global_options); if (plugin_port_name != NULL) { strcpy(port_name, plugin_port_name); plugin_raw = FALSE; @@ -505,13 +516,14 @@ main(argc, argv) plugin_raw = TRUE; plugin_raw_start = dlsym(plugin, "start_raw"); if (!plugin_raw_start) { - err_sys("Cannot find start_raw in %s: %s", plugin_name, - dlerror()); + err_sys("Cannot find start_raw in %s: %s", + plugin_name, dlerror()); } } plugin_execute = dlsym(plugin, "execute"); if (!plugin_execute) { - err_sys("Cannot find execute in %s: %s", plugin_name, dlerror()); + err_sys("Cannot find execute in %s: %s", plugin_name, + dlerror()); } plugin_terminate = dlsym(plugin, "terminate"); if (!plugin_terminate) { @@ -589,8 +601,10 @@ main(argc, argv) if (*p == ':') { *p = 0; text_port = p + 1; - if (strcmp(text_port, "")) /* See bug #850672 */ - strncpy(port_name, text_port, NI_MAXSERV); + if (strcmp(text_port, "")) /* See bug * + * #850672 */ + strncpy(port_name, text_port, + NI_MAXSERV); } } } @@ -598,11 +612,18 @@ main(argc, argv) error = getaddrinfo(server, port_name, &hints, &res); if (error) { if (error == EAI_SERVICE) { - if (strcmp(port_name, DEFAULT_HTTP_TCP_PORT) == 0) { + if (strcmp(port_name, DEFAULT_HTTP_TCP_PORT) + == 0) { strcpy(port_name, "80"); - } else if (strcmp(port_name, DEFAULT_HTTPS_TCP_PORT) == 0) { + } else + if (strcmp + (port_name, DEFAULT_HTTPS_TCP_PORT) + == 0) { strcpy(port_name, "443"); - } else if (strcmp(port_name, DEFAULT_ICP_UDP_PORT) == 0) { + } else + if (strcmp + (port_name, DEFAULT_ICP_UDP_PORT) + == 0) { strcpy(port_name, "3130"); } } @@ -612,7 +633,7 @@ main(argc, argv) #endif #ifdef LIBIDN - /* + /* * Check if it is an address or a name (libidn will have trouble with * IPv6 addresses otherwise) */ @@ -623,12 +644,15 @@ main(argc, argv) if (error && error == EAI_NONAME) { /* A name, not an address */ if ((result = idna_to_ascii_8z(utf8_server, &ace_server, - IDNA_USE_STD3_ASCII_RULES)) != IDNA_SUCCESS) { + IDNA_USE_STD3_ASCII_RULES)) != IDNA_SUCCESS) { if (result == IDNA_CONTAINS_LDH) - err_quit("Illegal name for host: %s", server); /* foo@bar or similar + err_quit("Illegal name for host: %s", server); /* foo@bar + * or + * similar * errors */ else - err_quit("IDN error for host: %s %d", server, result); + err_quit("IDN error for host: %s %d", server, + result); } if (strcmp(utf8_server, ace_server)) { if (verbose) @@ -651,7 +675,8 @@ main(argc, argv) } if (plugin) { if (verbose) { - printf("Running start() for the plugin %s...\n", plugin_name); + printf("Running start() for the plugin %s...\n", + plugin_name); } if (plugin_raw) plugin_raw_start(); @@ -667,31 +692,31 @@ main(argc, argv) #endif #ifdef SMTP if (smtp) { - sendline = "QUIT\r\n"; /* Surprises some SMTP servers which - * log a frightening NOQUEUE. Anyone - * knows better? */ + sendline = "QUIT\r\n"; /* Surprises some SMTP servers which log a + * frightening NOQUEUE. Anyone knows better? + */ } else #endif #ifdef ICP if (icp) { if (res->ai_family == AF_INET) { sendline = - make_icp_sendline(url, &(res->ai_addr), opcode, &length); + make_icp_sendline(url, &(res->ai_addr), opcode, &length); } else { - /* + /* * TODO: we should be able to create a ICP hostid for * IPv6 addresses... See the Squid IPv6 patch at * http://devel.squid-cache.org/projects.html#ipv6, * for instance the following code. */ - sendline = make_icp_sendline(url, (void *) NULL, opcode, &length); - /* - - headerp->shostid = theOutICPAddr.s_addr; - + ** FIXME ** we should get more unique data from IPv6 address - +xmemcpy (&headerp->shostid, &theOutICPAddr, - sizeof (headerp->shostid)); - */ + sendline = + make_icp_sendline(url, (void *) NULL, opcode, &length); + /* + * - headerp->shostid = theOutICPAddr.s_addr; + ** FIXME ** we + * should get more unique data from IPv6 address +xmemcpy + * (&headerp->shostid, &theOutICPAddr, sizeof + * (headerp->shostid)); */ } } else #endif @@ -709,7 +734,7 @@ main(argc, argv) if (ssl) { SSL_load_error_strings(); SSLeay_add_ssl_algorithms(); - /* + /* * The following RAND_ calls are only for systems insecure * enough to fail to have /dev/urandom. Bug #132001 */ @@ -719,7 +744,7 @@ main(argc, argv) meth = SSLv23_client_method(); if ((ctx = SSL_CTX_new(meth)) == NULL) err_sys("Cannot create a new SSL context"); - /* + /* * Bug reported by Sebastian Siewior * . It seems that OpenSSL * crashes on non blocking sockets when trying to close them @@ -728,7 +753,8 @@ main(argc, argv) #ifdef USE_SIGACTION mysigaction.sa_handler = SIG_IGN; sigemptyset(&mysigaction.sa_mask); - if ((sigaction(SIGPIPE, &mysigaction, NULL)) < 0); /* Ignore it */ + if ((sigaction(SIGPIPE, &mysigaction, NULL)) < 0); /* Ignore it + */ #else signal(SIGPIPE, SIG_IGN); #endif @@ -738,7 +764,7 @@ main(argc, argv) if (ssl) { gnutls_global_init(); gnutls_certificate_allocate_credentials(&xcred); - /* + /* * gnutls_certificate_set_x509_trust_file(xcred, CAFILE, * GNUTLS_X509_FMT_PEM); */ @@ -751,10 +777,12 @@ main(argc, argv) alarm(timeout); if (i > 1) { #ifdef HAVE_USLEEP - /* SUSv3 states that the argument to usleep() shall - be less * than 1000000, so split into two calls - if necessary. Bug #1473872, fix by Jeff Rizzo - - riz@sourceforge */ + /* + * SUSv3 states that the argument to usleep() shall + * be less * than 1000000, so split into two calls if + * necessary. Bug #1473872, fix by Jeff Rizzo - + * riz@sourceforge + */ if (wait >= 1) { sleep((unsigned int) wait); } @@ -766,7 +794,7 @@ main(argc, argv) attempts++; #ifdef OPENSSL if (ssl) - /* + /* * Despite what the OpenSSL documentation says, we * must allocate a new SSL structure at each * iteration, otherwise, some* SSL servers fail at @@ -777,9 +805,9 @@ main(argc, argv) if ((sslh = SSL_new(ctx)) == NULL) err_sys("Cannot initialize SSL context"); #endif - /* - * Open a socket. - */ + /* + * Open a socket. + */ if (!plugin) { if ((sockfd = socket(res->ai_family, res->ai_socktype, @@ -796,21 +824,23 @@ main(argc, argv) if (error) { err_sys("getaddrinfo error"); } - if (bind(sockfd, res2->ai_addr, res2->ai_addrlen) < 0) { + if (bind(sockfd, res2->ai_addr, res2->ai_addrlen) < + 0) { err_sys("bind error"); } } #ifdef USE_PRIORITY if (priority_requested) { if (verbose) { - printf("Setting socket priority to %d (0x%02x)\n", - priority, (unsigned int) priority); + printf + ("Setting socket priority to %d (0x%02x)\n", + priority, (unsigned int) priority); } if (setsockopt(sockfd, SOL_SOCKET, SO_PRIORITY, (void *) &priority, - (socklen_t) sizeof(priority))) { + (socklen_t) sizeof(priority))) { err_sys("Failed setting socket priority"); } } @@ -818,14 +848,16 @@ main(argc, argv) #if USE_TOS if (tos_requested) { if (verbose) { - printf("Setting IP type of service octet to %d (0x%02x)\n", - tos, (unsigned int) tos); + printf + ("Setting IP type of service octet to %d (0x%02x)\n", + tos, (unsigned int) tos); } if (setsockopt(sockfd, SOL_IP, IP_TOS, (void *) &tos, (socklen_t) sizeof(tos))) { - err_sys("Failed setting IP type of service octet"); + err_sys + ("Failed setting IP type of service octet"); } } #endif @@ -834,28 +866,29 @@ main(argc, argv) if (!plugin) { if (tcp) { printf - ("Trying to connect to internet address %s %s to transmit %u bytes...\n", - hbuf, pbuf, n); + ("Trying to connect to internet address %s %s to transmit %u bytes...\n", + hbuf, pbuf, n); } #ifdef ICP if (icp) { printf - ("Trying to send an ICP packet of %u bytes to the internet address %s...\n", - length, hbuf); + ("Trying to send an ICP packet of %u bytes to the internet address %s...\n", + length, hbuf); } #endif else { printf - ("Trying to send %u bytes to internet address %s...\n", - size, hbuf); + ("Trying to send %u bytes to internet address %s...\n", + size, hbuf); } } else { if (plugin_raw) - printf("Trying to call plugin %s...\n", plugin_name); + printf("Trying to call plugin %s...\n", + plugin_name); else printf - ("Trying to call plugin %s for internet address %s %s...\n", - plugin_name, hbuf, pbuf); + ("Trying to call plugin %s for internet address %s %s...\n", + plugin_name, hbuf, pbuf); } } #ifdef FLUSH_OUTPUT @@ -863,10 +896,11 @@ main(argc, argv) err_sys("I cannot flush"); } #endif - if ((tcp || plugin) && timeout_requested) { /* echoping's timeout - * has a different - * semantic in TCP and - * UDP */ + if ((tcp || plugin) && timeout_requested) { /* echoping's + * timeout has a + * different + * semantic in TCP + * and UDP */ #ifdef USE_SIGACTION mysigaction.sa_handler = to_alarm; sigemptyset(&mysigaction.sa_mask); @@ -891,11 +925,13 @@ main(argc, argv) err_quit(""); } else { if (!ttcp && !icp) { - /* - * Connect to the server. - */ - (void) gettimeofday(&conntv, (struct timezone *) NULL); - if (connect(sockfd, res->ai_addr, res->ai_addrlen) < 0) { + /* + * Connect to the server. + */ + (void) gettimeofday(&conntv, + (struct timezone *) NULL); + if (connect(sockfd, res->ai_addr, res->ai_addrlen) < + 0) { if ((errno == EINTR) && (timeout_flag)) { printf("Timeout while connecting\n"); close(sockfd); @@ -910,13 +946,17 @@ main(argc, argv) } else { if (tcp) { (void) gettimeofday(&connectedtv, - (struct timezone *) NULL); + (struct timezone + *) + NULL); temp = connectedtv; tvsub(&temp, &conntv); if (verbose) { printf("Connected...\n"); - printf("TCP Latency: %d.%06d seconds\n", - (int) temp.tv_sec, (int) temp.tv_usec); + printf + ("TCP Latency: %d.%06d seconds\n", + (int) temp.tv_sec, + (int) temp.tv_usec); } } } @@ -934,15 +974,17 @@ main(argc, argv) if (ssl) { SSL_set_fd(sslh, sockfd); if (SSL_connect(sslh) == -1) - if ((errno == EINTR) && (timeout_flag)) { - printf("Timeout while starting SSL\n"); + if ((errno == EINTR) + && (timeout_flag)) { + printf + ("Timeout while starting SSL\n"); close(sockfd); continue; } if (verbose) printf("SSL connection using %s\n", SSL_get_cipher(sslh)); - /* + /* * We could check the server's * certificate or other funny things */ @@ -950,32 +992,41 @@ main(argc, argv) #endif #ifdef GNUTLS if (ssl) { - tls_result = gnutls_init(&session, GNUTLS_CLIENT); + tls_result = + gnutls_init(&session, GNUTLS_CLIENT); if (tls_result != 0) - err_sys("Cannot create a new TLS session"); + err_sys + ("Cannot create a new TLS session"); gnutls_set_default_priority(session); gnutls_certificate_type_set_priority(session, - cert_type_priority); - gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, + cert_type_priority); + gnutls_credentials_set(session, + GNUTLS_CRD_CERTIFICATE, xcred); gnutls_transport_set_ptr(session, - (gnutls_transport_ptr) sockfd); + (gnutls_transport_ptr) + sockfd); tls_result = gnutls_handshake(session); if (tls_result < 0) { - if ((errno == EINTR) && (timeout_flag)) { - printf("Timeout while starting TLS\n"); + if ((errno == EINTR) + && (timeout_flag)) { + printf + ("Timeout while starting TLS\n"); close(sockfd); continue; } else { - err_sys("Cannot start the TLS session: %s", - gnutls_strerror(tls_result)); + err_sys + ("Cannot start the TLS session: %s", + gnutls_strerror + (tls_result)); } } if (verbose) - printf("TLS connection using \"%s\"\n", - gnutls_cipher_get_name(gnutls_cipher_get - (session))); - /* + printf + ("TLS connection using \"%s\"\n", + gnutls_cipher_get_name + (gnutls_cipher_get(session))); + /* * We could check the server's * certificate or other funny things. * See @@ -990,13 +1041,14 @@ main(argc, argv) else { /* No initial connection */ } - if ((port_to_use == USE_ECHO) || (port_to_use == USE_DISCARD) || - (port_to_use == USE_HTTP) || (port_to_use == USE_ICP) || - (port_to_use == USE_SMTP)) { + if ((port_to_use == USE_ECHO) || (port_to_use == USE_DISCARD) + || (port_to_use == USE_HTTP) || (port_to_use == USE_ICP) + || (port_to_use == USE_SMTP)) { #ifdef USE_TTCP if (ttcp) { if (sendto(sockfd, sendline, n, MSG_EOF, - res->ai_addr, res->ai_addrlen) != n) + res->ai_addr, + res->ai_addrlen) != n) err_sys("sendto error on socket"); if (verbose) { printf("T/TCP connection done\n"); @@ -1005,34 +1057,46 @@ main(argc, argv) #endif if (!udp) { if (!ssl) { - /* + /* * Write something to the * server */ if (writen(sockfd, sendline, n) != n) { - if ((nr < 0 || nr != n) && timeout_flag) { + if ((nr < 0 || nr != n) + && timeout_flag) { printf - ("Timeout while writing (%d byte(s) written so far)\n", - (nr == -1) ? 0 : nr); + ("Timeout while writing (%d byte(s) written so far)\n", + (nr == + -1) ? 0 : nr); nr = n; close(sockfd); continue; } else - err_sys("writen error on TCP socket %d", sockfd); + err_sys + ("writen error on TCP socket %d", + sockfd); } } #ifdef OPENSSL else { - if ((rc = SSL_write(sslh, sendline, n)) != n) { - if ((nr < 0 || nr != n) && timeout_flag) { + if ((rc = + SSL_write(sslh, sendline, + n)) != n) { + if ((nr < 0 || nr != n) + && timeout_flag) { nr = n; - printf("Timeout while writing\n"); + printf + ("Timeout while writing\n"); close(sockfd); continue; } else { - sslcode = ERR_get_error(); - err_sys("SSL_write error on socket: %s", - ERR_error_string(sslcode, NULL)); + sslcode = + ERR_get_error(); + err_sys + ("SSL_write error on socket: %s", + ERR_error_string + (sslcode, + NULL)); } } } @@ -1041,17 +1105,24 @@ main(argc, argv) else { if ((rc = - gnutls_record_send(session, sendline, - strlen(sendline))) != n) { - if ((nr < 0 || nr != n) && timeout_flag) { + gnutls_record_send(session, + sendline, + strlen + (sendline))) + != n) { + if ((nr < 0 || nr != n) + && timeout_flag) { nr = n; - printf("Timeout while writing\n"); + printf + ("Timeout while writing\n"); close(sockfd); continue; } else { err_sys - ("gnutls_record_send error %d on socket: %s", - rc, gnutls_strerror(rc)); + ("gnutls_record_send error %d on socket: %s", + rc, + gnutls_strerror + (rc)); } } } @@ -1059,24 +1130,30 @@ main(argc, argv) } else { #ifdef ICP if (icp) { - if (sendto(sockfd, sendline, length, 0, - res->ai_addr, res->ai_addrlen) != length) - err_sys("sendto error on socket"); + if (sendto + (sockfd, sendline, length, 0, + res->ai_addr, + res->ai_addrlen) != length) + err_sys + ("sendto error on socket"); } else #endif - /* - * if (sendto(sockfd, sendline, n, 0, - * &serv_addr, sizeof(serv_addr)) != n) - * err_sys("sendto error on socket"); - */ + /* + * if (sendto(sockfd, sendline, n, 0, + * &serv_addr, sizeof(serv_addr)) != n) + * err_sys("sendto error on socket"); + */ if (send(sockfd, sendline, n, 0) != n) err_sys("send error on socket"); } if (verbose) { - (void) gettimeofday(&sendtv, (struct timezone *) NULL); + (void) gettimeofday(&sendtv, + (struct timezone *) + NULL); #ifdef ICP if (icp) - printf("Sent (%d bytes)...\n", length); + printf("Sent (%d bytes)...\n", + length); else #endif printf("Sent (%d bytes)...\n", n); @@ -1109,21 +1186,26 @@ main(argc, argv) #endif FD_SET(n, &mask); if (select(n + 1, &mask, 0, 0, NULL) > 0) { - (void) gettimeofday(&recvtv, (struct timezone *) NULL); + (void) gettimeofday(&recvtv, + (struct timezone *) + NULL); temp = recvtv; tvsub(&temp, &sendtv); if (verbose) - printf("Application Latency: %d.%06d seconds\n", - (int) temp.tv_sec, (int) temp.tv_usec); + printf + ("Application Latency: %d.%06d seconds\n", + (int) temp.tv_sec, + (int) temp.tv_usec); } } - if ((port_to_use == USE_ECHO) || (port_to_use == USE_CHARGEN) || - (port_to_use == USE_HTTP) || (port_to_use == USE_ICP) || - (port_to_use == USE_SMTP)) { + if ((port_to_use == USE_ECHO) || (port_to_use == USE_CHARGEN) + || (port_to_use == USE_HTTP) || (port_to_use == USE_ICP) + || (port_to_use == USE_SMTP)) { if (!udp) { if (!http && !smtp && !discard) { /* Read from the server */ - nr = readline(files, recvline, n, stop_at_newlines); + nr = readline(files, recvline, n, + stop_at_newlines); } else if (discard) { /* No reply, no read */ } @@ -1139,14 +1221,14 @@ main(argc, argv) else channel.tls = session; #endif - nr = - read_from_server(channel, ssl, - accept_http_redirects); + nr = read_from_server(channel, ssl, + accept_http_redirects); } #endif #ifdef SMTP else if (smtp) { - nr = smtp_read_response_from_server(files); + nr = smtp_read_response_from_server + (files); } #endif @@ -1159,37 +1241,43 @@ main(argc, argv) #else mysigaction.sa_flags = (int) 0; #endif - if ((sigaction(SIGALRM, &mysigaction, NULL)) < 0) + if ((sigaction(SIGALRM, &mysigaction, NULL)) + < 0) err_sys("Cannot set signal handler"); #else signal(SIGALRM, to_alarm); #endif - timeout_flag = 0; /* for signal handler */ + timeout_flag = 0; /* for signal + * handler */ #ifdef ICP if (icp) { - nr = recv_icp(sockfd, recvline, retcode); + nr = recv_icp(sockfd, recvline, + retcode); if (verbose) { printf("%s\n", retcode); } } else { #endif nr = recv(sockfd, recvline, n, 0); - /* - * nr = recvfrom(sockfd, recvline, n, 0, - * (struct sockaddr *) 0, (int *) 0); - * recvfrom fails on SunOS on connected - * sockets. - */ - /* - * Todo: in UDP, we should loop to read: we - * can have several reads necessary. - */ - if ((nr < 0) && (errno == EINTR) && (timeout_flag)) { + /* + * nr = recvfrom(sockfd, recvline, n, 0, + * (struct sockaddr *) 0, (int *) 0); + * recvfrom fails on SunOS on connected + * sockets. + */ + /* + * Todo: in UDP, we should loop to read: we + * can have several reads necessary. + */ + if ((nr < 0) && (errno == EINTR) + && (timeout_flag)) { nr = n; printf("Timeout\n"); #ifdef FLUSH_OUTPUT - if (fflush((FILE *) NULL) != 0) { - err_sys("I cannot flush"); + if (fflush((FILE *) NULL) != + 0) { + err_sys + ("I cannot flush"); } #endif } @@ -1199,14 +1287,15 @@ main(argc, argv) } if (!http && !icp && !smtp && !discard) { if ((nr < 0 || nr != n) && timeout_flag) - /* + /* * if ((nr < 0 || nr != n) && * (errno == EINTR) && * timeout_flag) */ { - printf("Timeout while reading (%d byte(s) read)\n", - (nr == -1) ? 0 : nr); + printf + ("Timeout while reading (%d byte(s) read)\n", + (nr == -1) ? 0 : nr); nr = n; #ifdef FLUSH_OUTPUT if (fflush((FILE *) NULL) != 0) { @@ -1218,20 +1307,20 @@ main(argc, argv) } if (nr < 0 || nr != n) err_sys - ("readline error: %d bytes read, %d bytes requested", - nr, n); + ("readline error: %d bytes read, %d bytes requested", + nr, n); } else /* This is probably HTTP */ { - /* + /* * printf ("DEBUG: received %d bytes * (flag is %d, errno is %d)\n", nr, * timeout_flag, errno); */ if ((errno == EINTR) && timeout_flag) { printf - ("Timeout while reading (%d byte(s) read so far)\n", - (nr == -1) ? 0 : nr); + ("Timeout while reading (%d byte(s) read so far)\n", + (nr == -1) ? 0 : nr); #ifdef FLUSH_OUTPUT if (fflush((FILE *) NULL) != 0) { err_sys("I cannot flush"); @@ -1275,7 +1364,8 @@ main(argc, argv) if (port_to_use == USE_ECHO) { if (strcmp(sendline, recvline) != 0) { printf(" I wrote:\n%s\n", sendline); - printf(" and I got back:\n%s\n", recvline); + printf(" and I got back:\n%s\n", + recvline); err_quit("Strange server"); } if (verbose) { @@ -1291,13 +1381,16 @@ main(argc, argv) sendline = CHARGENERATED; recvline[strlen(sendline)] = 0; if (strcmp(sendline, recvline) != 0) { - /* + /* * TODO: it does not work if * the size is lower than the * length of CHARGENERATED */ - printf(" I got back:\n%s\n", recvline); - printf(" instead of the most common:\n%s\n", sendline); + printf(" I got back:\n%s\n", + recvline); + printf + (" instead of the most common:\n%s\n", + sendline); err_ret("Strange server"); } if (verbose) { @@ -1322,7 +1415,7 @@ main(argc, argv) if (number > 1) { #ifdef OPENSSL if (ssl) { - /* + /* * SSL_clear (sslh); No, we have to free. Bug * #130151 */ @@ -1333,7 +1426,7 @@ main(argc, argv) if (ssl) { gnutls_bye(channel.tls, GNUTLS_SHUT_RDWR); gnutls_deinit(session); - /* + /* * gnutls_certificate_free_credentials(xcred); * */ @@ -1368,7 +1461,8 @@ printstats() if (successes > 1) { printf("---\n"); if (successes < attempts) - printf("Warning: %d message(s) lost (%d %%)\n", attempts - successes, + printf("Warning: %d message(s) lost (%d %%)\n", + attempts - successes, ((attempts - successes) * 100) / attempts); printf("Minimum time: %d.%06d seconds (%.0f bytes per sec.)\n", (int) min.tv_sec, (int) min.tv_usec, @@ -1380,7 +1474,7 @@ printstats() printf("Average time: %d.%06d seconds (%.0f bytes per sec.)\n", (int) total.tv_sec, (int) total.tv_usec, (double) size / tv2double(total)); - /* + /* * The number of bytes/second, as printed above, is not * really meaningful: size does not reflect the number of * bytes exchanged. With echo, N = 2*size, with discard, N = @@ -1394,24 +1488,25 @@ printstats() good_results[j++] = results[i].timevalue; } if (successes != j) /* Todo: bug! */ - err_quit("successes (%d) is different from j (%d)", successes, j); + err_quit("successes (%d) is different from j (%d)", + successes, j); qsort(good_results, successes, sizeof(struct timeval), tvcmp); - /* - * for (i = 1; i <= number; i++) { printf("---\nTime %d th: - * %d.%06d seconds\n", i, results[i-1].tv_sec, - * results[i-1].tv_usec); } - */ + /* + * for (i = 1; i <= number; i++) { printf("---\nTime %d th: + * %d.%06d seconds\n", i, results[i-1].tv_sec, + * results[i-1].tv_usec); } + */ if ((successes % 2) == 1) { - /* - * printf("Searching good_results[%d]\n", (successes - * + 1) / 2 - 1); - */ + /* + * printf("Searching good_results[%d]\n", (successes + * + 1) / 2 - 1); + */ median = good_results[((successes + 1) / 2 - 1)]; } else { - /* - * printf("Searching good_results[%d] and [%d]\n", - * (successes / 2) - 1, successes / 2); - */ + /* + * printf("Searching good_results[%d] and [%d]\n", + * (successes / 2) - 1, successes / 2); + */ tvadd(&median, &good_results[(successes / 2) - 1]); tvadd(&median, &good_results[successes / 2]); tvavg(&median, 2); diff --git a/SRC/error.c b/SRC/error.c index e37d6d6..7056105 100644 --- a/SRC/error.c +++ b/SRC/error.c @@ -5,9 +5,9 @@ /* Most of error-handling routines stolen from Stevens' books */ void -my_perror () +my_perror() { - fprintf (stderr, " %s\n", sys_err_str ()); + fprintf(stderr, " %s\n", sys_err_str()); } /* @@ -20,20 +20,20 @@ my_perror () /* VARARGS1 */ void -err_ret (char *str, ...) +err_ret(char *str, ...) { - va_list args; + va_list args; - va_start (args, str); - vfprintf (stderr, str, args); - va_end (args); + va_start(args, str); + vfprintf(stderr, str, args); + va_end(args); - my_perror (); + my_perror(); - fflush (stdout); - fflush (stderr); + fflush(stdout); + fflush(stderr); - return; + return; } /* @@ -47,16 +47,16 @@ err_ret (char *str, ...) /* VARARGS1 */ void -err_quit (char *str, ...) +err_quit(char *str, ...) { - va_list args; + va_list args; - va_start (args, str); - vfprintf (stderr, str, args); - fputc ('\n', stderr); - va_end (args); + va_start(args, str); + vfprintf(stderr, str, args); + fputc('\n', stderr); + va_end(args); - exit (1); + exit(1); } /* @@ -71,25 +71,25 @@ err_quit (char *str, ...) /* VARARGS1 */ void -err_sys (char *str, ...) +err_sys(char *str, ...) { - va_list args; + va_list args; - va_start (args, str); - vfprintf (stderr, str, args); - va_end (args); + va_start(args, str); + vfprintf(stderr, str, args); + va_end(args); - my_perror (); + my_perror(); - exit (1); + exit(1); } void -usage (poptContext context) +usage(poptContext context) { - poptPrintUsage (context, stderr, 0); - fprintf (stderr, " hostname [plugin-options...]\n"); - exit (1); + poptPrintUsage(context, stderr, 0); + fprintf(stderr, " hostname [plugin-options...]\n"); + exit(1); } /* @@ -102,18 +102,15 @@ usage (poptContext context) * decimal value of errno to the other system. */ -char * -sys_err_str () +char * +sys_err_str() { - static char msgstr[200]; - - if (errno != 0) - { - sprintf (msgstr, "(%s)", strerror (errno)); - } - else - { - msgstr[0] = '\0'; - } - return (msgstr); + static char msgstr[200]; + + if (errno != 0) { + sprintf(msgstr, "(%s)", strerror(errno)); + } else { + msgstr[0] = '\0'; + } + return (msgstr); } diff --git a/SRC/http.c b/SRC/http.c index c5df986..bba21af 100644 --- a/SRC/http.c +++ b/SRC/http.c @@ -18,21 +18,30 @@ make_http_sendline(char *url, char *host, int port, int nocache) char *cache_directive = ""; #ifdef HTTP10 if (nocache) - cache_directive = "Pragma: no-cache\r\n"; /* RFC 1945, "Hypertext - * Transfer Protocol -- - * HTTP/1.0" */ + cache_directive = "Pragma: no-cache\r\n"; /* RFC 1945, + * "Hypertext + * Transfer Protocol + * -- HTTP/1.0" */ sprintf(sendline, "GET %s HTTP/1.0\r\nUser-Agent: Echoping/%s\r\n%s\r\n", url, VERSION, cache_directive); #else if (nocache) { if (nocache == 1) - cache_directive = "Cache-control: max-age=0\r\n"; /* Simply force a - * recheck with the - * server */ + cache_directive = "Cache-control: max-age=0\r\n"; /* Simply + * force + * a + * recheck + * with + * the + * server + */ else - cache_directive = "Cache-control: no-cache\r\n"; /* RFC 2616 "Hypertext - * Transfer Protocol -- + cache_directive = "Cache-control: no-cache\r\n"; /* RFC + * 2616 + * "Hypertext + * Transfer + * Protocol -- * HTTP/1.1" */ } strcpy(hostname, HTParse(url, "", PARSE_HOST)); @@ -75,15 +84,16 @@ read_from_server(CHANNEL fs, short ssl, boolean accept_redirects) { nr = TLS_readline(fs.tls, big_recvline, MAXTOREAD, TRUE); if (nr == -1) { - err_ret("TLS_readline error: %s", gnutls_strerror(nr)); + err_ret("TLS_readline error: %s", + gnutls_strerror(nr)); } } #endif - /* + /* * printf ("DEBUG: reading \"%s\"\n (%d chars)\n", * big_recvline, nr); */ - /* + /* * HTTP replies should be separated by CR-LF. Unfortunately, * some servers send only CR :-( */ @@ -94,14 +104,15 @@ read_from_server(CHANNEL fs, short ssl, boolean accept_redirects) /* SourceForge bug #109385 */ /* err_sys ("Error reading HTTP header"); */ return -1; - /* + /* * if ((int) big_recvline[nr-1] == 10) nr--; */ if (first_line) { reply_code = big_recvline[9]; /* 9 because "HTTP/1.x * 200..." */ - if (reply_code != '2' && !(reply_code == '3' && accept_redirects)) - /* + if (reply_code != '2' + && !(reply_code == '3' && accept_redirects)) + /* * Status codes beginning with 3 are not * errors See bug #850674 and RFC 2616, * section 10.3 @@ -122,13 +133,13 @@ read_from_server(CHANNEL fs, short ssl, boolean accept_redirects) else nr = TLS_readline(fs.tls, big_recvline, MAXTOREAD, FALSE); #endif - /* + /* * printf ("DEBUG: reading body \"%s\"\n (%d chars)\n", big_recvline, * nr); */ if ((nr < 2) && (timeout_flag)) /* Probably a timeout */ return -1; - if (nr < 2) /* Hmm, if the body is empty, we'll get a + if (nr < 2) /* Hmm, if the body is empty, we'll get a * * meaningless error message */ err_sys("Error reading HTTP body"); total = total + nr; diff --git a/SRC/icp.c b/SRC/icp.c index b988937..0b0a32b 100644 --- a/SRC/icp.c +++ b/SRC/icp.c @@ -11,97 +11,96 @@ #ifdef ICP -void * -make_icp_sendline (url, shost, opcode, length) - const char *url; - u_num32 *shost; - icp_opcode opcode; - int *length; +void * +make_icp_sendline(url, shost, opcode, length) + const char *url; + u_num32 *shost; + icp_opcode opcode; + int *length; { - icp_common_t *headerp = NULL; - char *buf = NULL; - char *urloffset = NULL; - u_num32 flags = ICP_FLAG_SRC_RTT; - u_num32 pad = 0; - u_num32 reqnum = 4711; - unsigned short buf_len; + icp_common_t *headerp = NULL; + char *buf = NULL; + char *urloffset = NULL; + u_num32 flags = ICP_FLAG_SRC_RTT; + u_num32 pad = 0; + u_num32 reqnum = 4711; + unsigned short buf_len; - buf_len = sizeof (icp_common_t) + strlen (url) + 1; - if (opcode == ICP_OP_QUERY) - buf_len += sizeof (u_num32); - buf = calloc (buf_len, 1); - headerp = (icp_common_t *) buf; - headerp->opcode = opcode; - headerp->version = ICP_VERSION_CURRENT; - headerp->length = htons (buf_len); - headerp->reqnum = htonl (reqnum); - headerp->flags = htonl (flags); - headerp->pad = pad; - if (shost) - headerp->shostid = htonl (*shost); - /* urloffset = (char *) ((int) buf + sizeof(icp_common_t)); */ - urloffset = (char *) (buf + sizeof (icp_common_t)); - if (opcode == ICP_OP_QUERY) - urloffset += sizeof (u_num32); - memcpy (urloffset, url, strlen (url)); - *length = buf_len; - return buf; + buf_len = sizeof(icp_common_t) + strlen(url) + 1; + if (opcode == ICP_OP_QUERY) + buf_len += sizeof(u_num32); + buf = calloc(buf_len, 1); + headerp = (icp_common_t *) buf; + headerp->opcode = opcode; + headerp->version = ICP_VERSION_CURRENT; + headerp->length = htons(buf_len); + headerp->reqnum = htonl(reqnum); + headerp->flags = htonl(flags); + headerp->pad = pad; + if (shost) + headerp->shostid = htonl(*shost); + /* urloffset = (char *) ((int) buf + sizeof(icp_common_t)); */ + urloffset = (char *) (buf + sizeof(icp_common_t)); + if (opcode == ICP_OP_QUERY) + urloffset += sizeof(u_num32); + memcpy(urloffset, url, strlen(url)); + *length = buf_len; + return buf; } int -recv_icp (sockfd, buf, retcode) - int sockfd; - char *buf; - char *retcode; +recv_icp(sockfd, buf, retcode) + int sockfd; + char *buf; + char *retcode; -{ /* +{ /* * based on draft-wessels-icp-v2-02.txt */ - icp_common_t *headerp = (icp_common_t *) buf; - int nr, length; - unsigned char opcode; - static char *icp_op_code[] = { - /* 0 */ "ICP_OP_INVALID", - /* 1 */ "ICP_OP_QUERY", - /* 2 */ "ICP_OP_HIT", - /* 3 */ "ICP_OP_MISS", - /* 4 */ "ICP_OP_ERR", - /* 5 */ "", - /* 6 */ "", - /* 7 */ "", - /* 8 */ "", - /* 9 */ "", - /* 10 */ "ICP_OP_SECHO", - /* 11 */ "ICP_OP_DECHO", - /* 12 */ "", - /* 13 */ "", - /* 14 */ "", - /* 15 */ "", - /* 16 */ "", - /* 17 */ "", - /* 18 */ "", - /* 19 */ "", - /* 20 */ "", - /* 21 */ "ICP_OP_MISS_NOFETCH", - /* 22 */ "ICP_OP_DENIED", - /* 23 */ "ICP_OP_HIT_OBJ" - }; + icp_common_t *headerp = (icp_common_t *) buf; + int nr, length; + unsigned char opcode; + static char *icp_op_code[] = { + /* 0 */ "ICP_OP_INVALID", + /* 1 */ "ICP_OP_QUERY", + /* 2 */ "ICP_OP_HIT", + /* 3 */ "ICP_OP_MISS", + /* 4 */ "ICP_OP_ERR", + /* 5 */ "", + /* 6 */ "", + /* 7 */ "", + /* 8 */ "", + /* 9 */ "", + /* 10 */ "ICP_OP_SECHO", + /* 11 */ "ICP_OP_DECHO", + /* 12 */ "", + /* 13 */ "", + /* 14 */ "", + /* 15 */ "", + /* 16 */ "", + /* 17 */ "", + /* 18 */ "", + /* 19 */ "", + /* 20 */ "", + /* 21 */ "ICP_OP_MISS_NOFETCH", + /* 22 */ "ICP_OP_DENIED", + /* 23 */ "ICP_OP_HIT_OBJ" + }; - nr = recvfrom (sockfd, buf, DEFLINE, 0, (struct sockaddr *) 0, (int *) 0); - if (nr < 0) - { - if (timeout_flag) - err_quit ("Timeout while reading"); - else - err_sys ("No reply from ICP proxy server"); - } - opcode = headerp->opcode; - length = ntohs (headerp->length); - sprintf (retcode, "ICP reply: \42%s\42", icp_op_code[opcode]); - return length; + nr = recvfrom(sockfd, buf, DEFLINE, 0, (struct sockaddr *) 0, (int *) 0); + if (nr < 0) { + if (timeout_flag) + err_quit("Timeout while reading"); + else + err_sys("No reply from ICP proxy server"); + } + opcode = headerp->opcode; + length = ntohs(headerp->length); + sprintf(retcode, "ICP reply: \42%s\42", icp_op_code[opcode]); + return length; } -#endif /* ICP */ +#endif /* ICP */ diff --git a/SRC/plugins/dns/dns.c b/SRC/plugins/dns/dns.c index 458a336..7ad0855 100644 --- a/SRC/plugins/dns/dns.c +++ b/SRC/plugins/dns/dns.c @@ -12,12 +12,12 @@ #include struct addrinfo name_server; -poptContext dns_poptcon; -char *request; -int type; -char *type_name = NULL; -boolean use_tcp = FALSE; -boolean no_recurse = FALSE; +poptContext dns_poptcon; +char *request; +int type; +char *type_name = NULL; +boolean use_tcp = FALSE; +boolean no_recurse = FALSE; /* nsError stolen from Liu & Albitz check_soa (in their book "DNS and BIND") */ @@ -34,30 +34,29 @@ boolean no_recurse = FALSE; * strings. * ****************************************************************/ int -nsError (error, domain) - int error; - char *domain; +nsError(error, domain) + int error; + char *domain; { - switch (error) - { - case HOST_NOT_FOUND: - err_ret ("Unknown domain: %s\n", domain); - return -1; - case NO_DATA: - err_ret ("No records of type %s for %s in the Answer section\n", - to_upper (type_name), domain); - return -1; - case TRY_AGAIN: - err_ret ("No response for query\n"); - return -2; - default: - err_ret ("Unexpected error\n"); - return -1; - } + switch (error) { + case HOST_NOT_FOUND: + err_ret("Unknown domain: %s\n", domain); + return -1; + case NO_DATA: + err_ret("No records of type %s for %s in the Answer section\n", + to_upper(type_name), domain); + return -1; + case TRY_AGAIN: + err_ret("No response for query\n"); + return -2; + default: + err_ret("Unexpected error\n"); + return -1; + } } void -dns_usage (const char *msg) +dns_usage(const char *msg) { if (msg) { fprintf(stderr, "Error: %s\n", msg); @@ -67,166 +66,152 @@ dns_usage (const char *msg) exit(1); } -char * -init (const int argc, const char **argv) +char * +init(const int argc, const char **argv) { - int value; - char *hostname; - char *msg = malloc (256); - char *upper_type_name = NULL; - /* popt variables */ - struct poptOption options[] = { - {"type", 't', POPT_ARG_STRING, &type_name, 0, - "Type of resources queried (A, MX, SOA, etc)", - "type"}, - {"tcp", NULL, POPT_ARG_NONE, &use_tcp, 0, - "Use TCP for the request (virtual circuit)", - "tcp"}, - {"no-recurse", NULL, POPT_ARG_NONE, &no_recurse, 0, - "Do not ask recursion", - "no-recurse"}, - POPT_AUTOHELP POPT_TABLEEND - }; - dns_poptcon = poptGetContext (NULL, argc, - argv, options, POPT_CONTEXT_KEEP_FIRST); - while ((value = poptGetNextOpt (dns_poptcon)) > 0) - { - } - if (value < -1) - { - sprintf (msg, "%s: %s", - poptBadOption (dns_poptcon, POPT_BADOPTION_NOALIAS), - poptStrerror (value)); - dns_usage (msg); - } - hostname = (char *) poptGetArg (dns_poptcon); /* Not used */ - request = (char *) poptGetArg (dns_poptcon); - if (request == NULL) - dns_usage ("Mandatory request missing"); - if ((type_name == NULL) || !strcmp (type_name, "")) - { - type = T_A; - type_name = "A"; - } - else - { - upper_type_name = (char *) to_upper (type_name); - /* - * TODO: a better algorithm. Use dns_rdatatype_fromtext in - * BIND ? - */ - if (!strcmp (upper_type_name, "A")) - type = T_A; - else if (!strcmp (upper_type_name, "AAAA")) - type = T_AAAA; - else if (!strcmp (upper_type_name, "NS")) - type = T_NS; - else if (!strcmp (upper_type_name, "SOA")) - type = T_SOA; - else if (!strcmp (upper_type_name, "MX")) - type = T_MX; - else if (!strcmp (upper_type_name, "SRV")) - type = T_SRV; - else if (!strcmp (upper_type_name, "CNAME")) - type = T_CNAME; - else if (!strcmp (upper_type_name, "PTR")) - type = T_PTR; - else if (!strcmp (upper_type_name, "TXT")) - type = T_TXT; - else if (!strcmp (upper_type_name, "ANY")) - type = T_ANY; - else - dns_usage ("Unknown type"); - } - return "domain"; + int value; + char *hostname; + char *msg = malloc(256); + char *upper_type_name = NULL; + /* popt variables */ + struct poptOption options[] = { + {"type", 't', POPT_ARG_STRING, &type_name, 0, + "Type of resources queried (A, MX, SOA, etc)", + "type"}, + {"tcp", NULL, POPT_ARG_NONE, &use_tcp, 0, + "Use TCP for the request (virtual circuit)", + "tcp"}, + {"no-recurse", NULL, POPT_ARG_NONE, &no_recurse, 0, + "Do not ask recursion", + "no-recurse"}, + POPT_AUTOHELP POPT_TABLEEND + }; + dns_poptcon = poptGetContext(NULL, argc, + argv, options, POPT_CONTEXT_KEEP_FIRST); + while ((value = poptGetNextOpt(dns_poptcon)) > 0) { + } + if (value < -1) { + sprintf(msg, "%s: %s", + poptBadOption(dns_poptcon, POPT_BADOPTION_NOALIAS), + poptStrerror(value)); + dns_usage(msg); + } + hostname = (char *) poptGetArg(dns_poptcon); /* Not used */ + request = (char *) poptGetArg(dns_poptcon); + if (request == NULL) + dns_usage("Mandatory request missing"); + if ((type_name == NULL) || !strcmp(type_name, "")) { + type = T_A; + type_name = "A"; + } else { + upper_type_name = (char *) to_upper(type_name); + /* + * TODO: a better algorithm. Use dns_rdatatype_fromtext in + * BIND ? + */ + if (!strcmp(upper_type_name, "A")) + type = T_A; + else if (!strcmp(upper_type_name, "AAAA")) + type = T_AAAA; + else if (!strcmp(upper_type_name, "NS")) + type = T_NS; + else if (!strcmp(upper_type_name, "SOA")) + type = T_SOA; + else if (!strcmp(upper_type_name, "MX")) + type = T_MX; + else if (!strcmp(upper_type_name, "SRV")) + type = T_SRV; + else if (!strcmp(upper_type_name, "CNAME")) + type = T_CNAME; + else if (!strcmp(upper_type_name, "PTR")) + type = T_PTR; + else if (!strcmp(upper_type_name, "TXT")) + type = T_TXT; + else if (!strcmp(upper_type_name, "ANY")) + type = T_ANY; + else + dns_usage("Unknown type"); + } + return "domain"; } void -start (struct addrinfo *res) +start(struct addrinfo *res) { - struct sockaddr name_server_sockaddr; - struct sockaddr_in name_server_sockaddr_in; - struct sockaddr_in6 name_server_sockaddr_in6; - name_server = *res; - name_server_sockaddr = *name_server.ai_addr; - if (name_server_sockaddr.sa_family == AF_INET) - { - /* Converts a generic sockaddr to an IPv4 sockaddr_in */ - (void) memcpy ((void *) &name_server_sockaddr_in, &name_server_sockaddr, - sizeof (struct sockaddr)); - } - else if (name_server_sockaddr.sa_family == AF_INET6) - { - /* TODO: the code for IPv6 servers is hopelessly broken. Start again */ - fprintf (stderr, "WARNING: IPv6 nameservers not really supported yet (experts may apply). Falling back to IPv4 and the default server. You may use -4, too\n"); + struct sockaddr name_server_sockaddr; + struct sockaddr_in name_server_sockaddr_in; + struct sockaddr_in6 name_server_sockaddr_in6; + name_server = *res; + name_server_sockaddr = *name_server.ai_addr; + if (name_server_sockaddr.sa_family == AF_INET) { + /* Converts a generic sockaddr to an IPv4 sockaddr_in */ + (void) memcpy((void *) &name_server_sockaddr_in, + &name_server_sockaddr, sizeof(struct sockaddr)); + } else if (name_server_sockaddr.sa_family == AF_INET6) { + /* TODO: the code for IPv6 servers is hopelessly broken. Start again + */ + fprintf(stderr, + "WARNING: IPv6 nameservers not really supported yet (experts may apply). Falling back to IPv4 and the default server. You may use -4, too\n"); #ifdef HAVE_RES_EXT - /* Converts a generic sockaddr to an IPv6 sockaddr_in6 */ - (void) memcpy ((void *) &name_server_sockaddr_in6, - &name_server_sockaddr, sizeof (struct sockaddr)); + /* Converts a generic sockaddr to an IPv6 sockaddr_in6 */ + (void) memcpy((void *) &name_server_sockaddr_in6, + &name_server_sockaddr, sizeof(struct sockaddr)); #else - err_quit - ("IPv6 name servers not supported on this platform, may be you should use the -4 option"); + err_quit + ("IPv6 name servers not supported on this platform, may be you should use the -4 option"); #endif - } - else - { - err_quit ("Unknown family for address of the server"); - } - if (res_init () < 0) - err_sys ("res_init"); - if (name_server_sockaddr.sa_family == AF_INET) - { - _res.nsaddr_list[0] = name_server_sockaddr_in; - } - else if (name_server_sockaddr.sa_family == AF_INET6) - { + } else { + err_quit("Unknown family for address of the server"); + } + if (res_init() < 0) + err_sys("res_init"); + if (name_server_sockaddr.sa_family == AF_INET) { + _res.nsaddr_list[0] = name_server_sockaddr_in; + } else if (name_server_sockaddr.sa_family == AF_INET6) { #ifdef HAVE_RES_EXT /* TODO: completely broken, dioes not work. Check in Stevens */ - (void)memcpy(_res_ext.nsaddr_list, &name_server_sockaddr_in6, sizeof(struct sockaddr_in6)); + (void) memcpy(_res_ext.nsaddr_list, &name_server_sockaddr_in6, + sizeof(struct sockaddr_in6)); #endif - } - _res.nscount = 1; - _res.options &= ~(RES_DNSRCH | RES_DEFNAMES | RES_NOALIASES); - if (use_tcp) - { - _res.options |= RES_USEVC; - } - if (no_recurse) - { - _res.options &= ~RES_RECURSE; - } + } + _res.nscount = 1; + _res.options &= ~(RES_DNSRCH | RES_DEFNAMES | RES_NOALIASES); + if (use_tcp) { + _res.options |= RES_USEVC; + } + if (no_recurse) { + _res.options &= ~RES_RECURSE; + } } int -execute () +execute() { - union - { - HEADER hdr; /* defined in resolv.h */ - u_char buf[PACKETSZ]; /* defined in arpa/nameser.h */ - } response; /* response buffers */ - int response_length; /* buffer length */ - if ((response_length = res_query (request, /* the domain we care - * about */ - C_IN, /* Internet class records */ - type, (u_char *) & response, /* response buffer */ - sizeof (response))) /* buffer size */ - < 0) - { /* If negative */ - nsError (h_errno, request); /* report the error */ - if (h_errno == TRY_AGAIN) - return -1; /* More luck next time? */ - else - return -2; /* Give in */ - } - /* - * TODO: better analysis of the replies. For instance, replies can be - * in the authority section (delegation info) - */ - return 0; + union { + HEADER hdr; /* defined in resolv.h */ + u_char buf[PACKETSZ]; /* defined in arpa/nameser.h */ + } response; /* response buffers */ + int response_length; /* buffer length */ + if ((response_length = res_query(request, /* the domain we care about */ + C_IN, /* Internet class records */ + type, (u_char *) & response, /* response + * buffer */ + sizeof(response))) /* buffer size */ + <0) { /* If negative */ + nsError(h_errno, request); /* report the error */ + if (h_errno == TRY_AGAIN) + return -1; /* More luck next time? */ + else + return -2; /* Give in */ + } + /* + * TODO: better analysis of the replies. For instance, replies can be + * in the authority section (delegation info) + */ + return 0; } void -terminate () +terminate() { } diff --git a/SRC/plugins/ldap/ldap.c b/SRC/plugins/ldap/ldap.c index b6aa7d2..f49a46b 100644 --- a/SRC/plugins/ldap/ldap.c +++ b/SRC/plugins/ldap/ldap.c @@ -11,153 +11,149 @@ #endif #include -const char *request = NULL; -const char *base = NULL; -int scope = LDAP_SCOPE_BASE; -const char *hostname; -int port = 0; -LDAP *session; -poptContext ldap_poptcon; +const char *request = NULL; +const char *base = NULL; +int scope = LDAP_SCOPE_BASE; +const char *hostname; +int port = 0; +LDAP *session; +poptContext ldap_poptcon; echoping_options global_options; void -ldap_usage (const char *msg) +ldap_usage(const char *msg) { - if (msg) - { - printf ("LDAP plugin error: %s\n", msg); - } - poptPrintUsage (ldap_poptcon, stdout, 0); - exit (1); + if (msg) { + printf("LDAP plugin error: %s\n", msg); + } + poptPrintUsage(ldap_poptcon, stdout, 0); + exit(1); } -char * -init (const int argc, const char **argv, - const echoping_options global_external_options) +char * +init(const int argc, const char **argv, + const echoping_options global_external_options) { - int value; - char *msg = malloc (MAX_LINE); - char *rest, *port_text; - char *scope_string = NULL; - /* popt variables */ - struct poptOption options[] = { - {"request", 'r', POPT_ARG_STRING, &request, 0, - "Request (filter) to send to the LDAP server", "r"}, - {"base", 'b', POPT_ARG_STRING, &base, 0, - "Base of the LDAP tree", "b"}, - {"scope", 's', POPT_ARG_STRING, &scope_string, 0, - "Scope of the search in the LDAP tree (sub, one or base)", "s"}, - {"port", 'p', POPT_ARG_INT, &port, 0, - "TCP port to connect to the LDAP server", "p"}, - POPT_AUTOHELP POPT_TABLEEND - }; - global_options = global_external_options; - if (global_options.udp) - err_quit ("UDP makes no sense for a LDAP connection"); - ldap_poptcon = poptGetContext (NULL, argc, - argv, options, POPT_CONTEXT_KEEP_FIRST); - while ((value = poptGetNextOpt (ldap_poptcon)) > 0) - { - } - if (value < -1) - { - sprintf (msg, "%s: %s", - poptBadOption (ldap_poptcon, POPT_BADOPTION_NOALIAS), - poptStrerror (value)); - ldap_usage (msg); - } - if (port == 0) - port = LDAP_PORT; - hostname = poptGetArg (ldap_poptcon); - rest = poptGetArg (ldap_poptcon); - if (rest != NULL) - { - fprintf (stderr, "%s: ", rest); - ldap_usage ("Additional arguments"); - } - if (base == NULL) - base = ""; - if (request == NULL || !strcmp (request, "")) - request = "(objectclass=*)"; - if (scope_string != NULL) - { - scope_string = to_upper (scope_string); - if (!strcmp (scope_string, "BASE")) - scope = LDAP_SCOPE_BASE; - else if (!strcmp (scope_string, "SUB")) - scope = LDAP_SCOPE_SUBTREE; - else if (!strcmp (scope_string, "ONE")) - scope = LDAP_SCOPE_ONELEVEL; - else - err_quit ("Invalid scope \"%s\"", scope_string); - } - if (port == LDAP_PORT) - { - return "ldap"; - } - else - { - port_text = malloc (99); - sprintf (port_text, "%d", port); - return port_text; - } + int value; + char *msg = malloc(MAX_LINE); + char *rest, *port_text; + char *scope_string = NULL; + /* popt variables */ + struct poptOption options[] = { + {"request", 'r', POPT_ARG_STRING, &request, 0, + "Request (filter) to send to the LDAP server", "r"}, + {"base", 'b', POPT_ARG_STRING, &base, 0, + "Base of the LDAP tree", "b"}, + {"scope", 's', POPT_ARG_STRING, &scope_string, 0, + "Scope of the search in the LDAP tree (sub, one or base)", "s"}, + {"port", 'p', POPT_ARG_INT, &port, 0, + "TCP port to connect to the LDAP server", "p"}, + POPT_AUTOHELP POPT_TABLEEND + }; + global_options = global_external_options; + if (global_options.udp) + err_quit("UDP makes no sense for a LDAP connection"); + ldap_poptcon = poptGetContext(NULL, argc, + argv, options, POPT_CONTEXT_KEEP_FIRST); + while ((value = poptGetNextOpt(ldap_poptcon)) > 0) { + } + if (value < -1) { + sprintf(msg, "%s: %s", + poptBadOption(ldap_poptcon, POPT_BADOPTION_NOALIAS), + poptStrerror(value)); + ldap_usage(msg); + } + if (port == 0) + port = LDAP_PORT; + hostname = poptGetArg(ldap_poptcon); + rest = poptGetArg(ldap_poptcon); + if (rest != NULL) { + fprintf(stderr, "%s: ", rest); + ldap_usage("Additional arguments"); + } + if (base == NULL) + base = ""; + if (request == NULL || !strcmp(request, "")) + request = "(objectclass=*)"; + if (scope_string != NULL) { + scope_string = to_upper(scope_string); + if (!strcmp(scope_string, "BASE")) + scope = LDAP_SCOPE_BASE; + else if (!strcmp(scope_string, "SUB")) + scope = LDAP_SCOPE_SUBTREE; + else if (!strcmp(scope_string, "ONE")) + scope = LDAP_SCOPE_ONELEVEL; + else + err_quit("Invalid scope \"%s\"", scope_string); + } + if (port == LDAP_PORT) { + return "ldap"; + } else { + port_text = malloc(99); + sprintf(port_text, "%d", port); + return port_text; + } } void -start () +start() { - int result; - LDAPMessage *response; + int result; + LDAPMessage *response; - session = ldap_init (hostname, port); - if (session == NULL) - err_sys ("Cannot initialize LDAP"); - /* TODO: allow non-anonymous connections, with ldap_bind_simple_s */ - /* - * Unfortunately, ldap_init does not connect to the LDAP server. So - * connection errors (e.g. firewall), will not be detected here and - * loop will go on. - * - * To quote the man page: ldap_init() acts just like ldap_open(), but - * does not open a connection to the LDAP server. The actual - * connection open will occur when the first operation is attempted. - * At this time, ldap_init() is preferred. ldap_open() will be - * depreciated in a later release. - * - * So, we perform a dummy search immediately. - */ - result = ldap_search_s (session, base, LDAP_SCOPE_ONELEVEL, "(objectclass=*)", NULL, /* Return all attributes */ - 1, &response); - if (result != 0) - { - err_quit - ("Cannot connect to %s (no LDAP server or wrong base, probably): %s", - hostname, ldap_err2string (result)); - } + session = ldap_init(hostname, port); + if (session == NULL) + err_sys("Cannot initialize LDAP"); + /* TODO: allow non-anonymous connections, with ldap_bind_simple_s */ + /* + * Unfortunately, ldap_init does not connect to the LDAP server. So + * connection errors (e.g. firewall), will not be detected here and + * loop will go on. + * + * To quote the man page: ldap_init() acts just like ldap_open(), but + * does not open a connection to the LDAP server. The actual + * connection open will occur when the first operation is attempted. + * At this time, ldap_init() is preferred. ldap_open() will be + * depreciated in a later release. + * + * So, we perform a dummy search immediately. + */ + result = ldap_search_s(session, base, LDAP_SCOPE_ONELEVEL, "(objectclass=*)", NULL, /* Return + * all + * attributes + */ + 1, &response); + if (result != 0) { + err_quit + ("Cannot connect to %s (no LDAP server or wrong base, probably): %s", + hostname, ldap_err2string(result)); + } } int -execute () +execute() { - int result; - LDAPMessage *response; - result = ldap_search_s (session, base, scope, request, NULL, /* Return all attributes */ - 0, /* Return attribute types *and* - * values */ - &response); - if (result != 0) - { - err_ret ("Cannot search \"%s\": %s", request, ldap_err2string (result)); - return -1; - } - if (global_options.verbose) - printf ("Retrieved: %d entries\n", - ldap_count_entries (session, response)); - return 0; + int result; + LDAPMessage *response; + result = ldap_search_s(session, base, scope, request, NULL, /* Return + * all + * attributes + */ + 0, /* Return attribute types *and* values */ + &response); + if (result != 0) { + err_ret("Cannot search \"%s\": %s", request, + ldap_err2string(result)); + return -1; + } + if (global_options.verbose) + printf("Retrieved: %d entries\n", + ldap_count_entries(session, response)); + return 0; } void -terminate () +terminate() { - ldap_unbind_s (session); + ldap_unbind_s(session); } diff --git a/SRC/plugins/postgresql/postgresql.c b/SRC/plugins/postgresql/postgresql.c index 217f303..7fc461f 100644 --- a/SRC/plugins/postgresql/postgresql.c +++ b/SRC/plugins/postgresql/postgresql.c @@ -16,145 +16,132 @@ #include #endif -const char *request = NULL; -int readall = FALSE; -int connect_each_time = FALSE; -poptContext postgresql_poptcon; -PGconn *conn; -PGresult *res; -char *conninfo; +const char *request = NULL; +int readall = FALSE; +int connect_each_time = FALSE; +poptContext postgresql_poptcon; +PGconn *conn; +PGresult *res; +char *conninfo; echoping_options global_options; void -postgresql_usage (const char *msg) +postgresql_usage(const char *msg) { - if (msg) - { - printf ("PostgreSQL plugin error: %s\n", msg); - } - poptPrintUsage (postgresql_poptcon, stdout, 0); - fprintf (stderr, " [SQL-request]\n"); - exit (1); + if (msg) { + printf("PostgreSQL plugin error: %s\n", msg); + } + poptPrintUsage(postgresql_poptcon, stdout, 0); + fprintf(stderr, " [SQL-request]\n"); + exit(1); } -char * -init (const int argc, const char **argv, - const echoping_options global_external_options) +char * +init(const int argc, const char **argv, + const echoping_options global_external_options) { - int value; - char *msg = malloc (256); - char *rest; - /* popt variables */ - struct poptOption options[] = { - {"conninfo", 'c', POPT_ARG_STRING, &conninfo, 0, - "Connection information for the Postgresql server. Something like 'host=foo dbname=bar''", - ""}, - {"readall", 'a', POPT_ARG_NONE, &readall, 0, - "Read all the data sent by the Postgresql server", - ""}, - {"connect-each-time", 'e', POPT_ARG_NONE, &connect_each_time, 0, - "(Re)Connect to the Postgresql server at each iteration", - ""}, - POPT_AUTOHELP POPT_TABLEEND - }; - global_options = global_external_options; - if (global_options.udp) - err_quit ("UDP makes no sense for a PostgreSQL connection"); - postgresql_poptcon = poptGetContext (NULL, argc, - argv, options, - POPT_CONTEXT_POSIXMEHARDER); - while ((value = poptGetNextOpt (postgresql_poptcon)) > 0) - { - } - if (value < -1) - { - sprintf (msg, "%s: %s", - poptBadOption (postgresql_poptcon, POPT_BADOPTION_NOALIAS), - poptStrerror (value)); - postgresql_usage (msg); - } - request = poptGetArg (postgresql_poptcon); - if (request == NULL) - request = "SELECT now()"; - rest = poptGetArg (postgresql_poptcon); - if (rest != NULL) - postgresql_usage ("Erroneous additional arguments"); - if (conninfo == NULL) - conninfo = ""; - return NULL; /* We only use the conninfo, echoping does not see our hostname or port */ + int value; + char *msg = malloc(256); + char *rest; + /* popt variables */ + struct poptOption options[] = { + {"conninfo", 'c', POPT_ARG_STRING, &conninfo, 0, + "Connection information for the Postgresql server. Something like 'host=foo dbname=bar''", + ""}, + {"readall", 'a', POPT_ARG_NONE, &readall, 0, + "Read all the data sent by the Postgresql server", + ""}, + {"connect-each-time", 'e', POPT_ARG_NONE, &connect_each_time, 0, + "(Re)Connect to the Postgresql server at each iteration", + ""}, + POPT_AUTOHELP POPT_TABLEEND + }; + global_options = global_external_options; + if (global_options.udp) + err_quit("UDP makes no sense for a PostgreSQL connection"); + postgresql_poptcon = poptGetContext(NULL, argc, + argv, options, + POPT_CONTEXT_POSIXMEHARDER); + while ((value = poptGetNextOpt(postgresql_poptcon)) > 0) { + } + if (value < -1) { + sprintf(msg, "%s: %s", + poptBadOption(postgresql_poptcon, POPT_BADOPTION_NOALIAS), + poptStrerror(value)); + postgresql_usage(msg); + } + request = poptGetArg(postgresql_poptcon); + if (request == NULL) + request = "SELECT now()"; + rest = poptGetArg(postgresql_poptcon); + if (rest != NULL) + postgresql_usage("Erroneous additional arguments"); + if (conninfo == NULL) + conninfo = ""; + return NULL; /* We only use the conninfo, echoping does not see + * our hostname or port */ } void -start_raw () +start_raw() { - if (!connect_each_time) - { - conn = PQconnectdb (conninfo); - if (conn == NULL) - { - err_quit ("Cannot create connection\n"); - } - if (PQstatus (conn) == CONNECTION_BAD) - { - err_quit ("Connection failed: %s\n", PQerrorMessage (conn)); + if (!connect_each_time) { + conn = PQconnectdb(conninfo); + if (conn == NULL) { + err_quit("Cannot create connection\n"); + } + if (PQstatus(conn) == CONNECTION_BAD) { + err_quit("Connection failed: %s\n", PQerrorMessage(conn)); + } } - } } int -execute () +execute() { - unsigned int row, column; - char *result; - if (connect_each_time) - { - conn = PQconnectdb (conninfo); - if (conn == NULL) - { - err_ret ("Cannot create connection\n"); - return -1; + unsigned int row, column; + char *result; + if (connect_each_time) { + conn = PQconnectdb(conninfo); + if (conn == NULL) { + err_ret("Cannot create connection\n"); + return -1; + } + if (PQstatus(conn) == CONNECTION_BAD) { + err_ret("Connection failed: %s\n", PQerrorMessage(conn)); + return -1; + } } - if (PQstatus (conn) == CONNECTION_BAD) - { - err_ret ("Connection failed: %s\n", PQerrorMessage (conn)); - return -1; + res = PQexec(conn, request); + if (PQresultStatus(res) != PGRES_TUPLES_OK) { + err_ret("Cannot run \"%s\": %s\n", request, + PQresultErrorMessage(res)); + return -1; } - } - res = PQexec (conn, request); - if (PQresultStatus (res) != PGRES_TUPLES_OK) - { - err_ret ("Cannot run \"%s\": %s\n", request, - PQresultErrorMessage (res)); - return -1; - } - if (global_options.verbose) - printf ("%d tuples returned\n", PQntuples (res)); - if (readall) - { - for (row = 0; row < PQntuples (res); row++) - { - for (column = 0; column < PQnfields (res); column++) - { - result = PQgetvalue (res, row, column); - if (result == NULL) - { - err_ret ("Cannot retrieve value [%d,%d]\n", row, column); - return -1; + if (global_options.verbose) + printf("%d tuples returned\n", PQntuples(res)); + if (readall) { + for (row = 0; row < PQntuples(res); row++) { + for (column = 0; column < PQnfields(res); column++) { + result = PQgetvalue(res, row, column); + if (result == NULL) { + err_ret("Cannot retrieve value [%d,%d]\n", + row, column); + return -1; + } + /* else { printf ("DEBUG: [%d,%d] %s\n", row, + * column, result); } */ + } } - /* else { - printf ("DEBUG: [%d,%d] %s\n", row, column, result); - } */ - } } - } - if (connect_each_time) - PQfinish (conn); - return 0; + if (connect_each_time) + PQfinish(conn); + return 0; } void -terminate () +terminate() { - if (!connect_each_time) - PQfinish (conn); + if (!connect_each_time) + PQfinish(conn); } diff --git a/SRC/plugins/random/random.c b/SRC/plugins/random/random.c index e26aafc..588d619 100644 --- a/SRC/plugins/random/random.c +++ b/SRC/plugins/random/random.c @@ -9,24 +9,29 @@ #include #include -char * -init (const int argc, const char *argv[]) +char * +init(const int argc, const char *argv[]) { - struct timeval tv; - (void) gettimeofday (&tv, (struct timezone *) NULL); - srand (tv.tv_usec); - return "7"; /* Not used, just to say we use the cooked interface */ + struct timeval tv; + (void) gettimeofday(&tv, (struct timezone *) NULL); + srand(tv.tv_usec); + return "7"; /* Not used, just to say we use the cooked interface + */ } -void start () +void +start() { } int -execute () +execute() { - usleep (rand () % 1000000); - return 1; + usleep(rand() % 1000000); + return 1; } -void terminate() {} +void +terminate() +{ +} diff --git a/SRC/plugins/whois/whois.c b/SRC/plugins/whois/whois.c index dae2f68..bfe6404 100644 --- a/SRC/plugins/whois/whois.c +++ b/SRC/plugins/whois/whois.c @@ -14,106 +14,103 @@ #define MAX_REQUEST 256 struct addrinfo whois_server; -char *hostname; -const char *request = NULL; -int dump = FALSE; -int n; -int sockfd; -FILE *files = NULL; -poptContext whois_poptcon; +char *hostname; +const char *request = NULL; +int dump = FALSE; +int n; +int sockfd; +FILE *files = NULL; +poptContext whois_poptcon; void -whois_usage (const char *msg) +whois_usage(const char *msg) { - if (msg) - { - printf ("Error: %s\n", msg); - } - poptPrintUsage (whois_poptcon, stdout, 0); - fprintf (stderr, " request\n"); - exit (1); + if (msg) { + printf("Error: %s\n", msg); + } + poptPrintUsage(whois_poptcon, stdout, 0); + fprintf(stderr, " request\n"); + exit(1); } -char * -init (const int argc, const char **argv, echoping_options global_options) +char * +init(const int argc, const char **argv, echoping_options global_options) { - int value; - char *msg = malloc (256); - char *rest; - /* popt variables */ - struct poptOption options[] = { - {"dump", 'd', POPT_ARG_NONE, &dump, 'd', - "Dumps the reply from the whois server", - ""}, - POPT_AUTOHELP POPT_TABLEEND - }; - if (global_options.udp) - err_quit ("UDP is incompatible with this whois plugin"); - /* Will probably be catched before because /etc/services have no entry for UDP port 43 */ - whois_poptcon = poptGetContext (NULL, argc, - argv, options, POPT_CONTEXT_POSIXMEHARDER); - while ((value = poptGetNextOpt (whois_poptcon)) > 0) - { - switch ((char) value) - { - case 'd': - break; - default: - sprintf (msg, "Wrong option %d (%c)", value, (char) value); - whois_usage (msg); + int value; + char *msg = malloc(256); + char *rest; + /* popt variables */ + struct poptOption options[] = { + {"dump", 'd', POPT_ARG_NONE, &dump, 'd', + "Dumps the reply from the whois server", + ""}, + POPT_AUTOHELP POPT_TABLEEND + }; + if (global_options.udp) + err_quit("UDP is incompatible with this whois plugin"); + /* Will probably be catched before because /etc/services have no entry for + * UDP port 43 */ + whois_poptcon = poptGetContext(NULL, argc, + argv, options, POPT_CONTEXT_POSIXMEHARDER); + while ((value = poptGetNextOpt(whois_poptcon)) > 0) { + switch ((char) value) { + case 'd': + break; + default: + sprintf(msg, "Wrong option %d (%c)", value, (char) value); + whois_usage(msg); + } + } + if (value < -1) { + sprintf(msg, "%s: %s", + poptBadOption(whois_poptcon, POPT_BADOPTION_NOALIAS), + poptStrerror(value)); + whois_usage(msg); } - } - if (value < -1) - { - sprintf (msg, "%s: %s", - poptBadOption (whois_poptcon, POPT_BADOPTION_NOALIAS), - poptStrerror (value)); - whois_usage (msg); - } - request = (char *) poptGetArg (whois_poptcon); - if (request == NULL) - whois_usage ("Mandatory request missing"); - rest = (char *) poptGetArg (whois_poptcon); - if (rest != NULL && strcmp (rest, "")) - whois_usage ("Extraneous arguments ignored"); - return "nicname"; + request = (char *) poptGetArg(whois_poptcon); + if (request == NULL) + whois_usage("Mandatory request missing"); + rest = (char *) poptGetArg(whois_poptcon); + if (rest != NULL && strcmp(rest, "")) + whois_usage("Extraneous arguments ignored"); + return "nicname"; } void -start (struct addrinfo *res) +start(struct addrinfo *res) { - whois_server = *res; + whois_server = *res; } int -execute () +execute() { - int nr = 0; - char recvline[MAX_LINE + 1]; - char complete_request[MAX_REQUEST]; - if ((sockfd = - socket (whois_server.ai_family, whois_server.ai_socktype, - whois_server.ai_protocol)) < 0) - err_sys ("Can't open socket"); - if (connect (sockfd, whois_server.ai_addr, whois_server.ai_addrlen) < 0) - err_sys ("Can't connect to server"); - if ((files = fdopen (sockfd, "r")) == NULL) - err_sys ("Cannot fdopen"); - sprintf (complete_request, "%s\r\n", request); - n = strlen (complete_request); - if (writen (sockfd, complete_request, n) != n) - err_sys ("writen error on socket"); - /* Read from the server */ - while ((nr = readline (files, recvline, MAX_LINE, 0)) > 0) - if (dump) - printf ("%s", recvline); - if (dump) - printf ("\n"); - close (sockfd); - return 1; + int nr = 0; + char recvline[MAX_LINE + 1]; + char complete_request[MAX_REQUEST]; + if ((sockfd = + socket(whois_server.ai_family, whois_server.ai_socktype, + whois_server.ai_protocol)) < 0) + err_sys("Can't open socket"); + if (connect(sockfd, whois_server.ai_addr, whois_server.ai_addrlen) < 0) + err_sys("Can't connect to server"); + if ((files = fdopen(sockfd, "r")) == NULL) + err_sys("Cannot fdopen"); + sprintf(complete_request, "%s\r\n", request); + n = strlen(complete_request); + if (writen(sockfd, complete_request, n) != n) + err_sys("writen error on socket"); + /* Read from the server */ + while ((nr = readline(files, recvline, MAX_LINE, 0)) > 0) + if (dump) + printf("%s", recvline); + if (dump) + printf("\n"); + close(sockfd); + return 1; } void -terminate () +terminate() { } diff --git a/SRC/readline.c b/SRC/readline.c index 36b6b45..ab83ebe 100644 --- a/SRC/readline.c +++ b/SRC/readline.c @@ -8,219 +8,189 @@ #include "echoping.h" int -readline (fs, ptr, maxlen, ln) - FILE *fs; - char *ptr; - int maxlen; - unsigned short ln; +readline(fs, ptr, maxlen, ln) + FILE *fs; + char *ptr; + int maxlen; + unsigned short ln; { - int n = 1; - char *rc; - int r; + int n = 1; + char *rc; + int r; - /* Reading with fgets or fread instead of read - one-character-at-a-time is more than ten times faster, on a local - server. */ - if (ln) - { - rc = fgets (ptr, maxlen + 1, fs); - if (rc == NULL) - { - if (timeout_flag) - return n; - return (-1); - } - n = strlen (rc); - return n; - } - else - { - while (n < maxlen) - { - r = fread (ptr, 1, maxlen, fs); - if (timeout_flag) - return r; - if (r == 0) - { - if (n == 1) - return (0); /* EOF, no data read */ - else - break; /* EOF, some data was read */ - } - n = n + r; + /* Reading with fgets or fread instead of read one-character-at-a-time is + * more than ten times faster, on a local server. */ + if (ln) { + rc = fgets(ptr, maxlen + 1, fs); + if (rc == NULL) { + if (timeout_flag) + return n; + return (-1); + } + n = strlen(rc); + return n; + } else { + while (n < maxlen) { + r = fread(ptr, 1, maxlen, fs); + if (timeout_flag) + return r; + if (r == 0) { + if (n == 1) + return (0); /* EOF, no data read */ + else + break; /* EOF, some data was read */ + } + n = n + r; + } } - } - return (n); + return (n); } #ifdef OPENSSL -char SSL_buffer[MAXTOREAD]; -int buf_ptr; -int buf_end; +char SSL_buffer[MAXTOREAD]; +int buf_ptr; +int buf_end; int -SSL_readline (sslh, ptr, maxlen, ln) - SSL *sslh; - char *ptr; - int maxlen; - unsigned short ln; +SSL_readline(sslh, ptr, maxlen, ln) + SSL *sslh; + char *ptr; + int maxlen; + unsigned short ln; { - int rc = 0; - int n = 0; - int i, oi; - if (ln) - { - /* Empty buffer */ - if (buf_end == 0) - { - rc = SSL_read (sslh, SSL_buffer, maxlen); - if (rc == -1) - return rc; - buf_end = rc; - buf_ptr = 0; - } - /* No more data in the buffer */ - else if (buf_ptr == buf_end) - { - buf_ptr = 0; - rc = SSL_read (sslh, SSL_buffer, maxlen); - if (rc == -1) - return rc; - buf_end = rc; - } - else if (SSL_buffer[buf_end] != '\n') - { - /* We have a probleme here is the first SSL_read sent back - a text not finished by a \n. See www.SSL.de for an - example. We get more data. See bug #230384 */ - rc = SSL_read (sslh, SSL_buffer + buf_end, maxlen); - if (rc == -1) - return rc; - buf_end = buf_end + rc; - } - for (oi = buf_ptr, i = buf_ptr; - i <= buf_end && SSL_buffer[i] != '\n'; i++) - { - *ptr++ = SSL_buffer[i]; - buf_ptr++; - } - if (SSL_buffer[i] == '\n') - buf_ptr++; - *ptr = '\0'; - /* if (ln) - printf ("SSL_readline returns %d (%s)\n", i - oi, SSL_buffer); */ - return (i - oi); - } - else - { - /* OpenSSL reads at most 4096 characters */ - rc = 1; /* Just to avoid exiting too soon */ - while (n < maxlen && rc != 0) - { - if ((buf_end == 0) || (buf_ptr > buf_end)) - { - rc = SSL_read (sslh, ptr, maxlen); - buf_end = 0; - buf_ptr = 0; - } - else - { - for (i = buf_ptr; i < maxlen && i <= buf_end; i++) - { - *ptr++ = SSL_buffer[i]; - rc++; + int rc = 0; + int n = 0; + int i, oi; + if (ln) { + /* Empty buffer */ + if (buf_end == 0) { + rc = SSL_read(sslh, SSL_buffer, maxlen); + if (rc == -1) + return rc; + buf_end = rc; + buf_ptr = 0; + } + /* No more data in the buffer */ + else if (buf_ptr == buf_end) { + buf_ptr = 0; + rc = SSL_read(sslh, SSL_buffer, maxlen); + if (rc == -1) + return rc; + buf_end = rc; + } else if (SSL_buffer[buf_end] != '\n') { + /* We have a probleme here is the first SSL_read sent back a + * text not finished by a \n. See www.SSL.de for an example. + * We get more data. See bug #230384 */ + rc = SSL_read(sslh, SSL_buffer + buf_end, maxlen); + if (rc == -1) + return rc; + buf_end = buf_end + rc; + } + for (oi = buf_ptr, i = buf_ptr; + i <= buf_end && SSL_buffer[i] != '\n'; i++) { + *ptr++ = SSL_buffer[i]; + buf_ptr++; } - buf_ptr = i; - } - n = n + rc; + if (SSL_buffer[i] == '\n') + buf_ptr++; + *ptr = '\0'; + /* if (ln) printf ("SSL_readline returns %d (%s)\n", i - oi, + * SSL_buffer); */ + return (i - oi); + } else { + /* OpenSSL reads at most 4096 characters */ + rc = 1; /* Just to avoid exiting too soon */ + while (n < maxlen && rc != 0) { + if ((buf_end == 0) || (buf_ptr > buf_end)) { + rc = SSL_read(sslh, ptr, maxlen); + buf_end = 0; + buf_ptr = 0; + } else { + for (i = buf_ptr; i < maxlen && i <= buf_end; i++) { + *ptr++ = SSL_buffer[i]; + rc++; + } + buf_ptr = i; + } + n = n + rc; + } + return n; } - return n; - } } #endif #ifdef GNUTLS -char TLS_buffer[MAXTOREAD]; -int buf_ptr; -int buf_end; +char TLS_buffer[MAXTOREAD]; +int buf_ptr; +int buf_end; int -TLS_readline (session, ptr, maxlen, ln) - gnutls_session session; - char *ptr; - int maxlen; - unsigned short ln; +TLS_readline(session, ptr, maxlen, ln) + gnutls_session session; + char *ptr; + int maxlen; + unsigned short ln; { - int rc = 0; - int n = 0; - int i, oi; - if (ln) - { - /* Empty buffer */ - if (buf_end == 0) - { - rc = gnutls_record_recv (session, TLS_buffer, maxlen); - if (rc == -1) - return rc; - buf_end = rc; - buf_ptr = 0; - } - /* No more data in the buffer */ - else if (buf_ptr == buf_end) - { - buf_ptr = 0; - rc = gnutls_record_recv (session, TLS_buffer, maxlen); - if (rc == -1) - return rc; - buf_end = rc; - } - else if (TLS_buffer[buf_end] != '\n') - { - rc = gnutls_record_recv (session, TLS_buffer + buf_end, maxlen); - if (rc == -1) - return rc; - buf_end = buf_end + rc; - } - for (oi = buf_ptr, i = buf_ptr; - i <= buf_end && TLS_buffer[i] != '\n'; i++) - { - *ptr++ = TLS_buffer[i]; - buf_ptr++; - } - if (TLS_buffer[i] == '\n') - buf_ptr++; - *ptr = '\0'; - /* printf ("DEBUG: TLS_readline returns %d (%s)\n", i - oi, TLS_buffer); */ - return (i - oi); - } - else - { - rc = 1; /* Just to avoid exiting too soon */ - while (n < maxlen && rc > 0) - { - if ((buf_end == 0) || (buf_ptr > buf_end)) - { - rc = gnutls_record_recv (session, ptr, maxlen); - buf_end = 0; - buf_ptr = 0; - } - else - { - for (i = buf_ptr; i < maxlen && i <= buf_end; i++) - { - *ptr++ = TLS_buffer[i]; - rc++; - /* printf ("DEBUG: Now %d chars read\n", rc); */ + int rc = 0; + int n = 0; + int i, oi; + if (ln) { + /* Empty buffer */ + if (buf_end == 0) { + rc = gnutls_record_recv(session, TLS_buffer, maxlen); + if (rc == -1) + return rc; + buf_end = rc; + buf_ptr = 0; + } + /* No more data in the buffer */ + else if (buf_ptr == buf_end) { + buf_ptr = 0; + rc = gnutls_record_recv(session, TLS_buffer, maxlen); + if (rc == -1) + return rc; + buf_end = rc; + } else if (TLS_buffer[buf_end] != '\n') { + rc = gnutls_record_recv(session, TLS_buffer + buf_end, + maxlen); + if (rc == -1) + return rc; + buf_end = buf_end + rc; + } + for (oi = buf_ptr, i = buf_ptr; + i <= buf_end && TLS_buffer[i] != '\n'; i++) { + *ptr++ = TLS_buffer[i]; + buf_ptr++; + } + if (TLS_buffer[i] == '\n') + buf_ptr++; + *ptr = '\0'; + /* printf ("DEBUG: TLS_readline returns %d (%s)\n", i - oi, + * TLS_buffer); */ + return (i - oi); + } else { + rc = 1; /* Just to avoid exiting too soon */ + while (n < maxlen && rc > 0) { + if ((buf_end == 0) || (buf_ptr > buf_end)) { + rc = gnutls_record_recv(session, ptr, maxlen); + buf_end = 0; + buf_ptr = 0; + } else { + for (i = buf_ptr; i < maxlen && i <= buf_end; i++) { + *ptr++ = TLS_buffer[i]; + rc++; + /* printf ("DEBUG: Now %d chars read\n", + * rc); */ + } + buf_ptr = i; + } + if (rc > 0) + n = n + rc; + /* printf ("DEBUG: Now %d chars to send\n", n); */ } - buf_ptr = i; - } - if (rc > 0) - n = n + rc; - /* printf ("DEBUG: Now %d chars to send\n", n); */ + return n; } - return n; - } } #endif diff --git a/SRC/smtp.c b/SRC/smtp.c index 8aeaf90..3eff2d2 100644 --- a/SRC/smtp.c +++ b/SRC/smtp.c @@ -8,31 +8,27 @@ #ifdef SMTP -char big_recvline[MAXTOREAD]; +char big_recvline[MAXTOREAD]; int -smtp_read_response_from_server (FILE *fs) +smtp_read_response_from_server(FILE * fs) { - int nr; - int i; + int nr; + int i; - for (i = 0; i < MAXSMTPLINES; i++) - { - nr = readline (fs, big_recvline, MAXTOREAD, TRUE); - if (nr <= 4) - { - return -1; + for (i = 0; i < MAXSMTPLINES; i++) { + nr = readline(fs, big_recvline, MAXTOREAD, TRUE); + if (nr <= 4) { + return -1; + } + if (big_recvline[3] == ' ') { + return nr; + } + if (big_recvline[3] != '-') { + return -1; + } } - if (big_recvline[3] == ' ') - { - return nr; - } - if (big_recvline[3] != '-') - { - return -1; - } - } - return -1; + return -1; } -#endif /* SMTP */ +#endif /* SMTP */ diff --git a/SRC/util.c b/SRC/util.c index c764018..5cd4b37 100644 --- a/SRC/util.c +++ b/SRC/util.c @@ -9,44 +9,43 @@ #include #include -char * -random_string (unsigned length) +char * +random_string(unsigned length) { - char *state = (char *) malloc (sizeof (char) * STATES); - char *result = (char *) malloc (length + 1); - int i, number; - unsigned seed = (unsigned) time ((time_t *) NULL); + char *state = (char *) malloc(sizeof(char) * STATES); + char *result = (char *) malloc(length + 1); + int i, number; + unsigned seed = (unsigned) time((time_t *) NULL); - /* printf ("Seed is %u\n", seed); */ + /* printf ("Seed is %u\n", seed); */ - /* Initialize random generator */ - (void) initstate (seed, state, STATES); + /* Initialize random generator */ + (void) initstate(seed, state, STATES); - for (i = 0; i < length; i++) - { - number = (random () % 94) + 33; - /* printf ("Number for %d is %d\n", i, number); */ - result[i] = (char) number; - } - result[length] = '\0'; + for (i = 0; i < length; i++) { + number = (random() % 94) + 33; + /* printf ("Number for %d is %d\n", i, number); */ + result[i] = (char) number; + } + result[length] = '\0'; - /* printf ("Result is %s\n", result); */ + /* printf ("Result is %s\n", result); */ - return result; + return result; } -char * -to_upper (char *input) +char * +to_upper(char *input) { - int c; - char *result; - result = (char *) malloc (strlen (input)); - for (c = 0; c < strlen (input); c++) - result[c] = toupper (input[c]); - result[strlen (input)] = '\0'; - return result; + int c; + char *result; + result = (char *) malloc(strlen(input)); + for (c = 0; c < strlen(input); c++) + result[c] = toupper(input[c]); + result[strlen(input)] = '\0'; + return result; } /* @@ -54,155 +53,142 @@ to_upper (char *input) * >= in. Comes from the bing program. */ void -tvsub (out, in) - struct timeval *out, *in; +tvsub(out, in) + struct timeval *out, *in; { - if ((out->tv_usec -= in->tv_usec) < 0) - { - --out->tv_sec; - out->tv_usec += 1000000; - } - out->tv_sec -= in->tv_sec; + if ((out->tv_usec -= in->tv_usec) < 0) { + --out->tv_sec; + out->tv_usec += 1000000; + } + out->tv_sec -= in->tv_sec; } /* tvadd -- Adds 2 timeval structs: out = out + in. */ void -tvadd (out, in) - struct timeval *out, *in; +tvadd(out, in) + struct timeval *out, *in; { - if ((out->tv_usec += in->tv_usec) >= 1000000) - { - ++out->tv_sec; - out->tv_usec -= 1000000; - } - out->tv_sec += in->tv_sec; + if ((out->tv_usec += in->tv_usec) >= 1000000) { + ++out->tv_sec; + out->tv_usec -= 1000000; + } + out->tv_sec += in->tv_sec; } /* tvavg -- Averages a timeval struct */ void -tvavg (out, number) - struct timeval *out; - int number; +tvavg(out, number) + struct timeval *out; + int number; { - double result; - /* - * out->tv_sec = out->tv_sec/number; out->tv_usec = - * out->tv_usec/number; - */ - result = (1000000 * out->tv_sec + out->tv_usec) / number; - /* printf ("Result of average is %f\n", result) */ ; - out->tv_sec = (long) (result / 1000000); - out->tv_usec = (long) (result - (out->tv_sec * 1000000)); + double result; + /* + * out->tv_sec = out->tv_sec/number; out->tv_usec = + * out->tv_usec/number; + */ + result = (1000000 * out->tv_sec + out->tv_usec) / number; + /* printf ("Result of average is %f\n", result) */ ; + out->tv_sec = (long) (result / 1000000); + out->tv_usec = (long) (result - (out->tv_sec * 1000000)); } /* tvstddev -- Computes the standard deviation of a set of results */ void -tvstddev (out, number, average, results) - struct timeval *out; - int number; - struct timeval average; - struct result *results; +tvstddev(out, number, average, results) + struct timeval *out; + int number; + struct timeval average; + struct result *results; { - int i; - struct timeval result, avg, var = null_timeval; - struct timeval square, large, small; - *out = null_timeval; - for (i = 0; i < number; i++) - { - if (results[i].valid == 1) - { - result = results[i].timevalue; - /* printf ("value is %f (average is %f)\n", - tv2double (result), tv2double (average)); */ - avg = average; - if (tvcmp (&result, &avg) == -1) - { - small = result; - large = avg; - } - else - { - large = result; - small = avg; - } - tvsub (&large, &small); - /* printf ("abs offset is %f\n", tv2double (large)); */ - square = double2tv (pow (tv2double (large), 2)); - tvadd (&var, &square); - /* printf ("variance is now %f\n", tv2double (var)); */ + int i; + struct timeval result, avg, var = null_timeval; + struct timeval square, large, small; + *out = null_timeval; + for (i = 0; i < number; i++) { + if (results[i].valid == 1) { + result = results[i].timevalue; + /* printf ("value is %f (average is %f)\n", tv2double + * (result), tv2double (average)); */ + avg = average; + if (tvcmp(&result, &avg) == -1) { + small = result; + large = avg; + } else { + large = result; + small = avg; + } + tvsub(&large, &small); + /* printf ("abs offset is %f\n", tv2double (large)); */ + square = double2tv(pow(tv2double(large), 2)); + tvadd(&var, &square); + /* printf ("variance is now %f\n", tv2double (var)); */ + } } - } - result = double2tv (sqrt (tv2double (var) / number)); - out->tv_sec = result.tv_sec; - out->tv_usec = result.tv_usec; + result = double2tv(sqrt(tv2double(var) / number)); + out->tv_sec = result.tv_sec; + out->tv_usec = result.tv_usec; } /* tvcmp -- Compares two timeval structs */ int -tvcmp (left, right) - struct timeval *left, *right; +tvcmp(left, right) + struct timeval *left, *right; { - if (left->tv_sec < right->tv_sec) - { - return -1; - } - if (left->tv_sec > right->tv_sec) - { - return 1; - } - if (left->tv_usec < right->tv_usec) - { - return -1; - } - if (left->tv_usec > right->tv_usec) - { - return 1; - } - return 0; + if (left->tv_sec < right->tv_sec) { + return -1; + } + if (left->tv_sec > right->tv_sec) { + return 1; + } + if (left->tv_usec < right->tv_usec) { + return -1; + } + if (left->tv_usec > right->tv_usec) { + return 1; + } + return 0; } /* tvmin */ void -tvmin (champion, challenger) - struct timeval *champion, *challenger; +tvmin(champion, challenger) + struct timeval *champion, *challenger; { - if (tvcmp (champion, challenger) == 1) - { - champion->tv_sec = challenger->tv_sec; - champion->tv_usec = challenger->tv_usec; - } + if (tvcmp(champion, challenger) == 1) { + champion->tv_sec = challenger->tv_sec; + champion->tv_usec = challenger->tv_usec; + } } /* tvmax */ void -tvmax (champion, challenger) - struct timeval *champion, *challenger; +tvmax(champion, challenger) + struct timeval *champion, *challenger; { - if (tvcmp (champion, challenger) == -1) - { - champion->tv_sec = challenger->tv_sec; - champion->tv_usec = challenger->tv_usec; - } + if (tvcmp(champion, challenger) == -1) { + champion->tv_sec = challenger->tv_sec; + champion->tv_usec = challenger->tv_usec; + } } double -tv2double (tv) - struct timeval tv; +tv2double(tv) + struct timeval tv; { - double result; - result = - (((((double) tv.tv_sec) * 1000000.0) + (double) tv.tv_usec) / 1000000.0); - /* printf ("Double is %9.3f\n", result); */ - return result; + double result; + result = + (((((double) tv.tv_sec) * 1000000.0) + (double) tv.tv_usec) / 1000000.0); + /* printf ("Double is %9.3f\n", result); */ + return result; } struct timeval -double2tv (x) - double x; +double2tv(x) + double x; { - struct timeval result; - result.tv_sec = (int) (x); - result.tv_usec = (int) ((x - result.tv_sec) * 1000000); - return result; + struct timeval result; + result.tv_sec = (int) (x); + result.tv_usec = (int) ((x - result.tv_sec) * 1000000); + return result; } diff --git a/SRC/writen.c b/SRC/writen.c index 22f70d1..8398fd6 100644 --- a/SRC/writen.c +++ b/SRC/writen.c @@ -8,26 +8,25 @@ #include "echoping.h" int -writen (fd, ptr, nbytes) - register int fd; - register char *ptr; - register int nbytes; +writen(fd, ptr, nbytes) + register int fd; + register char *ptr; + register int nbytes; { - int nleft, nwritten; + int nleft, nwritten; - nleft = nbytes; - while (nleft > 0) - { - nwritten = write (fd, ptr, nleft); - if (nwritten <= 0) - return (nwritten); /* error */ - /* Some systems, such as Digital's OSF1 (Digital Unix) doesn't set the returned - value to -1, even when interrupted by an alarm, whatever says the documentation. - errno is not set. */ - if ((nwritten < nleft) && timeout_flag) - return nwritten; - nleft -= nwritten; - ptr += nwritten; - } - return (nbytes - nleft); + nleft = nbytes; + while (nleft > 0) { + nwritten = write(fd, ptr, nleft); + if (nwritten <= 0) + return (nwritten); /* error */ + /* Some systems, such as Digital's OSF1 (Digital Unix) doesn't set + * the returned value to -1, even when interrupted by an alarm, + * whatever says the documentation. errno is not set. */ + if ((nwritten < nleft) && timeout_flag) + return nwritten; + nleft -= nwritten; + ptr += nwritten; + } + return (nbytes - nleft); }