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.

mod_compression: Don't succeed after indicating a failure.

mod_compression: Don't tell client compression succeeded when it didn't.

mod_compression: Fixed various possible tracebacks in logging.

util.cyrus_sasl: Pass the realm to Cyrus

MUC: Added support for letting clients manage discussion history.

Merge with 0.7 (and indirectly 0.6.2)

Merge 0.6.2/waqas with 0.6.2/MattJ

Merge 0.6.2/waqas with 0.6.2/MattJ

stanza_router: Don't send error replies for stanzas of type 'error' and 'result' on unbound authenticated connections.

stanza_router: Allow non-jabber:client elements after auth, before bind.

Fixing some typos.

util.sasl.plain: Allow empty authzid (thanks bjc).

mod_tls: Don't offer TLS on hosts that don't have any certs

prosodyctl.man: Update email address

mod_console: Uncomment the help for server:shutdown() - thanks darkrain

ejabberd2prosody: Don't print passwords of imported accounts

ejabberdsql2prosody: Don't print password of imported accounts (thanks azerttyu)

mod_debug: Obsoleted by mod_console

mod_selftests: Obsolete, remove

mod_offline: Remove from 0.7 (offline messages are handled in core at the moment)

MUC: Allow role changes based on JIDs.

mod_presence: Reflect the user's own presence back to them.

configmanager: Remove debugging code accidentally committed

configmanager: Error when a component and host clash hostnames

mod_saslauth: Don't print raw SASL data to avoid logging passwords unnecessarily

prosody: More accurate friendly error message in the event that creating the global SSL context fails

sessionmanager, s2smanager: Fix for syntax of null_data_handler() (thanks Nolan)

sessionmanager, s2smanager: Give sessions dummy data handlers that log when data is received by a destroyed session

net.dns: Normalize records before placing them in the cache, fixes issues with CNAME targets in CAPS (fixes #161)

hostmanager: Log an error if no hosts are defined

mod_tls: Fixed an extra :up() in s2s stream feature generation.

mod_tls: Respond with proper error when TLS cannot be negotiated.

mod_presence: Don't depend on user being online when calculating top resources.

mod_presence: Don't depend on sessions array existing for a user when handling outgoing presence broadcast.

util.encodings: Use STD3 ASCII rules for idna.to_ascii.

prosody: Add a catch-all friendly message for when any port is in use we want to use

util.stanza: stanza.error_reply(): Fix to put the correct namespace on <text>

prosody: Show friendly error when no config present for legacy SSL ports

prosody: Log error message when failing to open ports

MUC: muc.lib.lua: Fix the sending of the occupant JID instead of the nick in role lists and presence broadcasts after role changes (thanks teo)

mod_presence: Quick fix to make probes from local users to local hosts work.

mod_presence: Added handler for presence subscriptions and probes to local hosts.

stanza_router: Added third parameter to core_post_stanza, to control pre-events.

mod_presence: Respond with an unavailable presence when subscribers probe and no resources are available.

prosody: Listen for component connections on port 5347 by default.

mod_component: Fix name of config option in error message (thanks nulani!)

util.dataforms: Add optional type parameters (defaults to 'form')

net.httpserver: More robust handling of headers split across multiple packets

net.httpserver: Make it possible to return responses with no body

net.httpserver: Close connection on invalid HTTP status line

mod_presence: Automatically deny presence requests for hosts, fixes traceback in #153

stanza_router: Log the name of unhandled stanzas (thanks bear)

sessionmanager: Added resource prepping, and invalid resource checking to the bind_resource function.

mod_register: Return a <not-acceptable/> error on empty usernames (thanks Neustradamus).

util.pposix: Fix return type of lc_abort to shush compiler warning

prosody.cfg.lua.dist: Remove lie about requiring console_enabled

modulemanager: Fire item-removed events on module unload.

prosody: Call tostring on the key being used for nil global read before concatenating it with a string.

prosody: Log a warning and traceback, but don't throw an error on nil global read.

Mainfile: Broke up a really long line.

mod_pep: Support item retrieval use cases

mod_pep: Allow storage of urn:xmpp:avatar:data node (payload only with base64 data)

util.stanza: Add stanza:get_child(name, xmlns) to find a child tag given a name/xmlns

tests: Add tests for util.jid.join()

util.jid: Add join(node, host, resource) function to join the components and return nil if invalid

MUC: Only allow moderators to change the room subject.

MUC: Prevent visitors from broadcasting messages.

MUC: Improved handling of incoming groupchat messages (state preserved for possible later use).

core.sessionmanager, net.*_listener: Remove the evil collectgarbage() calls

util.dependencies: Make the commands line up properly in the "missing dependency" output. Yes, this was the commit you didn't know you were waiting for!

mod_bosh: Don't log response XML

s2smanager: Use s2smanager log() if session doesn't have a logger (thanks Flo)

net.httpclient_listener: Don't notify request of closed connection if the close was initiated by us

util.signal: Using stdlib.h instead of malloc.h.

net.http: destroy_request(): Pass request.handler to disconnect() listener to fix small leak

net.http: Close connection when invalid status line is received from the server

net.http: Don't re-destroy a request when the connection is closed

net.http: Port commit 2f235c57d713 to net.http to fix headers in responses (thanks dersd)

README: Update URL for installation docs

HACKERS: Update

TODO: Update for the fact that 0.7 is done

TODO: Update

mod_tls: Set the sslctx on outgoing connections (possibly the cause of outgoing s2s connections not being encrypted)

s2smanager: Fix syntax error)

