Tag Archives: All

Avahi Gains "Wide-Area" Support

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-wide-area.html

Yesterday in the late evening I commited “Wide Area” support to
Avahi SVN, i.e. “DNS-SD over Unicast DNS”. Only browsing, no
“Long-Lived Query” support and no publishing for now, but it is a
start.

To show off how cool this is, here is a “screenshot” of
avahi-browse showing all services defined in the domain
0pointer.de:

$ avahi-browse -a -d 0pointer.de
Browsing domain ‘0pointer.de’ on any.-1 …
Browsing for services of type ‘_http-rss091._tcp’ (Web Syndication RSS 0.91) in domain ‘0pointer.de’ on any.-1 …
Browsing for services of type ‘_http-rss20._tcp’ (Web Syndication RSS 2.0) in domain ‘0pointer.de’ on any.-1 …
Browsing for services of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1 …
Found service ‘Lennart’s Blog’ of type ‘_http-rss091._tcp’ (Web Syndication RSS 0.91) in domain ‘0pointer.de’ on any.-1.
Found service ‘Lennart’s Blog’ of type ‘_http-rss20._tcp’ (Web Syndication RSS 2.0) in domain ‘0pointer.de’ on any.-1.
Found service ‘Lennart’s Homepage’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1.
Found service ‘Avahi mDNS/DNS-SD’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1.
Found service ‘Lennart’s Photos’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1.
Found service ‘Lennart’s Blog’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1.
Service data for service ‘Lennart’s Blog’ of type ‘_http-rss091._tcp’ (Web Syndication RSS 0.91) in domain ‘0pointer.de’ on any.-1:
Host 0pointer.de (217.160.223.3), port 80, TXT data: [‘path=/blog/index.rss’]
Service data for service ‘Lennart’s Blog’ of type ‘_http-rss20._tcp’ (Web Syndication RSS 2.0) in domain ‘0pointer.de’ on any.-1:
Host 0pointer.de (217.160.223.3), port 80, TXT data: [‘path=/blog/index.rss2’]
Service data for service ‘Lennart’s Homepage’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1:
Host 0pointer.de (217.160.223.3), port 80, TXT data: [‘path=/lennart/’]
Service data for service ‘Avahi mDNS/DNS-SD’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1:
Host freedesktop.org (131.252.208.82), port 80, TXT data: [‘path=/Software/Avahi’]
Service data for service ‘Lennart’s Photos’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1:
Host 0pointer.de (217.160.223.3), port 80, TXT data: [‘path=/photos/’]
Service data for service ‘Lennart’s Blog’ of type ‘_http._tcp’ (Web Site) in domain ‘0pointer.de’ on any.-1:
Host 0pointer.de (217.160.223.3), port 80, TXT data: [‘path=/blog’]

Avahi Gains "Wide-Area" Support

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-wide-area.html

Yesterday in the late evening I commited “Wide Area” support to
Avahi SVN, i.e. “DNS-SD over Unicast DNS”. Only browsing, no
“Long-Lived Query” support and no publishing for now, but it is a
start.

To show off how cool this is, here is a “screenshot” of
avahi-browse showing all services defined in the domain
0pointer.de:

$ avahi-browse -a -d 0pointer.de
Browsing domain '0pointer.de' on any.-1 ...
Browsing for services of type '_http-rss091._tcp' (Web Syndication RSS 0.91) in domain '0pointer.de' on any.-1 ...
Browsing for services of type '_http-rss20._tcp' (Web Syndication RSS 2.0) in domain '0pointer.de' on any.-1 ...
Browsing for services of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1 ...
Found service 'Lennart's Blog' of type '_http-rss091._tcp' (Web Syndication RSS 0.91) in domain '0pointer.de' on any.-1.
Found service 'Lennart's Blog' of type '_http-rss20._tcp' (Web Syndication RSS 2.0) in domain '0pointer.de' on any.-1.
Found service 'Lennart's Homepage' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1.
Found service 'Avahi mDNS/DNS-SD' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1.
Found service 'Lennart's Photos' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1.
Found service 'Lennart's Blog' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1.
Service data for service 'Lennart's Blog' of type '_http-rss091._tcp' (Web Syndication RSS 0.91) in domain '0pointer.de' on any.-1:
        Host 0pointer.de (217.160.223.3), port 80, TXT data: ['path=/blog/index.rss']
