PEP: Send publish IQ result before broadcast.

PEP: Stricter checks on payload validity.

PEP: Clone payloads to allow plugins to reuse stanzas.

PEP: Fixed namespace for the <item> element in PEP broadcasts.

util.require: Yes hg, I really did want to remove it, thanks.

prosody, util.require: Remove util.require, the shortest-lived module so far. Woke up this morning with a much simpler idea, which is also effective against C modules (I believe). Yay for metatables :)

mod_presence: Send unavailable presence when sending unsubscribed presence stanzas (some legacy clients continue to display unsubscribed contacts as available).

xmlhandlers: Reset state on error or stream close, fixes possible traceback

connlisteners: Localize tostring, fixes possible traceback when LuaSec not installed

MUC: List occupants in a room's disco#items response.

Merged with trunk.

MUC: Added config option 'restrict_room_creation' to allow restricting room creation to admins.

usermanager: Removed an unnecessary global access.

usermanager: Logged a clear warning when the 'admins' option is not a table.

usermanager: Changed function is_admin to allow checking for host-specific admins.

mod_lastactivity: Gave a positive priority to the presence event hook.

MUC: Added 'name' config option, for specifying the component's name in disco responses.

net.dns: Don't expire records with TTL of 0 instantly

mod_lastactivity: Persist data across reloads.

mod_lastactivity: Allow users to request their own last activity.

prosody.cfg.lua.dist: Convert to unix line endings from DOS

prosody: Use rawget to test for the existence of ssl (LuaSec) so we don't look for a nil global

util-src/Makefile: Add missing flags to building of util.signal

net.httpserver: Pass on interface option from new_from_config() (thanks Chris)

prosodyctl: Remove dependency on hostmanager, and friends

s2smanager: Use session-specific logger to log outgoing data on outgoing s2s connections

mod_lastactivity: Initial commit.

mod_uptime: Removed event hook for iq/bare. mod_uptime only deals with iq/host queries.

mod_uptime: Removed unused variables.

mod_uptime: Updated to use events (which also fixes a few minor issues).

mod_saslauth: Fixed access of globals.

mod_saslauth: Marked the im-session stream feature as optional. This allows smart clients to save a round trip.

mod_time: Updated to use events (which also fixes a few minor issues).

mod_ping: Updated to use events (which also fixes a few minor issues).

mod_console: Fixed traceback occuring on using module:list on unknown hosts.

mod_console: Added help text for config:reload().

MUC: Re-enable nick changes for non-multisession nicks.

mod_console: Add missing hosts:list() command

MUC: Added support for reason messages in role and affiliation changes (e.g., reason for kick, etc).

MUC: Rewrote code for mediated invites to be more robust, and to support legacy clients.

mod_vcard: Cleaned up unused variables and global accesses.

mod_vcard: Removed stream feature.

mod_vcard: Refactoring and cleanup.

mod_vcard: Moved completely to new event based hooks.

mod_vcard: Fixed traceback on attempt to set vcards by non-c2s sessions.

MUC: Improved handling of error stanzas and made error messages concise.

MUC: Ignore invisible presence (incorrectly broadcasted or forwarded by ejabberd).

MUC: Fixed an incorrect error message.

MUC: Kick occupants on sending error messages to other occupants.

Merge with trunk.

modulemanager: Module loading rewritten to gracefully deal with errors in module initialization.

modulemanager: Use componentmanager to create new components.

componentmanager: Added a FIXME comment.

componentmanager: Unload mod_tls for components before removing them.

componentmanager: Let the default component handler handle stanzas if a component handler isn't available.

MUC: Multiple sessions per nick.

modulemanager: Fixed: Stanza modules were being auto-loaded for components (regression in hg:1e674dae31ae).

modulemanager: Fixed traceback on loading modules on unknown hosts.

modulemanager: Slightly rearranged code for more robust unloading of modules.

stanza_router: Added a compatibility workaround for missing 'id' attribute in <iq/> elements.

util.stanza: Don't add xmlns to tags when serializing if same as the parent tag's xmlns. Should hopefully shut up Gajim once and for all :)

certs: Update default certs

net.dns: Don't cache some records indefinitely

mod_tls: Offer the host-specific cert (when there is one) to incoming c2s/s2s connections, fixes #30 (thanks, albert, Flo, johnny, and all who nagged me :) )

hostmanager: Create a server sslctx for incoming connections

net.server: Allow changing the sslctx of a connection after it has been established

xmppserver_listener: Use listener log() if session doesn't have one yet (thanks Flo)

mod_console: Add commands host:activate(host, config) and host:deactivate(host, reason) to add/remove hosts at runtime

s2smanager: Add incoming_s2s to the prosody object

hostmanager: deactivate() now accepts a reason, closes s2s connections as well as disconnecting users, and unloads modules for the host

hostmanager: Add return _M;

tests: Fix stanza_router tests to work with the new routing code, finally all tests pass again \o/

tests: More environment magic to help get stuff working in a sandbox

stanza_router: Localize hosts, full_sessions and bare_sessions, and take from the prosody object instead of _G

componentmanager: Handle missing prosody object (helps us pass some tests)

prosody: Move global protection earlier (to before modules are loaded, etc.)

prosody: Require new require :)

prosody: Require some core/util libraries which core modules depend upon, C modules and other modules which write to _G

prosody: Rename global net_activate_ports -> prosody.net_activate_ports

util.require: A replacement for Lua's require/module that doesn't load into the global environment by default (C modules still get past this)

util.helpers: Add copyright header

tests: Have fake module() set _M to satisfy some modules

s2smanager: Fix access of 'config' global without requiring configmanager

tests: Add tests for new modulemanager load_modules_for_host code

modulemanager: Re-organise module loading to still work when no global modules_enabled is defined in the config (thanks hoelzro for accidentally discovering this one)

util.helpers: Add get_upvalue(function, name) helper

util.dataforms: Incorporate slightly modified patch for list-single type from Florob

mod_vcard: Hide me from the trailing-whitespace police

mod_vcard: Add vcard_compatibility option to handle vcard stanzas routed to the full JID by ejabberd MUC rooms

Merge with 0.5

xmppserver_listener: Fix typo (thanks Jorj)

Merge with 0.5

net.server: Better handling of closing sockets during send

xmppserver_listener: More forcefully close s2s connections (fixes fd leak)

Merge with 0.5

net.dns: Remove sockets from socketset when closing them, fixes a leak

Merge with 0.5

rostermanager: Fixed a traceback on roster save.

modulemanager: Changed api:get_host_items to include items from the global host in its result.

util.dataforms: Small fix to allow generating forms without specifying any input data

util.dataforms: Support for jid-single field type especially for Florob :)

mod_tls: Don't try to start TLS if we can't actually do it (thanks Florob)

componentmanager: Auto-load mod_tls for components #hack

componentmanager: Remove FIXME

