From 8b65d18653bb7a5c7aba714de0767a1e93ef78c1 Mon Sep 17 00:00:00 2001 From: sr Date: Fri, 26 Jul 2013 18:42:52 +0200 Subject: [SERVER] Still working on the uplink... Almost there --- src/server/server.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/server/server.c') diff --git a/src/server/server.c b/src/server/server.c index 575d9c4..cc7a76a 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "../types.h" #include "../version.h" @@ -147,7 +148,7 @@ int main(int argc, char *argv[]) static const struct option longOpts[] = { { "file", required_argument, NULL, 'f' }, { "delay", required_argument, NULL, 'd' }, { "nodaemon", no_argument, NULL, 'n' }, { "reload", no_argument, NULL, 'r' }, { "stop", no_argument, NULL, 's' }, { "info", no_argument, NULL, 'i' }, { "help", no_argument, NULL, 'H' }, { "version", no_argument, NULL, 'v' }, { "crc", required_argument, - NULL, 'crc4' }, { 0, 0, 0, 0 } }; + NULL, 'crc4' }, { "assert", no_argument, NULL, 'asrt' }, { 0, 0, 0, 0 } }; opt = getopt_long( argc, argv, optString, longOpts, &longIndex ); @@ -187,6 +188,11 @@ int main(int argc, char *argv[]) break; case 'crc4': return image_generate_crc_file( optarg ) ? 0 : EXIT_FAILURE; + case 'asrt': + printf("Testing a failing assertion:\n"); + assert( 4 == 5 ); + printf("Assertion 4 == 5 seems to hold. ;-)\n"); + return EXIT_SUCCESS; } opt = getopt_long( argc, argv, optString, longOpts, &longIndex ); } @@ -312,6 +318,7 @@ dnbd3_client_t* dnbd3_init_client(struct sockaddr_storage *client, int fd) } dnbd3_client->sock = fd; spin_init( &dnbd3_client->lock, PTHREAD_PROCESS_PRIVATE ); + pthread_mutex_init( &dnbd3_client->sendMutex, NULL ); return dnbd3_client; } @@ -352,6 +359,9 @@ dnbd3_client_t* dnbd3_free_client(dnbd3_client_t *client) client->image = NULL; spin_unlock( &client->lock ); spin_destroy( &client->lock ); + pthread_mutex_lock( &client->sendMutex ); + pthread_mutex_unlock( &client->sendMutex ); + pthread_mutex_destroy( &client->sendMutex ); free( client ); return NULL ; } -- cgit v1.2.3-55-g7522