Home | History | Annotate | Download | only in avahi-compat-libdns_sd
      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 <sys/types.h>
     25 #include <assert.h>
     26 #include <stdio.h>
     27 #include <stdlib.h>
     28 #include <unistd.h>
     29 
     30 #include <avahi-common/gccmacro.h>
     31 #include <dns_sd.h>
     32 
     33 static void reply(
     34         AVAHI_GCC_UNUSED DNSServiceRef sdRef,
     35         AVAHI_GCC_UNUSED DNSServiceFlags flags,
     36         AVAHI_GCC_UNUSED uint32_t interfaceIndex,
     37         AVAHI_GCC_UNUSED DNSServiceErrorType errorCode,
     38         AVAHI_GCC_UNUSED const char *serviceName,
     39         AVAHI_GCC_UNUSED const char *regtype,
     40         AVAHI_GCC_UNUSED const char *replyDomain,
     41         AVAHI_GCC_UNUSED void *context) {
     42 }
     43 
     44 int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char*argv[]) {
     45 
     46     DNSServiceRef ref1, ref2, ref3, ref4 = NULL;
     47 
     48     DNSServiceRegister(&ref1, 0, 0, "simple", "_simple._tcp", NULL, NULL, 4711, 0, NULL, NULL, NULL);
     49     DNSServiceRegister(&ref2, 0, 0, "subtype #1", "_simple._tcp,_subtype1", NULL, NULL, 4711, 0, NULL, NULL, NULL);
     50     DNSServiceRegister(&ref3, 0, 0, "subtype #2", "_simple._tcp,_subtype1,_subtype2", NULL, NULL, 4711, 0, NULL, NULL, NULL);
     51 
     52     DNSServiceRegister(&ref4, 0, 0, "subtype #3", "_simple._tcp,,", NULL, NULL, 4711, 0, NULL, NULL, NULL);
     53     assert(!ref4);
     54     DNSServiceRegister(&ref4, 0, 0, "subtype #3", "", NULL, NULL, 4711, 0, NULL, NULL, NULL);
     55     assert(!ref4);
     56     DNSServiceRegister(&ref4, 0, 0, "subtype #3", ",", NULL, NULL, 4711, 0, NULL, NULL, NULL);
     57     assert(!ref4);
     58     DNSServiceRegister(&ref4, 0, 0, "subtype #3", ",,", NULL, NULL, 4711, 0, NULL, NULL, NULL);
     59     assert(!ref4);
     60 
     61     DNSServiceBrowse(&ref4, 0, 0, "_simple._tcp,_gurke", NULL, reply, NULL);
     62 
     63     sleep(20);
     64 
     65     DNSServiceRefDeallocate(ref1);
     66     DNSServiceRefDeallocate(ref2);
     67     DNSServiceRefDeallocate(ref3);
     68     DNSServiceRefDeallocate(ref4);
     69 
     70     return 0;
     71 }
     72