util.sasl: Use the proper session-specific table of mechanisms when selecting a mechanism, and not the global table.

SASL: Simplified sasl_handler:mechanisms() to return a set, and not an array.

usermanager: Return a non-nil SASL handler from the null auth provider (fixes a traceback).

MUC: Fixed a traceback introduced in hg:bdc325ce9fbc.

net.dns: Call :cancel() on the current resolver instead of the prototype

util.roster: Initial skeleton commit

loggingmanager: Add reload_logging() method, which gets called on any config reload, to reset util.logger and remove and re-add all sink types to perform a full reload of the logging system without a restart.

util.logger: Add reset() method to clear all sinks

certmanager: Remove debug logging accidentally committed

certmanager: Adjust paths of SSL key/certs to be relative to the config file, fixes #147

prosody: Add prosody.resolve_relative_path() helper to change relative paths to be relative to the config file

mod_httpserver: Serve index.html if a request is made for a directory and it contains one (thanks Brian Cully)

configure: Make it possible to override ostype presets with values specified later on the command-line

configure: Fix ostype=freebsd for ./configure (thanks dersd for reporting and n0nsense for testing the fix!)

mod_saslauth: Rename variable 'aret' to 'ok' as per convention

mod_disco: Reflect requested 'node' attribute in the disco#info reply.

mod_disco: Respond to disco#info to the correct caps hash node ("node#ver").

mod_disco: Cache disco#info reply and caps hash for host, return correct caps hash, and respond to disco#info to the caps hash node.

mod_adhoc: Add capability to pass data to forms

xmpp{client,server}_listener: Convert some calls to tail calls for efficiency

mod_pep: Use util.caps

mod_disco: Support for putting the server's caps hash in stream:features to allow the client to cache disco#info for the server instead of requesting it at each login.

util.caps: Entity capabilities hash generation (moved from mod_pep)

mod_posix: Some (perhaps temporary) changes to re-lock the pidfile after truncating, to avoid breaking prosodyctl

mod_posix: Truncate the pidfile before writing to ensure that we never overwrite with a PID shorter than the previous, and end with an invalid PID in the file.

prosodyctl: Warn and exit if any log files are not writeable, fixes #94

prosodyctl: Force log output always to the console instead of using the config, which avoids creating log files as the wrong user

prosodyctl: Remove warnings when using a non-standard auth provider, prosodyctl now works with any auth provider

mod_auth_internal, usermanager: Rename to mod_auth_internal_plain, and update usermanager to still use it as the default

mod_auth_internal, mod_auth_internal_hashed: Remove checking for nil or empty password and pretending it means the user doesn't exist. Hopefully with more success than Custer.

util-src/Makefile: Stop linking dynamic libraries to Lua, it isn't necessary as symbols are exported from the Lua binary (thanks deryni)

xmppserver_listener: Fix variable names I forgot to change in the last commit

xmpp{client,server}_listener: Put stanzas/in filtering code in the correct place to make it actually work :)

util.filters: Add newline at end of file

MUC: Make number of stored history messages configurable with option max_history_messages (thanks michal and others who requested)