s2smanager: require_s2s_encryption -> s2s_require_encryption

s2smanager: Make require_s2s_encryption do what it says on the tin

prosodyctl: Fix to load LuaRocks 2.x if we have it

util.dependencies: Load luarocks.loader/luarocks.require

prosodyctl: Use mode r+ for opening the file so 1) it fails if the file doesn't exist 2) we have write access to lock it

mod_posix: Adjust file open mode depending on whether file exists (take that fopen designers!!!)

util.prosodyctl: Report Prosody as not running if the pidfile isn't locked

mod_posix: Lock pidfile when in use, shut down if we can't write or lock the pidfile

util.signal: Restore the old debug hook earlier, just in case we receive another signal between clearing the signal queue and restoring it

util.signal: Update version in header, and author's email

util.signal: Queue up multiple signals, instead of trampling on the previous debug hook (and never clearing our own)

prosody: net_activate_ports: Accept strings as well as numbers for specifying ports

net.dns: Make sure math.randomseed() gets passed an integer

s2smanager: Stamp a 'to' on the reply stream:stream. This makes prosody happy.

prosodyctl: Gracefully handle a missing stty command, and fall back to ANSI escape sequences

mod_httpserver: Rudimentary directory detection, return forbidden instead of causing a traceback (since commit 0325f241a26c)

mod_saslauth: Requiring c2s encryption means requiring c2s encryption... thanks Flo

s2smanager: Give reasons to destroy_session in more cases, including when DNS lookup fails

xmppserver_listener: When a connection fails, pass the reason to destroy_session

s2smanager: Have both destroy_session and bounce_sendq accept a reason string to include in bounced stanzas

s2smanager: Send reply stream header only after checking we serve this host (sorry darkrain... :) )

xmppserver_listener: Make log messages during SRV retries clearer

prosody: Fixed a possible nil concatenation.

net.http: Don't expect the body on redirects

mod_httpserver: Text files are text/plain, and not plain/text.

net.httpserver: Removed mime handling (now in mod_httpserver). Unknown dynamic content is now always served as text/html.

mod_httpserver: Removed a log message.

mod_httpserver: Read files in binary mode; fixes issues with serving binary files.

mod_httpserver: Skip returning a Content-Type when not known (application/octet-stream is not a correct default).

mod_httpserver: Return Content-Type header based on file extension.

util.signal: Make kill() available on Solaris; really fixes #136.

prosody: Less strict matching for the magic 'interrupted' error

componentmanager: Set ssl_ctx[_in] for components correctly, and use global SSL context if available

Disable SSLv2 by default, it's known to be insecure.

net.server_select: Restore checks for wantread/timeout errors on receive

net.server_select: Make bufferlen() method return, of all things, the buffer length

net.server_select: Fix possibility of losing data sent from a socket just before it closes (thanks Sjoerd Simons)

net.dns: Fix for blocking dns lookups to find waiting coroutines correctly (not that we use this in Prosody...)

net.dns: Port some DNS fixes to the resolver:feed() function for net.adns to use

net.httpserver: Quick fix to set the correct Content-Type on simple (string) responses, for a few known types

s2smanager: Don't tostring() the data before sending, sends2s already does this.

net.xmppcomponent_listener: Don't remove 'log' and 'close' from sessions when destroying, and set destroyed = true

net.xmppcomponent_listener: Log invalid XML received from components (as we already do for c2s/s2s)

net.xmppcomponent_listener: Don't allow closing a session that has already been destroyed

net.xmppcomponent_listener: Close component sessions on receiving a </stream:stream>

net.xmppcomponent_listener: Don't handle stream errors from component sessions that have already been destroyed

net.xmppcomponent_listener: Fix to correctly handle stream errors from components

