mod_privacy: A handful of logging fixes

mod_privacy: Remove the giant if/end block that was really causing problems - skipping stanzas with no to/from (like presence broadcast). Also optimised the code a *lot*, these changes untested at the moment though.

Merge backed out changeset

Backed out changeset c4240df1b412 (or this)

Backed out changeset a4f9ed3f912e (you didn't see this)

mod_privacy: ...and no 'to' for presence implies an outgoing broadcast

mod_privacy: Mmph, no 'from' == from local

mod_privacy: Fix repeated presence-in (should be presence-out) - this stops the blocking of legitimate inbound presence, and inbound/outbound iqs and messages in Gajim's invisible mode (maybe I can sleep now)

mod_privacy: Trailing whitespace (I can't sleep)

prosodyctl: Don't load luarocks as util.dependencies now does this

prosody: Check dependencies (and load LuaRocks) earlier on in the startup process

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

mod_console: Update !! shortcut for new connection API

prosodyctl: Don't display message about failing to start Prosody is daemonizing is disabled (if daemonizing is disabled then Prosody is stopped by the time control returns to prosodyctl, which then can't see Prosody running)

util.dependencies, prosody, prosodyctl: Give util.dependencies a check_dependencies() function so the caller can decide what to do when dependencies aren't met - update prosody/prosodyctl for this change

s2smanager: Whitespace

xep227toprosody: Fixed some global accesses.

xep227toprosody: Initial commit (thanks stefan).

xmlhandlers: Removed unused variables.

xmlhandlers: A little optimization.

MUC: Removed old commented code.

MUC: Converted some local functions into methods.

mod_privacy: Removed a useless 'require' within a function.

Merge with trunk.

mod_privacy: Cleaned up code.

mod_privacy: Reduced a function.

mod_privacy: Fixed global access.

prosodyctl: Require util.dependencies to run dependency checks, not only for when starting Prosody directly (thanks Joe)

mod_privacy: Imported from prosody-modules.

mod_component: Cleaned up unused variables.

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

xmlhandlers: Rearranged a little code.

xmlhandlers: Fixed indentation and added some semicolons.

mod_disco: Added option 'disco_items' to allow appending items to a host's disco#items result.

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

xmppcomponent_listener: Update for new connection API

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

mod_xmlrpc: Obsolete, remove

mod_bosh: I == fail.

mod_bosh: Simplify cross-domain support, and make it work - default is for cross-domain to be disallowed

mod_bosh: Support for cross-domain access control using CORS

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

util.stanza: Trailing whitespace

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

net.httpserver: Close connection on invalid HTTP status line

modulemanager: Remove obsolete actions code

net.server_{select,event}: Fail gracefully if socket doesn't have a setoption method (LuaSec issue I think)

net.server_event: Replace all calls to _start_ssl() to its bigger brother starttls() - fixes 5223 w/ libevent

objectmanager: Obsolete, remove

actions: Obsolete, remove

mod_actions_http: Obsolete, remove

mod_bosh: Trailing whitespace

s2smanager: Log error and fail gracefully if we can't open a socket for an outgoing s2s connection (thanks foucault)

net.xmppserver_listener: Handle stream-error errors from xmlhandlers, and close session in response

net.xmppserver_listener: Extend session:close() with a remote_reason parameter

s2smanager: No-one noticed that Prosody stopped sending to/from on stream headers recently? :)

xmlhandlers: Move stream-error detection to somewhere more appropriate (it was never reached) - s2s stream errors now reported properly

mod_bosh: Update for new xmlhandlers syntax

net.xmpp{client,server,component}: Update for new xmlhandlers syntax

net.xmppserver_listener: Pass reason for session disconnection to disconnect handler, if known

xmlhandlers: More refactoring, split up stream_ns and stream_tag, add stream_error_tag so that callers don't need to be so worried about the separator we use

xmlhandlers: Define ns_separator and ns_pattern to save repeating it in literal form throughout the file

net.server_event: Remove access to starttls method when starttls is negotiated - fixes offering starttls to client who are already using it (thanks darkrain and Adium)

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

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

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

mod_muc: Remove unused history_length declaration

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.pposix, mod_posix, prosodyctl: Bump pposix version to 0.3.3 for mkdir

xmppclient_listener: Allow the tcp_keepalives option in the config to control whether keepalives are used

net.server_event: Add conn:setoption() to set options on the socket

