--- embedtools/src/get1steth.c 2013/10/14 07:11:04 1.4.2.1 +++ embedtools/src/get1steth.c 2014/01/30 01:03:23 1.4.2.3 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ - * $Id: get1steth.c,v 1.4.2.1 2013/10/14 07:11:04 misho Exp $ + * $Id: get1steth.c,v 1.4.2.3 2014/01/30 01:03:23 misho Exp $ * ************************************************************************* The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 +Copyright 2004 - 2014 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -186,8 +186,26 @@ main(int argc, char **argv) } else VERB(3) syslog(LOG_NOTICE, "VLAN module ... %s\n", s ? "Loaded" : "Already loaded"); #endif + + s = socket(PF_INET, SOCK_DGRAM, 0); + if (-1 == s) { + syslog(LOG_ERR, "Error:: socket(INET) #%d - %s\n", errno, strerror(errno)); + closelog(); + return 2; + } + /* up parent interface */ + memset(&ifr, 0, sizeof ifr); + strlcpy(ifr.ifr_name, szIface, IFNAMSIZ); + ifr.ifr_flags |= IFF_UP; + if (ioctl(s, SIOCSIFFLAGS, &ifr) == -1 && errno != EEXIST) { + syslog(LOG_ERR, "Error:: UP interface=%s ioctl(SIOCSIFFLAGS) #%d - %s\n", + szIface, errno, strerror(errno)); + close(s); + return 2; + } + /* create vlan */ memset(&ifr, 0, sizeof ifr); strlcpy(vlr.vlr_parent, szIface, IFNAMSIZ); @@ -196,12 +214,6 @@ main(int argc, char **argv) strlcpy(ifr.ifr_name, MGMT_IFACE, IFNAMSIZ); ifr.ifr_data = (void *) &vlr; - s = socket(PF_INET, SOCK_DGRAM, 0); - if (-1 == s) { - syslog(LOG_ERR, "Error:: socket(INET) #%d - %s\n", errno, strerror(errno)); - closelog(); - return 2; - } #ifdef SIOCIFCREATE2 if (ioctl(s, SIOCIFCREATE2, &ifr) == -1 && errno != EEXIST) { #else