Guest User

Untitled

a guest
Mar 17th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. ioctl(skfd, SIOCSIFFLAGS, &ifr);
  2.  
  3. static int set_if_up(char *ifname, short flags)
  4. {
  5. return set_if_flags(ifname, flags | IFF_UP);
  6. }
  7.  
  8. static int set_if_down(char *ifname, short flags)
  9. {
  10. return set_if_flags(ifname, flags & ~IFF_UP);
  11. }
  12.  
  13. int sockfd;
  14. struct ifreq ifr;
  15.  
  16. sockfd = socket(AF_INET, SOCK_DGRAM, 0);
  17.  
  18. if (sockfd < 0)
  19. return;
  20.  
  21. memset(&ifr, 0, sizeof ifr);
  22.  
  23. strncpy(ifr.ifr_name, "eth0", IFNAMSIZ);
  24.  
  25. ifr.ifr_flags |= IFF_UP;
  26. ioctl(sockfd, SIOCSIFFLAGS, &ifr);
  27.  
  28. int skfd = -1; /* AF_INET socket for ioctl() calls.*/
  29. int set_if_flags(char *ifname, short flags)
  30. {
  31. struct ifreq ifr;
  32. int res = 0;
  33.  
  34. ifr.ifr_flags = flags;
  35. strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
  36.  
  37. if ((skfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
  38. printf("socket error %sn", strerror(errno));
  39. res = 1;
  40. goto out;
  41. }
  42.  
  43. res = ioctl(skfd, SIOCSIFFLAGS, &ifr);
  44. if (res < 0) {
  45. printf("Interface '%s': Error: SIOCSIFFLAGS failed: %sn",
  46. ifname, strerror(errno));
  47. } else {
  48. printf("Interface '%s': flags set to %04X.n", ifname, flags);
  49. }
  50. out:
  51. return res;
  52. }
  53. int set_if_up(char *ifname, short flags)
  54. {
  55. return set_if_flags(ifname, flags | IFF_UP);
  56. }
  57.  
  58. set_if_up("eth0", 1);
Add Comment
Please, Sign In to add comment