Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Apr 2000 07:56:24 -0400 (EDT)
From:      "James E. Housley" <housley@thehousleys.net>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   sparc/17898: Patch to new version of helathd
Message-ID:  <200004101156.HAA48141@thehousleys.net>

next in thread | raw e-mail | index | archive | help

>Number:         17898
>Category:       sparc
>Synopsis:       Patch to new version of healthd
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-sparc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Apr 10 05:00:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     James E. Housley
>Release:        FreeBSD 3.4-STABLE i386
>Organization:
The Housleys dot Net
>Environment:

	

>Description:

	

>How-To-Repeat:

	

>Fix:
	

--- healthd.c	2000/04/09 20:59:07	1.1.1.6
+++ healthd.c	2000/04/10 11:52:57	1.1.1.7
@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: healthd.c,v 1.1.1.6 2000/04/09 20:59:07 housley Exp $
+ * $Id: healthd.c,v 1.1.1.7 2000/04/10 11:52:57 housley Exp $
  *
  * $FreeBSD$
  */
@@ -604,8 +604,10 @@
 
     case 'c':
       count = atoi(optarg);
-      if (count < 1)
+      if (count < 1) {
          count = 0;
+      }
+      debug=1;
       break;
 
     case 'd':
@@ -668,68 +670,79 @@
     }
   }
 
-  /* Create socket from which to read. */
-  sock = socket(AF_INET, SOCK_STREAM, 0);
-  if (sock < 0) {
-    perror("opening datagram socket");
-    exit(1);
-  }
-  /* Create name with wildcards. */
-  server.sin_family = AF_INET;
-  server.sin_addr.s_addr = INADDR_ANY;
-  server.sin_port = htons(9669);
-  if (bind(sock, (struct sockaddr *)&server, sizeof(struct sockaddr_in))) {
-    perror("binding datagram socket");
-    exit(1);
-  }
-  /* Find assigned port value and print it out. */
-  length = sizeof(server);
-  if (getsockname(sock, (struct sockaddr *)&server, &length)) {
-    perror("getting socket name");
-    exit(1);
+  if (debug == 0) {
+    /* Create socket from which to read. */
+    sock = socket(AF_INET, SOCK_STREAM, 0);
+    if (sock < 0) {
+      perror("opening datagram socket");
+      exit(1);
+    }
+    /* Create name with wildcards. */
+    server.sin_family = AF_INET;
+    server.sin_addr.s_addr = INADDR_ANY;
+    server.sin_port = htons(9669);
+    if (bind(sock, (struct sockaddr *)&server, sizeof(struct sockaddr_in))) {
+      perror("binding datagram socket");
+      exit(1);
+    }
+    /* Find assigned port value and print it out. */
+    length = sizeof(server);
+    if (getsockname(sock, (struct sockaddr *)&server, &length)) {
+      perror("getting socket name");
+      exit(1);
+    }
   }
   ReadCurrentValues();
   time(&now);
   time(&tloc);
-  /* Start accepting connections */
-  listen(sock, 5);
+  if (debug == 0) {
+    /* Start accepting connections */
+    listen(sock, 5);
+  }
   while ((iter<count) || (count==0)) {
     FD_ZERO(&ready);
-    FD_SET(sock, &ready);
+    if (debug == 1) {
+      FD_SET(fileno(stdin), &ready);
+    } else {
+      FD_SET(sock, &ready);
+    }
     to.tv_sec = 0;
     to.tv_usec = 100;
     if (select(50, &ready, 0, 0, &to) < 0) {
       continue;
     }
-    if (FD_ISSET(sock, &ready)) {
-      msgsock = accept(sock, 0, 0);
-      if (msgsock == -1) {
-      } else {
-	do {
-	  bzero(buf, sizeof(buf));
-	  bzero(outbuf, sizeof(outbuf));
-	  if ((rval = read(msgsock, buf, 1024)) < 0) {
-	  }
-	  if (rval == 0) {
-	  } else {
-	    GetAnswer(buf, outbuf);
-	    write(msgsock, outbuf, strlen(outbuf));
-	  }
-	} while (rval != 0);
-	close(msgsock);
-      }
-    } else {
-      time(&tloc);
-      if (sec <= (int)difftime(tloc, now)) {
-	if (count > 0) {
-	  iter++;
+    if (debug == 0) {
+      if (FD_ISSET(sock, &ready)) {
+	msgsock = accept(sock, 0, 0);
+	if (msgsock == -1) {
+	} else {
+	  do {
+	    bzero(buf, sizeof(buf));
+	    bzero(outbuf, sizeof(outbuf));
+	    if ((rval = read(msgsock, buf, 1024)) < 0) {
+	    }
+	    if (rval == 0) {
+	    } else {
+	      GetAnswer(buf, outbuf);
+	      write(msgsock, outbuf, strlen(outbuf));
+	    }
+	  } while (rval != 0);
+	  close(msgsock);
 	}
-	ReadCurrentValues();
-	time(&now);
       }
     }
+    time(&tloc);
+    if (sec <= (int)difftime(tloc, now)) {
+      if (count > 0) {
+	iter++;
+      }
+      ReadCurrentValues();
+      time(&now);
+    }
+  }
+  if (debug == 0) {
+    close(sock);
   }
-  close(sock);
 }
 
 void


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-sparc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200004101156.HAA48141>