net.server_select: Add conn:setoption() to set options on the socket

mod_saslauth: Fixed some indentation and added some semi-colons.

mod_saslauth: Made some variables local to avoid unnecessary global access.

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).

componentmanager: Add dialback_secret to components to allow s2s to work (thanks Flo)

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.datamanager: Use pposix.mkdir if available

util.pposix: Add mkdir(path)

prosodyctl: Move definition of prosody singleton to prior to loading datamanager, and add platform

util.pposix: Replace the unwieldy module table generation with luaL_register() call - side effect - it now sets the pposix global to the module table

mod_posix: Set umask to 'umask' from the config, or 027

prosodyctl: Set umask to protect data files, bump pposix dep to 0.3.2

util.pposix: Add pposix.umask(), bump version to 0.3.2 (and do the same in mod_posix)

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

util.posix: Trailing whitespace

net.server: When libevent backend is in use, override signal.signal to use server.hook_signal

net.server_event: Add server.hook_signal(signal_num, handler) to wrap libevent's signal-catching interface

mod_posix: Remove the lines added to work around the util.signal loop bug

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

prosody: Read list of possible config extensions from configmanager, removes old TODO

configmanager: Add parsers() method to return an array of supported config formats

s2smanager: Split sending of stream header into a :open_stream() method

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

net.server_select: Fix oops in last commit

net.server_select: Allow setting the logger using server.setlogger

s2smanager: Allow new_outgoing() to create sessions without automatically connecting them (set 3rd parameters to false)

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

s2smanager, hostmanager: Make dialback secrets per-host

s2smanager: Trim trailing whitespace

mod_saslauth: Oops.

Merge with Paul

mod_muc/muc.lib: Use stanza:get_child() to locate MUC child element

mod_saslauth: Use module:get_option()

mod_saslauth: Add sasl_backend config parameter

Merge with Rob

Added notification of configuration changes for MUCs

Add support for non-anonymous MUC rooms

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)

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

prosody.cfg.lua.dist: Remove trailing whitespace

util.events: Rename add_plugin() and remove_plugin() to add_handlers() and remove_handlers() respectively

util.signal: Update header comment for new filename

util.sasl_cyrus: Report an error if Cyrus SASL init fails.

util.sasl_cyrus: Removing whitespace.

util.sasl_cyrus: Automatically initialize Cyrus SASL with the first used service name.

util.sasl_cyrus: Change variable name.

util.sasl_cyrus: Fixing cyrus mechanism list parsing. (Thanks darkrain)

net.httpserver: Optimized response serialization.

mod_saslauth: Adjust sanitizing.

mod_saslauth: Sanitize debugging information so it won't break terminal emulation when using GSSAPI auth.

first working version with Cyrus SASL support.

added comment to remind us to fix binary output breaking the terminal

util.sasl_cyrus: Further fixing and cleanup.

util.sasl_cyrus: Initializing Cyrus SASL library and a bit cleanup.

util.sasl_cyrus: Log errors if CyrusSASL init fails.

mod_saslauth: Make service_name configurable for CyrusSASL users.

mod_saslauth: Add support for CyrusSASL.

Adding sasl_cyrus.lua. A sasl.lua drop-in replacement to use CyrusSASL for all c2s authentication.

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

net.dns: Update synchronous path for new connection API

util.prosodyctl: Saner determination of Prosody executable path

mod_pep: Added a TODO.

mod_pep: Handle service discovery queries for bare account JIDs (thanks darkrain).

mod_disco: Handle and fire events for service discovery queries for bare account JIDs (thanks darkrain).

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

Merge with backout branch

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

Backed out changeset 78c5cb163ea9, to fix another way. Haven't done this for a while :)

s2smanager: More whitespace

s2smanager: Mark stream as opened sooner, this prevents a duplicated stream header on host-unknown errors (thanks darkrain and his mail server)

s2smanager: Whitespace

net.server_event: Add properties like _ip and _port to server objects too

net.server_event: Add :serverport() method to be compatible with old API

mod_bosh: Update for new connection API

httpserver_listener: Update for new connection API

net.httpserver: Fix usage of old connection API syntax

xmppserver_listener: Make log messages during SRV retries clearer

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

net.server_event: Load ssl/socket libraries if not already available

util.timer: Use luaevent's built-in method of repeating an event (fixes a weird crash)

