<?xml version="1.0" encoding="UTF-8"?>
	<feed xmlns="http://www.w3.org/2005/Atom">
	<id>http://blog.prosody.im/</id>
	<title>Prosodical Thoughts</title>
	<subtitle>A blog about Prosody.</subtitle>
	<link href='http://blog.prosody.im/feed/atom.xml' rel='self' />
	<link href='http://blog.prosody.im/' />
	<updated>2011-06-20T14:38:43Z</updated>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-8-2-released/</id>
	<title>Prosody 0.8.2 released</title>
	<published>2011-06-20T14:38:43Z</published>
	<updated>2011-06-20T14:38:43Z</updated>
	<link href='http://blog.prosody.im/prosody-0-8-2-released/' />
	<content type='html'>


&lt;p>Hi all. Just a small release for you this time, with a handful of bugfixes. Thanks to '@eoranged'
and the other PostgreSQL users who helped with feedback and testing of the SQL fixes (the PostgreSQL
server we use for testing is now behaving properly!).&lt;/p>


&lt;!-- Summary list of changes -->

&lt;p>&lt;div style="clear:both;" />&lt;/p>

&lt;p>A summary of changes in this release:&lt;/p>

&lt;ul>
    &lt;li>mod_storage_sql: Fix compatibility with PostgreSQL databases (0.8.1 issue)&lt;/li>
    &lt;li>mod_bosh: Fix for sessions not timing out after inactivity in some cases&lt;/li>
    &lt;li>mod_dialback: Fix multiple concurrent dialback requests for the same domain (was sometimes causing s2s failure with certain ejabberds)&lt;/li>
&lt;/ul>

&lt;h2>Download&lt;/h2>


&lt;p>&lt;strong>Windows&lt;/strong>: &lt;a href="http://prosody.im/downloads/windows/ProsodySetup-0.8.2.exe">Installer&lt;/a> | &lt;a href="http://prosody.im/downloads/windows/Prosody-0.8.2.zip">Zip&lt;/a>&lt;/p>

&lt;p>&lt;strong>Debian/Ubuntu&lt;/strong>: &lt;a href="http://prosody.im/downloads/debian/prosody_0.8.2-1_i386.deb">32-bit&lt;/a> | &lt;a href="http://prosody.im/downloads/debian/prosody_0.8.2-1_amd64.deb">64-bit&lt;/a>&lt;/p>

&lt;p>&lt;strong>Source tarball&lt;/strong>: &lt;a href="http://prosody.im/downloads/source/prosody-0.8.2.tar.gz">prosody-0.8.2.tar.gz&lt;/a>&lt;/p>



	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-8-1-released/</id>
	<title>Prosody 0.8.1 released</title>
	<published>2011-06-04T18:55:19Z</published>
	<updated>2011-06-05T00:25:24Z</updated>
	<link href='http://blog.prosody.im/prosody-0-8-1-released/' />
	<content type='html'>


&lt;p>This is a security and bugfix release for the 0.8 branch. This release contains fixes for a
couple of major issues, and it is strongly recommended that you upgrade.&lt;/p>

&lt;p>&lt;img src="/files/drama.jpg" style="float:right;" />&lt;/p>

&lt;p>Some of you may already be aware of the "billion laughs" denial-of-service attack which was
discovered to work against a number of XMPP servers recently. Due to accidental oversight the
Prosody team was not notified ahead of the issue being made public, so we have worked hard the
past few days to prepare this release as soon as we could.&lt;/p>

&lt;p>In addition to upgrading Prosody, you MUST also upgrade the &lt;a href="http://www.keplerproject.org/luaexpat/">LuaExpat&lt;/a>
library to &lt;a href="http://article.gmane.org/gmane.comp.lang.lua.general/79336">1.2.0&lt;/a> to prevent
the attack - this should hopefully be arriving in your distribution shortly, alternatively it can
be installed using &lt;a href="http://luarocks.org/">luarocks&lt;/a>. See our
&lt;a href="http://prosody.im/doc/depends#luaexpat">dependencies page&lt;/a> for details.&lt;/p>

&lt;p>If you are a packager and are looking for backported patches to older Prosody versions, please
see the &lt;a href="http://prosody.im/doc/release/0.8.1#backporting">0.8.1 release notes&lt;/a>.&lt;/p>

&lt;p>&lt;br style="clear:both;" />&lt;/p>

&lt;p>A summary of changes in this release:&lt;/p>

&lt;ul>
    &lt;li>&lt;p>Reject XML DTDs, comments and processing instructions, preventing the "billion laughs" attack&lt;/p>&lt;/li>
    &lt;li>&lt;p>Switch to MEDIUMTEXT in the schema for MySQL to avoid truncating large data (such as large avatars)
    Prosody automatically upgrades the table in-place if possible, see our &lt;a href="http://prosody.im/doc/mysql">MySQL documentation&lt;/a>
    for more information.&lt;/p>&lt;/li>
    &lt;li>&lt;p>Fix for endless loop when parsing certain invalid JSON&lt;/p>&lt;/li>
    &lt;li>&lt;p>Fix PostgreSQL compatibility in prosody-migrator&lt;/p>&lt;/li>
    &lt;li>&lt;p>Fix timestamp parsing for DST (affecting MUC scrollback retrieval)&lt;/p>&lt;/li>
    &lt;li>&lt;p>mod_legacyauth now correctly disabled for unencrypted connections by default&lt;/p>&lt;/li>
    &lt;li>&lt;p>Components properly inherit SSL settings and certificates from their 'parent' hosts&lt;/p>&lt;/li>
    &lt;li>&lt;p>Prevent startup with no VirtualHost entries in the config file&lt;/p>&lt;/li>
