Author: sobomax
Date: Mon Apr 18 23:15:29 2011
New Revision: 220806
URL: http://svn.freebsd.org/changeset/base/220806

Log:
  Only wait for the IP to appear on the interface if natd is running in the
  background.
  
  Suggested by:   Garrett Cooper <yaneg...@gmail.com>
  
  Use EAGAIN instead of magic value of -2 to report this condition from the
  SetAliasAddressFromIfName routine.
  
  MFC after:    2 weeks

Modified:
  head/sbin/natd/natd.c

Modified: head/sbin/natd/natd.c
==============================================================================
--- head/sbin/natd/natd.c       Mon Apr 18 23:12:41 2011        (r220805)
+++ head/sbin/natd/natd.c       Mon Apr 18 23:15:29 2011        (r220806)
@@ -305,9 +305,9 @@ int main (int argc, char** argv)
                        else {
                                do {
                                        rval = SetAliasAddressFromIfName 
(mip->ifName);
-                                       if (rval == -2)
+                                       if (background != 0 && rval == EAGAIN)
                                                sleep(1);
-                               } while (rval == -2);
+                               } while (background != 0 && rval == EAGAIN);
                                if (rval != 0)
                                        exit(1);
                        }
@@ -648,9 +648,9 @@ static void DoAliasing (int fd, int dire
        if (mip->assignAliasAddr) {
                do {
                        rval = SetAliasAddressFromIfName (mip->ifName);
-                       if (rval == -2)
+                       if (background != 0 && rval == EAGAIN)
                                sleep(1);
-               } while (rval == -2);
+               } while (background != 0 && rval == EAGAIN);
                if (rval != 0)
                        exit(1);
                mip->assignAliasAddr = 0;
@@ -969,7 +969,7 @@ SetAliasAddressFromIfName(const char *if
        if (sin == NULL) {
                warnx("%s: cannot get interface address", ifn);
                free(buf);
-               return -2;
+               return EAGAIN;
        }
 
        LibAliasSetAddress(mla, sin->sin_addr);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to