componentmanager: Fix oops in pattern for matching subdomain

componentmanager: Use ssl_ctx of 'parent' host (should fix TLS for components)

mod_tls: Catch s2s-stream-features and add starttls feature if possible

mod_dialback: Catch s2s-stream-features and add dialback feature

s2smanager: Make s2s-stream-features a per-host event

util.stanza: Remove silly dependency on util.logger

util.array: Oh no it isn't!

modulemanager: Bump log level of unhandled non-default-namespace elements, and log their full XML

util.stanza: Soften dependency on util.termcolours

util.stanza: Make xml_escape publicly accessible

s2smanager: Don't send version=1.0 in reply to incoming stream tag if they didn't advertise 1.0 (makes happy some old ejabberd versions)

sessionmanager: Mark client streams as opened sooner to avoid wrapping errors in unnecessary stream tags

s2smanager: Improve log message on missing to/from in stream header

mod_console: Add a space before '(encrypted)' in s2s:show()

mod_tls: Mark sessions as not secure when negotiating outward TLS, so they get marked secure later. Fixes missing (encrypted) for outgoing sessions in s2s:show(). Thanks albert, McKael :)

hostmanager: Only initialse SSL contexts if SSL library available

mod_console: Also search piggy-backed, er, multiplexed domains when passing a filter to s2s:show()

Merge with 0.5

util.array: Small logic fix for array:filter()

util.array: Fix for array:filter() (in-place filtering)

mod_console: Add module:list() to help

mod_console: Add module:list() command to show modules loaded on a host

util.array: Per-array methods now always mutate the array, array.* return a mutated copy, and most methods (e.g. sort) now return the array

modulemanager: Add host.modules to contain a table of modules for a host

Merge with 0.5

util.array: Fix for array:filter() (in-place filtering)

mod_console: s2s:show(): Indicate when a connection is encrypted

mod_tls: require_s2s_encryption -> s2s_require_encryption

require_encryption deprecated, use c2s_require_encryption instead

mod_tls: Mark starttls feature as <required/> if require_s2s_encryption is enabled

mod_tls: Mark session as not secure before negotiating TLS

s2smanager: Mark session as secure if it was negotiating TLS and opens a new stream

Merge with 0.5

mod_console: Add module:list() to help

mod_console: Add module:list() command to show modules loaded on a host

util.array: Per-array methods now always mutate the array, array.* return a mutated copy, and most methods (e.g. sort) now return the array

modulemanager: Add host.modules to contain a table of modules for a host

mod_tls: Only advertise TLS if the server told us which host they are connecting to

xmppserver_listener: Lower log-level of debug message to, er, 'debug'

net.adns: Bump log-level of DNS handler errors to, er, 'error'

Merge with 0.5

stanza_router: Reply to IQ requests with missing 'id' attribute with a bad-request error.

rostermanager: Fixed: Roster version was not being properly updated in some edge cases.

rostermanager: Added support for saving rosters of offline users to the save_roster function.

mod_tls: :up() out of the starttls tag in stream:features

Specify XMPP version on response stream to incoming s2s connection.

Minor changes; outgoing TLS works.

hostmanager: Create ssl context for each host (fixes #30 for outgoing s2s connections)

loggingmanager: Whitespace fix

s2smanager: Small comment

s2smanager: Don't wait for stream:features from non-XMPP-1.0 hosts

s2smanager: Send stream:features for incoming s2s connections which support XMPP 1.0

s2smanager: Give outgoing sessions a host field (the local one)

stanza_router: Add COMPAT comment for Pidgin workaround

net.server: Small logging improvements

net.server: Pass current time to timer callbacks

net.server: Increase SSL handshake round-trip limit, and make it configurable

net.server: Call handler's status() to notify it of ssl handshake success

net.server: Provide a way to get sslctx of a client connection

net.server: Provide a way to get sslctx of a server

xmppserver_listener: Add status() function to signal when a connection completes its SSL handshake

xmppserver_listener: Add logger to s2s sessions

xmppserver_listener: Small whitespace fix

xmppserver_listener: Better log messages on invalid XML

mod_dialback: Initiate dialback on incoming stream:features

mod_tls: Advertise and handle TLS for s2s connections

util.stanza: Add __type to metatable

sessionmanager: Use UUID for stream ids to clients, no math.random anymore :)

sessionmanager: Add c2s_timeout option for unauthenticated client connections

util.timer: Pass current_time to timer callbacks

mod_httpserver: Update to use new httpserver.new_from_config syntax

mod_bosh: Update to use new httpserver.new_from_config syntax

net.httpserver: Allow modules registering to provide more than just a default path when using httpserver.new_from_config

Merge with 0.5

util.muc: Fix location of <x> element on error replies

Merge with 0.5

mod_bosh: Fix for 'invalid key to next' error when 2 clients lose connection at the same time

net.server: Fix missing concatenation operator in error message

MUC: Prep given JID when changing affiliation.

Merge with 0.5

Merge

mod_register: Added helpful text to registration error responses.

mod_register: Changed error type for hitting registration rate limit from 'cancel' to 'wait'.

mod_register: Fixed: No error was returned if username failed nodeprep.

util.encodings: Removed a bit of unreachable code.

util.encodings: Included idn-free.h, which explicitly declares the idn_free function.

util.encodings: Fixed: Last change was not ANSI C compatible.

Merge with 0.5

modulemanager: Load modules for components, too

componentmanager: Preserve existing events table (if any) when registering a component

componentmanager: Fire event on component activation

componentmanager: Use create_component for, er, creating components

hostmanager: Only load vhosts, not components

Merge with 0.5

mod_saslauth: Prep username used for authenticating a session

Merge with 0.5

util.encodings: Don't throw an error but return nil when passed nil or a non-string value

Merge with 0.5

util.pposix: Compatibility with Solaris systems (thanks Filip)

util.signal: Change ifdef to allow signal.kill() on Solaris (thanks Filip)

Makefile: Don't combine variable export with assignment for compatibility with other shells (thanks Filip)

Merge with 0.5

Tagging 0.5.2

Merge with trunk

MUC: Added multi-session support to the room-exiting occupant use case.

MUC: Renamed a variable name.

MUC: Refactored to remove some duplicate code.

Merge with 0.5

Merge with waqas 0.5.2

Merge with waqas

mod_legacyauth: Don't allow server-generated resource identifiers, as these are not support by legacy auth.

mod_legacyauth: Undo auth on bind fail. Legacy auth is atomic.

mod_legacyauth: Added node and resource prepping.

Makefile.win: Updated the windows Makefile with more appropriate paths.

util.encodings: Fixed an issue with cross-module memory deallocation (crashes on some windows versions).

core.s2smanager: Always use last record in the DNS cache

net.dns: Even better parsing of nameservers from resolv.conf

Merge with 0.5

net.dns: Remove elements from the cache when expired so as to not leave holes in the array