&lt;/ul>

&lt;p>As usual if you need help or have any questions about installing/upgrading, feel
free to &lt;a href="http://prosody.im/discuss">ask&lt;/a>.&lt;/p>

&lt;h2>Download&lt;/h2>

&lt;p>&lt;strong>Windows&lt;/strong>: &lt;a href="http://prosody.im/downloads/windows/ProsodySetup-0.8.1.exe">Installer&lt;/a> | &lt;a href="http://prosody.im/downloads/windows/Prosody-0.8.1.zip">Zip&lt;/a>&lt;/p>

&lt;p>&lt;strong>Debian/Ubuntu&lt;/strong>: &lt;a href="http://prosody.im/downloads/debian/prosody_0.8.1-1_i386.deb">32-bit&lt;/a> | &lt;a href="http://prosody.im/downloads/debian/prosody_0.8.1-1_amd64.deb">64-bit&lt;/a>&lt;/p>

&lt;p>&lt;strong>Source tarball&lt;/strong>: &lt;a href="http://prosody.im/downloads/source/prosody-0.8.1.tar.gz">prosody-0.8.1.tar.gz&lt;/a>&lt;/p>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/an-introduction-to-lua-london/</id>
	<title>An Introduction to Lua - London</title>
	<published>2011-04-18T01:43:25Z</published>
	<updated>2011-04-18T01:43:25Z</updated>
	<link href='http://blog.prosody.im/an-introduction-to-lua-london/' />
	<content type='html'>


&lt;p>A heads-up for those in the London area and looking for something to do on &lt;a href="http://londongeeknights.wetpaint.com/">Tuesday
evening&lt;/a>. Matthew is going to be giving a
talk introducing the basics of &lt;a href="http://lua.org/">Lua&lt;/a>, and talking a bit about why
we chose Lua for &lt;a href="http://prosody.im/">Prosody&lt;/a>, and how it has benefited the project.&lt;/p>

&lt;p>Anyone is welcome, space permitting, and registration is free via
&lt;a href="http://lanyrd.com/2011/introduction-to-lua/">Lanyrd&lt;/a> (Twitter account required) or
&lt;a href="http://www.superdevs.com/groups/london-geek-nights">Superdevs&lt;/a> (OpenID required).&lt;/p>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-8-0-released/</id>
	<title>Prosody 0.8.0 released!</title>
	<published>2011-04-07T14:37:04Z</published>
	<updated>2011-04-07T18:27:29Z</updated>
	<link href='http://blog.prosody.im/prosody-0-8-0-released/' />
	<content type='html'>


&lt;p>Hurrah! We're very pleased to announce the release of &lt;a href="http://prosody.im/">Prosody&lt;/a> 0.8.0.&lt;/p>

&lt;p>This release includes a number of anticipated new features, which we'll take 
a tour of below. But before that we would like to thank everyone who has
helped with this release - our strong community makes Prosody what it is.&lt;/p>

&lt;p>In particular I'd like to thank Florian Zeitz, Kim Alvefur, Jeff Mitchell,
Robert Hoelz, Paul Aurich, Dwayne Bent, Tobias Tom and Brian Cully for their
contributions to this release.&lt;/p>

&lt;p>And a quick word about 0.9, which is already underway. As always we're looking
for testers and contributors to help shape the next release. We currently have
pubsub, secure federation using certificate authentication and IPv6 support in
various stages of development in trunk.&lt;/p>

&lt;p>So, now to what's new in 0.8. Let's see...&lt;/p>

&lt;h2>Pluggable authentication&lt;/h2>
&lt;p>Prosody already supported various authentication mechanisms via Cyrus SASL.
However Cyrus SASL is, as anyone who has used it will agree, not the easiest
piece of kit to configure.&lt;/p>

&lt;p>Prosody 0.8 brings us the option of &lt;a href="http://prosody.im/doc/authentication">authentication modules&lt;/a>,
which handle the validation of credentials for a given domain.&lt;/p>

&lt;p>The primary two authentication modules provide &lt;a href="http://prosody.im/doc/modules/mod_auth_internal_plain">plaintext&lt;/a>
and &lt;a href="http://prosody.im/doc/modules/mod_auth_internal_hashed">hashed&lt;/a> password storage. The hashed
storage module was originally developed by &lt;a href="http://jefferai.org/">Jeff Mitchell&lt;/a>, and made to use
the &lt;a href="http://tools.ietf.org/html/rfc5802">SCRAM&lt;/a> standard format for storing the hashed passwords.
As far as we are aware Prosody is the only open-source XMPP server to support this secure format
for password storage.&lt;/p>

&lt;p>It's worth noting that both plain and hashed storage have different advantages and drawbacks,
which we discuss in our article &lt;a href="http://prosody.im/doc/plain_or_hashed">"Plain or hashed password storage?"&lt;/a>.&lt;/p>

&lt;p>In addition there are beta and community modules for authenticating against
&lt;a href="http://code.google.com/p/prosody-modules/wiki/mod_auth_ldap">LDAP&lt;/a>, an 
&lt;a href="http://code.google.com/p/prosody-modules/wiki/mod_auth_external">external process/script&lt;/a>,
and even &lt;a href="http://code.google.com/p/prosody-modules/wiki/mod_auth_internal_yubikey">two-factor authentication&lt;/a>
using &lt;a href="http://www.yubico.com/yubikey">YubiKey&lt;/a> devices. This list is set to grow, and
we encourage anyone to &lt;a href="http://prosody.im/discuss">suggest&lt;/a> or
&lt;a href="http://code.google.com/p/prosody-modules">contribute&lt;/a> new authentication modules.&lt;/p>

