summary refs log tree commit diff
path: root/synapse/handlers (follow)
Commit message (Expand)AuthorAgeFilesLines
* Need a defer.inlineCallbacks here as we yield in it: otherwise nothing in the...David Baker2015-01-271-0/+1
* Unbreak bad presence merge - don't add these blocks together with an and: the...David Baker2015-01-271-12/+14
* Merge branch 'develop' into pushersDavid Baker2015-01-224-12/+14
|\
| * Finish renaming "context" to "room_id" in federation codebaseMark Haines2015-01-162-8/+6
| * Remove temporary debug logging that was accidentally committedMark Haines2015-01-161-2/+0
| * Don't try to cancel already-expired timers - SYN-230Paul "LeoNerd" Evans2015-01-131-2/+8
* | Don't make the pushers' event streams cause people to appear onlineDavid Baker2015-01-151-21/+22
|/
* Use float rather than integer divisions to turn msec into sec - so timeouts u...Paul "LeoNerd" Evans2015-01-121-1/+1
* Make typing notification timeouts print a (debug) logging messagePaul "LeoNerd" Evans2015-01-121-1/+7
* Add raw query param for scrollback.Kegan Dougal2015-01-081-2/+5
* Return the raw federation event rather than adding extra keys for federation ...Kegan Dougal2015-01-082-4/+5
* Add missing continuation indent.Erik Johnston2015-01-081-1/+2
* Add 'raw' query parameter to expose the event graph and signatures to savvy c...Kegan Dougal2015-01-082-4/+9
* PEP8 and pyflakes warningsKegan Dougal2015-01-072-2/+4
* SYN-154: Tweak how the m.room.create check is done.Kegan Dougal2015-01-071-2/+11
* SYN-154: Better error messages when joining an unknown room by ID.Kegan Dougal2015-01-072-5/+7
* RoomsForUser now has sender instead of user_idErik Johnston2015-01-061-1/+1
* Merge branch 'erikj-perf' of github.com:matrix-org/synapse into developErik Johnston2015-01-061-5/+5
|\
| * We don't need the full events for get_rooms_for_user_where_membership_isErik Johnston2015-01-061-5/+5
* | Merge pull request #28 from matrix-org/erikj-perfMark Haines2015-01-061-8/+5
|\|
| * Add RoomMemberStore.get_users_in_room, so that we can get the list of joined ...Erik Johnston2015-01-061-8/+5
* | Update copyright noticesMark Haines2015-01-0613-13/+13
|/
* Rate limit display names and avatar urls per request rather than per event.Kegan Dougal2014-12-191-2/+4
* Set a state_key for the topic and room name, otherwise they won't be treated ...Mark Haines2014-12-191-0/+2
* bump_presence_active_time when sending a message eventMark Haines2014-12-191-0/+6
* Don't ratelimit room create eventsMark Haines2014-12-192-3/+4
* Set display name when joining via aliasMark Haines2014-12-191-0/+5
* s/user_id/sender/Mark Haines2014-12-191-1/+1
* Supply auth_chain along with current state in '/state/', fetch auth events fr...Mark Haines2014-12-181-23/+32
* Don't yield on sending the event accross federation.Mark Haines2014-12-181-2/+2
* Fix where we pulled in event.state_events from hotfixes branchErik Johnston2014-12-161-1/+1
* Merge branch 'hotfixes-v0.5.4a' of github.com:matrix-org/synapse into release...Erik Johnston2014-12-161-2/+6
|\
| * Add FIXMEErik Johnston2014-12-161-0/+1
| * Fix bug where we did not send the full auth chain to people that joined over ...Erik Johnston2014-12-161-2/+5
* | Make error messages slightly more helpfulErik Johnston2014-12-161-5/+5
* | Merge branch 'release-v0.6.0' into developMark Haines2014-12-161-0/+5
|\ \
| * | Enable rate limiting for all eventsErik Johnston2014-12-161-0/+5
* | | Remove send_message since nothing was calling it. Remove Snapshot because onl...Mark Haines2014-12-161-38/+0
* | | Construct the EventContext in the state handler rather than constructing one ...Mark Haines2014-12-162-19/+6
* | | clean up coding style a bitMark Haines2014-12-164-12/+8
|/ /
* | Kill off synapse.api.events.*Erik Johnston2014-12-164-30/+25
* | Add fixme to raising of AuthError in federation landErik Johnston2014-12-161-0/+1
* | User.is_mine is no longer a thing. Use hs.is_mine instead.Erik Johnston2014-12-151-1/+1
* | Rename MessageHandler.handle_event. Add a few comments.Erik Johnston2014-12-155-7/+24
* | Get current member state from current_state snapshot. Fix leave test.Erik Johnston2014-12-151-3/+3
* | Merge branch 'develop' of github.com:matrix-org/synapse into events_refactorErik Johnston2014-12-152-20/+112
|\ \
| * | Still send typing notifications to myself if I'm the only one in the room (it...Paul "LeoNerd" Evans2014-12-151-2/+1
| * | Send list of typing user IDs as 'user_ids' list within 'content', so that m.t...Paul "LeoNerd" Evans2014-12-121-1/+3
| * | When users leave rooms mark them as no longer typing in themPaul "LeoNerd" Evans2014-12-111-0/+8
| * | Add a 'user_left_room' distributor signal analogous to 'user_joined_room'Paul "LeoNerd" Evans2014-12-111-0/+7
| * | Actually auth-check to ensure people can only send typing notifications for r...Paul "LeoNerd" Evans2014-12-111-0/+4
| * | Add a sprinkling of logger.debug() into typing notification handlerPaul "LeoNerd" Evans2014-12-111-0/+8
| * | Initial hack at unit tests of room typing REST APIPaul "LeoNerd" Evans2014-12-111-0/+7
| * | Avoid cyclic dependency in handler setupPaul "LeoNerd" Evans2014-12-101-4/+10
| * | Hook up the event stream to typing notificationsPaul "LeoNerd" Evans2014-12-101-2/+22
| * | Store serial numbers per room for typing event stream purposesPaul "LeoNerd" Evans2014-12-101-13/+28
| * | First hack at implementing timeouts in typing notification handlerPaul "LeoNerd" Evans2014-12-101-3/+19
* | | Validate message, topic and name event contentsErik Johnston2014-12-121-1/+1
* | | Fix federation testErik Johnston2014-12-111-1/+1
* | | Fix public room joining by making sure replaces_state never points to itself.Erik Johnston2014-12-111-7/+7
* | | .from_string() no longer takes a HSErik Johnston2014-12-101-2/+2
* | | Remove dead codeErik Johnston2014-12-101-2/+0
* | | Add some basic event validationErik Johnston2014-12-101-2/+6
* | | Fix bug where we clobbered old state group valuesErik Johnston2014-12-101-0/+9
* | | Fix bug when uploading state with empty state_keyErik Johnston2014-12-102-76/+5
* | | Merge branch 'develop' of github.com:matrix-org/synapse into events_refactorErik Johnston2014-12-101-0/+7
|\| |
| * | fix a million stupid bugs and make it actually workMatthew Hodgson2014-12-081-1/+2
| * | actually reset retry schedule if we can successfuly talk to itMatthew Hodgson2014-12-081-0/+6
* | | Fix AttributeErrorErik Johnston2014-12-101-1/+1
* | | Make depth increase.Erik Johnston2014-12-101-1/+1
* | | Try and figure out how and why signatures are being changed.Erik Johnston2014-12-103-9/+53
* | | PEP8Erik Johnston2014-12-091-1/+1
* | | Fix joining from an inviteErik Johnston2014-12-093-16/+17
* | | Remove unused snapshotErik Johnston2014-12-091-2/+0
* | | Remove unused importErik Johnston2014-12-091-2/+1
* | | More bug fixesErik Johnston2014-12-082-19/+31
* | | More bug fixesErik Johnston2014-12-083-10/+13
* | | More bug fixesErik Johnston2014-12-082-3/+7
* | | Fix registrationErik Johnston2014-12-081-2/+4
* | | Various typos and bug fixes.Erik Johnston2014-12-082-62/+43
* | | Start making more things use EventContext rather than event.*Erik Johnston2014-12-052-99/+84
* | | Merge branch 'develop' of github.com:matrix-org/synapse into events_refactorErik Johnston2014-12-041-5/+7
|\| |
| * | @log_function on PresenceStream's get_new_events_for_user()Paul "LeoNerd" Evans2014-12-031-1/+3
| * | Store any incoming presence push in the local cache anyway, even if there's n...Paul "LeoNerd" Evans2014-12-031-4/+4
| |/
* | Convert rest and handlers to use new event structureErik Johnston2014-12-046-116/+111
* | Begin converting things to use the new Event structureErik Johnston2014-12-043-19/+56
* | WIP for new way of managing events.Erik Johnston2014-12-031-0/+51
* | Merge branch 'develop' of github.com:matrix-org/synapse into events_refactorErik Johnston2014-12-032-1/+10
|\|
| * Extra verbosity on logging of received presence infoPaul "LeoNerd" Evans2014-12-021-0/+5
| * Squash room_ids list to a set() to remove duplicates - with TODO marker as I ...Paul "LeoNerd" Evans2014-12-021-1/+5
* | Change DomainSpecificString so that it doesn't use a HomeServer objectErik Johnston2014-12-026-41/+44
|/
* Fix bugs when joining a remote room that has dodgy event graphs. This should ...Erik Johnston2014-11-271-28/+55
* on_receive_pdu takes more argsErik Johnston2014-11-271-3/+3
* Change the way we get missing auth and state eventsErik Johnston2014-11-271-16/+61
* Re-sign events when we return them via federation as a temporary hack to work...Erik Johnston2014-11-271-0/+11
* Attempt to fix bug where we 500d an event stream due to trying to cancel a ti...Erik Johnston2014-11-261-3/+9
* Add a workaround for bug where some initial join events don't reference creat...Erik Johnston2014-11-261-1/+7
* Catch exceptions when trying to add an entry to rooms tablesErik Johnston2014-11-261-6/+11
* Correctly handle the case where we get an event for an unknown room, which tu...Erik Johnston2014-11-261-28/+44
* Fix bugs in invite/join dances.Erik Johnston2014-11-253-54/+94
* We don't always want to Auth get_persisted_pduErik Johnston2014-11-241-7/+8
* Return 404 M_NOT_FOUND when trying to look up a room alias that doesn't existMark Haines2014-11-211-12/+24
* SYN-58: Allow passing explicit limit=0 to initialSync to request no messages ...Paul "LeoNerd" Evans2014-11-201-1/+1
* Fix pep8 and pyflakes warningsMark Haines2014-11-202-4/+10
* Merge branch 'develop' into http_client_refactorDavid Baker2014-11-209-48/+64
|\
| * Fix pep8 codestyle warningsMark Haines2014-11-204-9/+13
| * Add a few missing yields, Move deferred lists inside PreserveLoggingContext b...Mark Haines2014-11-208-40/+52
* | Separate out the matrix http client completely because just about all of its ...David Baker2014-11-202-10/+16
* | Oops, I removed this param.David Baker2014-11-201-2/+0
* | Refactor the HTTP clients a little.David Baker2014-11-202-5/+5
|/
* SYN-153: Fix formatting of federation error messageMark Haines2014-11-201-1/+1
* Don't add a 'prev' key to m.room.member messagesErik Johnston2014-11-192-4/+0
* Initialise UserPresenceCache instances to always contain a 'presence' keyPaul "LeoNerd" Evans2014-11-191-4/+2
* SYN-153: Raise 404 if room alias is not foundMark Haines2014-11-191-4/+8
* Preserve logging context in a few more places, drop the logging context after...Mark Haines2014-11-191-3/+5
* Remove unused variableMark Haines2014-11-181-1/+1
* Rename message handler's new snapshot_room to room_initial_sync() as that bet...Paul "LeoNerd" Evans2014-11-181-1/+1
* Merge remote-tracking branch 'origin/develop' into room-initial-syncPaul "LeoNerd" Evans2014-11-182-45/+42
|\
| * SYN-149: Enable auth for events added during room creation since they should ...Mark Haines2014-11-181-1/+1
| * SYN-149: Send join event immediately after the room create eventMark Haines2014-11-182-26/+26
| * Split out sending the room alias events from creating the alias so that we ca...Mark Haines2014-11-182-19/+16
* | Include room members' presence in room initialSyncPaul "LeoNerd" Evans2014-11-181-1/+22
* | Added ability to .get_state() from the PresenceHandler by returning a complet...Paul "LeoNerd" Evans2014-11-181-2/+15
* | Don't expect all _user_cachemap entries to definitely contain a "last_active"...Paul "LeoNerd" Evans2014-11-181-3/+3
* | Include 'messages' snapshot in room initialSyncPaul "LeoNerd" Evans2014-11-181-1/+20
* | Merge branch 'develop' into room-initial-syncPaul "LeoNerd" Evans2014-11-176-297/+579
|\|
| * SYN-148: Add the alias after creating the roomMark Haines2014-11-171-9/+9
| * These lines aren't doing anythingMark Haines2014-11-171-5/+0
| * Merge PDUs and Events into one objectMark Haines2014-11-141-43/+22
| * Fix PDU and event signaturesMark Haines2014-11-141-2/+3
| * Validate signatures on incoming eventsMark Haines2014-11-141-2/+35
| * Add a few more comments to the federation handlerErik Johnston2014-11-121-0/+32
| * Fix bugs with invites/joins across federatiom.Erik Johnston2014-11-122-11/+11
| * PEP8ifyErik Johnston2014-11-111-9/+12
| * Only allow people in a room to look up room state.Erik Johnston2014-11-111-34/+4
| * Rename annotate_state_groups to annotate_event_with_stateErik Johnston2014-11-112-8/+8
| * Fix bug where we /always/ created a new state groupErik Johnston2014-11-111-1/+2
| * Add an EventValidator. Fix bugs in auth ++ storageErik Johnston2014-11-101-4/+7
| * PEP8Erik Johnston2014-11-101-1/+4
| * Add auth to the various server-server APIsErik Johnston2014-11-101-2/+13
| * Fix backfill to work. Add auth to backfill requestErik Johnston2014-11-101-5/+5
| * Notify users about invites.Erik Johnston2014-11-101-1/+4
| * Use current state to get room hosts, rather than querying the databaseErik Johnston2014-11-072-7/+32
| * Add '/event_auth/' federation apiErik Johnston2014-11-071-0/+5
| * Implement invite part of invite join danceErik Johnston2014-11-073-21/+61
| * Return auth chain when handling send_joinErik Johnston2014-11-071-3/+12
| * Fix joining over federationErik Johnston2014-11-072-53/+2
| * Start implementing auth chainsErik Johnston2014-11-071-2/+57
| * Amalgamate all power levels.Erik Johnston2014-11-061-36/+16
| * Update to use replaces_state rather than prev_stateErik Johnston2014-11-061-2/+4
| * Implement new replace_state and changed prev_stateErik Johnston2014-11-065-32/+10
| * Fix auth checks to all use the given old_event_stateErik Johnston2014-11-052-8/+17
| * Fix room handler testsErik Johnston2014-11-041-1/+0
| * Don't bother lockingErik Johnston2014-11-041-6/+5
| * On AuthError, raise a FederationErrorErik Johnston2014-11-041-1/+9
| * Remove unused importsErik Johnston2014-11-041-4/+2
| * Rename PDU fields to match that of events.Erik Johnston2014-11-031-7/+5
| * Sign events we create.Erik Johnston2014-11-031-0/+9
| * Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho...Erik Johnston2014-11-031-2/+1
| |\
| * | Actually don't store any PDUsErik Johnston2014-10-311-0/+22
| * | Move the impl of backfill to use events.Erik Johnston2014-10-311-1/+26
| * | Convert event ids to be of the form :example.comErik Johnston2014-10-301-2/+5
| * | Make federation return the old current state, so that we can use it to do authErik Johnston2014-10-301-5/+23
| * | Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho...Erik Johnston2014-10-306-79/+53
| |\ \
| * | | Start filling out and using new events tablesErik Johnston2014-10-292-39/+55
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho...Erik Johnston2014-10-272-14/+5
| |\ \ \
| * | | | It doesn't want a dictErik Johnston2014-10-171-2/+0
| * | | | Fix bug where people could join private roomsErik Johnston2014-10-171-2/+8
| * | | | Use state groups to get current state. Make join dance actually work.Erik Johnston2014-10-172-24/+56
| * | | | Finish implementing the new join dance.Erik Johnston2014-10-171-97/+84
| * | | | Start implementing the invite/join dance. Continue moving auth to use event.s...Erik Johnston2014-10-161-8/+75
| * | | | Begin making auth use event.old_state_eventsErik Johnston2014-10-156-27/+36
* | | | | Include room membership in room initialSyncPaul "LeoNerd" Evans2014-11-101-1/+7
* | | | | Put room state in room initialSync output - I guess this is right; I really c...Paul "LeoNerd" Evans2014-11-101-2/+5
* | | | | Have room initialSync return the room's room_idPaul "LeoNerd" Evans2014-11-101-0/+11
| |_|_|/ |/| | |
* | | | Use python logger, not the twisted loggerErik Johnston2014-11-031-2/+1
| |_|/ |/| |
* | | Fix pep8 warningsMark Haines2014-10-304-31/+33
* | | Fix an off-by-one bug in presence event stream pagination; this might be resp...Paul "LeoNerd" Evans2014-10-291-1/+1
* | | Construct a source-specific 'SourcePaginationConfig' to pass into get_paginat...Paul "LeoNerd" Evans2014-10-294-39/+19
* | | Remove redundant (and incorrect) presence pagination fetching codePaul "LeoNerd" Evans2014-10-291-3/+0
* | | Remove duplicate join_event from create_roomMark Haines2014-10-271-5/+0
| |/ |/|
* | Add get_json method to 3pid http client. Better logging for errors in 3pid re...Mark Haines2014-10-201-1/+2
* | SPEC-7: Don't stamp event contents with 'hsob_ts'Mark Haines2014-10-171-13/+3
|/
* Fix pyflakes errorsMark Haines2014-10-021-1/+1
* Add a keyword argument to get_json to avoid retrying on DNS failures. Rather ...Mark Haines2014-10-021-3/+2
* Split PlainHttpClient into separate clients for talking to Identity servers a...Mark Haines2014-10-023-8/+13
* SYN-2: Allow server admins to delete room aliasesErik Johnston2014-09-301-16/+29
* SYN-48: Implement WHOIS rest servletErik Johnston2014-09-292-0/+64
* Merge branch 'deletions' of github.com:matrix-org/synapse into developErik Johnston2014-09-251-0/+1
|\
| * Rename deletions to redactionsErik Johnston2014-09-241-1/+1
| * SYN-12: Implement auth for deletion by adding a 'delete_level' on the ops lev...Erik Johnston2014-09-231-0/+1
* | SYN-46: An invite received from fedearation didn't wake up the event stream f...Erik Johnston2014-09-251-1/+9
* | Don't set the room name to be the room alias on room creation if the client d...Erik Johnston2014-09-241-11/+0
* | Implemented /rooms/$roomid/state API.Kegan Dougal2014-09-231-0/+16
|/
* SYWEB-3 : Added 'visibility' key to rooms returned via /initialSyncKegan Dougal2014-09-171-0/+5
* SYN-40: When a user updates their displayname or avatar update all their join...Erik Johnston2014-09-171-3/+43
* Added support for the HS to send emails. Use it to send password resets. Adde...Kegan Dougal2014-09-161-0/+14
* Added PasswordResetRestServlet. Hit the IS to confirm the email/user. Need to...Kegan Dougal2014-09-161-1/+28
* Correctly handle receiving 'missing' Pdus from federation, rather than just d...Erik Johnston2014-09-151-7/+5
* Improve logging in federation handler.Erik Johnston2014-09-151-1/+3
* Merge branch 'develop' of github.com:matrix-org/synapse into registration-api...Kegan Dougal2014-09-153-10/+8
|\
| * Correctly handle the 'age' key in events and pdusErik Johnston2014-09-153-10/+8
* | Split out password/captcha/email logic.Kegan Dougal2014-09-151-56/+64
|/
* Added num_joined_users key to /publicRooms for each room. Show this informati...Kegan Dougal2014-09-081-0/+6
* Fix race in presence handler where we evicted things from cache while handlin...Erik Johnston2014-09-081-2/+3
* Added captcha support on both the HS and web client.Kegan Dougal2014-09-051-6/+62
|\
| * Reload captchas when they fail. Cleanup on success.Kegan Dougal2014-09-051-2/+2
| * 80 chars pleaseKegan Dougal2014-09-051-9/+19
| * Add config opion for XFF headers when performing ReCaptcha auth.Kegan Dougal2014-09-051-0/+1
| * Captchas now work on registration. Missing x-forwarded-for config arg support...Kegan Dougal2014-09-051-2/+47
* | Add support for inviting people when you create a roomErik Johnston2014-09-061-0/+26
* | Generate m.room.aliases event when the HS creates a room aliasErik Johnston2014-09-054-15/+42
|/
* Change the default power levels to be 0, 50 and 100Erik Johnston2014-09-051-8/+8
* Error code must be an integerErik Johnston2014-09-031-1/+1
* Import SynapseErrorErik Johnston2014-09-031-0/+1
* Handle timeouts slightly nicer.Erik Johnston2014-09-031-1/+5
* Don't do auth for change_membership in federation handler, it doesn't work an...Erik Johnston2014-09-031-2/+3
* When creating a room and a user supplies a room_alias but no name, use the ro...Erik Johnston2014-09-031-0/+11
* Merge branch 'develop' of github.com:matrix-org/synapse into developDavid Baker2014-09-0312-60/+108
|\
| * fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org has...Matthew Hodgson2014-09-0312-12/+12
| * Fix up directory server to not require uploading room hosts. Update the room ...Erik Johnston2014-09-031-1/+10
| * Snapshot prev_state for generic eventsErik Johnston2014-09-031-1/+6
| * Kill the statePaul "LeoNerd" Evans2014-09-031-26/+5
| * Bugfix for back-pagination of presencePaul "LeoNerd" Evans2014-09-031-0/+2
| * Make retrying requests on DNS failures configurable, and turn off retrying on...Kegan Dougal2014-09-031-1/+5
| * Implement presence state visibilty limiting when polling eventsource for streamPaul "LeoNerd" Evans2014-09-031-9/+57
| * Update API docs to use 'presence' key not 'state'. Fixed error messages when ...Kegan Dougal2014-09-031-1/+1
| * Fixed GET /events/$id to be not broken.Kegan Dougal2014-09-031-1/+3
| * Rename the 'do_users_share_a_room' to something slightly less verb-soundingPaul "LeoNerd" Evans2014-09-031-1/+1
| * Neater is_presence_visible() codePaul "LeoNerd" Evans2014-09-031-9/+8
* | Add support for registering with a threepid to the HS (get credentials from t...David Baker2014-09-031-3/+59
|/
* Add copyright notices and fix pyflakes errorsMark Haines2014-09-031-2/+0
* Set status message for ratelimit error responsesMark Haines2014-09-031-1/+1
* Merge branch 'ratelimiting' into developMark Haines2014-09-033-0/+18
|\
| * Raise LimitExceedError when the ratelimiting is throttling requestsMark Haines2014-09-031-4/+2
| * rate limiting for message sendingMark Haines2014-09-023-2/+5
| * Add ratelimiting function to basehandlerMark Haines2014-09-021-0/+17
* | Safer handling of incoming presence EDUs that may or maynot contain 'presence...Paul "LeoNerd" Evans2014-09-021-3/+13
* | 'continue' to go to the next item in a for loop, not 'break'Paul "LeoNerd" Evans2014-09-021-1/+1
* | By default, only room ops can change the name and topic.Erik Johnston2014-09-021-0/+2
|/
* Add message to assertionErik Johnston2014-09-021-1/+1
* Add support for setting room name and topic when creating roomsErik Johnston2014-09-021-4/+29
* Reënable presence visibility permission checking now it's not used on redund...Paul "LeoNerd" Evans2014-09-011-4/+0
* No need to test is_presence_visible in _start_polling_local because we know i...Paul "LeoNerd" Evans2014-09-011-4/+0
* Don't set a 'default' key in the creation eventErik Johnston2014-09-011-1/+0
* Don't put required power levels on permission state eventsErik Johnston2014-09-011-2/+4
* Add all the necessary checks to make banning work.Erik Johnston2014-09-011-1/+11
* Merge branch 'develop' of github.com:matrix-org/synapse into room_configErik Johnston2014-09-012-33/+93
|\
| * Bump a user's presence last_active time every time they send a message to a roomPaul "LeoNerd" Evans2014-09-012-0/+10
| * Perform room unit tests with 'local' users actually in the right domain ;)Paul "LeoNerd" Evans2014-09-011-0/+4