]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/blobdiff - src/tlsproxy.c
src/*,tests/*: Update copyright year.
[tlsproxy/tlsproxy.git] / src / tlsproxy.c
index 3fa03e3b4065f8b67fd8956d0367a031228bca4e..4bfc88d4f786ce68f21502e727bfbe6afcc00445 100644 (file)
@@ -3,7 +3,7 @@
  * ensures the server certificate doesn't change. Normally this isn't detected
  * if a trusted CA for the new server certificate is installed.
  *
- * Copyright (C) 2011  Simon Ruderich
+ * Copyright (C) 2011-2013  Simon Ruderich
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -105,15 +105,15 @@ int main(int argc, char **argv) {
     port = atoi(argv[argc - 1]);
     if (0 >= port || 0xffff < port) {
         print_usage(argv[0]);
-        fprintf(stderr, "\ninvalid port\n");
+        fprintf(stderr, "\ninvalid port: '%s'\n", argv[argc - 1]);
         return EXIT_FAILURE;
     }
 
-    /* Setup our SIGINT signal handler which allows a "normal" termination of
-     * the server in DEBUG mode. */
     sigemptyset(&action.sa_mask);
     action.sa_flags   = 0;
 #ifdef DEBUG
+    /* Setup our SIGINT signal handler which allows a "normal" termination of
+     * the server in DEBUG mode. */
     action.sa_handler = sigint_handler;
     sigaction(SIGINT, &action, NULL);
 #endif
@@ -137,7 +137,7 @@ int main(int argc, char **argv) {
     initialize_gnutls();
 
     /* Spawn worker threads to handle requests. */
-    threads = (pthread_t *)malloc(thread_count * sizeof(pthread_t));
+    threads = malloc(thread_count * sizeof(*threads));
     if (NULL == threads) {
         perror("thread malloc failed");
         return EXIT_FAILURE;
@@ -198,6 +198,7 @@ int main(int argc, char **argv) {
     }
 
     if (LOG_DEBUG_LEVEL <= global_log_level) {
+        printf("tlsproxy %s\n", VERSION);
         printf("Listening for connections on port %d.\n", port);
 
         if (NULL != global_proxy_host && NULL != global_proxy_port) {
@@ -214,7 +215,7 @@ int main(int argc, char **argv) {
             break;
         }
 
-        /* No lock, we only have one producer! */
+        /* No lock necessary, we only have one producer! */
         P(ringbuffer_free);
         ringbuffer[ringbuffer_write] = client_socket;
         ringbuffer_write = (ringbuffer_write + 1) % RINGBUFFER_SIZE;
@@ -234,7 +235,6 @@ int main(int argc, char **argv) {
         errno = pthread_join(threads[i], NULL);
         if (0 != errno) {
             perror("pthread_join()");
-            continue;
         }
     }
 
@@ -277,7 +277,8 @@ static void parse_arguments(int argc, char **argv) {
             case 'd': {
                 if (0 > atoi(optarg)) {
                     print_usage(argv[0]);
-                    fprintf(stderr, "\n-d positive number required\n");
+                    fprintf(stderr, "\n-d positive number required: '%s'\n",
+                                    optarg);
                     exit(EXIT_FAILURE);
                 }
                 global_log_level = atoi(optarg);
@@ -293,7 +294,8 @@ static void parse_arguments(int argc, char **argv) {
                         || 0 >= atoi(position + 1)
                         || 0xffff < atoi(position + 1)) {
                     print_usage(argv[0]);
-                    fprintf(stderr, "\ninvalid -p, format host:port\n");
+                    fprintf(stderr, "\ninvalid -p: '%s', format host:port\n",
+                            optarg);
                     exit(EXIT_FAILURE);
                 }
 
@@ -317,7 +319,8 @@ static void parse_arguments(int argc, char **argv) {
             case 't': {
                 if (0 >= atoi(optarg)) {
                     print_usage(argv[0]);
-                    fprintf(stderr, "\n-t positive number required\n");
+                    fprintf(stderr, "\n-t positive number required: '%s'\n",
+                                    optarg);
                     exit(EXIT_FAILURE);
                 }
                 thread_count = (size_t)atoi(optarg);
@@ -341,6 +344,8 @@ static void parse_arguments(int argc, char **argv) {
     }
 }
 static void print_usage(const char *argv) {
+    fprintf(stderr, "tlsproxy %s, a certificate checking TLS proxy\n",
+                    VERSION);
     fprintf(stderr, "Usage: %s [-d level] [-p host:port] [-t count] [-u] port\n",
                     argv);
     fprintf(stderr, "\n");