&lt;h2>Pluggable storage&lt;/h2>
&lt;p>Authentication wasn't the only area to gain some extensibility. The number
of requests we received to link Prosody up with different storage systems,
ranging from stock MySQL and PostgreSQL setups to Mongo and CouchDB encouraged
us to develop our storage API to allow any plugin to provide &lt;a href="http://prosody.im/doc/storage">storage drivers&lt;/a>.&lt;/p>

&lt;p>&lt;img src="/files/prosody-db-logos.png" style="float:right;" />&lt;/p>

&lt;p>Prosody's beloved &lt;a href="http://prosody.im/doc/modules/mod_storage_internal">file-based driver&lt;/a>
remains the default, but we have added an
&lt;a href="http://prosody.im/doc/modules/mod_storage_sql">SQL storage plugin&lt;/a> for those who
need something more powerful, or who need to easily share the data with other
applications such as web services. This module currently supports MySQL, PostgreSQL and
SQLite3.&lt;/p>

&lt;p>If you have a favourite database that you want Prosody to support, now is the time
to &lt;a href="http://code.google.com/p/prosody-modules">get hacking&lt;/a>!&lt;/p>

&lt;h2>Ad-hoc commands&lt;/h2>
&lt;p>Florian Zeitz developed ad-hoc command support for Prosody a while back, but 0.8
is the first release to include it as standard. Ad-hoc commands allow you to
control and configure the server from within your XMPP client, using a
form-driven interface.&lt;/p>

&lt;p>&lt;img src="/files/prosody-adhoc-shutdown.png" />&lt;/p>

&lt;h2>Multi-user conference improvements&lt;/h2>
&lt;p>Our MUC module was missing a number of useful features that we have added in 0.8.
These include members-only and invite-only rooms, and restricting room creation
to local users as well as admins.&lt;/p>

&lt;h2>Other features&lt;/h2>
&lt;p>As usual we've added a large number of other small features and enhancements that
are too numerous to list here. You'll just have to download the release and be
&lt;a href="/files/surprised.jpg">surprised&lt;/a>!&lt;/p>

&lt;h2>Download&lt;/h2>

&lt;p>&lt;strong>Windows&lt;/strong>: &lt;a href="http://prosody.im/downloads/windows/ProsodySetup-0.8.0.exe">Installer&lt;/a> | &lt;a href="http://prosody.im/downloads/windows/Prosody-0.8.0.zip">Zip&lt;/a>&lt;/p>

&lt;p>&lt;strong>Debian/Ubuntu&lt;/strong>: &lt;a href="http://prosody.im/downloads/debian/prosody_0.8.0-1_i386.deb">32-bit&lt;/a> | &lt;a href="http://prosody.im/downloads/debian/prosody_0.8.0-1_amd64.deb">64-bit&lt;/a>&lt;/p>

&lt;p>&lt;strong>Source tarball&lt;/strong>: &lt;a href="http://prosody.im/downloads/source/prosody-0.8.0.tar.gz">prosody-0.8.0.tar.gz&lt;/a>&lt;/p>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/json-encodings-for-xmpp/</id>
	<title>JSON Encodings for XMPP</title>
	<published>2011-04-01T19:00:52Z</published>
	<updated>2011-04-02T01:12:43Z</updated>
	<link href='http://blog.prosody.im/json-encodings-for-xmpp/' />
	<content type='html'>


&lt;p>By popular demand from some parts of the web community the &lt;a href="http://xmpp.org/">XSF&lt;/a> published a
new XMPP extension today - &lt;a href="http://xmpp.org/extensions/xep-0295.html">XEP-0295&lt;/a>. At long last
this XEP brings us a standard for XMPP streams that employ the standard lightweight data
interchange format known as &lt;a href="http://json.org/">JSON&lt;/a>.&lt;/p>

&lt;p>We all know that JSON is simple, light and fast - and of course these properties align very well
with the Prosody project. For that reason, we have been working hard all day to provide the first
implementation of this new stream format... and are happy to announce the immediate
release of &lt;a href="http://prosody-modules.googlecode.com/hg/mod_json_streams/mod_json_streams.lua">mod_json_streams&lt;/a>!&lt;/p>

&lt;p>Simply install mod_json_streams as you would any other plugin (requires &lt;a href="http://blog.prosody.im/prosody-0-8-0rc2-available-for-testing/">Prosody 0.8&lt;/a>) and
you can start using JSON streams right away! More documentation can be found on the &lt;a href="http://code.google.com/p/prosody-modules">prosody-modules&lt;/a> wiki page &lt;a href="http://code.google.com/p/prosody-modules/wiki/mod_json_streams">for mod_json_streams&lt;/a>.&lt;/p>

&lt;p>While client developers can now rally to implement &lt;a href="http://xmpp.org/extensions/xep-0295.html">XEP-0295&lt;/a>
in their software, we have already
developed &lt;a href="http://prosody-modules.googlecode.com/hg/mod_json_streams/strophe.jsonstreams.js">a plugin&lt;/a>
for the popular &lt;a href="https://github.com/metajack/strophejs">Strophe&lt;/a> JS library to allow web developers to
incorporate this into their projects right away. After loading this Strophe connection plugin simply
point Strophe at &lt;code>http://your-server:5280/jsonstreams&lt;/code> and watch the JSON fly!&lt;/p>

