xmppcomponent_listener: Remove useless require of lxp default tip

util.xmllex: Decode XML entities

util.xmllex, util.xmppstream: It runs

mod_dialback: Use stanza:get_text() instead of directly accessing [1]

util.stanza: Ignore false xmlns

util.stanza: Fixes for xmllex-generated stanza objects

stanza_router: Replace xmlns == nil checks with 'not xmlns'

mod_saslauth: Use get_text() instead of directly accessing stanza child text nodes

mod_presence: Use get_text() instead of table.concat

util.xmppstream, util.xmllex: Basic test passes

Merge

Adding test for xmppstream

All correcthg diff util/xmppstream.lua

Tree structure now similar to prosody stanza format

util.xmllex: Add

util.xmppstream: Prepare for using xmllex

mod_pubsub: Correctly wrap the list of subscriptions in a pubsub element

util.xmppstream: Optimized stanza building by bypassing the stanza API.

util.sasl: Cache the calculated mechanisms set for SASL profiles (profile.mechanisms table).

prosody: Don't add a datamanager callback when anonymous_login=true (mod_auth_anonymous does this now).

hostmanager: Don't set host.disallow_s2s when anonymous_login=true (mod_auth_anonymous does this now).

mod_saslauth: Remove special handling for SASL ANONYMOUS, and let mod_auth_anonymous handle it.

usermanager: Assume authentication="anonymous" when anonymous_login=true.

util.sasl.*, mod_auth_*, mod_saslauth: Pass SASL handler as first parameter to SASL profile callbacks.

mod_storage_sql: Use util.json instead of util.serialization.

util.json: Initial commit.

mod_storage_sql: Log an error on query failure.

mod_storage_sql: Remove the subkey column from the Prosody table, and make the map store compatible with the key-value store.

mod_storage_sql: Dynamically replace backquotes with double quotes when connecting to PostgreSQL...

mod_storage_sql: Call commit() after all SQL statements, including SELECT, to get SQLite to drop its locks.

mod_storage_sql: Quote identifiers in SQL with backquotes, and use the empty string for NULL, and '=' instead of 'IS' for comparison, to work with MySQL's limitations...

Don't check priority in mod_offline

mod_message, mod_offline: Change message/offline/store -> message/offline/handle

mod_offline: Make sure mod_offline's store handler reports success vs failure.

mod_message: Send service-unavailable if offline storage fails.

mod_presence, mod_offline: Merge message/offline/delete with message/offline/broadcast.

core.offlinemanager, mod_message, mod_presence: Removed core.offlinemanager in favor of mod_offline.

modulemanager: Auto-load mod_offline.

util.pposix: Remove extraneous semicolon

util.encodings: Switch comment styles to build ok as ANSI C

util-src/Makefile: Change parameter order so that LDFLAGS always comes later than the input files

util-src/Makefile: Clean up and remove unnecessary all linking

configure: Don't add -llua to LDFLAGS, it's unnecessary

mod_saslauth: Handle session bind requests to the host, fixes OneTeam login

s2smanager: Destroy session on immediate failure of a connection attempt (e.g. inability to create sockets)

s2smanager: Handle DNS lookup error in response handler

s2smanager: send_to_host(): Handle already-destroyed session and bounce stanza accordingly