mod_console: s2s:close: Use session:close() if that exists, otherwise just destroy the session

net.dns: Stricter matching of nameserver entries in resolv.conf

MUC: Added legacy error code to the presence error returned when a banned user attempts to join.

MUC: Added legacy error codes to nickname conflict presence errors.

Merge with trunk

MUC: Added MUC feature to the disco#info replies of rooms.

Merge with 0.5

net.dns: Respect commented nameserver entries in resolv.conf (thanks Remko)

mod_welcome: Change $user to $username in default welcome message (thanks to neustradamus for spotting)

Re-tagging 0.5.2

mod_httpserver: Configurable filesystem path to serve from

Re-tagging 0.5.2

prosody.cfg.lua.dist: Add example of declaring admins for a server

net.dns: (for some reason this commit didn't pull over from 0.5) Remove hard-coded 4.2.2.1 from dns.lua

Merge with 0.5

net.dns: Accidentally committed a hard-coded 4.2.2.1 nameserver

core.s2smanager: Don't recurse CNAMEs infinitely :)

net.server: Fix traceback when closing connections with buffered data get closed during send

Merge with 0.5

Tagging 0.5.2

Merge with 0.5

mod_vcard: Handle vcard requests from local components.

Merge with 0.5

mod_console: Show status and priority of clients

Merge with 0.5

s2smanager: Timeout unauthed s2s connections

util.helpers: It would be a good idea to fire an event when we say we are

Merge with 0.5

s2smanager: Compatibility with domains which use CNAMEs

Merge with 0.5

s2smanager: Pass A-record lookups through adns module

prosody: Add prosody.installed flag to indicate whether Prosody has been installed or is running from checkout

prosody: Add prosody.platform which can be either 'windows', 'posix' or 'unknown'

Merge with 0.5

net.adns: Utilise new net.dns API to handle DNS network errors

net.dns: Multiple internal changes and API extensions to allow for more reliable DNS lookups

net.server: Add checking for nil sockets to prevent traceback

ejabberd2prosody: Fixed a problem with null roster groups.

ejabberd2prosody: Fixed escape code processing when parsing strings.

ejabberd2prosody: Added support for ask='both' in subscriptions.

MUC: Removed some debug logging.

MUC: Added a send() method to the component. Fixes issues with local mod_vcard.

mod_vcard: Handle vcard requests from local components.

MUC: Correct routing of vCard requests to bare JID.

configmanager: Assign a chunk name to config files loaded using the default config loader (fixes issues with some diagnostic tools).

mod_offline: Fixed undefined global access.

ComponentManager: Removed unused variable.

ComponentManager: Removed dependency on core_route_stanza. The default component handler now replies using origin.send().

ComponentManager: Fixed: Default handler sent error replies on result stanzas.

ComponentManager: Fixed a bit of logging.

Merge with 0.5 (no changes!)

mod_httpserver: Backport from trunk more thorough validation of URLs prior to processing

MUC: Preserve stanza attributes for private messages.

MUC: Don't kick on errors in private messages.

MUC: Discard non-persistent rooms as soon as they become empty.

Removed util.muc (replaced by new MUC plugin library)

Removed legacy mod_muc (replaced by new one).

MUC: Removed commented code.

mod_console: c2s:show(): Group listed clients by host

Fix for Makefile hack to install MUC plugin

Updated the Makefile to work with the MUC plugin folder.

Merged with Tobias

Automated merge with http://prosody.im/source/hg

Add NODEprepping to SASL Digest-MD5 authentication handling.

MUC: Fixed traceback on unauthorized access of the room configuration form.

MUC: Added service discovery replies for rooms.

MUC: Fixed an undefined global access.

MUC: Added support for room configuration forms, persistence and hidden rooms.

MUC: Refactored IQ handling to be more easily extensible.

MUC: Added kicking support.

MUC: Fixed a variable scoping bug causing problems with presence routing on affiliation/role change.

MUC: Fixed: Unavailable presence was being sent for all role and affiliation changes. Now sent only for kicked occupants.

MUC: Changed a MUC library method into a function.

MUC: Fixed stanza routing for reloaded rooms.

MUC: Added support for reloading MUC library code.

MUC: Workaround for Miranda sending 'nick' instead of 'jid' when changing affiliation.

MUC: Some fixes for minor bugs in IQ handling.

MUC: Added support for requesting various lists (owner, admin, voice, etc).

MUC: An admin or owner MUST NOT be able to revoke moderation privileges from another admin or owner.

MUC: Owners can now modify roles and affiliations

MUC: Added support for generating unique room names

MUC: Send appropriate error to banned users on join.

MUC: Renamed _participants table to _occupants

MUC: New basic mod_muc based on the new MUC library

MUC: Initial support for roles and affiliations

MUC: Fixed function declarations.

MUC: The MUC lib is now metatable based. Cleaned up code, etc.

MUC: Added initial MUC lib

Merge with 0.5

datamanager: Fixed logging errors on deletion of datastores not owned by a user@host

mod_presence: Fixed: Don't recursively handle inbound presence directed at local host

modulemanager: Fixed: Internally generated stanzas could be missing namespaces, which causes tracebacks in logging (e.g., auto-generated offline presence)

net/dns: Fixed regression causing nameserver initialization to fail on Windows

mod_compression: Fixed: Starting compression only worked before auth

Merge with 0.5

ejabberd2prosody: More intelligent searching for erlparse library

Uncertain merge with 0.5's SASL

util.sasl: Fix 2 global sets (one a tpyo)

Allow ampersands in passwords for SASL PLAIN mechanism and fixing a typo.

Change variable name. The previous choice was too ugly looking.

Use NODEprep for prepping usernames used during SASL logins.

Do SASLprep for SASL PLAIN mechanism to be more conform with RFC 4616.

Don't allow double compression.

Support compression also after SASL.

Merge with waqas

mod_compression: Fixed some undefined global accesses

net.adns: Add some debug logging to help track down traceback

net.server: Add checking for nil sockets to prevent traceback

net.dns: Automatically add nameserver 127.0.0.1 if /etc/resolv.conf missing or empty on a non-Windows system (thanks Louis Mamakos)

Merge waqas with Tobias. Eww.

Removed util/discohelper.lua

Removed core/discomanager.lua

modulemanager: Removed unused variables and reference to core.discomanager

modulemanager: Removed unnecessary code in the unload function

modulemanager: Removed legacy disco#items hook

modulemanager: add_feature and add_identity APIs updated to use only the add_item API

componentmanager: Removed disco#items hook, and reference to core.discomanager

mod_disco: Rearranged some lines, and added a FIXME comment

mod_disco: Removed reference to core.discomanager

mod_disco: Removed legacy IQ hooks

mod_disco: Handle disco#items queries using new APIs

mod_disco: Added identity server/im with name 'Prosody'

mod_disco: Handle disco#info queries using new APIs

modulemanager: Added module API function to get all items for a given host based on a key

modulemanager: Module API functions add_item and add_feature updated to use the add_item API

mod_pep: Added name 'Prosody' to the pubsub/pep identity

modulemanager: Changed the add_identity module API to accept an optional name parameter (the 'name' attribute for the <identity/> element)

Added: functions add_item and remove_item to add and remove items to the module API

componentmanager: Added function to get a list of children for a given hostname

mod_register: Updated to use module:get_option instead of configmanager

mod_posix: Updated to use module:get_option instead of configmanager

mod_legacyauth: Added a FIXME

mod_legacyauth: Refactored a bit

mod_legacyauth: Updated to use module:get_option instead of configmanager

mod_legacyauth: Removed useless 'require' call on every login attempt

core.s2smanager, xmppserver_listener: Move the responsibility of setting session.log from the latter to the former for incoming sessions (outgoing are already like this)

xmppclient_listener: Remove useless comment

core.sessionmanager, xmppclient_listener: Move responsibility for setting session.log to the former from the latter, much more sensible

net.server: Comment all calls to mem_free/collectgarbage... not really suitable for a realtime server, let's trust Lua's GC - it's good.

Shutdown prosody if changing user or group fails.

Make mod_posix not complain about root user, if setuid is set to something different as root.

Add setuid and setgid support.

Remove print which was used for debugging purposes.

Using pcall to make save the rest from zlib fails. Emit errors on those fails.

Forgot to use the configured compression_level. Now it's used.

Add config option handling.

Another unwanted spaces at the end of a line.

Add a TODO for s2s compression support.

Remove space at the end of a line.

Add FIXME to remember TLS compression detection.

Actually inject de- and compression into the reading/writing functions.

Remove unwanted spaces.

Commit initial version of mod_compression.

Removing tabs at the end of a line.

mod_httpserver: Set default file handler (you can now request static files as /*) and restructure code a bit

net.httpserver: Allow overriding default request handler

mod_bosh: Strip BOSH namespace from stanzas to allow for some clients which may send them without the correct xmlns

mod_bosh: Calculate rid difference just once

mod_bosh: Basic handling of rids (more to come)

mod_bosh: Correct reply when closing sessions

net.httpserver: Don't log response bodies!

util.iterators: Add tail() iterator, to return the last n items

util.iterators: Add head() iterator, to return the first n items

Merge with Tobias

Moving realm at the beginning of the digest-md5 message send by the server.

Fixing a SASL issue by always passing the realm from SASL framework init to the handlers.

mod_bosh: Updated to use module:get_option instead of configmanager

mod_watchregistrations: Updated to use module:get_option instead of configmanager

mod_selftests: Mark as global

mod_tls: Updated to use module:get_option instead of configmanager

mod_selftests: Updated to use module:get_option instead of configmanager

mod_welcome: Updated to use module:get_option instead of configmanager

ejabberdsql2prosody: Removed unnecessary stanza reserialization for private storage

ejabberdsql2prosody: Added support for offline messages

ejabberdsql2prosody: Fix access of undefined global

mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.

mod_version: Use the module API to read configuration options instead of configmanager

Merge with albert and waqas

Fixed: Zeros could be stripped from the version string the Makefile extracts from the local hg repository (thanks albert)

Merge with 0.5

Fixed: Outbound subscription requests silently dropped (regression in hg:7f17d0d00fbb)

mod_xmlrpc: Correct stripping of filename/line number prefix in RPC method error results

mod_saslauth: Fix coding style and layout, and use of arg[] for vararg

mod_saslauth: Fix indentation

mod_saslauth: Fix traceback on attempted login for non-existent users

Merge with 0.5

xmppcomponent_listener: Fix to collect component sessions on disconnect

Merge with 0.5

mod_bosh: Fix error reply for host-unknown errors

net.httpserver: Allow response.body to be a non-string

Merge with waqas

ejabberdsql2prosody: Added support for Private XML Storage

ejabberdsql2prosody: Added support for vCards

ejabberdsql2prosody: Added an XML parser

Merge with 0.5

Fixed: Self-references could be added to rosters via presence subscriptions

Fixed: IQ replies are not sent back on publishing a PEP event

Tagging 0.5.1

mod_console: EOT (Ctrl-D) closes the connection.

Merge with 0.5

MUC: Added the MUC child element to conflict errors 0.5.1

Added: Support for PROSODY_SRCDIR and PROSODY_PLUGINDIR environment variables

mod_pep: Added support for pubsub item retraction

Merge with 0.5

xmpp{client,server,component]_listener: Open stream if sending an error and it isn't already open. Fixes #120

mod_console: Finally add in the missing 'help' command \o/

configmanager: Default options appearing before Host "*" to global (fixes potential traceback)

hostmanager: Warn when user puts port configuration under vhost section

core.loggingmanager: Enable timestamps by default for file log sinks

net.server: Much improve SSL/TLS error reporting, do our best to understand and hide OpenSSL's ridiculously unfriendly error messages

ejabberdsql2prosody: Allow for multiple INSERTs to the same table

Merge with 0.5

Fixed: Possible duplicate error replies for unhandled stanzas

net.httpserver: Reduce log level of 'request left open' message

Merge with 0.5

mod_presence: Tag outgoing unavailables generated by a disconnect with a from attribute

xmpp{client,server}_listener: Report contents of packets containing invalid XML

mod_console: Show status and priority of clients

ejabberdsql2prosody: Fixed a nil global access error

ejabberdsql2prosody: Add support for rosterusers.ask == "B" (both pending in and out subscriptions)

ejabberdsql2prosody: Fix typo, and improve the warning message

ejabberdsql2prosody: Display a warning if a row has more columns than expected

ejabberdsql2prosody: Added support for all mysql escape sequences

ejabberdsql2prosody: Added support for the escape sequence '\\' in strings

ejabberdsql2prosody: Fixed: 'ask' value should be nil for pending-in subscriptions

ejabberdsql2prosody: Fixed: pending-in subscriptions could halt processing

ejabberdsql2prosody: Added support for rosters

ejabberdsql2prosody: Added a second required command line parameter: hostname

ejabberdsql2prosody: Improved help message

ejabberdsql2prosody: Initial commit

mod_xmlrpc: Remove file and line number from XML-RPC errors

mod_xmlrpc: Fixed typos

usermanager: Reduced some code

usermanager: Removed an unnecessary check

mod_xmlrpc: Added support for secure calls by non-admins

modulemanager: Added get_option(name, default_value) to plugin API

Switch to using a more generic credentials_callback/handler for SASL auth.

mod_saslauth, usermanager: Fetch list of mechanisms from usermanager

prosody: net_activate_ports: Check listener exists before trying to open port for it

Merge with 0.5

net.server: Fail to open port if legacy SSL requested, but SSL not available

prosodyctl: Also switch group when we switch user

pposix, mod_posix: Bump pposix version number

pposix: Add setgid() function

net.server: Remove listener from listeners table when calling removeserver

prosody: Correctly allow console ports to be changed through the config

mod_console: Set default_interface to 127.0.0.1

net.server: Set sslctx to false when SSL wrapping fails, to avoid attempting to wrap clients with a broken context

Merge with 0.5

ejabberd2prosody, erlparse: Add support for parsing non-ASCII strings and binaries, and atoms enclosed in single quotes

ejabberd2prosody, erlparse.lua: Convert from Windows line endings (thanks teo)

net.server: Continue to initialise port listener even when SSL errors occur

Merge with 0.5

mod_presence: Ignore presence sent to host and invalid JIDs, fixes traceback (thanks Deepspawn)

ejabberd2prosody, erlparse.lua: Convert from Windows line endings (thanks teo)

Merge with 0.5

pposix: Change LOG_EMERG -> LOG_CRIT, which makes more sense, thanks to intosi for reporting and an initial patch

mod_muc: Set correct 'from' JID when sending the room subject to joiners, fixes a traceback

Tagging 0.5.0

mod_muc: Expose rooms table to the host and plugins

prosody: Send friendly text with system-shutdown stream error

xmppclient_listener: Use error text as disconnect reason if there is any

mod_console: Add server:shutdown() command

mod_console: Add config:reload() command

prosody: Return success/error from prosody.reload_config()

mod_console: Rename server:reload() to server:insane_reload() (basically no-one should use it except me...)

Merge with 0.5

util.xmlrpc: Fixed table serialization (regression introduced in previous change) 0.5.0

Merge with 0.5

mod_httpserver: Update to use new new_from_config() too

mod_bosh: Update to use new new_from_config()

net.httpserver: Allow specification of the default base URL when using new_from_config()

Merge with 0.5

prosody.cfg.lua.dist: Add mod_pep to the default config file

Merge with 0.5

net.server: Initiate the handshake when we should, the more correcter fix for the previous correct fix

Merge with 0.5

net.server: Fix copyright header line endings and text

net.server: Correct fix for SSL traceback earlier

Merge with 0.5

mod_bosh: Mark a session as secure if it is created with HTTPS

net.httpserver: Mark a request as secure if it is made using HTTPS

Merge with 0.5

mod_httpserver: Use new httpserver helper to initialise ports

mod_bosh: Use new httpserver helper to initialise ports

net.httpserver: Add helper function to set up HTTP server according to given config options

net.server: Don't continue with socket initialisation if SSL handshake failed, fixes nil socket traceback

Merge with 0.5

net.server: Don't close handler if it is already nil when SSL handshake fails

prosody: Load util.helpers at startup

util.helpers: New util library to aid with debugging, etc.

prosody: Call initialisation functions at once

prosody: Start of refactoring of main file

util.pubsub -> util.broadcast

prosody.cfg.lua: Various small changes

prosody.cfg.lua.dist: Move enabled line higher up (people including myself often miss it)

prosody.cfg.lua.dist: Add auto-loaded modules to the config

mod_uptime: Fix bad uptime if module is loaded at startup

Remove version number from copyright headers

Add copyright header to those files missing one

stanza_router: Catch and log an error case which I don't think should happen (but sometimes seems to)

Remove completed items from TODO

util.pubsub: Fix undefined global accesses

util.sasl: Convert spaces to tabs

util.stanza: Convert spaces to tabs

util.hmac: Convert spaces to tabs

util.prosodyctl: Fix undefined global access

eventmanager: Convert from Windows line endings

mod_time Convert from Windows line endings

discomanager: Convert from Windows line endings

mod_ping: Convert from Windows line endings

mod_disco: Convert from Windows line endings

util.discohelper: Convert from Windows line endings

mod_presence: Convert from Windows line endings

util.events: Convert from Windows line endings

mod_console: Expose commands and environment table

modulemanager: Small code improvement, move autoloaded modules list to the top of the file

configmanager, modulemanager: Allow components to have modules specified in the config (but don't load the global set of modules for them)

mod_console: Add quit and exit as aliases for 'bye' command

mod_console: Check for commands when not executing in the global environment

prosodyctl: Quit when user pressed ^C in password prompts

prosodyctl: Don't 'blugh' when ^C is pressed during reading passwords

prosodyctl: Fix traceback when issued with no parameters

util.xmlrpc: Support for multiple parameters in requests

util.xmlrpc: Add create_request

mod_console: server:version() and server:uptime() commands

mod_uptime: Use time of server start rather than module load

mod_uptime: Convert to unix line endings

prosody: Record time the server started

s2smanager: Fix to correctly bounce stanzas if first connection attempt fails instantly

mod_console: Add c2s:close() command

net.xmppclient_listener: Fix potential traceback when no reason is specified for closing a session

Merged with trunk

mod_presence: Fixed: Presence probe replies now get sent to the full JID of the probe sender

Merge with main branch.

Remove to-unicode conversion because it's done in sasl.lua now.

Move to-unicode conversion from mod_saslauth.lua to sasl.lua.

Fixed decoding of parameters.

mod_console: Allow customisation/suppression of the banner

util.hmac: Some optimisations

util.hmac: Fix a global set

mod_presence: Send unavailable presence to resources from non-available resources on disconnect

Moved automatic unavailable presence generation on disconnect from sessionmanager to mod_presence

sessionmanager: Replace raw session by an event data table for resource bind/unbind events, allowing extra data

mod_presence: Broadcast presence to resources before contacts

mod_presence: Prevented normal presence from non-interested resources from being dropped

mod_presence: Changed handle_normal_presence to use a local roster rather than origin's roster

mod_presence: Simplified roster iteration

mod_presence: Eliminated a jid_split

mod_presence: Removed some unnecessary code

sessionmanager: Reset bare_sessions[user] after resource conflict resolution. Fixes the other stanza gobbling bug \o/

mod_presence: Declare t_insert, fixes a potential traceback

sessionmanager: Newly created sessions shouldn't have a priority. Fixes one of the stanza-gobbling bugs \o/

s2smanager: Log the hostname and address when s2s connection fails instantly

hostmanager: Add disallow_s2s to config, defaults to false unless anonymous_login is enabled, then defaults to true

stanza_router: Check host.disallow_s2s before routing over s2sout. you can haz no s2s.

Merged branches

Added man page for prosodyctl

mod_presence: Removed dead code

datamanager: Fixed incorrect callback result checking

mod_pep: Escape + in pattern

prosodyctl: Add message for not-running error

prosodyctl: Use prosodyctl_timeout option if it exists in the config

prosodyctl: Improve usability with status messages, and waiting up to 5s for the server to start/stop

mod_pep: Pass origin/session to publish_all()

Added HMAC utility module

prosody: Add fallbacks/ to path

Makefile: Install fallbacks/ directory

mod_offline: Initial commit

Merged with trunk

mod_pep: Fixed boolean indexing error while casting all messages for a user

Send xml:lang in stream headers, fixes #78

Making sure the node is in unicode when passing it to password lookup function.

Automated merge with http://waqas.ath.cx:8000/

modulemanager: Don't close stream on stream:error with unsupported-stanza-type (fixes #102)

prosody.cfg.lua.dist: Removed 'presence' from default modules list

stanza_router: Removed unnecessary xmlns check

stanza_router: Don't fire preprocessing events if stanza is not from full JID

Merge with nolan

Serialize unknown stanza before logging.

util.pluginloader: Append "@" to chunk names (fixes weird formatting in plugin tracebacks)

mod_pep: Fixed a nil access error

mod_pep: Use cached caps

Merged with trunk

mod_pep: Entity capabilities

Merge with nolan

net.httpserver: Don't upset logger when response is nil

Log stanza if stanza.to isn't set for some component errors.

mod_console: Reload/unload a module on a component host if it is loaded there

Automated merge with http://waqas.ath.cx:8000/

util.stanza: Serializer optimizations, and nicer output for empty elements

mod_pep: Broadcast only to available recipients with caps

mod_pep: Ignore presence subscriptions when extractng hash information

mod_pep: Added function get_caps_hash_from_presence

util.muc: Fixed duplicate parameter names in function room:set_subject

util.muc: Fixed incorrect parameters for a function call

mod_pep: Removed some YODO comments

mod_pep: Added handler for disco responses

mod_message: Advertise offline message support as per XEP-0160 (thanks nolan)

xmppclient_listener: Pass session close reason to destroy_session (to be used in unavailable presence)

mod_iq: Change sub-event names for IQ errors and results to use stanza IDs

util.stanza: Add stanza:get_text() to retrieve all child text nodes #api

stanza_router: Fire events also for stanzas to components

mod_message, mod_presence: Maintain list of top resources. Less work in routing messages to bare JIDs. - #optimization

util.events: Replaced ipairs with slightly faster numeric for loop - #optimization

util.stanza: Rewrote stanza_mt.__tostring. 20-30% faster stanza serialization. - #optimization

util.stanza: Remove numeric attributes while deserializing

xmlhandlers: Remove numeric attributes

stanza_router: Remove unused variables and code

stanza_router: A little refactoring

stanza_router: Remove unused variables

stanza_router: Remove even more old routing code

stanza_router: Remove some more old routing code

stanza_router: Call core_post_stanza from core_route_stanza in place of old routing code

stanza_router: Removed unused function: select_best_resources

stanza_router: Removed old routing code

mod_component: Rewrite jabber:client stanzas to jabber:component:accept, thanks JaredH!

mod_pep: Use new style events

mod_iq: Fire sub-events for IQ results and errors

mod_pep: Broadcast from the user's bare JID, not full JID

mod_pep: Remove data when a user disables a node

mod_pep: Added some comments

mod_pep: Fixed detection of contact presence changes

mod_muc: Now based on util.muc

mod_announce: Work with non-local admins

mod_announce: Use usermanager.is_admin to verify admin status

sessionmanager: Fire event on resource unbind

Automated merge with http://waqas.ath.cx:8000/

modulemanager: Enabled access to the module API from plugin libraries

modulemanager: Added simple module:require implementation

README: Update for new MUC address

prosodyctl: Allow commands to be implemented in modules

modulemanager: Expose api table to allow others to extend the module API

mod_groups: Support for public groups, and extra logging

util.pluginloader: Remove unnecessary return value suppressing the real load error

modulemanager: Fix copy/paste error, should be name instead of module_name

mod_announce: New module to send a message to all online users

mod_httpserver: Allow configuration of ports and base path, like mod_bosh

mod_groups: Experimental shared roster support

prosody: Switch anonymous_login check to use the new datamanager callback syntax

util.datamanager: Allow multiple data storage callbacks, and allow them to modify parameters

rostermanager: Fire event on roster load

sessionmanager: Fire event on resource bind

modulemanager: Call 'load' method when loading a module

Merge with Tobias

Adjust PLAIN and DIGEST-MD5 mechanisms to new password_handler API.

Adding a parameter for realm to the password_callback.

Adding COMPAT comment.

util.array: Add support for + operator to create a new array from two arrays joined

util.array: Make array:reverse() and array:shuffle() return the array to allow chaining

util.array: Add array:append() method, to append a new array to an existing one

stanza_router: Skip prepping 'to' in many common cases - #optimization

stanza_router: Skip prepping 'from' on c2s origins - #optimization

stanza_router: Fixed a corner case where processing could continue after an error reply

stanza_router: A little refactoring

componentmanager: Using prosody.events instead of core.eventmanager

Main: Don't use empty event data objects for some global events. Some handlers don't expect it.

Main: removed some eventmanager references (replaced by prosody.events)

Fire global events using prosody.events

Merge with trunk

modulemanager: Removed unused function get_module_filename(name)

modulemanager: Changed to use util.pluginloader

util.pluginloader: Initial commit - a plugin resource loader

stanza_router: Remove unused variables

Removed core.presencemanager. This has been superseded by mod_presence.

stanza_router: Remove all traces of presencemanager

mod_roster: Removed references to presencemanager and core_route_stanza

mod_roster: Using core_post_stanza in place of core.presencemanager.handle_presence

util.muc: Relaxed top-level routing checks to allow node-less rooms, and removed redundant checks

util.muc, mod_muc: Commented rewriting of vCard requests' recipients' JID from full to bare, and marked it as a TODO

mod_muc: Don't reply with an error in response to unacceptable result stanzas

util.muc: Don't reply with an error in response to unacceptable result stanzas

util.muc: Fixed error occuring on room leave

stanza_router: Use stanza.attr.from's host instead of origin.host when routing stanzas to remote hosts (fixes problem with sending from node@host components)

Merge with waqas via albert!

modulemanager: Change the ideitity attribute typ to type

s2smanager: Remove srv_hosts from session when connected, this fixes attempting to reconnect s2s sessions when they are closed during shutdown

loggingmanager: Log timestamps when using default file logging

loggingmanager: Enable debug level for default file logging when 'debug' mode is enabled in the config

mod_console: Redirect print() to console session when executing commands in global environment

mod_console: Fix syntax error

mod_console: Add s2s:close() to close s2s sessions between two hosts

Automated merge with http://waqas.ath.cx:8000/

mod_pep: Add pubsub#publsih disco feature to host

mod_dialback: Change FIXME comment to COMPAT

Automated merge with http://waqas.ath.cx:8000/

mod_pep: Add host identity pubsub/pep

modulemanager: Added function add_identity(category, type) to the modules API

Merge

mod_pep: Fix a nil index bug

net.http: (Re-)add url[en|de]code functions

modulemanager: Use module_name in log entry to fix 'error initialising module "nil"' error

mod_message: Require stanza lib to prevent traceback on error replies

Automated merge with http://waqas.ath.cx:8000/

mod_pep: Give the presence handler a higher than default priority

modulemanager: Allow setting a priority while adding an event handler via the module:hook API

mod_pep: Send items to contacts coming online

mod_pep: Fix undefined global access

mod_pep: Maintain user nodes for delayed delivery

mod_console: Show total incoming/outgoing s2s connections

modulemanager: Don't require xmlns to be non-nil

modulemanager: module:log() -> self:log() fix

modulemanager: Allow setting priority of stanza handlers

modulemanager: Add module:hook([xmlns, ] name, handler) which uses new stanza events

mod_console: Allow running code in the global environment by prefixing with '>'

mod_console: Some "improvements" to the useless server:reload() command :)

mod_console: Much improved module load/unload/reload commands

prosody: prosody_reload_config => prosody.reload_config (guess I accidentally missed it when converting the others)

prosody: Prefix hg: to changeset ids in the version

mod_version: Use version from prosody.version

prosody: Read version from prosody.version file and set, er, prosody.version!

Makefile: Experimental support for recording the version of an installed Prosody

modulemanager: Load mod_message, mod_iq and mod_presence implicitly

s2smanager: Use a UUID as the dialback secret

stanza_router: Remove unused s2s dialback functions

Merge with trunk

util.sasl: Remove some nastiness

util.uuid: Added function seed(string) to allow further seeding of the PRNG

util.uuid: Now generates RFC 4122 complaint UUIDs (version 4 - random)

util.uuid: More uniqueness!

sessionmanager: It really is username@host, not host@username :)

Makefile: Set data directory permissions to 750 on install [thanks Dwayne Bent]

Makefile: Specify permissions on installed executables [thanks mhavela]

prosody: Add support for general 'interface' option which is used as the default network interface

net.server: Display server port in error messages

Adding .hgignore

My merge!!!!

stanza_router: workaround for a Pidgin bug which sets 'to' to the SRV result

mod_privacy: Initial commit

stanza_router: Remove the 'to' attribute when it's value is the bare JID of the local user sending the stanza

prosody.cfg.lua.dist: Enable mod_register by default, but with registration disabled, and add a comment about it

sessionmanager: It's username@host, not host@username :)

mod_message: Fix global access

mod_iq: Limit sub-events to get and set IQs

mod_presence: Fix a global access

mod_presence: Check for nil 'to' attribute in all cases for outgoing stanzas

mod_presence: Check for nil 'to' attribute in all cases for incoming stanzas

mod_presence: return true from incoming presence handlers to prevent further processing

mod_presence: Handle non-subscription presence and routing

mod_presence: Handle subscriptions and probes

mod_presence: Add hooks for inbound presence

mod_presence: Fix a comment

mod_presence: Handle all outbound presence stanzas

mod_presence: A little cleanup

mod_presence: Remove JIDs from directed presence list on sending error or unavailable presence

mod_presence: Handle outbound presence to full JIDs

mod_message: A little cleanup

mod_message: mod_message now handles all cases

stanza_router: Reply with an error on groupchat messages to bare JID

mod_message: Added code to handle error groupchat and headline messages to bare JID

mod_message: Move bare JID processing to it's own function

stanza_router: Don't reply with an error on invalid JIDs in error or result stanzas

stanza_router: Proper error for clients sending stanzas after auth but before resource binding

mod_iq: Correctly handle the lack of 'to' on IQs

mod_iq: Immediately return an error for IQs to non-existing bare JIDs

mod_iq: Include event data in sub-events

mod_iq: Error reply for IQ to non-existing session. mod_iq now handles all 'iq/full' cases

componentmanager: Create events object for configured hosts, and carry it over to a new component if one is registered with no events object

Merge backout with following commits

Backed out changeset 98f0e9eadf3b (better fix on the way)

Automated merge with http://waqas.ath.cx:8000/

mod_iq: Fire sub-events for IQs directed at bare JIDs and hosts

modulemanager: Keep track of event handlers added by module:hook, and remove them on module unload

stanza_router: Don't route before firing events... waqas, is this safe?

componentmanager: Add events object to registered components if they don't already have one

stanza_router: Fire global event if host doesn't have events, fixes #103

net.xmppclient_listener: Add small comment

stanza_router: Fire events for non-jabber:client and pre-auth stanzas

modulemanager: Stopped using core.eventmanager in module:fire_event

mod_welcome: Use module:hook instead of module:add_event_hook

mod_watchregistrations: Use module:hook instead of module:add_event_hook

modulemanager: module:fire_event now fires on the global and host-specific events objects as well

xmppcomponent_listener: Removed unused reference to core.eventmanager

modulemanager: Made some code more concise

modulemanager: module:hook now allows global modules to hook events on the prosody.events object

Removed core.eventmanager2

mod_presence: Changed to use the prosody.events object directly, rather than through eventmanager2

stanza_router: Changed to use the prosody.events object directly, rather than through eventmanager2

core.eventmanager2: Now uses the new prosody.events object

Added new prosody.events object

mod_console: c2s:show(), c2s:show_secure(), c2s:show_insecure()

mod_console: Allow restricting results to matching JIDs in s2s:show()

prosody: Remove global functions

mod_posix: Use global prosody object

prosody: (un)lock_globals() -> prosody.(un)lock_globals()

prosody: New global 'prosody' object

Automated merge with http://waqas.ath.cx:8000/

mod_message, mod_iq: A little cleanup

mod_iq: Initial commit

mod_message: Initial commit

modulemanager: Added hook(event, handler) to the plugin API

stanza_router: Fix syntax errors

Automated merge with http://waqas.ath.cx:8000/

stanza_router: Fire per-host stanza events

httpclient_listener: Don't use print()...

sessionmanager: Removed a redundant check

sessionmanager: Fixed an old FIXME: A problem caused by an error on an authenticated but unbound session

sessionmanager: Add/remove sessions from full_sessions and bare_sessions when binding/unbinding sessions

sessionmanager: Added reference to globals full_sessions and bare_sessions

sessionmanager: Removed reference to global 'sessions'

Added globals bare_sessions and full_sessions, which map bare and full JIDs to sessions.

Removed unused global 'session'

mod_tls: Add <required/> to stream feature when TLS is required

mod_legacyauth: Hide stream feature when secure auth is enabled, and session isn't secure

mod_saslauth: Don't offer bind/session when they aren't authenticated yet :) [thanks albert, again...]

mod_saslauth, mod_legacyauth: Deny logins to unsecure sessions when require_encryption config option is true

xmppclient_listener: A connection is also secure when it uses legacy SSL

net.server: A connection is not secure if we delay the TLS handshake

sessionmanager, mod_tls: Mark a session as secure when TLS is active

stanza_router: Break off resource selection for messages into a standalone function

mod_presence: Lower some log levels to their correct values

mod_presence: Use logger supplied by modulemanager

mod_presence: Leave alone the from attribute of session.presence. Big thanks to albert for figuring out the steps to reproduce this bug, and for giving us a ([very] slight) performance increase!

Add log message when DNS lookup is cancelled

net.adns: Fix for calling handler when cancelling DNS lookup

mod_watchregistrations: admin -> admins

prosodyctl: Add error message for no-pidfile

s2smanager: Timeout DNS requests after 60 seconds (or dns_timeout in config)

net.adns: Add support for cancelling a non-blocking lookup, optionally calling the handler

net.dns: Add support for cancelling a coroutine-based request

mod_watchregistrations: New plugin to send a message to admins when a new user registers

mod_roster: Add some comments for the error cases to improve readability

s2smanager: Only send reply </stream:stream> when connection is still open

mod_roster: Don't send a query element in roster response if roster is unchanged

Merge with 0.4

Tagging 0.4.2

Close std{in,out,err} when daemonizing 0.4.2

Tagging 0.4.2

Merge with 0.4

Finally add README and INSTALL files

Merge with 0.4

stanza_router: Fix for subscriptions to users on components [0.4 branch only]

mod_register: Attach session to user-registered and user-deregistered events

core: hosts[*].events

Merge with 0.4

mod_saslauth: Fix logic error which prevented SASL ANONYMOUS from working

mod_welcome: New plugin to welcome users who register on the server

mod_register: Fire events and log on account creation/deletion

modulemanager: Add module:fire_event() to module API

stanza_router: Handle outbound presence if inbound handlers don't catch it

util.events: Dispatch code now accepts a variable number of arguments

util.events: Much more efficient index building

stanza_router: s/conn/stream/ in log message

stanza_router: Remove FIXME and replace with meaningful comment

componentmanager: Don't error on stanzas to bare component JID

prosody.cfg.lua.dist: Update example to a better one

util.events: handler priorities

modulemanager: require util.stanza

modulemanager: Don't close the stream on unhandled stream:features

stanza_router: Added global function core_post_stanza

util.jid: Eliminate global method use

util.muc: Made internal methods local

stanza_router: Improved message routing order

Dropped support for resource based components

stanza_router: Removed global function core_handle_stanza

Automated merge with http://waqas.ath.cx:8000/

stanza_router: Cleaner namespace handling

stanza_router: Refactored core_handle_stanza, and added handling for unsupported top-level stanzas

stanza_router: Fire events after all checks

Merging SASL buggy client workaround with current tip.

.

Some beauty treatment.

Adding minimal support for authorization identities to workaround buggy SASL implementations.

adding RFC comment

stanza_router: Removed some unnecessary code

stanza_router: Removed a FIXME

xmlhandlers: Removed another unnecessary check

xmlhandlers: Removed an unnecessary check

core.xmlhandlers: Removed unused variables

stanza_router: Fixed an invalid stanza check

util.stanza: Omit unused clone parameter from error_reply()

mod_presence: Added a FIXME comment about directed presence

stanza_router: Remove unnecessary directed presence handling

stanza_router: Prevent further processing of a handled stanza

mod_presence: return true from the presence handler

util.events: event handlers can now return a result, which also interrupts further handling of the event

util.muc: A MUC library - initial commit

Merge with 0.4

stanza_router: Bounce stanzas to/from invalid JIDs with a jid-malformed error

stanza_router: Pass session.to_host to modulemanager, fixes modules for s2sin_unauthed

mod_muc: commented connection replace detection code because google keeps resendng directed presence

mod_muc: s/broadcast_history/send_history/ - since the cast isn't broad

mod_muc: Extracted sending of occupant list into its own function

mod_muc: Extracted history broadcast into its own function

fallbacks/bit: bit manipulation API (compatible with bitlib for now)

mod_pep: Initial commit (extremely basic implementation)

util/serialization: Fixed serialization formatting

util/sasl: Removed unnecessary references to util.encodings.idna

mod_roster: Advertize roster versioning support

Default config: Add 'presence' to list of modules

Merge with 0.4

util.prosodyctl: Import CFG_SOURCEDIR from the global environment (thanks macaronyde!)

Tagging 0.4.1

util.serialization: Write nil for non-serializable data types, and bump the log level to 'error' 0.4.1

tools/ejabberd2prosody: Fixed private storage export

tools/ejabberd2prosody: Fixed private storage export

Merge with 0.4

prosodyctl: Add message for unable-to-save-data error

util.prosodyctl: Return success status of usermanager.create_user()

prosodyctl: Reformat note to fit in small-width terminals

Merge with 0.4

prosodyctl: Use correct path for the data directory

Merge with 0.4

mod_posix: Reload the config and reopen log files on SIGHUP

loggingmanager: File log sinks react to reopen-log-files event

prosody: Add functions to reload the config and re-open log files

prosodyctl: status: Show warning if we can't find a running Prosody, and we didn't switch user

prosodyctl: Switch to Prosody user before attempting to do anything

net.httpserver: Fix for urlencoding to always produce 2 digits

Merge with 0.4

net.http, net.httpserver: Remove urlcodes table... it really isn't needed (thanks Jan Harkes)

net.httpserver: Fix potential nil access

mod_bosh: Give BOSH sessions a logger (thanks Florob)

mod_component: Vastly reduce the code, having split most of it to where it should be, xmppcomponent_listener

util.serialization: Log a warning when trying to serialize something we can't

prosody, xmppcomponent_listener: Add listener for XEP-0114 component connections

modulemanager: No need for print()

util.multitable: No globals today, thank you. Fixes missing table entries and a potential traceback

Merge with 0.4

prosodyctl: Hide ejabberd compatibility commands from command listing

loggingmanager: Support for specifying a single sink with *sinkname (*syslog should now work)

Merge with 0.4

net.connlisteners: Lower log level of multiple listeners warning (not interesting to end-users)

net.server: Add getserver() method to find the server listening on the specified port

util.datamanager: Lower log level of 'Setting data path' to 'debug'

componentmanager: Reduce log output at startup to 'debug'

hostmanager: Reduce log output at startup to 'debug'

modulemanager: Don't load modules when modules_enable is false

prosody: Less verbose logging during shutdown sequence

mod_posix: Don't let the server run as root without the magic run_as_root in config

prosody: Define prosody_shutdown() before emitting the server-starting event

Makefile: Process and install prosodyctl

prosodyctl: Multiple fixes for start/status/stop

Merge with 0.4

prosodyctl, util.prosodyctl: New prosodyctl utility for managing Prosody servers

prosody: Add log messages during shutdown sequence to indicate progress

mod_console: Add s2s:show() command to list s2s connections

(0) -1000 -960 +960 +1000 tip

mercurial