&lt;p>Those interested will be glad to know that we are already at work on our next big interface - HTML(5) based
streams, complete with support for optional closing tags in stanzas, and an embedded scripting language for
manipulating them once they reach clients.&lt;/p>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-8-0rc2-available-for-testing/</id>
	<title>Prosody 0.8.0rc2 available for testing</title>
	<published>2011-03-02T05:47:48Z</published>
	<updated>2011-03-02T06:48:37Z</updated>
	<link href='http://blog.prosody.im/prosody-0-8-0rc2-available-for-testing/' />
	<content type='html'>


&lt;p>Time for a new release candidate for 0.8! If you aren't familiar with the
new features in 0.8 yet, please refer to our &lt;a href="http://blog.prosody.im/prosody-0-8-0rc1-available-for-testing/">announcement of 0.8.0rc1&lt;/a>.&lt;/p>

&lt;p>No major issues have been found since RC1, but we've found and fixed a
number of minor ones, and sneaked in a couple of small features we've
been working on that didn't &lt;em>quite&lt;/em> make RC1 in time.&lt;/p>

&lt;p>This includes a new &lt;a href="http://prosody.im/doc/migrator">migrator&lt;/a> for moving
data from the current file-based backend to the SQL backend, and vice-versa.
The plan is to merge our other migration utilities for ejabberd and XEP-0227
into this one, and create the ultimate data migration tool :)&lt;/p>

&lt;p>Download links are down below as usual, but here follows a summary of the
changes made since &lt;a href="http://blog.prosody.im/prosody-0-8-0rc1-available-for-testing/">RC1&lt;/a>:&lt;/p>

&lt;ul>
    &lt;li>mod_storage_sql: Display friendlier error when LuaDBI is not found
    on the system&lt;/li>
    &lt;li>Fix a config issue that prevented disabling a module on a specific host&lt;/li>
    &lt;li>Some internal cleanup and performance improvements in the stanza building API&lt;/li>
    &lt;li>Log and gracefully handle errors in HTTP request handlers&lt;/li>
    &lt;li>PEP: Fix resending published items on contact presence change&lt;/li>
    &lt;li>MUC: Add option to choose whether participants can change the subject&lt;/li>
    &lt;li>MUC: Some fixes to affiliation management permissions&lt;/li>
    &lt;li>Support for multiple plugin directories (now possible to load directly
     from a prosody-modules repo checkout, for example, or from a custom dev
     directory)&lt;/li>
    &lt;li>Stricter checking of the 'type' attribute on iq and presence&lt;/li>
    &lt;li>Add new migration tool, for moving data between the file and SQL backends&lt;/li>
    &lt;li>Make the new logging config syntax compatible with log sinks like "syslog"&lt;/li>
    &lt;li>Add a "module.path" for plugins to know where they were loaded from&lt;/li>
    &lt;li>Adjust some logging levels around s2s to make it less verbose by default&lt;/li>
    &lt;li>Remove hereto undocumented 'sasl_realm' config option&lt;/li>
    &lt;li>SCRAM: Fix escaping issue with commas in usernames&lt;/li>
&lt;/ul>

&lt;p>As always &lt;a href="http://prosody.im/discuss">feedback is welcome&lt;/a> on anything in the
release. Documentation for the new data migrator can be found
&lt;a href="http://prosody.im/doc/migrator">on our site&lt;/a>.&lt;/p>

&lt;h2>Download&lt;/h2>

&lt;h3>Windows&lt;/h3>

&lt;ul>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc2/ProsodySetup-0.8.0rc2.exe">Installer&lt;/a>&lt;/li>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc2/Prosody-0.8.0rc2.zip">Zip&lt;/a>&lt;/li>
&lt;/ul>

&lt;h3>Debian/Ubuntu&lt;/h3>

&lt;ul>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc2/prosody_0.8.0-1~rc2_i386.deb">32-bit&lt;/a>&lt;/li>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc2/prosody_0.8.0-1~rc2_amd64.deb">64-bit&lt;/a>&lt;/li>
&lt;/ul>

&lt;h3>Source&lt;/h3>

&lt;ul>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc2/prosody-0.8.0rc2.tar.gz">Tarball&lt;/a>&lt;/li>
&lt;/ul>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-8-0rc1-available-for-testing/</id>
	<title>Prosody 0.8.0RC1 available for testing</title>
	<published>2011-01-13T16:51:02Z</published>
	<updated>2011-01-13T17:35:02Z</updated>
	<link href='http://blog.prosody.im/prosody-0-8-0rc1-available-for-testing/' />
	<content type='html'>


&lt;p>Hello everyone!&lt;/p>

&lt;p>Finally, the announcement everyone has been waiting for... we're very
proud to present a release candidate for &lt;a href="http://prosody.im/">Prosody&lt;/a> 0.8.0!&lt;/p>

&lt;p>Prosody 0.8 contains a number of features that people have been eager
to see. In particular it is now easy to extend Prosody's
authentication and storage via plugins. This means Prosody can grow to
support a large range of databases and 3rd-party authentication
systems.&lt;/p>

&lt;p>This is a non-exhaustive list of changes since 0.7:&lt;/p>

