[svn-commits] mspiceland: branch linux/rmeyerriecks/dahdi-tools-maintmodes r7453 - /linux/t...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Oct 30 15:33:57 CDT 2009


Author: mspiceland
Date: Fri Oct 30 15:33:54 2009
New Revision: 7453

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=7453
Log:
Use getopts long so that we can use things like --help instead of just -h.

Print a help/usage screen for quick reference.

Modified:
    linux/team/rmeyerriecks/dahdi-tools-maintmodes/dahdi_maint.c

Modified: linux/team/rmeyerriecks/dahdi-tools-maintmodes/dahdi_maint.c
URL: http://svnview.digium.com/svn/dahdi/linux/team/rmeyerriecks/dahdi-tools-maintmodes/dahdi_maint.c?view=diff&rev=7453&r1=7452&r2=7453
==============================================================================
--- linux/team/rmeyerriecks/dahdi-tools-maintmodes/dahdi_maint.c (original)
+++ linux/team/rmeyerriecks/dahdi-tools-maintmodes/dahdi_maint.c Fri Oct 30 15:33:54 2009
@@ -14,6 +14,23 @@
 extern char *optarg;
 extern int optind;
 
+void display_help(void)
+{
+	fprintf(stderr, "Usage: dahdi_maint -s <span num> [-h|--help] <-j|--local [on|off]>\n");
+	fprintf(stderr, "Options:\n");
+	fprintf(stderr, "        -h, --help		display help\n");
+	fprintf(stderr, "        -s, --span <span num>	specify the span\n");
+	fprintf(stderr, "        -j, --host <on|off>	turn on/off local host looopback\n");
+	fprintf(stderr, "        -l, --line <on|off>	turn on/off network line looopback\n");
+	fprintf(stderr, "        -p, --payload <on|off>	turn on/off network payload looopback\n");
+	fprintf(stderr, "        -i, --insert <fas|multi|crc|cas|prbs|bipolar>	insert an error of a specific type\n");
+	fprintf(stderr, "Examples: \n");
+	fprintf(stderr, "Enable local host loopback (virtual loopback plug)\n");
+	fprintf(stderr, "	dahdi_maint -s 1 --local on\n");
+	fprintf(stderr, "Disable local host loopback (virtual loopback plug)\n");
+	fprintf(stderr, "	dahdi_maint -s 1 --local off\n");
+}
+
 int main(int argc, char *argv[]) {
 	static int ctl = -1;
 	int res;
@@ -25,8 +42,8 @@
 	int networkpayloadloopback= 0;
 	char *parg = NULL;
 	int sflag = 0;
-	int span = 0;
-	int dflag = 0;
+	int span = 1;
+	int iflag = 0;
 	char *darg = NULL;
 	int gflag = 0;
 	int c;
@@ -34,9 +51,30 @@
 	struct dahdi_maintinfo m;
 	struct dahdi_spaninfo s;
 
-	while((c = getopt(argc, argv, "h:l:p:s:d:g")) != -1) {
+	static struct option long_options[] =
+	{
+		{"help",    no_argument,       0, 'h'},
+		{"host",    required_argument, 0, 'j'},
+		{"line",    required_argument, 0, 'l'},
+		{"payload", required_argument, 0, 'p'},
+		{"span",    required_argument, 0, 's'},
+		{"insert",  required_argument, 0, 'd'},
+		{0,0,0,0}
+	};
+	int option_index = 0;
+
+	if (argc < 2) { /* no options */
+		display_help();
+		exit(1);
+	}
+
+	while((c = getopt_long(argc, argv, "hj:l:p:s:i:g", long_options, &option_index)) != -1) {
 			switch(c) {
 			case 'h': /* local host loopback */
+				display_help();
+				exit(1);
+				break;
+			case 'j': /* local host loopback */
 				harg = optarg;
 				localhostloopback = 1;
 				break;
@@ -52,9 +90,9 @@
 				span = atoi(optarg);
 				sflag = 1;
 				break;
-			case 'd': /* insert an error */
+			case 'i': /* insert an error */
 				darg = optarg;
-				dflag = 1;
+				iflag = 1;
 				break;
 			case 'g': /* generate psuedo random sequence */
 				gflag = 1;
@@ -68,20 +106,17 @@
 		return -1;
 	}
 
-	if(!sflag) {
-		// Eventually Figure out how many spans are active
-		int i;
-		for(i = 1; i < 3; i++) {
-			s.spanno = i;
-			res = ioctl(ctl, DAHDI_SPANSTAT, &s);	
-			printf("Span %d:\n", i);
-			printf(">FEC : %d:\n", s.fecount);
-			printf(">CEC : %d:\n", s.crc4count);
-			printf(">CVC : %d:\n", s.cvcount);
-			printf(">EBC : %d:\n", s.ebitcount);
-			printf(">BEC : %d:\n", s.becount);
-			printf(">PRBS: %d:\n", s.prbscount);
-		}
+	if(!(localhostloopback || networklineloopback || networkpayloadloopback || gflag)) {
+		s.spanno = span;
+		res = ioctl(ctl, DAHDI_SPANSTAT, &s);	
+		printf("Span %d:\n", span);
+		printf(">FEC : %d:\n", s.fecount);
+		printf(">CEC : %d:\n", s.crc4count);
+		printf(">CVC : %d:\n", s.cvcount);
+		printf(">EBC : %d:\n", s.ebitcount);
+		printf(">BEC : %d:\n", s.becount);
+		printf(">PRBS: %d:\n", s.prbscount);
+	
 		return 0;
 	}
 
@@ -127,7 +162,7 @@
 		res = ioctl(ctl, DAHDI_MAINT, &m);
 	}
 
-	if(dflag) {
+	if(iflag) {
 		if(!strcasecmp(darg, "fas")) {
 			m.command = DAHDI_MAINT_FAS_DEFECT;
 			printf("Inserting a single FAS defect\n");




More information about the svn-commits mailing list