s2smanager: Lower default DNS timeout to 15s (it's now a per-DNS-server timeout, rather than total timeout), use net.dns's new timeout system, and remove our custom timeout handlers

net.dns: Add dns.settimeout() to set the timeout for the default resolver

net.dns: Make timeout configurable (default 15s)

net.dns, net.adns: Update resolver:cancel() API so that a table doesn't need to be created for each cancellation internal to net.dns

net.dns, net.adns: Move coroutine-calling logic into resolver:cancel()

net.dns: Handle our own timeouts, including falling onto other servers in resolv.conf if necessary

mod_roster: Use value returned by pairs() during roster iteration to avoid dozens of wasteful table lookups

mod_bosh: Add jabber:client namespace to stanzas with no namespace

xmppcomponent_listener: Add log messages for when stanzas from components have invalid or missing to/from addresses

xmppcomponent_listener: Import jid_split to fix undefined global reference

mod_component: Read validate_from_addresses option from the config

Merge 0.7->trunk

mod_privacy: Add service discovery feature.

xmppcomponent_listener: Don't validate to/from on non-stanzas, fixes component auth.

xmppcomponent_listener: Validate to/from on components, fixes #104 and #162

Merge 0.7->trunk

mod_privacy: Return the correct item-not-found instead of bad-request when a non-existent list is activated by the client (thanks teo)

Merge 0.7->trunk

net.server_select: Clean up buffer and fire drained callback on successful write before we try and start TLS negotiation (if negotiation fails instantly then we can be left without a handler to use for cleanup) (thanks dersd)

net.server_select: Fix a snippet of code that was living at the wrong indentation level

s2smanager: Don't attempt to connect to a nil host (for whatever reason... invalid DNS record perhaps?) (thanks dersd)

s2smanager: Register outgoing connection with the connection listener only after initializing filters (thanks darkrain, dersd)

util.prosodyctl: Fixed host variables in user_exists.

configure: Add ostype preset for FreeBSD (thanks dersd and tobias (no, the other one))

Merge 0.7->trunk

Merge backout

Backed out changeset 454e1cf18daf (this isn't for debugging, it's to inform the user)

mod_register: Remove the offline store as a list (originally aa3725bbcde5 but missed in a merge)

Merge 0.7->trunk

mod_privacy: Treat stanzas with no 'to' address as going to the user's bare JID (thanks KSid)

util.sasl_cyrus: Return error strings using the new table mapping error codes to strings.

util.sasl_cyrus: Added a table mapping error codes to strings.

mod_register: Delete the offline store as a list, and delete the privacy store.

mod_register: Don't disable account before deleting it (unnecessary, and can cause problems).

mod_compression: Lowered a log level.

util.prosodyctl: Initialize the host's auth provider if necessary (thanks johnny, and all the other people whom this hindered :) )

usermanager: Expose host_handler() as initialize_host()

mod_auth_anonymous, mod_auth_cyrus: Removed unused variables.

mod_auth_anonymous, mod_auth_cyrus: Removed is_admin(), as usermanager already has a default.

mod_pep: Fixed a possible traceback during disco#items queries on a user's bare JID by remote users.

mod_auth_internal_hashed: Update TODO comments to COMPAT

mod_auth_internal_hashed: Remove far too many instances of inline hex conversion using gsub, which was creating useless closures and what-not

mod_auth_internal, mod_auth_internal_hashed: Remove is_admin method from providers

mod_adhoc: Update for new is_admin usage

usermanager: is_admin: Resume the old role of determining precisely whether a user is an admin for a given host (or a global admin) - auth providers checked for JIDs not listed in the config if they support it

util.signal: Moved a variable declaration to the top of a function, for ANSI C compliance.

util.signal: Removed #include <sys/param.h>, as it appears unnecessary.

util.signal: Make kill() available on OS X (thanks darkrain).

MUC: A little modification to improve code analysis.

MUC: Updated room:set_role() to use room:can_set_role().

MUC: Added room:can_set_role().

mod_announce: A little cleanup.

mod_storage: Make DBI a soft dependency, not a hard one.

mod_announce: Removed unused variables.

mod_announce: Changed a global variable to local.

util.signal: Make kill() available on OpenBSD, NetBSD (thanks Florob, filip).

prosody.cfg.lua.dist: Removed commented "defaultauth" from the modules_disabled list.

mod_auth_internal: Log as "auth_internal", not as "usermanager".

mod_auth_cyrus: Log as "auth_cyrus", not as "usermanager".

mod_auth_anonymous: Log as "auth_anonymous", not as "usermanager".

mod_auth_internal_hashed: Log as "auth_internal_hashed", not as "usermanager".

mod_auth_internal_hashed: Don't assume user doesn't exist if no recognizable authentication data is found.

mod_auth_internal_hashed: Removed all checks for Cyrus SASL.

commit d2fb8a5ff43fcf3e94e5e518aba175503590ecda

s2smanager: Fix logging for outgoing sessions to also log pre-filtered data

MUC: Added disco#info features to advertise room's anonymity status (muc_semianonymous or muc_nonanonymous).

MUC: Added disco#info features to advertise room's public status (muc_public or muc_hidden).

MUC: Updated code to use :set_hidden() and :is_hidden().

MUC: Added room:set_hidden(boolean) and room:is_hidden().

MUC: Added disco#info features to advertise room's persistence status (muc_persistent or muc_temporary).

MUC: Replaced direct access of room's internal persistence state with :set_persistent(boolean) and :is_persistent() in various functions.

MUC: Added room:set_persistent(boolean) and room:is_persistent().

MUC: Added disco#info features to advertise room's members-only status (muc_membersonly or muc_open).

MUC: Added a 'Make Room Members-Only?' field to the room config dialog.

MUC: Updated room:get_default_role() to not assign unaffiliated occupants a role in members-only rooms.

MUC: Added room:set_members_only(boolean) and room:is_members_only().

MUC: Added disco#info features to advertise room's moderation status (muc_moderated or muc_unmoderated).

MUC: Added a 'Make Room Moderated?' field to the room config dialog.

MUC: Updated room:get_default_role() to assign unaffiliated occupants a "visitor" role in moderated rooms.

MUC: Added room:set_moderated(boolean) and room:is_moderated().

MUC: Persist data in room:set_password() when called programmatically.

MUC: Added a password field to the room config dialog.

MUC: Include a <password/> element in invites from password protected rooms.

MUC: Added disco#info features to advertise room's password protection (muc_passwordprotected or muc_unsecured, depending on whether a password is set).

MUC: Added password checking on room join.

MUC: Added room:get_password() and room:set_password().

mod_auth_internal_hashed: Fixed a traceback in account creation.

Merge 0.7->trunk

Tagging 0.7.0 (again)

Merge 0.7->trunk

sessionmanager: Fixed a traceback on invalid usernames (typo in previous commit). 0.7.0

mod_saslauth: Return proper error on invalid usernames.

net.server_event: attemp to fix more spelling fail.

sessionmanager: Moved nodeprep to sessionmanager.make_authenticated.

mod_presence: Fixed a traceback on outgoing subscriptions from offline users.

Merge 0.7->trunk

prosodyctl, util.pluginloader: Remove support for storing plugins in the data store, and the addplugin command

mod_uptime: Add ad-hoc command

mod_adhoc: Scan through list of items on load, in case items have been added before we were loaded

mod_adhoc/adhoc.lib: Add copyright header

mod_adhoc/adhoc.lib: Handle errors according to XEP

mod_announce: Add ad-hoc command for sending announcements \o/

Merge 0.7->trunk

mod_compression: Move logging of compression/decompression errors to before the closing of the stream, to make logs a bit easier to follow

Tagging 0.7.0

s2smanager: Move 'sending' debug log message so that it sees the pre-filtered stanzas

mod_compression: Remove the unneccessary stream:reset() overloading, which was causing double decompression and c2s/s2s failures

mod_legacyauth: Fixed the ordering of parameters passed to usermanager.test_password.

mod_privacy: Workaround for a traceback.

mod_adhoc: Imported from prosody-modules, thanks Florob!

mod_auth_internal{,_hashed}: Update is_admin to only report the admin status of the current host (ignores global admin rights), fixes global access traceback

usermanager: Handle checking for global admins on behalf of providers

mod_legacyauth: Use the new usermanager.test_password instead of usermanager.validate_credentials.

mod_auth_internal_hashed: Removed some useless code.

mod_presence: Fixed a traceback.

Merge with Tobias.

mod_auth_internal_hashed: Empty hashpass after conversion to stored_key/server_key and store new authentication database.

mod_auth_internal_hashed: Remove debugging output.

mod_auth_internal_hashed: Convert hashpass to server_key/stored_key on SCRAM-SHA-1 login.

mod_auth_internal_hashed: Convert hashpass to server_key/stored_key on PLAIN login.

Merge with tip.

mod_auth_internal_hashed: Coverting salted password to stored_key and server_key.

mod_auth_internal_hashed: Store stored_key and server_key when setting a password.

util.sasl.scram: Authenticate clients by calculated StoredKey instead of ClientProof.

mod_auth_internal_hashed: Store StoredKey and ServerKey instead of salted hashed password.

Fix missing parameter in mod_auth_internal_hashed.

Merge trunk/MattJ->trunk

mod_presence: Enable firing of pre-events for all outbound stanzas, and switching completely to core_post_stanza.

Merge 0.7->trunk

tools/xep227toprosody.lua: Set executable bit

mod_compression: Removed some useless logging code.

mod_announce: Fixed an edge case where non-admins attempting to announce would get two error replies.

Merge trunk/MattJ->trunk

mod_auth_cyrus: Auth provider with support for Cyrus SASL.

mod_auth_anonymous: Fixed a syntax error.

mod_auth_anonymous: Auth provider with support for SASL ANONYMOUS.

mod_auth_internal_hashed: Added SCRAM-SHA-1 support for SASL.

mod_saslauth: Updated to use usermanager.get_sasl_handler.

mod_auth_internal, mod_auth_internal_hashed: Fixed a global access.

mod_auth_internal, mod_auth_internal_hashed: Updated to provide get_sasl_handler.

usermanager: Changed get_supported_methods to get_sasl_handler.

Merge 0.7->trunk

util.sasl_cyrus: Log the textual representation of unknown Cyrus SASL errors, not just the error code.

util.sasl.scram: Fixed a log level.

mod_presence: Send unavailable presence in response to probes to the sender's full JID, not bare JID.

Merge with trunk.

mod_presence: Enable firing of pre-events for probes.

mod_presence: Don't stop pre-event for outgoing probes.

mod_presence: Small refactoring.

Rename mod_defaultauth -> mod_auth_internal, mod_hashpassauth -> mod_auth_internal_hashed, and the providers to internal and internal_hashed respectively. Also no longer auto-load defaultauth, but instead auto-load the plugin selected for each host at startup based on the provider name.

Merge trunk/MattJ with trunk

util.sasl_cyrus: Log the textual representation of unknown Cyrus SASL errors, not just the error code.

mod_presence: Send unavailable presence in response to probes to the sender's full JID, not bare JID.

SASL: Minor cleanup.

util.sasl.scram: Fixed a log level.

mod_presence: Removed unnecessary parameter 'core_route_stanza' from various functions.

mod_saslauth: Fix log level

usermanager: Rename the fallback provider from 'dummyauth' to 'null'

usermanager: Add hunk that got missed in a merge

util.sasl_cyrus: Log the textual representation of unknown Cyrus SASL errors, not just the error code.

mod_presence: Send unavailable presence in response to probes to the sender's full JID, not bare JID.

SASL: Minor cleanup.

util.sasl.scram: Fixed a log level.

mod_presence: Removed unnecessary parameter 'core_route_stanza' from various functions.

Add jid support for motd

Add motd plugin, giving text to a user on each login.

Add the ability to have names in group files, by putting them with an = sign after the jid:

Correct out of order logic in mod_hashpassauth

Add mechanism for upgrading to hashed passwords from default. Remove some extra debug.

Have defaultauth load by default

Check in mod_hashpassauth -- works!

Working defaultauth

Added mod_auth_default

Update usermanager to not crash, etc.

First bit of work

Merge backout

Backed out changeset 8bd3857a75ee

Merge 0.7->trunk

s2smanager: Remove potentially misleading log message (thanks albert)

Merge 0.7->trunk

net.server_event: Also return the socket from wrapclient, to maintain compatibility with server_select (thanks uhoreg)

mod_compression: Use filters! \o/

xmppserver_listener: Add filters for incoming bytes and stanzas

s2smanager: Add filters for outgoing bytes and stanzas

sessionmanager: Rename filters_initialize->initialize_filters

xmppclient_listener: Add filters for incoming bytes and stanzas

sessionmanager: Initialize new sessions for filtering, and add filters for outgoing bytes and stanzas

util.filters: Ensure initialize() never initializes an object twice - and return the filter function to the caller

xmppserver_listener: Port to util.xmppstream \o/

util.filters: Break processing if a filterer returns nil

util.filters: Don't traceback with no filters of a type added

net.multiplex_listener: Test to make sure listener.onconnect isn't nil.

net.multiplex_listener: Call listener.onconnect(conn) when swapping listeners.

xmppclient_listener: Port to onconnect handler

util.filters: Don't traceback when trying to remove a filter from an uninitialized object

util.filters: Expose the initialization function

util.filters: New utility library for managing filters on an object

mod_pep: Corrected and optimized handling of non-available presence stanzas.

mod_iq: Removed a check for user existance when firing iq/bare/* sub-events.

mod_pep: Use is_contact_subscribed (which uses the new rostermanager fix to avoid unnecessary roster loads)

rostermanager: Optimisation to avoid unnecessarily loading rosters for offline contacts on probes, etc.

Merge compression fix

mod_compression: Update for new session.data() syntax, fixes invalid XML errors after compression negotiation (thanks hg bisect)

Merge 0.7->trunk

mod_groups: Check for existence of roster[false] before clearing version (thanks Flo)

Merge 0.7->trunk

util.sasl.scram: Fix remaining - in profile name

util.sasl.*: Adjusting authentication provider names. All '-' replaced with '_'

Merge trunk/Tobias->trunk

util.sasl.*: Adjusting authentication provider names. All '-' replaced with '_'

Merge 0.7->trunk

util.sasl.scram: Fixing logic error in argument checking.

util.sasl.scram: Fixing logic error in argument checking.

Merge 0.7->trunk

Merge 0.7/waqas->0.7/MattJ

mod_private: Detect datamanager read errors, and respond with 'internal-server-error'.

usermanager: Take datamanager errors into account when determining account existance.

mod_presence: Don't send 'unsubscribed' in response to probes when roster loading fails.

rostermanager: Return an error string when subscription test fails due to an error.

rostermanager: Mark rosters which fail to load as broken, and never save them.

mod_presence: Removed a useless check when handling incoming presence probes and subscriptions.

util.datamanager: Return an error string when failing to save.

util.sasl.scram: Adjusting authentication backend name to conform with the style already used by the plain module.

util.sasl.scram: Fixing issue #177.

util.sasl.plain: Typo.

util.sasl.scram: Providing an API function to generate a salted password for the SCRAM-SHA-1 mechanism.

util.sasl.scram: Split up long line.

util.sasl.scram: Parsing client-final-message in a more strict way. (thanks Marc Santamaria)

util.sasl.scram: Fix in nonce check of client-final-message.

util.sasl.scram: Parsing client-first-message in a more strict way. (thanks Marc Santamaria)

util.sasl.scram: Check nonce in client final message. Check channel binding flag in client first message. Adding some TODOs on more strict parsing. (thanks Marc Santamaria)

util.sasl.scram: Fixed global access.

util.sasl.scram: Adding documentation on SCRAM authentication backend.

util.sasl: Abstracting out the hash function used since SCRAM is independent of it. Adding scram-{mech} authentication backend support.

util.sasl.plain: Removing plain_hashed authentication provider. Just do hashing and comparison yourself in a plain_test authentication provider.

util.sasl: 2009 -> 2010 in copyright header.

util.sasl.plain: Adding plain_hashed authentication backend support.

util.sasl: Moving SASL authentication backends documentation to the mechanism files.

rostermanager: Correctly clear the bare_sessions table on roster load errors during bind.

rostermanager: Don't fire roster-load event if there was an error loading the roster

sessionmanager: Change error for reaching resource limit from 'conflict' to 'resource-constraint' during session bind.

sessionmanager: If roster loading fails during resource bind, kick the user with an internal-server-error.

rostermanager: When loading the roster, also return a datamanager error if available.

util.datamanager: When failing to load a file, and the file exists, return nil, error.

mod_privacy: Improved logging.

mod_presence: Added option 'ignore_presence_priority'.

Merge with backout

Backed out changeset c75c22c316d6 (the XMPP spec now gives a better way to do this)

util.sasl.scram: Fixing issue #177.

util.sasl.plain: Typo.

util.sasl.scram: Providing an API function to generate a salted password for the SCRAM-SHA-1 mechanism.

util.sasl.scram: Split up long line.

util.sasl.scram: Parsing client-final-message in a more strict way. (thanks Marc Santamaria)

util.sasl.scram: Fix in nonce check of client-final-message.

util.sasl.scram: Parsing client-first-message in a more strict way. (thanks Marc Santamaria)

util.sasl.scram: Check nonce in client final message. Check channel binding flag in client first message. Adding some TODOs on more strict parsing. (thanks Marc Santamaria)

util.sasl.plain: Removing plain_hashed authentication provider. Just do hashing and comparison yourself in a plain_test authentication provider.

Merge 0.7->trunk

mod_bosh: Re-layout session object creation to make lines shorter

mod_bosh: Add option consider_bosh_secure to treat BOSH sessions as encrypted even if they don't use HTTP (useful for when secure requests are proxied to Prosody over HTTP)

mod_privacy: Fix several possible tracebacks when either the contact is a host JID, or the contact isn't in your roster and you have roster group/subscription rules in place

mod_privacy: Remove validation that checks a roster group you block actually exists - it would be time-consuming on large rosters, and isn't important (or correct?) anyway.

Merge 0.7->trunk

mod_saslauth: Split out cyrus SASL config options into locals, and add support for cyrus_application_name (default: 'prosody')

Merge 0.7->trunk

usermanager, mod_saslauth: Make account provisioning for Cyrus SASL optional (default: not required)

util.sasl_cyrus: Support for specifying the application name (to pass to Cyrus SASL's init())

mod_saslauth: Add return value and error message to the Cyrus SASL handle_status callback

mod_saslauth: Allow the Cyrus SASL realm to be configurable

Merge 0.7->trunk

net.dns: Remove redundant locals declaration

net.dns: Fix dns.lookup from commit e54774bd73a7

net.dns: Remove redundant locals declaration

net.dns: Fix dns.lookup from commit e54774bd73a7

Merge 0.7->trunk

mod_groups: Remove potentially verbose per-contact logging (thanks Flo)

usermanager: Changed auth provider functions to methods.

Merge 0.7->trunk

Merge 0.6->0.7

configure: Fix to allow option values containing '=' (thanks Jakub)

net/dns: Fix socket.select timeout.

Merge 0.7->trunk

Merge 0.6->0.7

net/httpserver_listener: Ignore empty strings on incoming data.

Merge 0.7->trunk

Merge 0.7/MattJ with 0.7

Merge with 0.6

mod_bosh: Always give requests a destroy handler, so that the management of each session's request array and the inactive_sessions logic can happen in one place. Simplifies everything and concludes this series of BOSH fixes.

mod_bosh: Fix handling of rids by not dropping requests with repeated rids (assign them their sid instead), and always starting a session with first_rid-1.

mod_bosh: Remove some hacky code for pruning dead requests that hopefully never gets executed - if it does there's a bug anyway.

mod_bosh: Remove requests from the session table using table.remove(), prevents the possibility of holes in the array.

prosodyctl: Support for the new usermanager, refactor host creation and fail if a host is not using the default authentication provider, for now. (thanks Nicola)

usermanager: Export new_default_provider()

usermanager: Handle auth providers for components.

usermanager: Fix logic for per-host admin tables (thanks Maranda)

net.xmppclient_listener: Port to util.xmppstream \o/

prosody: Load util.xmppstream :(

util.xmppstream: Stream objects now just have feed/reset methods

usermanager: Bump log level of incorrect config option warnings

usermanager: Fix for is_admin to work with the new auth provider architecture

Merge 0.7->trunk

Merge 0.6->0.7

mod_console: Set a chunk name for loadstring calls (nicer errors).

mod_posix: Fixed a global access.

mod_console: Ensure that a null byte is printed after sending the banner.

prosody: Modified function metatable for better string representation of functions.

prosody: Lowered log level for a log message.

mod_posix: Don't add a server-starting event handler while the server-starting event is being fired.

net.server_select: Remove some debugging code.

Merge 0.7->trunk

Merge 0.6->0.7

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

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

util.sasl.scram: Fixed global access.

prosodyctl: Use the global events objects for hosts (again) (thanks albert) (sorry albert)

prosodyctl: Give each host an independant events object, because it seems to be the right thing to do

prosodyctl: Relocate global prosody object creation (see fff153f7f4de)

Merge configmanager->trunk

configmanager: Add VirtualHost as an alias for Host (re-applied in trunk due to previous bad merge with 0.7)

Merge 0.7->trunk

mod_console: Make use of the new onconnect callback to initialise session and send banner

net.server_select: Fix typo affecting connections with an onconnect listener that have data pending in the sendbuffer

Merge 0.7->trunk

mod_proxy65: Send error reply to activation stanza if one or both parties were not connected to the proxy

mod_proxy65: Return service-unavailable error when receiving an iq we didn't understand

mod_proxy65: Use new server.link to link proxied connections, now works with either connection backend

net.server_select, net.server_event: Add server.link() to link 2 connections with an intermediate buffer of the specified size

net.server_select, net.server_event: Support for ondrain listener callback for when send buffer is empty

net.server_select, net.server_event: Rename :pattern() method to :set_mode() for select backend, and add :set_mode() to event backend

net.server_select, net.server_event: Support for :pause() and :resume() on connections

usermanager: Give the default auth provider a name, you'll never guess what it is.

Merge Tobias's fancy SASL branch->trunk

Merge with tip.

util.sasl: 2009 -> 2010 in copyright header.

util.sasl.scram: Adjusting authentication backend name to conform with the style already used by the plain module.

util.sasl.plain: Adding plain_hashed authentication backend support.

util.sasl.scram: Adding documentation on SCRAM authentication backend.

util.sasl.anonymous: Adding documentation on anonymous authentication backend.

util.sasl: Moving SASL authentication backends documentation to the mechanism files.

util.sasl: Abstracting out the hash function used since SCRAM is independent of it. Adding scram-{mech} authentication backend support.

Merge 0.7->trunk

net.server_event: Be sure to fire onincoming for backwards-compatibility with pre-onconnect listeners (thanks darkrain/mod_console)

usermanager: Support for pluggable authentication providers

eventmanager, prosody: Adapt eventmanager to use prosody.events, as a step towards removing it entirely

Merge 0.7->trunk (with MUC needing checking, waqas)

Merge 0.6 into 0.7.

Tagging 0.6.2

prosody.cfg.lua.dist: Refactor the default config file based on feedback from confused users 0.6.2

hostmanager: Re-word log messages in line with config changes

configmanager: Add VirtualHost as an alias for Host

MUC: Allow moderators which are not owners to change roles.

MUC: Include <status code='100'/> in a message, not in presence. Fixes various issues.

modulemanager: Log proper tracebacks on errors during module load/unload.

prosody: Set metatable on functions to allow easy access to upvalues.

configmanager: Fix very wacky indentation

configmanager: Fix some wacky indentation

Merge 0.7->trunk

net.server_event: Call listener.onconnect if it exists, otherwise stick to listener.onincoming

Merge 0.7->trunk

net.server_select: Support for listener.onconnect

Merge 0.7->trunk

Merge 0.6->0.7

net.server: Fix logic error causing traceback when receiving a non-number port

loggingmanager: Fix syntax error :)

Merge 0.7->trunk

util.timer: When using libevent hold onto the event handle to stop it being collected (and the timer stopping). Fixes BOSH ghosts, thanks Flo, niekie, waqas.

loggingmanager: Observe 'debug' config setting for console logging too

Merge 0.7->trunk

Merge 0.6->0.7

Merge 0.6/MattJ -> 0.6

mod_bosh: Default stanza namespace should be jabber:client (fixes BOSH to work with recent namespace fix)

util.ztact: Fixed global accesses.

util.uuid: Use a local instead of a global.

util.stanza: Fixed some more nil global accesses.

util.stanza: Fixed a nil global access.

Merge 0.7->trunk

Merge 0.7/waqas->0.7/MattJ

net.server_event: Fixed spelling fail.

Merge 0.6->0.7

xmppserver_listener: Compatibility fix for older Prosodies with the s2s xmlns bug

stanza_router, s2smanager, modulemanager: Fix for handling of the default namespace on stanzas, causing sometimes jabber:client to be sent over s2s, and accepted

Merge 0.7->trunk

tools/erlparse: Discard erlang PIDs instead of choking on them as a syntax error

tools/erlparse: Report the line number when showing a syntax error in the input file

tools/erlparse: Optimisations aplenty for faster processing of large files

Merge 0.7->trunk

tools/ejabberd2prosody: Create prosody singleton so datamanager can detect the platform (set no platform to use lfs, pposix isn't necessary here)

Merge 0.7->trunk

net.server_event: Don't re-try a write if the connection closed (thanks Flo)

Merge 0.7->trunk

net.server_event: Bump timeout values up somewhat

Merge 0.7->trunk

Merge 0.7/waqas->0.7/MattJ

util.sasl.digest-md5: Removed unnnecessary check (which included a nil global access).

mod_register: Use set_password to set passwords instead of create_user.

usermanager: Added function set_password.

Merge 0.6->0.7

mod_tls: Add s2s_allow_encryption option which, when set to false, disabled TLS for s2s

prosody.cfg.lua.dist: Whitespace fix.

prosody.cfg.lua.dist: Disable mod_privacy by default.

usermanager: Return sane errors/results when Cyrus SASL is in use.

mod_saslauth: Tidier code for SASL backend selection.

mod_saslauth: Fail with an error when the requested SASL backend cannot be used.

Merge 0.7->trunk

Merge 0.6->0.7

util.windows: Convert from Windows line endings

Update copyright headers for 2010

loggingmanager: Don't use non-standard format specifier to format the timestamp.

util.xmppstream: new() now returns a parser object

util.xmppstream: Initial commit

Merge 0.7->trunk

stanza_router: Don't send error replies for stanzas of type 'error' and 'result' on unbound authenticated connections. [originally fa84451e9b35 in 0.6]

stanza_router: Allow non-jabber:client elements after auth, before bind. [originally 2c538d4bde13 in 0.6]

Merge 0.7->trunk

sessionmanager, s2smanager: Add type of ?2s_destroyed to resting sessions (fixes a logging traceback, thanks Flo)

Merge 0.7->trunk

mod_groups: Ignore whitespace on group member JID lines (thanks Luis!)

mod_groups: Fixes to make compatible with roster versioning - set version to 'true' to indicate that the roster is not being versioned

mod_groups: Missed hunk from last commit, don't create the list of public group members unless necessary

mod_groups: Only create group lists when necessary (now we can reliably detect when a user is in /any/ group, including public ones)

rostermanager: Don't bump the roster version if it is == true (ie. we are not versioning the roster)

mod_roster: Tidier code for the roster versioning logic

mod_roster: Tidier code for the roster versioning logic

Merge 0.7->trunk

.hgignore: Ignore prosody.version (thanks Florob)

Merge 0.7->trunk

util.sasl_cyrus: Return invalid-mechanism instead of undefined-condition where appropriate

util.sasl_cyrus: Clarify some log messages and levels

util.sasl_cyrus: Protect the call to cyrussasl.server_new properly.

Merge 0.7->trunk

util.sasl_cyrus: If available, use a c14n callback for interoperability with bad clients.

mod_saslauth: Add a sasl_realm option

util.cyrus_sasl: Pass the realm to Cyrus

Merge darkrain->trunk

util.sasl_cyrus: If available, use a c14n callback for interoperability with bad clients.

mod_saslauth: Add a sasl_realm option

Merge 0.7->trunk

Merge 0.6->0.7

Merge 0.6 with waqas

mod_compression: Improved and lowered log level of some logged messages.

s2smanager: Remove the infamous 'as per RFC' log message entirely (it happens too often to be useful)

Merge with 0.7

Merge with 0.6 (into 0.7, namely mod_compression fixes)

mod_compression: Return <setup-failed/> instead of <unsupported-method/> where applicable.

mod_compression: More robust stanza processing.

(0) -3000 -1000 -480 +480 tip

mercurial