&lt;ul>
    &lt;li>Support for pluggable storage backends, including:
    &lt;ul>
        &lt;li>&lt;a href="http://prosody.im/doc/modules/mod_storage_internal">File-based&lt;/a> (still the default)&lt;/li>
        &lt;li>&lt;a href="http://prosody.im/doc/modules/mod_storage_sql">SQL&lt;/a>, supporting SQLite, MySQL and PostgreSQL&lt;/li>
        &lt;li>More (beta) in &lt;a href="http://code.google.com/p/prosody-modules/w/list">prosody-modules&lt;/a>&lt;/li>
    &lt;/ul>&lt;/li>
    &lt;li>Support for pluggable authentication backends
    &lt;ul>
        &lt;li>&lt;a href="http://prosody.im/doc/modules/mod_auth_internal_plain">Plain&lt;/a> (still the default)&lt;/li>
        &lt;li>&lt;a href="http://prosody.im/doc/modules/mod_auth_internal_hashed">Hashed&lt;/a> (passwords are not recoverable from storage)&lt;/li>
        &lt;li>&lt;a href="http://prosody.im/doc/modules/mod_auth_cyrus">Cyrus SASL&lt;/a>&lt;/li>
        &lt;li>&lt;a href="http://prosody.im/doc/modules/mod_auth_anonymous">Anonymous&lt;/a> (no credentials required)&lt;/li>
        &lt;li>More (beta) in &lt;a href="http://code.google.com/p/prosody-modules/w/list">prosody-modules&lt;/a>&lt;/li>
    &lt;/ul>&lt;/li>
    &lt;li>Ad-hoc commands are now included by default, to
    allow managing Prosody via your XMPP client.&lt;/li>
    &lt;li>The built-in &lt;a href="http://prosody.im/doc/modules/mod_muc">mod_muc&lt;/a> for hosting chatrooms gained
    many new features, including password-protected and members-only/invite-only rooms.&lt;/li>
    &lt;li>Components such as gateways and transports can securely
    be prevented from being accessed by remote servers (disallow_s2s = true).&lt;/li>
    &lt;li>BOSH: Support for preserving the client's real IP through
    trusted proxies.&lt;/li>
&lt;/ul>

&lt;p>If you are packaging Prosody then you should take a look at our
&lt;a href="http://prosody.im/doc/packagers">documentation for packagers&lt;/a>
for more notes about this release related to building and packaging.&lt;/p>

&lt;p>If there are no major issues found in this RC then the
final 0.8.0 release will be made in the next couple of
weeks.&lt;/p>

&lt;p>All feedback is welcome, especially from people testing SQL storage. We are
working on putting together a migrator to move data from one storage backend to
another, expect that to be announced here soon. For more info
see out &lt;a href="http://prosody.im/doc/storage">storage documentation&lt;/a>.&lt;/p>

&lt;h2>Known issues&lt;/h2>
&lt;p>Since packaging and testing RC1 we have found a couple of small issues
that will be corrected in the final release:&lt;/p>

&lt;ul>
    &lt;li>The 'authentication' option is not documented in the config file.
    See &lt;a href="http://prosody.im/doc/authentication">this documentation&lt;/a> for now.&lt;/li>
    &lt;li>Tracebacks are shown if SQL storage is selected but LuaDBI is not
    installed. See &lt;a href="http://prosody.im/doc/depends#luadbi">this page&lt;/a> for
    installation instructions.&lt;/li>
    &lt;li>The Windows build does not include LuaDBI. Addon packages for &lt;a href="http://prosody.im/doc/depends#luadbi">SQLite
    and MySQL&lt;/a> are provided separately.&lt;/li>
&lt;/ul>

&lt;h2>Download&lt;/h2>

&lt;h3>Windows&lt;/h3>

&lt;ul>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc1/ProsodySetup-0.8.0rc1.exe">Installer&lt;/a>&lt;/li>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc1/Prosody-0.8.0rc1.zip">Zip&lt;/a>&lt;/li>
&lt;/ul>

&lt;h3>Debian/Ubuntu&lt;/h3>

&lt;ul>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc1/prosody_0.8.0-1~rc1_i386.deb">32-bit&lt;/a>&lt;/li>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc1/prosody_0.8.0-1~rc1_amd64.deb">64-bit&lt;/a>&lt;/li>
&lt;/ul>

&lt;h3>Source&lt;/h3>

&lt;ul>
    &lt;li>&lt;a href="http://prosody.im/tmp/0.8.0rc1/prosody-0.8.0rc1.tar.gz">Tarball&lt;/a>&lt;/li>
&lt;/ul>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-nightly-builds/</id>
	<title>Prosody nightly builds</title>
	<published>2010-07-13T17:36:59Z</published>
	<updated>2010-07-13T17:36:59Z</updated>
	<link href='http://blog.prosody.im/prosody-nightly-builds/' />
	<content type='html'>


&lt;p>For quite a while we have made it easy to get snapshots of the latest Prosody source, 
and also provided a 64-bit Debian package (prosody-dev) that tracks Prosody's main
development branch.&lt;/p>

&lt;p>We just completed the last pieces of a new system for building regular
nightly builds for each of our active branches. Produced every day at 5AM
UTC are builds of a source tarball and Debian/Ubuntu 32-bit and 64-bit packages.&lt;/p>

&lt;p>Eventually we plan to extend this system to building for various other platforms (including
Windows).&lt;/p>

&lt;p>You can find all the builds at &lt;a href="http://prosody.im/nightly/">http://prosody.im/nightly/&lt;/a>.&lt;/p>

&lt;p>The Debian packages are automatically uploaded every night to our
&lt;a href="http://prosody.im/download/package_repository">package repository&lt;/a>, and the packages are
named according to the branch they are built from. Currently available are: prosody-0.6,
prosody-0.7, and prosody-trunk (this last is always following the very latest development code).&lt;/p>

&lt;p>The build server is generously donated by Florian Thießen, who also runs a public service
running Prosody, &lt;a href="http://thiessen.im/">thiessen.im&lt;/a>.&lt;/p>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-7-0-released/</id>
	<title>Prosody 0.7.0 released</title>
	<published>2010-06-14T18:19:56Z</published>
	<updated>2010-06-14T19:24:03Z</updated>
	<link href='http://blog.prosody.im/prosody-0-7-0-released/' />
	<content type='html'>


