Cannot get interface flags: Invalid argument

This is a discussion on Cannot get interface flags: Invalid argument within the C Programming forums, part of the General Programming Boards category; hello, I can not interface flag. Actually getting invalid argument. Can any one give me feedback. See my flag function.... ...

  1. #1
    Registered User
    Join Date
    Jan 2008
    Posts
    20

    Post Cannot get interface flags: Invalid argument

    hello,
    I can not interface flag. Actually getting invalid argument. Can any one give me feedback. See my flag function....

    Code:
    /************************************************************************
    Function:  initdevice
    
    Description: Set up the network device so we can read it.
    
    **************************************************************************/
    initdevice(fd_flags, dflags)
    int fd_flags;
    u_long dflags;
    {
        struct ifreq ifr;
        int fd, flags = 0;
    
        if((fd = socket(PF_INET, SOCK_PACKET, htons(0x0003))) < 0)
        {
    	perror("Cannot open device socket");
    	exit(-1);
        }
    
        /* Get the existing interface flags */
    
        strcpy(ifr.ifr_name, Gdevice);
        if(ioctl(fd, SIOCGIFFLAGS, &ifr) < 0)
        {
    	perror("Cannot get interface flags");
    	exit(-1);
        }
    
        ifr.ifr_flags |= IFF_PROMISC;
        if(ioctl(fd, SIOCSIFFLAGS,  &ifr) < 0)
        {
    	perror("Cannot set interface flags");
    	exit(-1);
        }
        
        return(fd);
    }

  2. #2
    CSharpener vart's Avatar
    Join Date
    Oct 2006
    Location
    Rishon LeZion, Israel
    Posts
    6,424
    this style
    Code:
    initdevice(fd_flags, dflags)
    int fd_flags;
    u_long dflags;
    is outdated
    use
    Code:
    initdevice(int fd_flags,u_long dflags)


    Code:
    struct ifreq ifr;
    your struct is not initialized - don't you get any warnings about -
    ifr.ifr_flags |= IFF_PROMISC;
    ??
    increase you warnings level (and maybe use more uptodate compiler)
    The first 90% of a project takes 90% of the time,
    the last 10% takes the other 90% of the time.

  3. #3
    Registered User
    Join Date
    Jan 2008
    Posts
    20
    No i am not getting any warnings, getting only this message

    Cannot get interface flags: Invalid argument
    can you tell me, where i did mistake interims of structure?
    what is your opinion?

  4. #4
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    It is VERY impolite to ask the same question in multiple places:
    http://www.linuxquestions.org/questi...gument-634527/

    Vart: The struct should be initialized by the SIOCGIFFLAGS, but it appears that it doesn't do that (correctly).

    I don't know what the answer to the actual question is - I searched in google for a while, but found only a vague link (that is 6 years old, so I don't know if there's any relevance NOW):
    http://cygwin.com/ml/cygwin/2002-10/msg00884.html

    It's probably worth filling in the ifr_addr field and see if that helps. Not quite sure how you get that info...

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. how do you resolve this error?
    By -EquinoX- in forum C Programming
    Replies: 32
    Last Post: 11-05-2008, 03:35 PM
  2. Cannot get interface flags: Invalid argument
    By nasim751 in forum C Programming
    Replies: 1
    Last Post: 04-15-2008, 02:27 AM
  3. Screwy Linker Error - VC2005
    By Tonto in forum C++ Programming
    Replies: 5
    Last Post: 06-19-2007, 02:39 PM
  4. Dikumud
    By maxorator in forum C++ Programming
    Replies: 1
    Last Post: 10-01-2005, 06:39 AM
  5. Nested loop frustration
    By caroundw5h in forum C Programming
    Replies: 14
    Last Post: 03-15-2004, 08:45 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21