sgsnemu: Make use of "dependon" feature in gengetopt

The gengetopt syntax can specify that a particular command line argument
depends on some other argument/option present.  We can use this to
provide useful feedback to the user at the command line parsing state,
like --pingrate making no sense without --pinghost being specified.

Change-Id: Ief27275e90e6bce23aed1e83874dbac98dd0926b
diff --git a/sgsnemu/cmdline.c b/sgsnemu/cmdline.c
index 441322b..1c02baa 100644
--- a/sgsnemu/cmdline.c
+++ b/sgsnemu/cmdline.c
@@ -676,12 +676,60 @@
 	/* checks for required options */
 
 	/* checks for dependences among options */
+	if (args_info->net_given && !args_info->createif_given) {
+		fprintf(stderr,
+			"%s: '--net' ('-n') option depends on option 'createif'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
+	if (args_info->defaultroute_given && !args_info->createif_given) {
+		fprintf(stderr,
+			"%s: '--defaultroute' option depends on option 'createif'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
+	if (args_info->ipup_given && !args_info->createif_given) {
+		fprintf(stderr,
+			"%s: '--ipup' option depends on option 'createif'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
+	if (args_info->ipdown_given && !args_info->createif_given) {
+		fprintf(stderr,
+			"%s: '--ipdown' option depends on option 'createif'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
 	if (args_info->tun_device_given && !args_info->createif_given) {
 		fprintf(stderr,
 			"%s: '--tun-device' option depends on option 'createif'%s\n",
 			prog_name, (additional_error ? additional_error : ""));
 		error_occurred = 1;
 	}
+	if (args_info->pingrate_given && !args_info->pinghost_given) {
+		fprintf(stderr,
+			"%s: '--pingrate' option depends on option 'pinghost'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
+	if (args_info->pingsize_given && !args_info->pinghost_given) {
+		fprintf(stderr,
+			"%s: '--pingsize' option depends on option 'pinghost'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
+	if (args_info->pingcount_given && !args_info->pinghost_given) {
+		fprintf(stderr,
+			"%s: '--pingcount' option depends on option 'pinghost'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
+	if (args_info->pingquiet_given && !args_info->pinghost_given) {
+		fprintf(stderr,
+			"%s: '--pingquiet' option depends on option 'pinghost'%s\n",
+			prog_name, (additional_error ? additional_error : ""));
+		error_occurred = 1;
+	}
 
 	return error_occurred;
 }