Service data for service 'Lennart's Blog' of type '_http-rss20._tcp' (Web Syndication RSS 2.0) in domain '0pointer.de' on any.-1:
        Host 0pointer.de (217.160.223.3), port 80, TXT data: ['path=/blog/index.rss2']
Service data for service 'Lennart's Homepage' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1:
        Host 0pointer.de (217.160.223.3), port 80, TXT data: ['path=/lennart/']
Service data for service 'Avahi mDNS/DNS-SD' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1:
        Host freedesktop.org (131.252.208.82), port 80, TXT data: ['path=/Software/Avahi']
Service data for service 'Lennart's Photos' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1:
        Host 0pointer.de (217.160.223.3), port 80, TXT data: ['path=/photos/']
Service data for service 'Lennart's Blog' of type '_http._tcp' (Web Site) in domain '0pointer.de' on any.-1:
        Host 0pointer.de (217.160.223.3), port 80, TXT data: ['path=/blog']

KDE Ported to Avahi

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-kde.html

Jakub Stachowski completed support for using Avahi as backend for KDE’s KDNSSD subsystem. This means that you can use any Zeroconf-enabled KDE application (including Konqueror) with Avahi as mDNS stack. You can find more information in the KDNSSD Wiki.

The list of software supporting Avahi grows longer and longer. There are some patches for vino and GnomeMeeting floating around, Rhythmbox already merged DAAP support based on Avahi, KDE is now fully compatible with Avahi. Shall your project be the next in this list? To get started with Avahi, read the developer’s documentation.

Oh, yes, we released Avahi 0.3 and 0.4 recently. Get it while it’s hot. No major changes, just bugfixes an Qt main loop support.

KDE Ported to Avahi

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-kde.html

Jakub Stachowski completed support for using Avahi as backend for KDE’s KDNSSD subsystem. This means that you can use any Zeroconf-enabled KDE application (including Konqueror) with Avahi as mDNS stack. You can find more information in the KDNSSD Wiki.

The list of software supporting Avahi grows longer and longer. There are some patches for vino and GnomeMeeting floating around, Rhythmbox already merged DAAP support based on Avahi, KDE is now fully compatible with Avahi. Shall your project be the next in this list? To get started with Avahi, read the developer’s documentation.

Oh, yes, we released Avahi 0.3 and 0.4 recently. Get it while it’s hot. No major changes, just bugfixes an Qt main loop support.

GnomeMeeting Supports Avahi

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-sebest.html

Sebastien successfully completed porting GnomeMeeting to Avahi. Therefore I declare him the first one to port a “real world” application to Avahi. Hurrah! Screenshot here.

Shortly after, Sebestien – not lazy – announced his new Zeroconf service browser applet based on Avahi. It contains a drop down menu with all Zeroconf services found on your LAN. If you select a menu item the applet will execute the application that has been defined as Gnome URL handler for the specific protocol.

s-d-a

Avahi on Linux Weekly News

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-lwn.html

Seems today’s edition of LWN features a front page story about Avahi. It’s actually quite nice, even though I missed an emphasis on the fact that Avahi’s mDNS stack itself is embeddable into applications via a shared library.

I guess you’ll have to wait a week if you want to read the article without subscription.

Avahi on Linux Weekly News

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-lwn.html

Seems today’s edition of LWN features a front page story about Avahi. It’s actually quite nice, even though I missed an emphasis on the fact that Avahi’s mDNS stack itself is embeddable into applications via a shared library.

I guess you’ll have to wait a week if you want to read the article without subscription.

Avahi 0.1 Finally Released

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-0.1-release.html

We finally released Avahi 0.1. Full release announcement here. Avahi comes with a powerful DBUS API. Just two show off the coolnes of that interface a Python example:

import avahi, dbus, gobject

bus = dbus.SystemBus()
server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)

def new_service(interface, protocol, name, type, domain):
print “Found service ‘%s’ of type ‘%s’ in domain ‘%s'” % (name, type, domain)

def remove_service(interface, protocol, name, type, domain):
print “Service ‘%s’ of type ‘%s’ in domain ‘%s’ disappeared.” % (name, type, domain)

