--- 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 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