net.xmppclient_listener: Fix to correctly handle stream errors from clients

sessionmanager: Don't re-destroy destroyed sessions

sessionmanager: Return stream error when incoming stream header is missing 'to' attribute

sessionmanager: Add close method to resting sessions

s2smanager: Don't re-destroy destroyed sessions

s2smanager: Add open_stream and close methods to resting sessions

sessionmanager, s2smanager: Close session on </stream:stream>

sessionmanager, s2smanager: Destroyed sessions are now simply resting (not dead) until they are collected - prevents a whole class of tracebacks

net.xmppserver_listener: Clarify log message (for nil/false)

Merge with trunk

mod_offline: Convert to Unix line endings.

Merge with 0.7

net.dns: Trailing whitespace

net.dns: More reliable parsing of resolv.conf - allow multiple nameserver IPs on one line (thanks dersd)

net.server_select: Fix for traceback when a read returns an error and no data (thanks dersd)

certmanager: Friendlier error reporting on OpenWRT and other cases where we don't understand the OpenSSL error

certmanager: Fix nil global access (thanks Marc)

Merge with 0.7

util.sasl: Fixed a nil global access.

util.stanza: Fixed nil global accesses.

certmanager: Fix global access

net.server_select: Fix typo

net.server_event: Fix some global accesses

Merge with 0.7

mod_proxy65: Fix for old-style closing of connections (another source of tracebacks with libevent enabled)

net.server_select: Fix calling method of some handler.close()s

Merge with 0.7

net.server_event: Improve and fix potential traceback in logging of new incoming connections

Merge with 0.7

mod_saslauth: Add FIXME to remind myself to fix this as soon as I have time

Merge with 0.7

Merge with 0.7/waqas

mod_saslauth: Unlock globals while loading cyrus

util.sasl_cyrus: Ensure the mechanisms table is available after a failed auth attempt.

Merge with 0.7

prosody: Bump log message describing current connection backend to level 'info'

Merge with 0.7

prosody.cfg.lua.dist: Fix missing quote in commented proxy config example

Merge with 0.7

Merge with 0.6

tests/test_core_s2smanager.lua: Fix to compare SRV weights correctly

s2smanager: Log and fail gracefully when unable to create socket for outgoing s2s connection (thanks foucault)

s2smanager: Fix for the logic SRV record priority comparison (thanks darkrain)

net.adns: Trailing whitespace

mod_vcard: Stricter matching of vcard stanzas with vcard_compatibility enabled, fixes intercepting stanzas to the full JID that it shouldn't

net.server_event: Add lock_read() method to connections

Merge with 0.7

prosodyctl: Fix addplugin to support --help, and hide from the help listing (for now)

prosodyctl: Fix 'restart' command to not report itself as the 'stop' command (thanks albert!)

Merge with 0.7

prosodyctl.man: Update email address

prosodyctl.man: Include new restart command

Merge with 0.7

mod_console: Uncomment the help for server:shutdown() - thanks darkrain

prosodyctl.man: Update email address

prosodyctl.man: Include new restart command

Merge with 0.7

prosodyctl: Add restart command for KSid and johnny :)

Merge with 0.7

prosody.cfg.lua.dist: Update config for 0.7, most improvements from the Arch Linux package by dbb, thanks!

ejabberd2prosody: Don't print passwords of imported accounts

Merge trunk with trunk

Merge with 0.7.

Merge 0.7 with 0.7 with trunk \o/

Merge 0.7 with 0.7

mod_iq: Fire sub-events for iq/self events.

stanza_router: Make sure /self events are fired when the 'to' attribute is missing.

Merge with 0.7

ejabberdsql2prosody: Don't print password of imported accounts (thanks azerttyu)

Merge with 0.7

mod_debug: Obsoleted by mod_console

mod_selftests: Obsolete, remove

mod_offline: Remove from 0.7 (offline messages are handled in core at the moment)

Backed out changeset e7b09424b486 (not removing mod_offline for trunk)

mod_offline: Remove from 0.7 (offline messages are handled in core at the moment)

mod_storage, plus a bit of SQL and XML.

Merge with 0.7

s2smanager: Use s2smanager log() if session doesn't have a logger (thanks Flo)

net.http: Update print()s to log()s - don't ask how this came to be, I have no idea :)

net.httpclient_listener: Don't notify request of closed connection if the close was initiated by us

net.http: destroy_request(): Remove update for new server API, pass request.handler instead of request.conn to ondisconnect

net.http: Close connection when invalid status line is received from the server

net.http: Don't re-destroy a request when the connection is closed

Merge with 0.7

net.http: Port commit 2f235c57d713 to net.http to fix headers in responses (thanks dersd)