path = server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, “_http._tcp”, “”)
b = dbus.Interface(bus.get_object(avahi.DBUS_NAME, path), avahi.DBUS_INTERFACE_SERVICE_BROWSER)
b.connect_to_signal(‘ItemNew’, new_service)
b.connect_to_signal(‘ItemRemove’, remove_service)
gobject.MainLoop().run()

This short program will connect to running avahi-daemon and browse for web services.

Avahi 0.1 Finally Released

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-0.1-release.html

We finally released Avahi 0.1. Full release announcement here. Avahi comes with a powerful DBUS API. Just two show off the coolnes of that interface a Python example:

import avahi, dbus, gobject

bus = dbus.SystemBus()
server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)

def new_service(interface, protocol, name, type, domain):
	print "Found service '%s' of type '%s' in domain '%s'" % (name, type, domain)

def remove_service(interface, protocol, name, type, domain):
	print "Service '%s' of type '%s' in domain '%s' disappeared." % (name, type, domain)

path = server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, "_http._tcp", "")
b = dbus.Interface(bus.get_object(avahi.DBUS_NAME, path), avahi.DBUS_INTERFACE_SERVICE_BROWSER)
b.connect_to_signal('ItemNew', new_service)
b.connect_to_signal('ItemRemove', remove_service)
gobject.MainLoop().run()

This short program will connect to running avahi-daemon and browse for web services.

Simplified "Draft" Plugin for pyblosxom

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pyblosxom-ignore.html

The pyblosxom plugin registry links a plugin which allows hiding “draft” stories before publishing them, so that only you can see them. Unfortunately the link to this plugin is broken. So here’s my (simplified) reimplementation:

def cb_prepare(args):
request = args[“request”]
query = request.getHttp().get(‘QUERY_STRING’, ”)

if not query.endswith(“&ignore”) and not query == “ignore”:
data = request.getData()
data[“entry_list”] = filter(lambda e: not e.has_key(‘ignore’), data[“entry_list”])

To mark a story as “draft” simply insert this at line #2:

#ignore yes

To browse unpublished stories simply append ?ignore (or &ignore) to your blog URL.

Simplified "Draft" Plugin for pyblosxom

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pyblosxom-ignore.html

The pyblosxom plugin registry links a plugin which allows hiding “draft” stories before publishing them, so that only you can see them. Unfortunately the link to this plugin is broken. So here’s my (simplified) reimplementation:

def cb_prepare(args):
        request = args["request"]
        query = request.getHttp().get('QUERY_STRING', '')

        if not query.endswith("&ignore") and not query == "ignore":
                data = request.getData()
                data["entry_list"] = filter(lambda e: not e.has_key('ignore'), data["entry_list"])

To mark a story as “draft” simply insert this at line #2:

#ignore yes

To browse unpublished stories simply append ?ignore (or &ignore) to your blog URL.

Avahi 0.1 Looming

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-0.1.html

Avahi 0.1 is due in
the next few days. The last missing piece is a simplifying C wrapper around the
DBUS API. Though Avahi is currently pre-0.1 it is already quite complete and
mature. To put it with Ross Burton: “… this doesnt count as 0.1 because it
has docs, man pages *and* works”

Unfortunately python-dbus has quite a few bugs which make it very difficult
to code with. e.g. it doesn’t handle sending empty arrays, fails to send byte
values and so on. It is difficult to work around all these issues, therefore
the Avahi client tools will not work with an unpatched python-dbus. You need to
apply this
patch
(applying to 0.35.2) to fix at least the byte value bug to get
them working.

Avahi 0.1 Looming

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/avahi-0.1.html

Avahi 0.1 is due in
the next few days. The last missing piece is a simplifying C wrapper around the
DBUS API. Though Avahi is currently pre-0.1 it is already quite complete and
mature. To put it with Ross Burton: “… this doesnt count as 0.1 because it
has docs, man pages *and* works

Unfortunately python-dbus has quite a few bugs which make it very difficult
to code with. e.g. it doesn’t handle sending empty arrays, fails to send byte
values and so on. It is difficult to work around all these issues, therefore
the Avahi client tools will not work with an unpatched python-dbus. You need to
apply this
patch
(applying to 0.35.2) to fix at least the byte value bug to get
them working.