prifnameindex.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "unpifi.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int n;
  6. char ifname[IFNAMSIZ];
  7. struct if_nameindex *ifptr, *save;
  8. if (argc != 1)
  9. err_quit("usage: prifnameindex");
  10. /* print all the interface names and indexes */
  11. for (save = ifptr = If_nameindex(); ifptr->if_index > 0; ifptr++) {
  12. printf("name = %s, index = %d\n", ifptr->if_name, ifptr->if_index);;
  13. if ( (n = If_nametoindex(ifptr->if_name)) != ifptr->if_index)
  14. err_quit("if_nametoindex returned %d, expected %d, for %s",
  15. n, ifptr->if_index, ifptr->if_name);
  16. If_indextoname(ifptr->if_index, ifname);
  17. if (strcmp(ifname, ifptr->if_name) != 0)
  18. err_quit("if_indextoname returned %s, expected %s, for %d",
  19. ifname, ifptr->if_name, ifptr->if_index);
  20. }
  21. n = if_nametoindex("fkjhkjhgjhgjhgdjhguyetiuyiuyhkjhkjdh");
  22. if (n != 0)
  23. err_quit("if_nametoindex returned %d for fkjh...", n);
  24. n = if_nametoindex("");
  25. if (n != 0)
  26. err_quit("if_nametoindex returned %d for (null)", n);
  27. if (if_indextoname(0, ifname) != NULL)
  28. err_quit("if_indextoname error for 0");
  29. if (if_indextoname(888888, ifname) != NULL)
  30. err_quit("if_indextoname error for 888888");
  31. if_freenameindex(save);
  32. exit(0);
  33. }