prosody: Fixed a possible nil concatenation.

prosody: Fix to net_activate_ports to mend binding to specific interfaces

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

prosody: Added config option 'ssl_ports' to allow multiplexed SSL ports.

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.

mod_httpserver: Delay setup until after server is started.

mod_bosh: Delay setup until after server is started.

prosody: Use the multiplex listener when the 'ports' config option is specified.

net_activate_ports: Use the default config option 'ports' when no option is specified.

multiplex_listener: Initial commit. Multiple protocols on a single port.

modulemanager: Fire item-removed events on module unload.

modulemanager: Fixed a global access.

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.

Merge with 0.6

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

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

mod_posix: Fix to not loop in SIGTERM either, but the same happens with SIGHUP (where the same 'fix' can't be applied) - shall investigate tomorrow

prosody: Report the current socket backend in use

net.server_event: Add get_backend() method

net.server_select: Add get_backend() method

mod_posix: Set empty SIGINT handler when a SIGINT is caught

prosody: Clarify and add some comments to describe what we're doing when and why

Rename closeallservers to closeall in the public API (same as net.server_select) and expose setquitting

net.server_event: Add setquitting() function to be compatible with net.server_select

net.server_event: Fix closeallservers() to work correctly after the giant refactorizification

net.server_event: Return "quitting" on loop exit to be compatible with net.server_select, and give Prosody a way to know why the loop broke

mod_posix: Catch SIGINT

Merge with trunk

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

mod_pep: Support item retrieval use cases

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

prosodyctl: Nicer errors when addplugin command fails

util.datamanager: Store data stores with no host in '_global' folder

util.pluginloader: Don't specify a host for the plugin data store (clever waqas...)

mod_compression: Tweak some log levels

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

prosody: Expose global_ssl_ctx through prosody object

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

mod_proxy65: Strip trailing whitespace

util-src/Makefile: Clean up makefile (re-commit because MattJ shouldn't commit anything at 3AM)

net.server_select, net.server_event: Convert to unix line endings from Windows

util-src/Makefile: Clean up makefile, rename lsignal.c to signal.c

configure: fix typo of 'yes' -> 'yet'

configure: Add 'linux' ostype and rename lflags to LDFLAGS to match expectations.

Redo merge with Waqas' PBKDF2 optimizations.

Merge with Waqas.

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

mod_proxy65: Don't read data from the connection untill the proxying is activated

mod_proxy65: Make the proxying bidirectional

mod_proxy65: Use a bigger buffer for data we're proxying

mod_proxy65: Only lock the reading side when throttling

net.server_select: Add a function to just lock a stream for reading

mod_proxy65: Throttle connections to prevent senders flooding the server's buffers if the receiver doesn't receive fast enough

mod_proxy65: Replace error() calls with module:log("error", ...)

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

net.server_event: Port fix in 2dc9bbf25447 to libevent-based backend

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

Merge with 0.6

util.dependencies: Fix package name of LuaFilesystem

Merge with Tobias

mod_console: Show compression status on s2s:show() output.

Merge with tip.

Merge with Tobias

modulemanager, net.dns: Remove trailing whitespace

prosodyctl: Experimental 'addplugin' command

mod_compression: Removing trailing whitespace.

mod_compression: Declaring the de-/compression pipes as local.

mod_compression: Some comment clean up.

Merge with tip.

mod_compression: Removing forgotten debugging output.

mod_compression: Define db (dialback) namespace in stream header.

Merge with tip.

mod_compression: Enabeling compression for outgoing s2s streams.

mod_compression: Some further refactoring.

mod_compression: Make setup_compression work for s2s sessions too.

mod_compression: Moving compression setup in a dedicated function.

mod_compression: Prepare activating of compression on s2s.

Merge with tip.

Enable one way stream compression on s2s links.

Fixing some typos.

util.pluginloader: Support for fetching plugins from the data store

net.httpserver: Fix to work with new server API

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

mod_proxy65: Remove trailing whitespace

mod_proxy65: Fix log:module -> module:log :)

Merge with trunk

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

util.hmac: Optimized.

util.sasl.scram: Optimized binaryXOR.

util.sasl.scram: Fixed a variable redeclaration.

modulemanager: Fire events module-loaded and module-unloaded, both receive a table with 'module' and 'host' fields, thanks bjc

util.sasl.scram: Making =2D and =3D substitution actually work.

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

util.sasl.plain: A little refactoring.

Merge with 0.6.

core.xmlhandlers: Fixed processing of empty namespaces (which caused an issue with jwchat).

mod_register: Properly notify contacts of subscription removal on account deletion.

mod_presence: Use the local host object as the origin for auto-generated subscription approvals and cancellations.

util.sasl.digest-md5: Fixing some variable access.

Merge with Tobias

xmppserver_listener: Update for new server API, fixes traceback when closing s2s connections

Make some more variables to locals.

util.sasl: Move some variables to local space. Fix a bug.

mod_console: Update for new server API, fixes traceback when closing console sessions

util.sasl.plain: Fail gracefully on empty <auth/> tag

mod_saslauth: Fix typo in variable name

net.server_select: Update conn.close() to use new connection method convention

mod_proxy65: Use new jid.join() from util.jid

tests/test.lua: Changes to environment handling of tests, and replace module() with dummy function that doesn't alter the current environment

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

tests/test.lua: Print the current test being run if verbosity sufficient

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

mod_proxy65: Update listener callback names for new server API

Merged with tip.

mod_saslauth: Allow relogins after failed SASL login.

util.sasl: Adding clean_clone() method.

net.server_event: Add addclient/wrapclient compatible with server_select, DNS and s2s should now work with libevent \o/

net.server_event: tostring() some debug logging parameters

net.server_event: Add set_send() for compatibility with server_select

net.server_event: Hide starttls function when the connection is not SSL-enabled

net.server_event: Count the number of client connections *upwards* :)

