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