&lt;p>We did it! We are very pleased to announce the release of &lt;a href="http://prosody.im/">Prosody&lt;/a> 0.7.0.&lt;/p>

&lt;p>&lt;a href="#download">Download links&lt;/a> are below, but first let's take a look at some of the new features...&lt;/p>

&lt;h2>Efficient connection handling&lt;/h2>

&lt;p>One of the most significant changes in &lt;a href="http://prosody.im/doc/release/0.7.0">Prosody 0.7&lt;/a> is the
added support for &lt;a href="http://www.monkey.org/~provos/libevent/">libevent&lt;/a>, meaning Prosody can
efficiently handle very large numbers of connections on a variety of platforms using epoll, kqueue,
and a range of other mechanisms.&lt;/p>

&lt;p>For more information see &lt;a href="http://prosody.im/doc/libevent">our libevent documentation&lt;/a>.&lt;/p>

&lt;h2>Cyrus SASL authentication&lt;/h2>

&lt;p>There is also now support for &lt;a href="http://asg.web.cmu.edu/sasl/">Cyrus SASL&lt;/a> to handle authentication,
allowing the use of &lt;a href="http://en.wikipedia.org/wiki/LDAP">LDAP&lt;/a>,
&lt;a href="http://en.wikipedia.org/wiki/Pluggable_Authentication_Modules">PAM&lt;/a>,
&lt;a href="http://en.wikipedia.org/wiki/SQL">SQL&lt;/a> or a range of other authentication methods such as
&lt;a href="http://en.wikipedia.org/wiki/GSSAPI">GSSAPI&lt;/a>.&lt;/p>

&lt;p>For more information see &lt;a href="http://prosody.im/doc/cyrus_sasl">our Cyrus SASL backend documentation&lt;/a>.&lt;/p>

&lt;h2>SCRAM authentication&lt;/h2>

&lt;p>&lt;a href="http://ayena.de/">Tobias Markmann&lt;/a> has also added support for SCRAM, a new authentication mechanism that
&lt;a href="http://tools.ietf.org/html/draft-ietf-sasl-scram#appendix-B">solves&lt;/a> a lot of the 
&lt;a href="http://tools.ietf.org/html/draft-ietf-sasl-scram#appendix-A">problems and weaknesses&lt;/a> found in the current and
widely-used mechanisms. Prosody's SCRAM support has been successfully tested against development versions of
&lt;a href="http://pidgin.im/">Pidgin&lt;/a>, &lt;a href="http://pandion.im/">Pandion&lt;/a>, &lt;a href="http://gajim.org/">Gajim&lt;/a>, &lt;a href="http://ayena.de/sleep_tight_password_safe">Psi&lt;/a>,
&lt;a href="http://telepathy.freedesktop.org/wiki/">Telepathy&lt;/a> and the newcomer &lt;a href="http://swift.im/releases/swift-1.0beta2/">Swift&lt;/a>.&lt;/p>

&lt;p>Also in the area of authentication and security, we have decided to make Prosody advertise the 'PLAIN' SASL mechanism
by default only when the client's connection to the server is encrypted. This means that even when encryption isn't
enforced, clients will never be transmitting passwords in a form that can easily be reversed.&lt;/p>

&lt;h2>Privacy lists&lt;/h2>

&lt;p>For a while &lt;a href="http://thilo.cestona.ro/">Thilo Cestonaro&lt;/a> has been busy contributing plugins to our
&lt;a href="http://code.google.com/p/prosody-modules/">prosody-modules&lt;/a> project. Finally this release pulls in two of his plugins,
mod_privacy and mod_proxy65.&lt;/p>

&lt;p>Privacy lists allow users to configure custom filters for messages, presence and queries. This is already supported
by most clients, which allow you to create very flexible rule-based filters.&lt;/p>

&lt;p>Sometimes privacy lists are far more powerful than you need though, so we also
&lt;a href="http://code.google.com/p/prosody-modules/wiki/mod_blocking">have a plugin&lt;/a> (currently experimental) for a protocol
known as "&lt;a href="http://xmpp.org/extensions/xep-0191.html">Simple Communications Blocking&lt;/a>", which allows you to simply
configure a list of JIDs you wish to block all communications with.&lt;/p>

&lt;h2>File transfer proxying&lt;/h2>

&lt;p>File transfer in XMPP has been notoriously unreliable. This is in large part due to ever-increasing presence of firewalls
and NAT routers between users, preventing connections directly between clients.&lt;/p>

&lt;p>Using mod_proxy65, a client can request that Prosody acts as an intermediary in a file transfer - both clients connect to
the server, and the server will relay data between them.&lt;/p>

&lt;p>Most clients already support this protocol (&lt;a href="http://xmpp.org/extensions/xep-0065.html">XEP-0065&lt;/a>, as the name suggests),
and so once configured on the server it should work with any modern client out of the box.&lt;/p>

&lt;p>Setting up the file transfer proxy is described in our
&lt;a href="http://prosody.im/doc/modules/mod_proxy65">mod_proxy65 documentation&lt;/a>.&lt;/p>

&lt;h2>Port multiplexing&lt;/h2>

&lt;p>An experimental new feature allows you to configure Prosody to run more than one kind of service on a single port. As an
example you can handle both client-to-server and server-to-server connections on a single port, in fact, it even supports
HTTP and BOSH! This means that you could serve XMPP clients on port 80, and still serve files over HTTP and
allow BOSH connections on that port.&lt;/p>

