socsvn commit: r308177 - soc2016/yuanxunzhang/head/usr.sbin/eaps

yuanxunzhang at FreeBSD.org yuanxunzhang at FreeBSD.org
Mon Aug 22 15:08:10 UTC 2016


Author: yuanxunzhang
Date: Mon Aug 22 15:08:09 2016
New Revision: 308177
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=308177

Log:
  EAPS: fix set_eaps_hellotime bugs

Modified:
  soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c

Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c
==============================================================================
--- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c	Mon Aug 22 14:53:39 2016	(r308176)
+++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c	Mon Aug 22 15:08:09 2016	(r308177)
@@ -134,6 +134,10 @@
 			break;
 		case K_HELLOTIME:
 			set_eaps_hellotime(argc, argv, s);
+			break;
+		case K_FAILTIME:
+			set_eaps_failtime(argc, argv, s);
+			break;
 		}
 	usage(*argv);
 	return retval;
@@ -227,8 +231,8 @@
 		printf("state: %s\n", eaps_state_message[es.state]);
 		printf("\tswitch mode: %s\n", eaps_mode_message[es.mode]);
 		printf("\tpriority: %s\n", eaps_priority_message[es.priority]);
-		printf("\thellotime: %d\n", es.hellotime);
-		printf("\tfailtime: %d\n", es.failtime);
+		printf("\thellotime: %d (milliseconds)\n", es.hellotime);
+		printf("\tfailtime: %d (milliseconds)\n", es.failtime);
 	} else {
 		printf("Debug print: ioctl failed!\n");
 		err(1, "SIOCSEAPSDOMAIN");
@@ -323,10 +327,14 @@
 	int32_t hellotime = atoi(*(++argv));
 	printf("Debug print: set_eaps_hellotime %d!\n", hellotime);
 
-	// hellotime must be greater than 0
-	if (hellotime <= 0)
-	{
-		err(1, "invalid hellotime, hellotime must be greater than 0");
+	// get current value of failtime, because hellotime must be greater than failtime
+	if (ioctl(s, SIOCSEAPSDOMAIN, &es) == 0) {
+		if (hellotime >= es.failtime) {
+			err(1, "invalid failtime, hellotime must be greater than failtime");
+		}
+	}else {
+		printf("Debug print: ioctl failed!\n");
+		err(1, "SIOCSEAPSDOMAIN");
 	}
 
 	es.hellotime = hellotime;


More information about the svn-soc-all mailing list