1/* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */
2/*
3 * Author:  Daniel S. Haischt <me@daniel.stefan.haischt.name>
4 * Purpose: Avahi based Zeroconf support
5 * Docs:    http://avahi.org/download/doxygen/
6 *
7 */
8
9#ifndef AFPD_AVAHI_H
10#define AFPD_AVAHI_H
11
12#include <stdlib.h>
13#include <assert.h>
14#include <string.h>
15
16#include <avahi-client/client.h>
17#include <avahi-client/publish.h>
18#include <avahi-common/alternative.h>
19#include <avahi-common/thread-watch.h>
20#include <avahi-common/malloc.h>
21#include <avahi-common/error.h>
22
23#include <atalk/logger.h>
24
25#include "afp_config.h"
26
27#define AFP_DNS_SERVICE_TYPE "_afpovertcp._tcp"
28#define ADISK_SERVICE_TYPE "_adisk._tcp"
29#define DEV_INFO_SERVICE_TYPE "_device-info._tcp"
30
31#define MAXINSTANCENAMELEN 63
32
33struct context {
34	/* Avahi stuff */
35  int               thread_running;
36  AvahiThreadedPoll *threaded_poll;
37  AvahiClient       *client;
38  AvahiEntryGroup   *group;
39	/* Netatalk stuff */
40	const AFPConfig   *configs;
41};
42
43/* prototype definitions */
44void av_zeroconf_setup(const AFPConfig *configs);
45int av_zeroconf_run(void);
46int av_zeroconf_unregister(void);
47void av_zeroconf_shutdown(void);
48
49#endif   /* AFPD_AVAHI_H */
50