net.server_handler: Add stub handlers as fallbacks for those listeners don't implement

net.server_event: Fix to make ontimeout() listener callback work

net.server_select: Rename server.setsend() to server.set_send() for consistency

net.adns: Some cleanup, happens to also make it compatible with libevent

s2smanager: Allow configuration of the dialback_secret in the config

Merge with 0.6.

mod_presence: Use the local host as origin for subscription request acks.

mod_presence: Removed an unnecessary compatibility workaround which was causing issues with unavailable presence exchange after subscription removal.

mod_roster: Ask remote server to remove pending subscription requests when removing roster items.

Tagging 0.6.1

Tagging 0.6.0

Makefile: Fix to install new util/sasl directory

Merge with 0.6

util.serialization: Correctly serialize tables with 'false' as a key, fixes an issue with rosters not saving (thanks mathias, Tobias) 0.6.1

Merge with trunk

Merge with trunk.

MUC: Added support for the room-destroy owner use case.

MUC: Slightly refactored form processing.

Merge with 0.6

util.dataforms: Don't require type when parsing form XML

SASL: Using locally mapped s_gmatch instead of unavailable gmatch.

Merge with trunk

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).

Removed some legacy doc/ files.

Merge with Tobias's SASL redesign branch

Merge with trunk.

Reduce needed roundtrips during DIGEST-MD5 login.

Adding some human readable error messages.

Fail if username or password don't pass SASLprep.

Use new cofig option reading API.

Allow SASL PLAIN over unsecure connections when intended by admin.

Typo.

Handle , and = in usernames for SCRAM.

Provide SASL PLAIN mechanism only if TLS is active.

Cleaning up.

Tidying up.

Enable restriction of supported mechanisms in the SASL library.

SASLprep authentication and password in SASL PLAIN implementation.

SASLprep usernames and passwords.

Making interop with libpurple. (Thanks darkrain).

Add check for forbidden char sequences in validate_username().

Completed SCRAM-SHA-1 implementation to a ready-to-test state.

Added missing require for generate_uuid.

Initial commit of SCRAM SASL mechanism.

Merge with sasl branch.

Adding a note for possible round trip savings. sasl

Adding support for digest-md5 profile in DIGEST-MD5 implementation. sasl

Change of the digest-md5 profile. sasl

Broken DIGEST-MD5 client support again. sasl

Add support for plain profile in digest-md5 implementation. sasl

Getting PLAIN mechanism work with the new API. sasl

Move each mechanism in an own file. sasl

Fail if mechanism has already been selected. sasl

Store stage in SASL object. sasl

Importing SASL Digest-MD5 code. Now for real. sasl

Importing SASL Digest-MD5 code. sasl

List RFC numbers. sasl

Allow ampersands in passwords for SASL PLAIN mechanism. sasl

