From e2bd3f23a80ac9f59e406688e92a36ca843d364a Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 6 Aug 2005 12:46:45 +0000 Subject: Move all docs to docs/ git-svn-id: file:///home/lennart/svn/public/avahi/trunk@245 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- docs/DBUS-API | 45 ++++++++++++++++++++++++ docs/HACKING | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ docs/INSTALL | 36 ++++++++++++++++++++ docs/README | 11 ++++++ docs/todo | 51 +++++++++++++++++++++++++++ 5 files changed, 251 insertions(+) create mode 100644 docs/DBUS-API create mode 100644 docs/HACKING create mode 100644 docs/INSTALL create mode 100644 docs/README create mode 100644 docs/todo (limited to 'docs') diff --git a/docs/DBUS-API b/docs/DBUS-API new file mode 100644 index 0000000..7f10ea1 --- /dev/null +++ b/docs/DBUS-API @@ -0,0 +1,45 @@ +$Id$ + +org.freedesktop.Avahi.Server + string GetHostName() + string GetHostNameFqdn() + string GetDomainName() + string GetVersionString() + int32 GetState() + string GetAlternativeHostName(string name) + string GetAlternativeServiceName(string name) + string GetNetworkInterfaceNameByIndex(int32 index) + int32 GetNetworkInterfaceIndexByName(string name) + [int32 interface, int32 protocol, string name, int32 aprotocol, string address] ResolveHostName(int32 interface, int32 protocol, string name, int32 aprotocol) + [int32 interface, int32 protocol, int32 aprotocol, string address, string name] ResolveAddress(int32 interface, int32 protocol, string address) + [int32 interface, int32 protocol, string name, string type, string domain, string host, int32 aprotocol, string address, uint16 port, string txt[]] ResolveService(int32 interface, int32 protocol, string name, string type, string domain, int32 aprotocol) + path EntryGroupNew() + path DomainBrowserNew(int32 interface, int32 protocol, string domain, int32 btype) + path ServiceTypeBrowserNew(int32 interface, int32 protocol, string domain) + path ServiceBrowserNew(int32 interface, int32 protocol, string type, string domain) + SIGNAL StateChanged(int32 state) + +org.freedesktop.Avahi.EntryGroup + void Free() + void Commit() + void Reset() + int32 GetState() + boolean IsEmpty() + void AddService(int32 interface, int32 protocol, string name, string type, string domain, string host, uint16 port, string txt[]) + void AddAddress(int32 interface, int32 protocol, string name, string address) + SIGNAL StateChanged(int32 state) + +org.freedesktop.Avahi.DomainBrowser + void Free() + SIGNAL ItemNew(int32 interface, int32 protocol, string domain) + SIGNAL ItemRemove(int32 interface, int32 protocol, string domain) + +org.freedesktop.Avahi.ServiceTypeBrowser + void Free() + SIGNAL ItemNew(int32 interface, int32 protocol, string type, string domain) + SIGNAL ItemRemove(int32 interface, int32 protocol, string type, string domain) + +org.freedesktop.Avahi.ServiceBrowser + void Free() + SIGNAL ItemNew(int32 interface, int32 protocol, string name, string type, string domain) + SIGNAL ItemRemove(int32 interface, int32 protocol, string name, string type, string domain) diff --git a/docs/HACKING b/docs/HACKING new file mode 100644 index 0000000..a31878d --- /dev/null +++ b/docs/HACKING @@ -0,0 +1,108 @@ +Please comply with the following rules when hacking on Avahi: + + * When you add a new textual file to the repository please enable SVN + keyword expansion for it: + + svn ps svn:keywords Id foo.c + + * Before commiting check with "svn st" that all built files are ignored + by svn. To change the list of ignored files use + + svn pe svn:ignore . + + This is similar to the ".cvsignore" file in CVS times. + + * Don't forget to add the autoconf config.h inclusion to all C source files: + + #ifdef HAVE_CONFIG_H + #include + #endif + + This needs to be placed in in .c files only. NOT IN HEADER FILES! + + * Don't hardcode any paths in source files. Either use the -D option of gcc + for C sources or use "sed" to replace them based on a .in file. + + * Never forget that Avahi should be buildable without DBUS, GTK or python! + + * When you code in C, please compile with the following gcc options from time + to time: + + -Wextra + -Wfloat-equal + -Wmissing-declarations + -Wmissing-prototypes + -Wstrict-prototypes + -Wredundant-decls + -Wold-style-definition + -Wmissing-noreturn + -Wdeclaration-after-statement + -Wshadow + -Wendif-labels + -Wlarger-than-4000 + -Wpointer-arith + -Wbad-function-cast + -Wcast-qual + -Wcast-align + -Wwrite-strings + -Winline + + This will show you a bunch of issues which might be problems in your source + code. Not all options are available on all GCC versions. Just pass these + options in $CFLAGS when running bootstrap.sh: + + CFLAGS="-Wextra ..." ./bootstrap.sh + + * Whenever you add a new Makefile.am, C (.c or .h) source file, shell or + python script please add this legal blurb to its header: + + For Makefile.am, python and shell code: + + +# $Id$ + +# This file is part of avahi. +# +# avahi is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# avahi is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +# License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with avahi; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + + + For C source code: + + +/* $Id$ */ + +/*** + This file is part of avahi. + + avahi is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + avahi is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with avahi; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + + + +$Id$ diff --git a/docs/INSTALL b/docs/INSTALL new file mode 100644 index 0000000..d6b134e --- /dev/null +++ b/docs/INSTALL @@ -0,0 +1,36 @@ +*** Quick install instructions (tested on debian/ubuntu only!) *** + +While "make" and "boostrap.sh" may be run as normal users all other commands +need to be run is root. + +$ ./bootstrap.sh + (this will run autoconf/automake) + +$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var + +Extra configure options available: + + --enable-gtk use GTK+ (default=yes) + --enable-dbus use DBus (default=yes) + --with-dbus-sys= where D-BUS system.d directory is + --with-distro= the target Linux distribution (one of redhat, + suse, gentoo, debian or slackware) + --with-avahi-user= User for running the Avahi daemon (avahi) + --with-avahi-group= Group for Avahi (avahi) + +$ make +# make install + +# addgroup --system avahi +# adduser --system --no-create-home --ingroup avahi avahi + (These commands are Debian specific and may be different on other + distributions) + +# kill -HUP `cat /var/run/dbus/pid` + (This will ask DBUS to re-read its policies) +# /etc/dbus-1/event.d/75avahi-daemon start + +- To automatically start avahi-dnsconfd on Debian based distro: +# update-rc.d avahi-dnsconfd defaults 25 15 + +$Id$ diff --git a/docs/README b/docs/README new file mode 100644 index 0000000..dfaf409 --- /dev/null +++ b/docs/README @@ -0,0 +1,11 @@ +* Quick start guide: +0) make sure you read the INSTALL file. +1) start the deamon in background as root: avahi-daemon -D +Or (You shouldn't start avahi-daemon and avahi-discover at the same time.) +1) start the Gui to browse zeroconf network as your user: avahi-discover + + +* Basic instructions to control the avahi deamon (as root): +- starting it: avahi-daemon +- starting it in background: avahi-daemon -D +- stopping it: avahi-daemon -k diff --git a/docs/todo b/docs/todo new file mode 100644 index 0000000..be044cb --- /dev/null +++ b/docs/todo @@ -0,0 +1,51 @@ +todo: +* finish DBUS stuff: + - allow NUL bytes in TXT records +* add internal error codes +* release! + +later: +* support for special domain PTR records based on local IP subnet address +* Changes resulting in updated RFC of 7th June 2005: + * Defer responses to replies with TC bit set by 400-500msec + * Defer unicast responses the same way as multicast responses + +done: +* Probing/Conflict resolution +* uniqueness +* respect escaping in name serialization +* really send goodbye packets +* refresh subscribed records only +* FLX_DNS_TYPE_ANY support +* Known-Answer suppression client part +* Known-Answer suppression server part +* make flx_server_add_text() and flx_server_add_service() variadic functions +* name compression +* remove expression "rrset" from source files +* defend our entries on incoming goodbye +* allow NULL bytes in TXT records +* add flx_server_add_service_strlst() and friends +* change flx_* to avahi_* +* Unicast responses/queries +* Legacy unicast +* no flush bit in known answer +* always set AA +* check: TC bit is valid for queries ONLY +* add SRV and TXT records referenced from PTR records automatically to packet +* add A and AAAA records referenced from SRV records automatically to packet +* support known answer suppresion for incoming unicast queries +* check wether RRsets are supported correctly (i.e. that all records of an + RRset are really sent if it is requested) (rfc 2181) +* case insensitve comparison +* drop records from cache only one second after flush cache bit entry was received +* either send entire RRSET or don't set flush cache bit! +* mantain flush cache bit correctly in psched +* Return to probing state on conflict +* response job dependencies +* enlarge packet in case a record/query is too large to fit in a normal packet +* reflector +* test against apple test suite +* sensible logging +* c++ support +* drop trailing dot on avahi_normalize_name() +* add entry_group::reset() -- cgit