s2smanager: new_outgoing(): Destroy session if first connection attempt fails immediately (e.g. can't create sockets)

net.adns: Handle dns.query() failures, and pass error to handler

net.dns: resolver:query(): Handle getsocket() failures, and return true on success

net.dns: resolver:getsocket(): Return nil, err on failure

s2smanager: Give all new outgoing s2s sessions a close method by default (destroy_session)

s2smanager: Add a missing semi-colon

s2smanager: destroy_session(): Pass reason to retire_session() and return true on successful destruction

s2smanager: retire_session(): Add a 'reason' parameter

mod_pubsub: Include node in disco#items reply

s2smanager: session.send(): Return the result of send_to_host() (and incidentally make this a tail call \o/)

s2smanager: send_to_host(): Return false on failure, and true otherwise

mod_pubsub: Fix missing disco#items xmlns

util.pubsub: Return correct node in get_subscriptions()

mod_pubsub: Implement disco#info for nodes

util.filters: Add remove_filter_hook()

util.pubsub: Use correct node name when returning a list of multiple nodes in a subscriptions response

mod_pubsub: Implement get_subscriptions

mod_pubsub: Add get_subscriptions and get_subscriptions_other capabilities to default affiliations

mod_pubsub: Add add_subscription and get_subscriptions to feature_map

util.pubsub: Add service-wide subscription tracking, and add :get_subscriptions()

util.pubsub: Small code tidying for :get_subscription()

util.pubsub: Fix traceback when using autocreate-on-subscribe

mod_pubsub: Set normalize_jid instead of jids_equal

util.pubsub: Add service:jids_equal() and new config option normalize_jid

mod_pubsub: Fix a missing :up() from the last commit

mod_pubsub: Handle disco#items on nodes

util.pubsub: get_items(): When requesting a specific item, use the id as a key to mirror the multiple-item case

prosody: Catch a recursive Include error and print a more friendly error

configmanager: Filenames without a path are also relative to the config file path, not the current working directory

util.pubsub: Add service:set_node_capabilities()

util.xmppstream: Allow stream_ns = "" for parsing streams with no xmlns

Merge with 0.8

prosody.cfg.lua.dist: Add note about external gateways

prosody.cfg.lua.dist: Update for new logging config format

configmanager: Support for wildcards in Include directives

prosody, prosodyctl, util.dependencies: Split checking and logging of dependencies so we can check hard deps before the config and logging is loaded

util.httpstream: For HTTP client responses, changing properties responseversion and responseheaders to httpversion and httpheaders, to match HTTP server requests.

util.httpstream: A little cleanup of the HTTP path.

mod_pubsub: Use bare JID in get_affiliation

mod_pubsub: Skip false features in feature_map

util.pubsub: Fix nil global access in get_nodes()

mod_pubsub: Return disco#info stanza from build_disco_info()

mod_pubsub: Iterate over disco features in correct table

mod_pubsub: Build disco#info based on the methods provided by the pubsub service object. Add public set_service() method to change the service object used by the module.

mod_pubsub: Fix capabilities table from some debugging

mod_pubsub: Make the pubsub host an admin too

mod_pubsub: Update for latest util.pubsub and fix some bugs. New config options autocreate_on_publish, autocreate_on_subscribe and default_admin_affiliation.

util.pubsub: Too many changes to list or split sensibly. Added access control to all methods, with capabilities support. Renamed get() -> get_items() and changed it to return true, result on success. Support for autocreate_on_subscribe and autocreate_on_publish config options.

util.pubsub: Modify new() to take a config, and add a default config via a metatable

mod_pubsub: Add 'forbidden' error support

prosody.cfg.lua.dist: Add note about external gateways

prosody.cfg.lua.dist: Update for new logging config format

configmanager: Support for wildcards in Include directives

prosody, prosodyctl, util.dependencies: Split checking and logging of dependencies so we can check hard deps before the config and logging is loaded

util.httpstream: For HTTP client responses, changing properties responseversion and responseheaders to httpversion and httpheaders, to match HTTP server requests.

util.httpstream: A little cleanup of the HTTP path.

Merge with 0.8

mod_pubsub, util.pubsub: Remove from 0.8

Merge 0.8->trunk (uh-oh)

configmanager: Switch back to returning 'ok' to signal config load success - fixes config errors not being displayed

util.events: Remove an event's table when it has no more handlers.

mod_admin_adhoc: Support unloading multiple modules

mod_admin_adhoc: Support for reloading multiple modules

net/server_select.lua: Reduce select() timeout back to 1s

storagemanager: Don't always show fallback warning when using per-store config

prosodyctl: Add dummy lock/unlock_globals() until util.startup comes along

mod_storage_sql: Fix a couple of bugs in "JSON" decoding

util.prosodyctl: Initialize storagemanager on hosts we modify

storagemanager: Log warning when loading the storage provider plugin fails

util-src/Makefile, util-src/encodings.c{,pp}: Port ICU code to C, rename encodings.cpp back to .c and amend the Makefile accordingly

usermanager: Fixed a possible traceback when is_admin() was used on a component.

prosody.cfg.lua.dist: Update to reflect new mod_admin_* modules

util.stanza: Iterate on childtags instead of all childs.

Make libidn default when not specifiying a IDN lib.

Fix lua lib name in LDFLAGS.

util.encodings: Support for ICU for IDNA operations.

mod_pubsub: Preserve service object on module reload

mod_pubsub: Handle disco#info and disco#items

util.pubsub: Add service:get_nodes()

modulemanager, mod_console: Rename mod_console -> mod_admin_telnet - add compatibility code to modulemanager for existing configs

net.httpserver: Default 'ports' = {5280}

net.xmppclient_listener: Imports and global cleanup.

net.xmppserver_listener: Removed unnecessary import of lxp.

net.xmppserver_listener: Removed unused variables and imports.

net.xmppserver_listener: Made some globals local.

net.xmppcomponent_listener: Move session creation from listener.onincoming to listener.onconnect.

net.xmppcomponent_listener: Made some globals local.

core.loggingmanager: Updated to use termcolours.getstyle instead of termcolours.getstring for console logging.

util.termcolours: Added setstyle(str), which works on Windows too.

util-src/windows.c: Added get_consolecolor, set_consolecolor.

net.dns: Clean up tostring() of returned records, as a result PTR records can now be tostring()'d

net.dns: Add resolver:tohostname() and dns.tohostname()

util.serialization: Proper serialization of Infinity, -Infinity and NaN.

mod_storage_sql: Use 'IS' for comparison instead of '=', to avoid SQL's NULL insanity.

mod_storage_sql: Fixed the deserialization of string-typed values.

prosodyctl: Added and updated some comments and some semicolons, to match main prosody executable.

prosodyctl: Read PROSODY_SRCDIR and PROSODY_PLUGINDIR environment variables, to match main prosody executable.

prosody: Added a comment, to match prosodyctl.

prosodyctl: Added support for --config command line argument, and multiple config parsers (to match the main prosody executable).

mod_pep: Fixed a traceback when non-local users send presence.

mod_pep: Handle the case where local contacts send directed presence with caps hash.

util.serialization: Implemented deserialize().

storagemanager: When we have a cached data driver, we are supposed to use it.

mod_storage_sql: Auto-initialize SQLite3 database.

mod_storage_sql: Default value for option sql = { driver = "SQLite3", database = "prosody.sqlite" }.

mod_storage_sql: Fixed a typo.

mod_storage_sql: Initial commit of new SQL data driver.

storagemanager: Hook "host-activated", to make sure we are notified about data drivers.

storagemanager: Fixed a nil global access.

util.stanza: Change get_error() to return nil rather than '' for no text

mod_bosh: Fixes to the session creation response - add mandatory 'wait' attribute, remove optional 'maxpause' which we don't support, and reformat the code to prevent long lines and wacky indentation. Fixes #219.

prosodyctl: Make the 'restart' command start Prosody even if it wasn't already running

util.datamanager: Return an error string when pcall fails on a loaded list file.

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

usermanager: Removed redundant import of util.datamanager and util.hashes.

util.ztact: Removed.

net.dns: Removed dependency on util.ztact by moving ztact.get/set in.

mod_console: Removed redundant code for host:activate() and host:deactivate(), now that hostmanager has error checking.

hostmanager: Improved error handling.

hostmanager: deactivate() now returns true on success.

hostmanager: activate() now gets the host config from configmanager when a config isn't given.

certs/Makefile: Remove -c flag to chmod, which appears to be a GNUism (thanks Kev)

prosody: Don't attempt to load core.xmlhandlers in the main file. It no longer exists.

xmlhandlers: DELETED.

util.prosodyctl: Prep JIDs before checking whether they exist (thanks tja)

tools/xep227toprosody.lua: Rename ns_xep227 to xmlns_xep227 for consistency with main Prosody code

tools/xep227toprosody.lua: Convert to use util.xmppstream

util.xmppstream: Expose ns_separator and ns_pattern

mod_bosh: Switch to util.xmppstream from xmlhandlers

xmppcomponent_listener: Switch to util.xmppstream from xmlhandlers

prosody: Added a stub implementation of core.componentmanager to the package.loaded table (re-commiting, as this was accidentally removed).

certs/openssl.cnf: Change countryName from UK to GB

certs/Makefile: Add .PRECIOUS to stop make deleting the key as an intermediate file (thanks deryni/Zash)

certs: Add a default OpenSSL configuration file, and a Makefile.

mod_pubsub: Ensure <item> is in correct scope when broadcasting an event

mod_pubsub: Support item retraction

mod_pubsub, util.pubsub: Support for unsubscribing

mod_pubsub: Use pubsub_error_reply everywhere

util.xmppstream: Fix logger name.

mod_disco: Don't add caps hash to stream features on unauthenticated connections.

mod_proxy65: Add service discovery identity and feature, to help out mod_disco when loaded on a normal host.

mod_proxy65: Cleaned up stanza processing a little.

mod_proxy65: s:len() -> #s.

mod_proxy65: Make some globals local.

mod_proxy65: :sub(n):byte() -> :byte(n).

mod_proxy65: Allow loading on normal hosts.

mod_proxy65: Updated to use sub-events. Now only hooks what it needs to.

net.server_select: Set select() timeout to 3600 by default.

net.server_select: Made another global local.

net.server_select: Made some globals local.

mod_bosh: Use util.timer for timers instead of server.addtimer.

util.timer: Activate higher timer precision.

net.server_select: Make changes required for sub-second timer precision.

fallbacks/lxp.lua: Pure Lua pseudo-XML parser. Implements the same API as LuaExpat.

mod_iq: Fix an extra character in previous commit...

mod_iq: Don't hook 'iq/full' on components.

modulemanager: Allow components to inherit mod_iq. This allows modules loaded on components to hook IQ stanza sub-events ("iq-set/bare/xmlns:tag", etc).

mod_proxy65: Give the 'iq/host' stanza handler a negative priority, to allow mod_iq to process the events first.

MUC: Give stanza handlers a negative priority, to allow mod_iq to process them first.

mod_component: Give stanza handlers a negative priority, to allow mod_iq to process them first.

mod_iq: Don't stop event dispatch for unhandled IQ errors and results (this lets negative priority handlers intercept the events).

mod_pubsub, util.pubsub: Support node creation

mod_pep: Remove PEP subscriptions on getting a presence unsubscribe.

mod_pep: Fixed regression where PEP messages were not correctly being broadcasted on caps hash change.

mod_pep: Fixed a nil access (thanks Zash).

mod_disco: Fixed: Service discovery features were not being removed on module unload (issue #205).

mod_pep: Optimised PEP requests for disco info on caps change (issue #150).

storagemanager: Only show fallback warning if storage was configured to use another backend and it failed

storagemanager: Return driver from load_driver() if successful

mod_iq: Optimized a bit more (fewer table accesses).

mod_iq: Optimized a bit (fewer table accesses).

mod_iq: Extra IQ get and set sub-events are now fired: "iq-{get,set}/{host,self,bare}/xmlns:tag" (when "iq/{host,self,bare}/xmlns:tag" is unhandled).

storagemanager: Import type()

storagemanager: Import util.multitable again

storagemanager: Fix syntax error

mod_pep: Updated disco#info result handler to use new event name format.

mod_iq: IQ error and result sub-events are now "iq-{error,result}/{host,self,bare}/id" (previously "iq/{host,self,bare}/id").

configmanager: Switch back to returning 'ok' to signal config load success - fixes config errors not being displayed

Merge with Florob

util.events: Remove an event's table when it has no more handlers.

mod_admin_adhoc: Support unloading multiple modules

mod_admin_adhoc: Support for reloading multiple modules

net/server_select.lua: Reduce select() timeout back to 1s

storagemanager: Don't always show fallback warning when using per-store config

prosodyctl: Add dummy lock/unlock_globals() until util.startup comes along

mod_storage_sql: Fix a couple of bugs in "JSON" decoding

util.prosodyctl: Initialize storagemanager on hosts we modify

storagemanager: Log warning when loading the storage provider plugin fails

util-src/Makefile, util-src/encodings.c{,pp}: Port ICU code to C, rename encodings.cpp back to .c and amend the Makefile accordingly

usermanager: Fixed a possible traceback when is_admin() was used on a component.

prosody.cfg.lua.dist: Update to reflect new mod_admin_* modules

util.stanza: Iterate on childtags instead of all childs.

Merge Tobias->trunk

(0) -3000 -1000 -240 tip

mercurial