Making mod_saslauth use the new SASL API. sasl

Adjust SASL PLAIN mechanism to the new API. sasl

Adding some docu. sasl

Mostly making the code run; includes fixing typos and so on. sasl

Initial commit of the SASL redesign. sasl

Merge with 0.6

util.dependencies: Log an error if the current version of LuaSec installed contains The Bug (thanks Remko)

Merge with 0.6 on prosody.im 0.6.0

xmppclient_listener: Escape control characters when logging invalid XML.

Merge with 0.6

s2smanager: Log warning when trying to send a stanza from a host we don't serve, instead of a traceback (thanks stpeter)

Merge with trunk

net.server: Log an error when libevent is requested, but luaevent is unavailable, and don't load luaevent when not requested.

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

Merge with trunk

Merged with 0.6.

prosody: Added support for command line argument '--config'.

Merge with 0.6

util.datamanager: Replace popen(mkdir) with lfs.mkdir, keeping the just-in-time creation until we have the new datamanager API

util.dependencies: Missed a Debian/

util.dependencies: Clearer message, add homepages, etc.

util.dependencies: Add LuaFileSystem as a hard dependency

Merge with trunk

Merged with 0.6.

util.serialization: Replaced commas with semi-colons between table fields.

util.serialization: Concise output for empty tables.

Mainfile: Fixed some comments.

tests/modulemanager_option_conversion.lua: Add standalone test script for the new modulemanager config option API

modulemanager: New module API methods for getting config options with type conversion, get_option_string, get_option_number, get_option_boolean, get_option_array, get_option_set

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_console: Update for new net.server API

Merged with 0.6.

mod_presence: Route incoming presence subscription stanzas (types unsubscribe, subscribed and unsubscribed) to the user before roster pushes.

mod_presence: Acknowledge subscription requests by responding with an unavailable presence.

sessionmanager: Added function send_to_interested_resources().

sessionmanager: Fixed and cleaned function send_to_available_resources(). The 'to' attribute for presence subscription stanzas is now preserved.

loggingmanager: Explicitly flush log messages if the __FLUSH_LOG environment variable is defined (workaround for MSVCRT buffering piped output).

mod_proxy65: Update for new net.server API, untested

mod_proxy65: Import from prosody-modules, thanks Ephraim :)

net.server: Add some comments to explain to waqas how it all works :)

xmppcomponent_listener: Use new API for writing to components, fixes traceback (thanks Tobias)

s2smanager: Fix syntax error introduced in merge

Merge with trunk

stanza_router: Don't log full stanzas destined for s2s

objectmanager: Convert to unix line-endings

s2smanager: Don't log full stanza when sending outwards

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

net.server_select: Bring up to date to new common connection API

net.httpserver, net.http: Update for new net.server API (untested)

*_listener: Update for new net.server API, specifically .listener -> .onincoming, .disconnect -> .ondisconnect