&lt;p>To try it out, simply set the list of ports in the config, for example: "ports = { 5222, 80 }" - no need to specify
which service(s) each port is for.&lt;/p>

&lt;p>Further port configuration is described in our &lt;a href="http://prosody.im/doc/configure">documentation&lt;/a>.&lt;/p>

&lt;h2>Error notification&lt;/h2>

&lt;p>Another relatively minor, but very useful change is that when Prosody fails to deliver a message over a server-to-server
connection, it includes in the generated error message what caused the failure. The feature is probably best described
with a screenshot (this is of Gajim):&lt;/p>

&lt;p>&lt;img src="/files/prosody_connection_failed.png" alt="Image showing connection failed message from Prosody" />&lt;/p>

&lt;p>By providing this information we can allow client developers to provide better user interfaces. Error handling and
reporting is in our experience one area where all the major clients have a lot of room for improvement. Hopefully
this can help them on their way to more explanatory errors.&lt;/p>

&lt;h2>Proxy-less BOSH&lt;/h2>

&lt;p>BOSH is a great technology which allows XMPP to be used from web pages. However it has traditionally been rather
restricted by Javascript's "same-origin" policy, which prevents a page from connecting to the XMPP server unless
it is on the same domain and port.&lt;/p>

&lt;p>Until now this has been solved by using a server proxy on the page's domain to forward requests to the XMPP server,
or to use Flash to make the requests, via &lt;a href="http://flxhr.flensed.com/">flxhr&lt;/a>.&lt;/p>

&lt;p>However browsers now are beginning to support a new specification known as
&lt;a href="http://www.w3.org/TR/cors/">Cross-Origin Resource Sharing (CORS)&lt;/a>. This allows a browser to ask for permission from the
remote domain to send requests there.&lt;/p>

&lt;p>Support for CORS is now implemented in Prosody, and a browser also supporting CORS can connect to Prosody via BOSH
without using a proxy, and without using Flash. CORS works out of the box with
&lt;a href="http://code.stanziq.com/strophe/">Strophe.js&lt;/a>.&lt;/p>

&lt;p>Details on configuring CORS support to suit your setup can be found in
&lt;a href="http://prosody.im/doc/modules/mod_bosh">our BOSH documentation&lt;/a>.&lt;/p>

&lt;h2>Other changes&lt;/h2>

&lt;p>This release includes many other changes, features and improvements. These include compression for server-to-server
streams, disabling support for the insecure SSLv2 protocol, fixes to make PEP support compatible with User Avatar,
and non-anonymous rooms and room destruction for MUC.&lt;/p>

&lt;p>There have also been numerous changes to improve performance, and compliance with the latest XMPP specifications.&lt;/p>

&lt;p>As always, you can reach us in any of the &lt;a href="http://prosody.im/discuss">usual places&lt;/a> for feedback, bug reports or
words of thanks :-)&lt;/p>

&lt;p>&lt;a name="download">&lt;/a>&lt;/p>
&lt;h1>Download&lt;/h1>

&lt;p>&lt;strong>Windows&lt;/strong>: &lt;a href="http://prosody.im/downloads/windows/ProsodySetup-0.7.0.exe">Installer&lt;/a> | &lt;a href="http://prosody.im/downloads/windows/Prosody-0.7.0.zip">Zip&lt;/a>&lt;/p>

&lt;p>&lt;strong>OS X&lt;/strong>: &lt;a href="http://prosody.im/downloads/mac/prosody-0.7.0.dmg">Installer&lt;/a> (requires OS X 10.5 or newer, Intel (32bit/64bit) and PowerPC (32bit))&lt;/p>

&lt;p>&lt;strong>Debian/Ubuntu&lt;/strong>: &lt;a href="http://prosody.im/downloads/debian/prosody_0.7.0-1_i386.deb">32-bit&lt;/a> | &lt;a href="http://prosody.im/downloads/debian/prosody_0.7.0-1_amd64.deb">64-bit&lt;/a>&lt;/p>

&lt;p>&lt;strong>Source tarball&lt;/strong>: &lt;a href="http://prosody.im/downloads/source/prosody-0.7.0.tar.gz">prosody-0.7.0.tar.gz&lt;/a>&lt;/p>


	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-7-0rc2-available-for-testing/</id>
	<title>Prosody 0.7.0RC2 available for testing</title>
	<published>2010-05-26T18:18:36Z</published>
	<updated>2010-05-26T18:21:53Z</updated>
	<link href='http://blog.prosody.im/prosody-0-7-0rc2-available-for-testing/' />
	<content type='html'>


&lt;p>It's been a while, but we're back with a new release candidate
for &lt;a href="http://prosody.im/">Prosody&lt;/a> 0.7.0! The last one gave us
valuable feedback and caught issues we'd never have caught
without all our users who helped with the testing. Thanks!&lt;/p>

&lt;p>So, now for RC2. The links to download are below. There have been
quite a few fixes and improvements, here is the list of changes
since RC1:&lt;/p>