Merge with 0.7

MUC: Allow role changes based on JIDs.

Merge with 0.7

README: Update URL for installation docs

HACKERS: Update

TODO: Update

Merge with 0.7

net.adns: Don't treat locally-initiated disconnects as fatal with libevent backend in use (thanks Flo)

net.server_event: Pass false as connection error to disconnect handler if close was initiated by us

modulemanager: Fix traceback on unloading global modules (thanks KSid)

MUC: Allow role changes based on JIDs.

Merge with 0.7

net.server_event: Increase SSL handshake timeout to 30s, make handshake round-trip count configurable, and bump connect timeout to 20s (thanks Flo)

Merge with 0.7

mod_tls: Only negotiate TLS on outgoing s2s connections if we have an SSL context (thanks Flo...)

Merge with 0.7

net.adns: Fix potential traceback on DNS responses with libevent enabled (thanks Flo)

Makefile: Remove fallbacks/

Makefile: Remove fallbacks/

prosody: Don't add fallbacks to package.path and package.cpath.

util.sasl.scram: Removed unnecessary dependency on bitlib.

mod_saslauth: Log debug message with full error if cyrussasl couldn't be loaded

mod_saslauth: Correct syntax for gracefully handling a missing cyrussasl library

net.server: Remove redundant commented code and some trailing whitespace

mod_presence: Added config option 'bare_message_delivery_policy'. Allowed values are 'priority' (default) and 'broadcast'.

mod_presence: Reflect the user's own presence back to them.

mod_saslauth: Warn and fallback gracefully when Cyrus SASL is requested, but missing.

net.server_event: Fire onincoming() callback for new connections as opposed to the new onconnect() - let's change this for a future version though

configmanager: Remove debugging code accidentally committed

net.server_event: Fix another instance of creating an SSL context - certmanager now does this

net.server_event: Fix traceback in creating SSL context

configmanager: Error when a component and host clash hostnames

mod_tls: Ban TLS after auth, not before.

mod_tls: Fixed traceback during S2S TLS (nil global access).

mod_saslauth: Don't print raw SASL data to avoid logging passwords unnecessarily

prosody: More accurate friendly error message in the event that creating the global SSL context fails

prosody: Use certmanager to create the global SSL context

Merge with 0.7

certmanager: Bring back the friendly errors when failing to load the key/certificate file

componentmanager: Use certmanager for creating contexts

certmanager, hostmanager: Rename get_context() to create_context() to be more explicit about what it does

Merge with backout

Backed out changeset cb1f9266130b: better way to achieve this to be committed Real Soon Now.

mod_tls: Refactor to simplify detection of whether we can do TLS on a connection

stanza_router: Fire /self events for stanzas users send to their own bare JID.

mod_tls: Don't offer TLS on hosts that don't have any certs

sessionmanager, s2smanager: Fix for syntax of null_data_handler() (thanks Nolan)

sessionmanager, s2smanager: Give sessions dummy data handlers that log when data is received by a destroyed session

net.dns: Normalize records before placing them in the cache, fixes issues with CNAME targets in CAPS (fixes #161)

net.dns: Update for new socket API

hostmanager: Small optimisation in checking whether a host is enabled

hostmanager: Log an error if no hosts are defined

mod_privacy: Remove the non-working sendNeededUnavailablePresences() and the related commented code

mod_privacy: Fix to correctly iterate over lists stored in new format

mod_privacy: Upgrade old privacy lists to new storage format, so they don't get lost

s2smanager, mod_compression, mod_tls: Changed event.session to event.origin for s2s-stream-features event for consistency.

mod_saslauth: Hook stream-features event using new events API.

mod_roster: Hook stream-features event using new events API.

mod_legacyauth: Hook stream-features event using new events API.

mod_compression: Hook stream-features event using new events API.

mod_bosh: Fire stream-features event using new events API.

mod_tls: Hook stream-features event using new events API.

sessionmanager: Fire stream-features event using new events API.

mod_tls: Cleanup.

mod_tls: Fixed an extra :up() in s2s stream feature generation.

Merge with trunk.

mod_tls: Remove origin type check when TLS is requested (thanks MattJ).

mod_tls: Respond with proper error when TLS cannot be negotiated.

mod_tls: Inlined some code.

net.server_event: Fixes for traceback with no LuaSec

net.server_select: Small indentation fix

net.server_select: Fix traceback with no LuaSec available (thanks Nolan)

mod_tls: Merged duplicate code.

mod_tls: Switched to new events API.

mod_tls: Slight refactoring.

mod_presence: Don't depend on user being online when calculating top resources.

mod_presence: Don't depend on sessions array existing for a user when handling outgoing presence broadcast.

sessionmanager: Fire resource-unbind event after removing session from sessions table

mod_privacy: Remove use of to identify unspecified privacy list

mod_privacy: Fix potential traceback in stanza validation, and fix some zero-based indexing :)

