Author: pjd
Date: Mon Jun 14 21:18:58 2010
New Revision: 209177
URL: http://svn.freebsd.org/changeset/base/209177

Log:
  Remove macros that are not really needed. The idea was to have them in case
  we grow more descriptors, but I'll reconsider readding them once we get there.
  
  Passing (a = b) expression to FD_ISSET() is bad idea, as FD_ISSET() evaluates
  its argument twice.
  
  Found by:     Coverity Prevent
  CID:          5243
  MFC after:    3 days

Modified:
  head/sbin/hastd/hastd.c

Modified: head/sbin/hastd/hastd.c
==============================================================================
--- head/sbin/hastd/hastd.c     Mon Jun 14 21:11:23 2010        (r209176)
+++ head/sbin/hastd/hastd.c     Mon Jun 14 21:18:58 2010        (r209177)
@@ -400,7 +400,11 @@ static void
 main_loop(void)
 {
        fd_set rfds, wfds;
-       int fd, maxfd, ret;
+       int cfd, lfd, maxfd, ret;
+
+       cfd = proto_descriptor(cfg->hc_controlconn);
+       lfd = proto_descriptor(cfg->hc_listenconn);
+       maxfd = cfd > lfd ? cfd : lfd;
 
        for (;;) {
                if (sigchld_received) {
@@ -412,22 +416,13 @@ main_loop(void)
                        hastd_reload();
                }
 
-               maxfd = 0;
+               /* Setup descriptors for select(2). */
                FD_ZERO(&rfds);
+               FD_SET(cfd, &rfds);
+               FD_SET(lfd, &rfds);
                FD_ZERO(&wfds);
-
-               /* Setup descriptors for select(2). */
-#define        SETUP_FD(conn)  do {                                            
\
-       fd = proto_descriptor(conn);                                    \
-       if (fd >= 0) {                                                  \
-               maxfd = fd > maxfd ? fd : maxfd;                        \
-               FD_SET(fd, &rfds);                                      \
-               FD_SET(fd, &wfds);                                      \
-       }                                                               \
-} while (0)
-               SETUP_FD(cfg->hc_controlconn);
-               SETUP_FD(cfg->hc_listenconn);
-#undef SETUP_FD
+               FD_SET(cfd, &wfds);
+               FD_SET(lfd, &wfds);
 
                ret = select(maxfd + 1, &rfds, &wfds, NULL, NULL);
                if (ret == -1) {
@@ -437,13 +432,10 @@ main_loop(void)
                        pjdlog_exit(EX_OSERR, "select() failed");
                }
 
-#define        ISSET_FD(conn)  \
-       (FD_ISSET((fd = proto_descriptor(conn)), &rfds) || FD_ISSET(fd, &wfds))
-               if (ISSET_FD(cfg->hc_controlconn))
+               if (FD_ISSET(cfd, &rfds) || FD_ISSET(cfd, &wfds))
                        control_handle(cfg);
-               if (ISSET_FD(cfg->hc_listenconn))
+               if (FD_ISSET(lfd, &rfds) || FD_ISSET(lfd, &wfds))
                        listen_accept();
-#undef ISSET_FD
        }
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to