Holger Weiss
b971449f12
mod_http_upload: Expand 'docroot' before using it
...
Expand the @HOME@ keyword within the 'docroot' value before setting the
permissions of the document root directory.
2016-02-20 18:21:38 +01:00
Holger Weiss
5b4aefbacd
Accept stream compression request after SASL
...
This is an updated version of the patch submitted to EJAB-1382 by
Alexey (thanks!).
2016-02-19 18:53:28 +01:00
Evgeniy Khramtsov
4b0860e7de
Make it possible to define 'sm_db_type' per virtual host
2016-02-19 16:38:43 +03:00
Badlop
eece6e69cb
Fix format_result so get_room_options command works again after aa5caa3
2016-02-17 20:43:35 +01:00
badlop
c9c59f00ad
Merge pull request #953 from cdroege/fix_css
...
Fix the color of links in tables in web admin
2016-02-15 12:52:54 +01:00
Paweł Chmielowski
47a67c7320
Allow to pass \n in argument to ejabberdctl
2016-02-12 23:38:39 +01:00
Christian Dröge
c579313821
Fix the color of links in tables in web admin
2016-02-12 18:45:45 +01:00
Holger Weiss
eaaab45c14
mod_muc_room: Let members see admin/owner JIDs
...
Let members retrieve all affiliation lists in non-anonymous rooms, not
just the list of members.
2016-02-11 22:52:27 +01:00
Holger Weiss
041e886b87
mod_muc_room: Don't expose JIDs in anonymous rooms
...
Don't let room members retrieve the member list unless the room is
non-anonymous.
2016-02-11 22:24:14 +01:00
Holger Weiss
17be70339c
mod_mam: Send new preferences when they are set
...
If a client updates the archiving preferences, include the new
preferences with the IQ result (as mandated by XEP-0313).
2016-02-10 23:06:31 +01:00
Badlop
02a519a11e
Mention new XEP support
2016-02-08 21:35:46 +01:00
Badlop
1de085ec23
Prepare room JID in create_room command
2016-02-08 21:35:26 +01:00
Paweł Chmielowski
217b6da5fd
Fix example value for rescode return type
2016-02-09 16:44:57 +01:00
Paweł Chmielowski
d5b3e6af00
More documentation of arguments in mod_admin_extra
2016-02-09 16:33:32 +01:00
Evgeniy Khramtsov
4839ba5ae4
XEP-0013: Flexible Offline Message Retrieval support
2016-02-09 17:59:54 +03:00
Paweł Chmielowski
2bca8d5121
Remove remanants of pre-binary strings
2016-02-09 15:50:35 +01:00
Christophe Romain
583476380a
Use muc_online_room record for pattern matching
2016-02-09 15:33:00 +01:00
Paweł Chmielowski
c0da9b43ce
Better presentation of result description in docs
2016-02-09 13:18:01 +01:00
Paweł Chmielowski
30d171e79e
Start documenting arguments in mod_admin_extra commands
2016-02-09 13:03:40 +01:00
Paweł Chmielowski
d36c351fc7
Typo in markdown generator
2016-02-09 13:03:40 +01:00
Holger Weiss
10ed4a1c85
Add most status codes only to initial MUC presence
2016-02-08 20:10:20 +01:00
Badlop
04a315eb52
Fix section links to the Guide in the WebAdmin
2016-02-08 16:16:53 +01:00
badlop
cf2f80bd09
Merge pull request #944 from cdroege/configureable_host-mod_register_web
...
Allow to modify host when deleting account or changing password over web
2016-02-08 13:48:11 +01:00
Evgeny Khramtsov
2bfb619d19
Merge pull request #914 from weiss/mam-expose-jid
...
Expose occupant JID in MUC MAM messages whenever possible
2016-02-08 14:23:19 +03:00
Mickael Remond
0b1620a45c
Remove compile warnings
2016-02-08 10:50:28 +01:00
Holger Weiss
bf49c292f8
Omit redundant check for overcrowded MUC room
...
The send_update_presence/4 function already checked whether the room is
overcrowded before calling send_update_presence1/4, so there's no need
to have send_new_presence/4 perform the same check.
2016-02-08 00:46:33 +01:00
Holger Weiss
8098f7d9a8
mod_mam: Don't let outcasts access MUC archive
...
XEP-0313 says: "A MUC archive MUST check that the user requesting the
archive has the right to enter it at the time of the query [...]. In
the case of open MUC rooms, the MUC archives can generally be accessed
by any users [...] who do not have an affiliation of 'outcast'".
2016-02-08 00:16:02 +01:00
Holger Weiss
a31f59ea31
XEP-0198: Fix session timeout corner case
...
If the "resend_on_timeout" option is set to 'if_offline' and a pending
stream management session is terminated because a new session is opened
by the same resource (while no other resource is online), resend
unacknowledged messages rather than bouncing error messages.
2016-02-06 22:28:55 +01:00
Badlop
7435ee464f
Rename option to regexp_room_id for consistency with other options ( #905 )
2016-02-05 12:09:27 +01:00
HAMANO Tsukasa
268f0b30ec
add room_id_regexp option
2016-02-05 12:09:18 +01:00
Christian Dröge
30388fa2bf
Allow to modify host when deleting account or changing password over web
2016-02-04 21:31:16 +01:00
Pablo Polvorin
942072cf9d
Make hibernate timeouts configurable
...
Two *global* options added:
c2s_hibernate and receiver_hibernate.
Default if not specified is 90000, the previous hardcoded value.
2016-02-04 15:45:29 -03:00
Mickael Remond
dfc29ea03c
Switch to Fast XML module
2016-02-03 19:03:17 +01:00
Mickael Remond
71ee0d56fa
Switch to fast_tls and update app names
2016-02-03 16:13:16 +01:00
Mickael Remond
9ae1371c6e
Convert more dependencies to new repository / packages
2016-02-03 12:30:12 +01:00
Mickael Remond
0de222d998
Convert code to use Fast YAML
2016-02-03 11:30:48 +01:00
Mickael Remond
b137ee3beb
Move to new dependencies for SIP and STUN
2016-02-03 11:26:14 +01:00
Mickael Remond
99b5c5712c
Move to new iconv package
2016-02-03 11:17:24 +01:00
Mickael Remond
e8ba7bce24
Use stringprep app name
2016-02-03 10:12:25 +01:00
Nathan Bruning
80fc34fb0c
Fix presence-based delivery
2016-02-02 14:06:07 +01:00
Paweł Chmielowski
fa55ac5c8f
More strict checking for MUC initial presence
2016-02-01 12:09:58 +01:00
Paweł Chmielowski
dc52ec904c
Send presence with code 170 only in initial presence from MUC
2016-02-01 11:30:49 +01:00
Evgeniy Khramtsov
d3ee2a9c18
Add 'import_prosody' command
2016-01-29 14:30:50 +03:00
Evgeniy Khramtsov
54dc2f56c6
Import privacy lists from Prosody
2016-01-29 14:14:08 +03:00
Evgeniy Khramtsov
b20db3b736
Initial version of migration script from Prosody to ejabberd
2016-01-28 14:23:51 +03:00
Paweł Chmielowski
aaa84dc118
Need extra line before ## in markdown
2016-01-27 11:42:13 +01:00
Paweł Chmielowski
239b1c6f74
Always use lagger
2016-01-26 14:34:58 +01:00
Christophe Romain
b2c6e397fc
Set set utf8mb4 charset on mysql connection
2016-01-26 13:47:24 +01:00
Paweł Chmielowski
621dff7307
Add header to generated markdown file
2016-01-26 10:46:38 +01:00
Paweł Chmielowski
bdeb4a7e32
Add a way to get all ejabberd_commands, not only those that was registered
...
This is part of (TECH-1828).
2016-01-26 10:00:28 +01:00
Paweł Chmielowski
22696e8388
Geenarte markdown that is acceptable by docs.ejabberd.org processor
2016-01-25 16:51:54 +01:00
Paweł Chmielowski
a2a692d081
Merge pull request #919 from hamano/rename_timestamp_function
...
rename timestamp function #917
2016-01-24 07:51:25 +01:00
Mickael Remond
a3931e6b73
lager is the default logger, we need to reverse the define flag
2016-01-23 18:43:06 +01:00
HAMANO Tsukasa
5a85b0fb52
rename timestamp function #917
2016-01-23 17:58:10 +09:00
Holger Weiss
b62607037a
mod_mam: Expose MUC occupant JID in more cases
...
Include the occupant JID with MUC MAM messages if the room is not
anonymous, and also when the MAM user sent the MUC message himself (not
just in the case where he is a room moderator).
2016-01-20 00:02:40 +01:00
Christophe Romain
2ddbd032ee
Add error handling to send_stanza
2016-01-19 16:16:04 +01:00
Holger Weiss
5e4ed4266d
mod_mam: Strip existing JID tags from MUC messages
...
Strip any pre-existing <x/> tags which have an <item/> child with a
'jid' attribute from MUC MAM messages. This way, if such a tag exists,
clients can be sure it was added by mod_mam.
2016-01-19 00:39:10 +01:00
Alexey Shchepin
a150bf8fdc
Make C2S session establishment optional (ECS-11)
2016-01-18 16:33:57 +03:00
Holger Weiss
bd383fb8c1
mod_mam: Remove unused code
...
This mod_mam version doesn't store groupchat messages in user archives,
and it also doesn't support the "store_body_only" option.
2016-01-18 13:27:29 +01:00
Holger Weiss
63777f830d
Use maps instead of dicts in HTTP upload modules
...
ejabberd currently depends on Erlang/OTP 17.1 or higher, so we can now
use maps.
2016-01-16 01:30:22 +01:00
badlop
6ac839dd76
Merge pull request #906 from hamano/stats_processes
...
add stats processes command
2016-01-15 19:26:23 +01:00
Evgeniy Khramtsov
a83c5a8f3a
Do not redefine records
2016-01-15 15:44:50 +03:00
Evgeniy Khramtsov
1d452c98c1
Describe option type of 'domain_balancing'
2016-01-15 14:32:10 +03:00
Holger Weiss
ddaa409ee2
XEP-0198: Let MAM take care of pending messages
...
If a stream management session times out for a user who appears to be
using MAM, drop any unacknowledged messages rather than resending or
bouncing them. This avoids duplicates or bogus error messages.
However, this is only done if the new mod_mam option "assume_mam_usage"
is set to 'if_enabled' or 'on_request'. In the former case, a user is
assumed to be using MAM if archiving is enabled for his account. In the
latter case, MAM usage is assumed only if archiving was explicitly
requested by the client, or if archiving was enabled by means of
mod_mam's "request_activates_archiving" option.
2016-01-15 01:08:22 +01:00
HAMANO Tsukasa
6cb1905f7c
add stats processes command
2016-01-15 00:27:15 +09:00
Holger Weiss
db04cdf2ca
mod_mam: Sort messages returned by Mnesia
...
Sort the messages retrieved from an Mnesia archive before selecting the
subset limited by the <max/> value. This makes sure the desired subset
of messages is sent to the client.
2016-01-14 02:27:02 +01:00
Holger Weiss
58c8fc5770
mod_mam: Limit result set page size
...
If the client doesn't specify a maximum number of messages to retrieve
per page, set a limit of 50 messages. If the client specifies a limit
larger than 250, cap the number to 250 messages.
These limits aren't enforced for MAM v0.2 requests though, as that
version of the XEP doesn't require clients to support RSM. The newer
revisions say that "a server MAY place a reasonable limit on how many
stanzas may be pushed to a client in one request. Whether or not the
client query included a <set/> element, the server MAY simply return its
limited results, modifying the <set/> element it returns appropriately."
2016-01-14 02:12:28 +01:00
Holger Weiss
35ec0d58a4
mod_mam: Reject <index/>-based paging
...
If an <index/> is specified in the MAM request, reject the request
rather than ignoring the desired index and returning wrong results.
XEP-0059 says that the server "MAY return a <feature-not-implemented/>
error."
2016-01-14 01:39:19 +01:00
Holger Weiss
11afa45646
mod_mam: Remove unused variable
2016-01-14 01:15:11 +01:00
Holger Weiss
89f63a4fdf
mod_mam: Check whether MUC message is desired
2016-01-14 01:13:16 +01:00
Holger Weiss
85f4f90b45
mod_mam: Support XEP-0313 v0.2 MUC archive queries
2016-01-14 00:58:48 +01:00
Holger Weiss
8117092e6a
mod_mam: Respond to form requests
...
If the client requests a data form with the supported filters, return it
as per XEP-0313 v0.3 and newer.
2016-01-13 23:56:05 +01:00
Holger Weiss
89b1700279
mod_mam: Add 'from' attribute to <delay/> tag
2016-01-13 23:17:23 +01:00
Holger Weiss
9cd048c442
mod_mam: Improve binary comparison of message UIDs
...
Make sure the binary comparison performed when clients use message UIDs
to page through Mnesia archives yields correct results even if the
specified UIDs don't have the same number of digits as the UIDs of the
stored messages. This way, MAM will continue to work as expected after
migrating from mod_mam_mnesia to mod_mam.
2016-01-13 23:01:51 +01:00
Holger Weiss
3dccc20d8b
mod_mam: Add "delete_old_mam_messages" command
...
The new "delete_old_mam_messages" command allows for purging all MAM
messages of the specified type older than the specified number of days.
(Currently only implemented for Mnesia archives.)
2016-01-13 22:46:30 +01:00
Holger Weiss
a61b0c303d
mod_mam: Add "request_activates_archiving" option
...
Enabling "request_activates_archiving" tells mod_mam not to store any
messages for a user until his client issued a MAM request, regardless of
mod_mam's "default" option. Once a MAM request is issued, messages are
archived as usual.
2016-01-13 21:38:08 +01:00
Holger Weiss
0183b2487e
Advertise MUC MAM v0.4.1 in room JID's disco#info
2016-01-13 20:30:44 +01:00
Badlop
f448ff608a
Update copyright to 2016 ( #901 )
2016-01-13 12:29:14 +01:00
Evgeniy Khramtsov
fd3e3a99c5
Log failed SQL requests
2016-01-13 14:13:32 +03:00
Evgeniy Khramtsov
776fe8b32a
Fix MAM MUC for v0.4.1
2016-01-13 11:45:08 +03:00
Holger Wei
64d96778b4
Don't return error for blocked MUC messages
...
If a message stanza is blocked as per XEP-0016 or XEP-0191, return an
error only if the type of the blocked message is "normal" or "chat".
This makes sure users won't be kicked from MUC rooms when blocking other
participants.
Closes #897 .
2016-01-12 10:20:35 +01:00
Holger Weiss
3e1425b905
Merge remote-tracking branch 'processone/pr/899'
...
* processone/pr/899:
mod_http_upload: Use application/octet-stream instead of text/html for security reasons
2016-01-11 12:38:51 +01:00
Evgeniy Khramtsov
65e6dfb9dd
Do not fail on incorrect data coming from SQL (898)
2016-01-11 14:35:11 +03:00
Evgeniy Khramtsov
c7931b4a4f
CVE-2016-1232: Add Dialback Key Generation and Validation support (XEP-0185)
2016-01-11 14:22:17 +03:00
Matthias Rieber
0ad0fd2187
mod_http_upload: Use application/octet-stream instead of text/html for security reasons
2016-01-11 12:13:19 +01:00
Badlop
c7b67ff00b
Clarify a little more room error string (thanks to Genghis Khan)
2016-01-08 13:14:40 +01:00
Holger Weiss
e1539a11be
mod_http_upload: Use full PUT URL for process name
...
Don't just use the "put_url" domain name, but also any path components
of the specified URL, to generate a mod_http_upload process name. This
way, a single domain name can be used for multiple virtual hosts by
specifying a "put_url" such as "https://example.com/@HOST@/ ".
2016-01-06 00:12:36 +01:00
Holger Weiss
3f5a20c90a
mod_http_upload: Rename variable for clarity
2016-01-05 22:06:34 +01:00
Badlop
c01e3f24a5
Error converting times in mod_fail2ban ( #889 )
2016-01-05 12:29:21 +01:00
Paweł Chmielowski
da45a064a8
Fix handling of some options in old style configs
...
This fixes issue #893 .
2016-01-04 22:06:19 +01:00
Alexey Shchepin
fb8a511365
Use crypto:rand_uniform instead of random:uniform
2016-01-04 13:59:37 +03:00
Holger Weiss
94c620cc27
mod_http_upload: Fix logging of file size mismatch
2016-01-04 01:01:14 +01:00
Holger Weiss
5deb6a91f7
mod_admin_extra: Replace deprecated function calls
2016-01-02 21:27:48 +01:00
Holger Weiss
b73678992b
mod_muc_admin: Allow for setting MAM option
...
Fixes #890 .
2016-01-02 20:57:01 +01:00
Badlop
91d205715e
New send_stanza command (ejabberd_contrib#142)
2015-12-30 12:53:40 +01:00
Holger Weiss
1d2dc6cdc1
mod_muc_room: Replace deprecated function call
2015-12-29 11:11:50 +01:00
Holger Weiss
4cdb30d59e
mod_mam: Use <stanza-id/> tags for deduplication
...
Use <stanza-id/> elements instead of <delay/> tags to check for messages
resent by the stream management code. The <stanza-id/> element is
preferable, as it is added by mod_mam itself.
2015-12-29 09:54:48 +01:00
Badlop
0df6d7ae39
Improve explanation in registration page ( #876 )
2015-12-28 15:08:59 +01:00
Paweł Chmielowski
a18a3dfbb1
Add commands for generating html or markdown documentation for commands
2015-12-28 12:20:06 +01:00
Evgeniy Khramtsov
babb484cfc
Restrict access to MAM archives for members-only rooms
2015-12-24 15:04:06 +03:00
Badlop
c42e026f9c
Degenderise room error message ( #747 )
2015-12-23 19:34:23 +01:00
Holger Weiss
8cf0d31ee9
Revert "mod_mam: Keep 'to' attribute for MUC MAM messages"
...
This reverts commit 0e330da2a6
. XEP-0313
says: "When sending out the archives to a requesting client, the 'to' of
the forwarded stanza MUST be empty".
2015-12-22 13:20:23 +01:00
Paweł Chmielowski
cfe0aea219
Use built-in nif for integer_to_binary/binary_to_integer
2015-12-22 11:49:12 +01:00
Badlop
88c9991f90
Adding WEBIRC, custom realname & ident, ISO-8859-15 (thanks to iwalkalone69)( #877 )
2015-12-21 16:20:20 +01:00
Alexey Shchepin
d88d5d6807
Support presence_broadcast in default_room_options mod_muc option
2015-12-21 02:25:31 +03:00
Holger Weiss
2d22507636
ejabberd_http: Cope with large POST/PUT requests
...
gen_tcp returns 'enomem' if we try to receive more than 64 MiB.
2015-12-20 23:30:11 +01:00
Holger Weiss
d039b9b72b
ejabberd_http: Log debug message on receive errors
2015-12-20 23:26:57 +01:00
Christophe Romain
bb5a8a42c3
Fix pubsub virtual nodetree plugin
2015-12-17 10:16:17 +01:00
Christophe Romain
6957e892dd
Fix last item message type as message attribute
2015-12-16 17:04:45 +01:00
Christophe Romain
c8986ffa5e
Use correct notification_type for last items ( #827 )
2015-12-16 16:19:35 +01:00
Alexey Shchepin
c6798fc515
Add accept_interval option in ejabberd_listener
2015-12-16 17:26:44 +03:00
Christophe Romain
08b0530164
Don't read pubsub options when plugin does not use them
...
This also revert commit 6052f7b
2015-12-16 12:56:06 +01:00
Holger Weiss
5fd1aa0d04
Advertise MAM in disco info for account/room JID
...
As per XEP-0313 version 0.2 and newer, advertise the MAM feature in the
service discovery information for the bare account (or MUC room) JID.
Some clients check the server's discovery information instead, so we'll
continue to advertise the feature there as well.
2015-12-16 00:08:23 +01:00
Holger Weiss
11ad96fced
Use MUC domain for 'by' attribute of <stanza-id/>
...
Let mod_mam specify only the domain part of the room JID in the 'by'
attribute of <stanza-id/> tags.
2015-12-15 21:37:41 +01:00
Holger Weiss
0e330da2a6
mod_mam: Keep 'to' attribute for MUC MAM messages
2015-12-15 21:05:04 +01:00
Christophe Romain
6efdf78ce3
PubSub plugin for online users only
2015-12-15 16:23:04 +01:00
Christophe Romain
3b69d26368
Fix pubsub headers
2015-12-15 16:12:20 +01:00
Paweł Chmielowski
6052f7bfa8
Fix pubsub test error
2015-12-14 10:21:23 +01:00
Christophe Romain
e3005f68e7
Remove undefined macro injected in 3bdd5d0d
2015-12-11 15:33:22 +01:00
Christophe Romain
8ee5f9fb6f
Remove http supervisors
2015-12-11 14:13:24 +01:00
Christophe Romain
3bdd5d0d25
Remove receiver's supervisor
2015-12-11 14:11:44 +01:00
Christophe Romain
1a32f20c07
Disable use of multi-subscribe and subscription-option on standard plugins
2015-12-11 12:46:49 +01:00
Christophe Romain
6357ea1d5d
Limit number of subscriptions per node and allow custom default node configuration
2015-12-11 12:46:44 +01:00
Christophe Romain
86a8606fd1
Virtual nodetree is not attached to any backend
2015-12-11 12:46:40 +01:00
Christophe Romain
c4943cffe8
Follow pubsub configuration when using virtual nodetree
2015-12-11 12:46:35 +01:00
Christophe Romain
10c920ef13
Don't force max_items_node to MAXITEMS if not defined
2015-12-11 12:30:16 +01:00
Holger Weiss
469e93f37b
mod_mam: Don't store resent messages
...
Make sure messages that were resent by the stream management code aren't
stored in MAM.
2015-12-09 22:44:45 +01:00
Holger Weiss
e09afe367f
Document XEP-0334 support
2015-12-09 22:28:44 +01:00
Evgeniy Khramtsov
4c47ee63f2
Do not forget to include xmlns in mam prefs response ( #859 )
2015-12-09 12:53:02 +03:00
Paweł Chmielowski
be4d687a86
Fix problem with handling of old db entries in mod_mam
2015-12-09 09:47:03 +01:00
Holger Weiss
07baf2d973
Don't let "reopen_log" rotate files (EJAB-1243)
...
Make sure the "reopen_log" command really just reopens log files without
also rotating them. For rotating log files, the new "rotate_log"
command can be used.
2015-12-08 22:48:04 +01:00
Holger Weiss
325c17f277
mod_mam: Update record field type
2015-12-08 22:21:39 +01:00
Holger Weiss
14609dbfa2
mod_mam: Remove unused code
2015-12-08 22:15:55 +01:00
Holger Weiss
59ba09826b
mod_offline: Fix outdated comments
2015-12-08 21:58:54 +01:00
Holger Weiss
90fd7f3780
mod_offline: Honor <store/> hint
...
Ignore the "store_empty_body" option for messages that have a <store/>
hint as described in XEP-0334, version 0.2.
2015-12-08 21:46:36 +01:00
Alexey Shchepin
c2f6bf0343
Improve muc#roomconfig_presencebroadcast support
2015-12-08 21:53:42 +03:00
Paweł Chmielowski
67f93b0d60
Don't keep 10 sec timeout that i used for testing...
2015-12-08 11:28:03 +01:00
Paweł Chmielowski
7a69dab596
Add ability to disable timeout for ejabberdctl command
2015-12-08 11:25:26 +01:00
Holger Weiss
5ce0b062ff
mod_mam: Honor Message Processing Hints (XEP-0334)
2015-12-08 00:10:00 +01:00
Badlop
3e57850da7
If mod_register access_from is 'none', then don't advertise IBR ( #857 )
2015-12-07 18:30:52 +01:00
Paweł Chmielowski
95a9100623
Fix more places where random:seed is used
2015-12-07 16:48:29 +01:00
Paweł Chmielowski
d0df7be722
Fix randoms.erl on R17 that don't have random:seed(integer())
2015-12-07 16:37:40 +01:00
Paweł Chmielowski
5ac10d6555
Remove now() in pubsub code
2015-12-07 16:16:11 +01:00
Paweł Chmielowski
29db302808
More now() replacements
2015-12-07 16:09:48 +01:00
Paweł Chmielowski
b9f751e099
Fix bug in last commit
2015-12-07 10:26:51 +01:00
Paweł Chmielowski
0a846d03bf
More now() removal
2015-12-06 15:58:46 +01:00
Paweł Chmielowski
5c329a7699
Remove now() - part 1
2015-12-04 15:08:43 +01:00
Badlop
daad71bc7e
trusted_proxies option not parsed correctly ( #860 )
2015-12-04 13:14:39 +01:00
Holger Weiss
ba916c3162
XEP-0198: Fix stanza counting corner case issue
...
Don't forget to count outgoing stanzas that are processed while the
ejabberd_c2s process is already waiting for stream resumption.
2015-12-02 19:25:10 +01:00
Badlop
f9e12d900c
No need for a top menu link as there's a top page link
2015-12-02 17:10:23 +01:00