/* Test of functions. Copyright (C) 2010-2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Simon Josefsson , 2010. */ #include #include #include "signature.h" SIGNATURE_CHECK (if_freenameindex, void, (struct if_nameindex *)); SIGNATURE_CHECK (if_indextoname, char *, (unsigned int, char *)); SIGNATURE_CHECK (if_nameindex, struct if_nameindex *, (void)); SIGNATURE_CHECK (if_nametoindex, unsigned int, (const char *)); #include /* NULL */ #include /* fprintf */ int main (int argc, char *argv[]) { struct if_nameindex *ifnp, *p; p = ifnp = if_nameindex (); if (ifnp == NULL) { fputs ("if_nameindex returned NULL\n", stderr); return 1; } while (p->if_index) { unsigned int idx; char buf[IF_NAMESIZE]; char *q; if (argc > 1) printf ("index %d name %s\n", p->if_index, p->if_name); idx = if_nametoindex (p->if_name); if (idx != p->if_index) { fprintf (stderr, "if_nametoindex (%s) = %d != %d\n", p->if_name, idx, p->if_index); return 1; } q = if_indextoname (p->if_index, buf); if (q == NULL) { fprintf (stderr, "if_indextoname (%d) returned NULL\n", p->if_index); return 1; } if (q != buf) { fprintf (stderr, "if_indextoname (%d) buffer mismatch?\n", p->if_index); return 1; } if (strcmp (p->if_name, q) != 0) { fprintf (stderr, "if_indextoname (%s) = %s ?!\n", p->if_name, q); return 1; } p++; } if_freenameindex (ifnp); return 0; }