1 /*** 2 This file is part of avahi. 3 4 avahi is free software; you can redistribute it and/or modify it 5 under the terms of the GNU Lesser General Public License as 6 published by the Free Software Foundation; either version 2.1 of the 7 License, or (at your option) any later version. 8 9 avahi is distributed in the hope that it will be useful, but WITHOUT 10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General 12 Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with avahi; if not, write to the Free Software 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 17 USA. 18 ***/ 19 20 #ifdef HAVE_CONFIG_H 21 #include <config.h> 22 #endif 23 24 #ifdef HAVE_DLOPEN 25 #include <dlfcn.h> 26 #endif 27 #include <stdlib.h> 28 29 #include "client.h" 30 31 int avahi_nss_support(void) { 32 int b = 0; 33 34 #ifdef HAVE_DLOPEN 35 static const char * const libs[] = { 36 "libnss_mdns.so.2", 37 "libnss_mdns4.so.2", 38 "libnss_mdns6.so.2", 39 NULL }; 40 41 const char * const *l; 42 43 for (l = libs; *l; l++) { 44 void *dl; 45 46 if ((dl = dlopen(*l, RTLD_LAZY))) { 47 b = 1; 48 dlclose(dl); 49 break; 50 } 51 } 52 #endif 53 54 return b; 55 } 56