X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftlsproxy.c;h=ba8386b2125c9ddf56efae46848eb772ff484701;hb=3b4f4a15dc1ce69b65dc2c09d8743f7ed30662e4;hp=0f3481efab96694813d781b9eba91c7b08f5042a;hpb=0a20ac33156b4978352223e461c77194f75fe814;p=tlsproxy%2Ftlsproxy.git diff --git a/src/tlsproxy.c b/src/tlsproxy.c index 0f3481e..ba8386b 100644 --- a/src/tlsproxy.c +++ b/src/tlsproxy.c @@ -76,7 +76,7 @@ static void print_usage(const char *argv); static void initialize_gnutls(void); static void deinitialize_gnutls(void); -static void worker_thread(void); +static void *worker_thread(void *unused); int main(int argc, char **argv) { @@ -97,8 +97,7 @@ int main(int argc, char **argv) { port = atoi(argv[argc - 1]); if (port <= 0 || port > 0xffff ) { - print_usage(argv[0]); - fprintf(stderr, "\ninvalid port: '%s'\n", argv[argc - 1]); + fprintf(stderr, "invalid port: '%s'\n", argv[argc - 1]); return EXIT_FAILURE; } @@ -136,9 +135,7 @@ int main(int argc, char **argv) { return EXIT_FAILURE; } for (i = 0; i < thread_count; i++) { - errno = pthread_create(threads + i, NULL, - (void * (*)(void *))&worker_thread, - NULL); + errno = pthread_create(threads + i, NULL, &worker_thread, NULL); if (errno != 0) { perror("failed to create worker thread"); return EXIT_FAILURE; @@ -225,9 +222,9 @@ int main(int argc, char **argv) { } } - free(ringbuffer_full); - free(ringbuffer_free); - free(ringbuffer_lock); + sem_del(ringbuffer_full); + sem_del(ringbuffer_free); + sem_del(ringbuffer_lock); free(threads); @@ -264,8 +261,7 @@ static void parse_arguments(int argc, char **argv) { case 'd': { global_log_level = atoi(optarg); if (global_log_level < 0) { - print_usage(argv[0]); - fprintf(stderr, "\n-d positive number required: '%s'\n", + fprintf(stderr, "-d positive number required: '%s'\n", optarg); exit(EXIT_FAILURE); } @@ -280,9 +276,8 @@ static void parse_arguments(int argc, char **argv) { || strlen(position + 1) == 0 || atoi(position + 1) <= 0 || atoi(position + 1) > 0xffff) { - print_usage(argv[0]); - fprintf(stderr, "\ninvalid -p: '%s', format host:port\n", - optarg); + fprintf(stderr, "invalid -p: '%s', format host:port\n", + optarg); exit(EXIT_FAILURE); } @@ -305,8 +300,7 @@ static void parse_arguments(int argc, char **argv) { } case 't': { if (atoi(optarg) <= 0) { - print_usage(argv[0]); - fprintf(stderr, "\n-t positive number required: '%s'\n", + fprintf(stderr, "-t positive number required: '%s'\n", optarg); exit(EXIT_FAILURE); } @@ -325,8 +319,7 @@ static void parse_arguments(int argc, char **argv) { } if (optind >= argc) { - print_usage(argv[0]); - fprintf(stderr, "\nport missing\n"); + fprintf(stderr, "port missing\n"); exit(EXIT_FAILURE); } } @@ -384,9 +377,11 @@ static void deinitialize_gnutls(void) { gnutls_global_deinit(); } -static void worker_thread(void) { +static void *worker_thread(void *unused) { int client_socket; + (void)unused; + for (;;) { /* Get next element from ring buffer. */ P(ringbuffer_full); @@ -403,4 +398,6 @@ static void worker_thread(void) { handle_connection(client_socket); } + + return NULL; }