• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/avahi-0.6.31/avahi-compat-howl/
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
33static 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
63int 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