mod_privacy: Don't store the privacy lists as an array, but as a map... faster and less code

prosody, prosodyctl: Re-jiggle load order again, fixes logging config not being obeyed (thanks darkrain)

loggingmanager: Trailing whitespace

modulemanager: Load plugin libraries in the same environment as the plugins.

modulemanager: Make the plugin environment available directly (module.environment within plugins).

util.datamanager: Added support for hooks to override behavior.

net.server_select: Only allow starttls if luasec is available (thanks Nolan)

net.server_select: *Major* whitespace refactoring to meet Prosody's coding style guidelines, we now have tabs

sessionmanager: Whitespace fix

mod_privacy: Rename from_user/to_user flags to is_from_user/is_to_user for clarity

net.dns, net.adns: Changed dns:socket_wrapper_set to dns.socket_wrapper_set for consistency.

util.sasl_cyrus: Add text message from cyrussasl to <not-authorized/> errors.

mod_tls: Don't advertise TLS after authentication.

net.dns: Fixed whitespace/indentation.

net.dns: Removed unused function.

net.dns: Removed some useless indirection to improve readability.

util.encodings: Use STD3 ASCII rules for idna.to_ascii.

net.httpserver: Make request.conn be the server.lua conn instead of the underlying socket (more useful this way)

net.httpserver: Trailing whitespace

Merge with backout

util.sasl.digest-md5: Revert changeset 6094a4e2b6f3 as it breaks some clients, re-visit some time down the line

prosody: Add a catch-all friendly message for when any port is in use we want to use

prosodyctl: Initialize logging before checking dependencies

prosody: Initialize logging before checking dependencies (fixes another traceback with no LuaSec)

certmanager: Fix traceback with no LuaSec

certmanager: Tabs not spaces!

util.dependencies: Don't query the config (it isn't really necessary)

net.server_event: Update for compatibility with new server API

net.xmppserver_listener: status -> onstatus for consistency

net.server_select: listener.status -> listener.onstatus for consistency

net.adns: Use different flavour of voodoo to make UDP sockets work smoothly with libevent (no packet merging)

util.stanza: stanza.error_reply(): Fix to put the correct namespace on <text>

net.adns: Trailing whitespace

hostmanager: Use certmanager for obtaining SSL contexts

certmanager: Hello world, I'm come to manage your SSL contexts

prosody: Show friendly error when no config present for legacy SSL ports

configmanager: Trailing whitespace

net.connlisteners: Return an error if no SSL context is supplied for a connection of type 'ssl'

prosody: Log error message when failing to open ports

net.server_select: Report whether a new listener uses SSL or not in the log message

prosody: Only set the ssl_ctx for 'ssl' connections

net.connlisteners: Remove redundant variable declaration

net.connlisteners: Update for new server API, type == 'tls' now means little - all connections support TLS

s2smanager: Update for new server SSL API (don't pass a sslctx)

mod_tls: Remove some redundant variable declarations

mod_tls: Set the sslctx on outgoing connections (possibly the cause of outgoing s2s connections not being encrypted)

mod_tls: Update for new server SSL syntax

net.server_select: Remove startssl parameter to the client/server creation functions - passing a sslctx now indicates you want to use SSL from the start

MUC: muc.lib.lua: Fix the sending of the occupant JID instead of the nick in role lists and presence broadcasts after role changes (thanks teo)

s2smanager: Fix syntax error)

s2smanager: require_s2s_encryption -> s2s_require_encryption

s2smanager: Make require_s2s_encryption do what it says on the tin

hostmanager: Trailing whitespace

net.server_event: Trailing whitespace

net.server_event: Support :setlistener() method on connections to work with port multiplexing

Merge with trunk.

mod_presence: Quick fix to make probes from local users to local hosts work.

mod_presence: Added handler for presence subscriptions and probes to local hosts.

stanza_router: Added third parameter to core_post_stanza, to control pre-events.

MUC: Fixes and refactoring for the previous commit to work in all cases, text of error stanzas is now broadcast

MUC: Show error message texts when participants are kicked for stanza errors

MUC: Have get_error_condition() use the new stanza:get_error() (muc.lib.lua 11 lines shorter \o/)

util.stanza: Add stanza:get_error() to return type, condition and text of a stanza error

mod_presence: Respond with an unavailable presence when subscribers probe and no resources are available.

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

mercurial