net.adns: Update for new net.server API (doesn't work with libevent yet)

s2smanager: Update for new net.server API (s2s still doesn't work with libevent for other reasons)

net.server_event: Comment accidentally uncommented vdebug()

net.server_event: Handle and ignore 'wantread' error from receive(), treat as a timeout

net.server_event: Remove premature non-optimisation

net.server_event: Fix moved line caused by Mercurial's crecord and my selective commits

net.server_event: Obey nowriting/nointerface for locks in interface methods

net.server_event: Use conn property for send/receive instead of caching, fixes trying to use original socket after SSL-wrapping

net.server_event: Set startsslcallback property to nil when we're done handshaking, otherwise we keep trying to repeat the handshake

net.server_event: Add set_sslctx() method to connections

net.server_event: conn.usingssl -> conn._usingssl

net.server_event: Use correct listener callbacks

net.server_event: Small whitespace fixes

net.server_event: Correct a few instances of .sslctx to ._sslctx

net.server_event: Call connection's onconnect, no need to pass closures around now

net.server_event: Use connection id in all relevant logging

net.server_event: Define id property for connection objects, to aid logging

net.server_event: Define vdebug function for convenience

net.server_event: Change to new standard addserver() syntax

net.server_select: Change addserver() parameters to be compatible with new standard syntax

mod_tls: Switch to : syntax for connection methods

xmppclient_listener: Use : syntax for connection methods, to be compatible with new server.lua

xmppclient_listener: Switch to .onincoming listener method, to be compatible with new server_event.lua

net.server: Small fix for addtimer() compatibility code

net.connlisteners: Standardise on new syntax for addserver(), and clean up a bit

sessionmanager: Use : syntax for calling connection methods

mod_bosh: Don't log response XML

util.timer: Fix libevent timers (event.base doesn't exist...)

net.server_event: Export base as event_base

net.server_event: Comment overly verbose log message

util.timer: Use libevent for lightweight timers if available and configured (use_libevent option)

net.server: New net.server to choose the appropriate library from server_select/server_event based on the availability of luaevent and the use_libevent config option

net.server: Rename to net.server_select

net.server_event: Remove redundant getid() function

net.server_event: Initial commit of server_event.lua. Don't get too excited, it's not used at all yet, and is still incomplete :)

s2smanager: Fail outgoing s2s connection if hostname does not pass idna_to_ascii(), thanks Flo + waqas

s2smanager: Queue db:verify unless we already sent a db:result (if we had then it can could a dialback deadlock). Also remove some redundant code which could cause a db:result to be sent while still negotiating features (e.g. TLS) and break things. Collectively these fix a 'random' s2s failure (usually with ejabberd for some reason) - resulting in an 'unbound prefix' XML error, or 'ssl handshake failure'. Was this commit message long enough? I think so.

util.sasl: Add COMPAT comment

mod_console: Moved activation of the console port from the main file to mod_console.

prosody.net_activate_ports: Slightly refactored and definition moved to before modules are loaded.

mod_register: Log a debug message when a session's IP is not available.

mod_bosh: Set session.ip for BOSH sessions.

util.sasl: Added compatibility workaround for jwchat sending an encoded trailing '\0' in SASL responses.

net.dns: Be more strict about the records we cache

net.dns: Be more strict about checking the DNS replies we receive

util.sasl: Improved a log message.

util.sasl: Allow authzid=username (for compatibility with Smack's non-compliant behavior).

util.sasl: Return proper error when client provides authzid.

Changed separator between attribute names and prefixes from '|' to '\1' (optimization and cleanup).

net.connlisteners: Log an error when a listener fails to load.

componentmanager: Improved logging for stanzas being bounced for unavailable components.

mod_posix: Log warning when no_daemonize is used, and instruct on how to update config

mod_posix: Switch config option to 'daemonize', fall back to 'no_daemonize' if not set, default behaviour remains the same... daemonize if mod_posix is loaded

modulemanager: api:get_option(): Handle correctly option values of boolean false, don't assume value unset

Merge with trunk

net.dns: Fixed indentation and coding style.

util.dataforms: Support for jid-multi field type

net.dns: Initialize default resolver on module load (instead of on first use).

net.dns: Updated to use util.windows.get_nameservers for enumerating nameservers on Windows.

net.httpserver: Pass correct connection object to disconnect listener, which fixes a small leak

prosodyctl: Put 'pidfile' in quotes to make more clear that it is the literal name of the option

MUC: Include occupants' real JIDs in their presence (semi-anonymous rooms).

Makefile.win: Added support for util.windows, improved cleanup of temporary files, switched to dynamic linking with MSVCRT, etc.

util.windows: Initial commit. Adds support for querying the windows DNS API for nameservers.

util.dataforms: Only add value to rendered form if supplied in the data

util.pposix: Add abort() function

server.lua: Standardise on 'client' variable to refer to the socket, makes the code a bit cleaner

Merge with trunk

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

Prosody top-level error handler modified to log properly on non-string error messages.

mod_console: Added proper cleanup for disconnected console sessions.

MUC: Fixed: affiliation='none' was omitted from some presence broadcasts.

xmppserver_listener: Minor logging fix: Prefer the session logger when available to log invalid XML warnings.

MUC: Fixed an issue with multi-session nicks where the 'from' attribute in a presence broadcast was not being properly set.

server.lua: Add addsocket(), refactor all code to use it, fixes nasty socket object leak - moral of the story is to not duplicate code, and not prematurely optimise. But you knew that already didn't you?

rostermanager: Fixed a global access.

rostermanager: Refactored roster loading to remove duplicate code.

rostermanager: Log a warning when a self-contact is detected.

rostermanager: Ensure meta-data entry is present on roster load.

rostermanager: Remove self-contacts from loaded rosters.

PEP: Better reload support.

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

mercurial