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 #include <assert.h> 25 #include <stdio.h> 26 27 #include <avahi-common/gccmacro.h> 28 #include "howl.h" 29 30 #define ASSERT_SW_OKAY(t) { sw_result _r; _r = (t); assert(_r == SW_OKAY); } 31 #define ASSERT_NOT_NULL(t) { const void* _r; r = (t); assert(_r); } 32 33 static sw_result reply( 34 AVAHI_GCC_UNUSED sw_discovery discovery, 35 AVAHI_GCC_UNUSED sw_discovery_oid oid, 36 sw_discovery_browse_status status, 37 AVAHI_GCC_UNUSED sw_uint32 interface_index, 38 AVAHI_GCC_UNUSED sw_const_string name, 39 AVAHI_GCC_UNUSED sw_const_string type, 40 sw_const_string domain, 41 AVAHI_GCC_UNUSED sw_opaque extra) { 42 43 switch (status) { 44 case SW_DISCOVERY_BROWSE_ADD_DOMAIN: 45 fprintf(stderr, "new domain %s\n", domain); 46 break; 47 48 case SW_DISCOVERY_BROWSE_REMOVE_DOMAIN: 49 fprintf(stderr, "removed domain %s\n", domain); 50 break; 51 52 case SW_DISCOVERY_BROWSE_INVALID: 53 fprintf(stderr, "some kind of failure happened: %s\n", domain); 54 break; 55 56 default: 57 abort(); 58 } 59 60 return SW_OKAY; 61 } 62 63 int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) { 64 sw_discovery discovery; 65 sw_discovery_oid oid; 66 67 ASSERT_SW_OKAY(sw_discovery_init(&discovery)); 68 69 ASSERT_SW_OKAY(sw_discovery_browse_domains(discovery, 0, reply, NULL, &oid)); 70 71 ASSERT_SW_OKAY(sw_discovery_run(discovery)); 72 73 return 0; 74 } 75