&lt;ul>
    &lt;li>SASL SCRAM updated for the latest specifications.&lt;/li>
    &lt;li>More robust handling of running out of file descriptors.&lt;/li>
    &lt;li>Replaced broadcast_message_policy with ignore_presence_priority
    for compatibility with the new XMPP specifications.&lt;/li>
    &lt;li>Option consider_bosh_secure for those using HTTPS->HTTP proxies
    and Prosody's encryption enforcement.&lt;/li>
    &lt;li>Fixes and optimisations for mod_privacy.&lt;/li>
    &lt;li>Support for canonicalizing credentials sent to Cyrus SASL.&lt;/li>
    &lt;li>Fix for HTTPS server handling of large client->server payloads.&lt;/li>
    &lt;li>Fix for ghost BOSH users triggered by using Apache for proxying,
    Firefox as a browser or a range of other random variables :)&lt;/li>
    &lt;li>mod_proxy65 now works with libevent backend.&lt;/li>
    &lt;li>Fix MUC issue preventing role changes by non-owners.&lt;/li>
    &lt;li>Fix timers not firing when using libevent.&lt;/li>
    &lt;li>Fix namespacing of stanzas sent over s2s connections.&lt;/li>
    &lt;li>Don't re-send data when connection closes, causing high CPU usage.&lt;/li>
    &lt;li>Add s2s_allow_encryption option to allow disabling encryption for
    s2s.&lt;/li>
    &lt;li>Improve error reporting when using Cyrus SASL.&lt;/li>
    &lt;li>Make mod_groups (shared rosters) work with roster versioning
    clients.&lt;/li>
    &lt;li>Fix compression to work with Pandion, and clients which negotiate
    it immediately after SASL and before resource binding.&lt;/li>
    &lt;li>Handle multiple IPs per nameserver statement in resolv.conf&lt;/li>
    &lt;li>Improve the handling of errors received from OpenSSL when loading
    certificates.&lt;/li>
&lt;/ul>

&lt;p>If you want to give 0.7.0 a try before the final release, download it below,
and let us know how you get on. If all goes well then we'll be releasing
0.7.0 final shortly!&lt;/p>

&lt;h2>Download&lt;/h2>

&lt;p>&lt;strong>Windows&lt;/strong>:
&lt;a href="http://prosody.im/tmp/0.7.0rc2/ProsodySetup-0.7.0rc2.exe">Installer&lt;/a> | 
&lt;a href="http://prosody.im/tmp/0.7.0rc2/Prosody-0.7.0rc2.zip">Zip&lt;/a>&lt;/p>

&lt;p>&lt;strong>OS X&lt;/strong>: &lt;a href="http://prosody.im/tmp/0.7.0rc2/prosody-0.7.0rc2.dmg">Installer&lt;/a>
(requires OS X 10.5 or newer, Intel (32bit/64bit) and PowerPC (32bit))&lt;/p>

&lt;p>&lt;strong>Debian/Ubuntu&lt;/strong>: &lt;a href="http://prosody.im/tmp/0.7.0rc2/prosody_0.7.0-1~rc2_i386.deb">32-bit&lt;/a> | 
&lt;a href="http://prosody.im/tmp/0.7.0rc2/prosody_0.7.0-1~rc2_amd64.deb">64-bit&lt;/a>&lt;/p>

&lt;p>&lt;strong>Source tarball&lt;/strong>: &lt;a href="http://prosody.im/tmp/0.7.0rc2/prosody-0.7.0rc2.tar.gz">prosody-0.7.0rc2.tar.gz&lt;/a>&lt;/p>

	</content>
</entry>
<entry>
	<author>
		<name>The Prosody Team</name>
	</author>
	<id>http://blog.prosody.im/prosody-0-6-2-released/</id>
	<title>Prosody 0.6.2 released</title>
	<published>2010-04-28T14:05:48Z</published>
	<updated>2010-04-28T14:05:48Z</updated>
	<link href='http://blog.prosody.im/prosody-0-6-2-released/' />
	<content type='html'>


&lt;p>We are pleased to announce the release of Prosody 0.6.2.&lt;/p>

&lt;p>This release fixes a bucketful of issues, some big, some small. The
most notable changes include:&lt;/p>

&lt;ul>
    &lt;li>Disable SSLv2 by default, as it is insecure&lt;/li>
    &lt;li>Fix a bug that could cause invalid XML to be sent to clients&lt;/li>
    &lt;li>In some cases data sent immediately before socket close could be lost&lt;/li>
    &lt;li>c2s/s2s require_encryption options now do what they say on the tin&lt;/li>
    &lt;li>Improved detection of already-running Prosody instances&lt;/li>
    &lt;li>Fixed a small memory leak in HTTP/BOSH&lt;/li>
    &lt;li>Ensure that the namespace on sent s2s stanzas is always jabber:server&lt;/li>
    &lt;li>Fix to correct the algorithm used in selecting SRV targets from DNS&lt;/li>
&lt;/ul>

&lt;p>In addition we have slightly reformatted the default configuration file,
in an attempt to make first-time configuration easier, based on feedback
received from users. All existing configuration files work with &lt;em>no&lt;/em>
changes required.&lt;/p>

&lt;p>Thanks to everyone who has helped find and report bugs, and help test the
fixes for this release. We couldn't have done it without you :)&lt;/p>

&lt;h2>Download&lt;/h2>

&lt;p>&lt;strong>Windows&lt;/strong>: &lt;a href="http://prosody.im/downloads/windows/ProsodySetup-0.6.2.exe">Installer&lt;/a> |&lt;a href="http://prosody.im/downloads/windows/Prosody-0.6.2.zip">Zip&lt;/a>&lt;/p>

&lt;p>&lt;strong>Debian/Ubuntu&lt;/strong>: &lt;a href="http://prosody.im/downloads/debian/prosody_0.6.2-1_i386.deb">32-bit&lt;/a> | &lt;a href="http://prosody.im/downloads/debian/prosody_0.6.2-1_amd64.deb">64-bit&lt;/a>&lt;/p>

&lt;p>&lt;strong>Source tarball&lt;/strong>: &lt;a href="http://prosody.im/downloads/source/prosody-0.6.2.tar.gz">prosody-0.6.2.tar.gz&lt;/a>&lt;/p>


	</content>
</entry>
</feed>
