Badlop
2d32c66fd7
Update copyright to 2020 ( #3149 )
2020-01-28 15:49:23 +01:00
Holger Weiss
20c0fed457
mod_http_upload: Document correct put_url default
...
Closes #3152 .
2020-01-27 00:04:21 +01:00
Paweł Chmielowski
75094df25e
Do not use ~ts format in string that are put in xmpp payload
...
We are expecting utf8 data here, and using that flag will convert those
to unicode codepoints, which aren't handled properly later.
2020-01-22 12:55:27 +01:00
Holger Weiss
243dc06733
mod_stream_mgmt: Don't crash on disabled ACK timer
...
Don't attempt to start an ACK timer if 'ack_timeout' is set to
'infinity'.
Thanks to Ingo Jrgensmann for reporting the bug.
2020-01-14 01:17:01 +01:00
Holger Weiss
ec035e3c41
mod_carboncopy: Omit check for undefined 'from'
...
These days, the 'from' of an outgoing #message is guaranteed to be set
to the sender's JID by xmpp_stream_in:process_authenticated_packet/2.
2020-01-13 00:45:33 +01:00
Holger Weiss
430b9bef38
mod_carboncopy: Don't process non-message stanzas
...
Avoid examining presence and IQ stanzas, as they're not eligible for
carbon-copying.
This is just an optimization and should not change the behavior.
2020-01-13 00:31:01 +01:00
Holger Weiss
ff193a1a6f
mod_carboncopy: Also copy mediated MUC invitations
2020-01-13 00:13:54 +01:00
Holger Weiss
74c01caf08
mod_carboncopy: Improve is_carbon_copy() check
...
Make sure the hook chain is stopped early whenever a carbon copy is
processed, not just in some cases.
2020-01-12 14:04:31 +01:00
Holger Weiss
a8f6c1db1d
mod_carboncopy: Support new copying rules
...
Support the copying rules added to XEP-0280 with version 0.13.0 under
the "urn:xmpp:carbons:rules:0" namespace.
Closes #3011 .
2020-01-12 13:42:00 +01:00
Holger Weiss
919c9d6fb1
mod_sip: Omit documentation when SIP is disabled
...
Don't generate the actual mod_sip documentation if ejabberd is built
without SIP support.
2020-01-11 20:34:11 +01:00
Holger Weiss
6531fbb0f3
mod_sip: Fix compilation without SIP support
...
Make sure the T() macro is also defined when ejabberd is compiled
without SIP support.
Fixes #3143 .
2020-01-11 20:27:16 +01:00
Evgeny Khramtsov
97da380acd
Generate ejabberd.yml.5 man page from source code directly
...
Several documentation callbacks (doc/0 and mod_doc/0) are implemented
and `ejabberdctl man` command is added to generate a man page. Note
that the command requires a2x to be installed (which is a part of
asciidoc package).
2020-01-08 12:24:51 +03:00
Holger Weiss
0e96d64e60
Omit push notifications if offline storage failed
...
This commit removes the 'store_offline_message' hook which didn't allow
mod_push to suppress notifications when storing an offline message
failed (due to the offline spool size limit being exceeded or due to
database issues).
Fixes #3120 .
2020-01-05 20:08:54 +01:00
Christoph Scholz
00ccb119ea
allow storage of emojis in archive on mssql
2019-12-27 13:06:06 +01:00
Badlop
c396271c00
Fix case clause error regarding admin_generated password ( #3122 )
2019-12-24 11:10:36 +01:00
Paweł Chmielowski
4b3a1ec614
Add ability to hookup config transformer
2019-12-16 12:39:56 +01:00
Badlop
869826c818
Fix mod_muc_log skipping non-Latin messages (thanks to Yandrey)( #3115 )
2019-12-16 11:35:10 +01:00
Alexey Shchepin
24ac62eabd
Improve compatibility with CockroachDB ( #3074 )
2019-12-16 06:52:06 +03:00
Alexey Shchepin
f9120f75b0
Improve compatibility with CockroachDB ( #3074 )
2019-12-11 17:49:02 +03:00
Evgeny Khramtsov
6e68ca2211
Improve send_message command
2019-11-29 11:27:57 +03:00
Paweł Chmielowski
71c44bff8b
Make convert_to_scram work with all backends
2019-11-27 10:35:52 +01:00
Alexey Shchepin
2a35cadf80
Merge branch 'pg_prepared_statements' of https://github.com/sabudaye/ejabberd into sabudaye-pg_prepared_statements
...
Conflicts:
ejabberd.yml.example
src/ejabberd_sql.erl
2019-11-26 19:45:01 +03:00
Evgeny Khramtsov
910f6aa290
Fix previous commit
2019-11-24 16:26:03 +03:00
Evgeny Khramtsov
de91618070
Check also 'access' rule on account removal
...
According to the documentation we should not allow
account removal when it's forbidden by the rule
from 'access' option.
2019-11-24 16:21:01 +03:00
Evgeny Khramtsov
650bdae5d9
Make sure IQ result is correctly routed on account removal
...
Thanks to Philipp Hörist for spotting this
2019-11-24 15:43:38 +03:00
Evgeny Khramtsov
33a16090d3
Fix acl reloading
2019-11-15 18:21:30 +03:00
Evgeny Khramtsov
925998c360
Preserve order of grouped duplicates
2019-11-08 10:20:18 +03:00
Evgeny Khramtsov
3826a9ed58
Also group duplicated list-like options inside host_config/append_host_config
2019-11-07 12:14:08 +03:00
Evgeny Khramtsov
b7b76cc38b
Group all duplicated list-like options into a single option
2019-11-07 11:33:24 +03:00
Evgeny Khramtsov
94b74c0cbe
Fix loading of third-party modules at startup
...
Fixes #3019
2019-11-07 10:47:11 +03:00
Evgeny Khramtsov
c48e972573
Allow multiple modules
section
...
Fixes processone/ejabberd-contrib#282
2019-11-06 13:43:30 +03:00
Evgeny Khramtsov
bb26d7c379
Accept a list in c2s_ciphers/s2s_ciphers options
2019-11-05 17:54:56 +03:00
Evgeny Khramtsov
3a46612d88
Fix unicode string formatting
...
Fixes #3066
2019-11-05 17:51:12 +03:00
Evgeny Khramtsov
3e5ab8082b
Revert "Escape 'family' field in SQL requests"
...
This reverts commit f51ba687e2
.
Fixes #3072
2019-10-30 09:11:13 +03:00
Evgeny Khramtsov
72f6835feb
Fix race condition in Redis/SQL supervisors startup
2019-10-29 13:36:40 +03:00
Evgeny Khramtsov
f51ba687e2
Escape 'family' field in SQL requests
...
This is needed for compatibility with CockroachDB, because
'FAMILY' is a reserved keyword in this database.
2019-10-28 12:19:24 +03:00
Evgeny Khramtsov
a202818037
Merge pull request #3069 from nosnilmot/jwt-custom-jid-field
...
Add option for JWT field name containing JID
2019-10-26 11:03:19 +03:00
Stu Tomlinson
b2651dae0f
Add option for JWT field name containing JID
2019-10-25 16:56:18 +01:00
Evgeny Khramtsov
f981a2ef17
Improve jwt_key validator
2019-10-25 18:30:50 +03:00
Evgeny Khramtsov
02cb3d93fd
Don't lowercase first letter in reason string
2019-10-25 18:18:04 +03:00
Alexey Shchepin
c7470f5107
Handle the case when JWT key file contains JWK set
2019-10-25 16:33:22 +03:00
Evgeny Khramtsov
7eda35b945
Introduce 'gc' ejabberdctl command
...
The command forces garbage collection of all running Erlang processes.
The return is always success.
2019-10-25 16:02:24 +03:00
Evgeny Khramtsov
e8fe68543e
Stop SASL application in ejabberd_logger:flush()
2019-10-25 15:52:05 +03:00
Evgeny Khramtsov
f1a35cc9ac
Avoid calling to logger module on OTP<22
2019-10-25 15:27:47 +03:00
Evgeny Khramtsov
e3962aea6e
Use lager on OTP<22.0
...
This also lowers Erlang/OTP minimum version requirement back to 19.3
2019-10-25 11:44:04 +03:00
Evgeny Khramtsov
c604bdb897
Limit result set of disco#items for mod_pubsub
...
The size of a list of nodes returned for disco#items request
is now controlled by option 'max_nodes_discoitems'. The default
value is 100. The name and the default value of the option is
chosen to be consistent with mod_muc's 'max_rooms_discoitems' option.
2019-10-24 14:59:47 +03:00
Evgeny Khramtsov
d300a87059
Fix logger initialization on OTP<21.3
2019-10-23 16:41:27 +03:00
Evgeny Khramtsov
1e30b85861
Report errors in logger initialization
2019-10-23 16:03:48 +03:00
Evgeny Khramtsov
e388805049
Log path to third-party configuration file
...
This should prevent confusions like the one described at
https://stackoverflow.com/q/58353491/2610053
2019-10-20 18:14:33 +03:00
Evgeny Khramtsov
7a85e51237
Fix error reporting in configuration related admin commands
2019-10-19 19:58:42 +03:00
Evgeny Khramtsov
9ff6cc25dc
Log supervisor reports in debug loglevel
2019-10-18 22:00:37 +03:00
Evgeny Khramtsov
e4a8afb15d
Replace lager with built-in new logging API
...
This change requires Erlang/OTP-21.0 or higher.
The commit also deprecates the following options:
- log_rotate_date
- log_rate_limit
Furthermore, these options have no effect. The logger now fully
relies on log_rotate_size, that cannot be 0 anymore.
The loglevel option now accepts levels in literal formats.
Those are: none, emergency, alert, critical, error, warning, notice, info, debug.
Old integer values (0-5) are still supported and automatically converted
into literal format.
2019-10-18 19:12:32 +03:00
Badlop
b1d458999a
Flatten strings in ejabberd_xmlrpc error results
2019-10-18 13:16:37 +02:00
Paweł Chmielowski
9822535e70
Convert oauth_expire option to accept timeout values
2019-10-15 11:28:47 +02:00
Alexey Shchepin
e7a20d9fc5
Fix dialyzer warning in #oauth_ctx
2019-10-11 17:39:11 +03:00
Evgeny Khramtsov
211cc80fd4
Implement X-OAUTH2 authentication for mod_mqtt
...
This will only work for MQTT 5.0 connections.
A client MUST set "Authentication Method" property of CONNECT
packet to "X-OAUTH2" and MUST set the token in "Authentication Data"
property of the same CONNECT packet.
The server responses as usual with CONNACK.
2019-10-11 16:46:16 +03:00
Paweł Chmielowski
8d571adca8
Verify http host in web admin only if authentication is missing host
...
This should allow access to web admin through ip address or just served
from domain not defined in ejabberd hosts
2019-10-09 10:31:02 +02:00
Badlop
9df26a5740
Update ejabberd_xmlrpc to handle binaries in restuple result ( #3048 )
2019-10-03 16:48:22 +02:00
Alexey Shchepin
5d549dca96
Check redirect_uri for OAUTH implicit grant
2019-10-03 06:18:48 +03:00
Badlop
949e71efb6
Update Guide links in WebAdmin to website, as local file isn't included
2019-10-02 12:42:59 +02:00
Badlop
20205c66c1
Support custom base path in WebAdmin by using relative URLs ( #3043 )
2019-10-02 12:42:54 +02:00
Evgeny Khramtsov
7fc272918a
Fix startup of supervisors for listening modules
2019-10-01 23:28:00 +03:00
Evgeny Khramtsov
c49edaca19
Improve best match
2019-09-28 11:27:20 +03:00
Alexey Shchepin
8f7fa38949
Support OAUTH client authentication
2019-09-27 20:36:58 +03:00
Evgeny Khramtsov
47d0eed3f1
Advertise muc#roominfo_logs in disco#info of the room
...
The commit adds new `url` option for mod_muc_log.
Fixes #3040
2019-09-26 16:53:36 +03:00
Evgeny Khramtsov
2eaad21863
Don't log warning when an option is consulted for uknown vhost
...
Such warnings may be unappropriate in some situation, e.g.
when a virtual host is disabled in runtime but some packets
for this host are still in transit.
Fixes #3037
2019-09-25 13:58:05 +03:00
Evgeny Khramtsov
aefe2fd640
Rename to p1_acme
2019-09-25 13:10:47 +03:00
Evgeny Khramtsov
5770946f03
Correctly handle unicode in log messages
2019-09-23 15:17:20 +03:00
Evgeny Khramtsov
2e1e128833
Fix unicode formatting in ACME module
2019-09-22 20:11:54 +03:00
Evgeny Khramtsov
b7e296857c
Don't call to xmpp_idna
2019-09-22 13:28:14 +03:00
Evgeny Khramtsov
75fe6f44d2
Fix IDNA support in ACME requests
2019-09-22 12:44:31 +03:00
Evgeny Khramtsov
30346a56de
Don't forget to log an error message on IDNA failure
2019-09-22 11:30:20 +03:00
Evgeny Khramtsov
a616cc04cb
Support IDN hostnames in ACME requests
2019-09-22 11:04:38 +03:00
Evgeny Khramtsov
d5e0ccb04a
Don't attempt to create acme directory on ejabberd startup
2019-09-22 01:14:29 +03:00
Evgeny Khramtsov
ea09497038
Slightly improve arg example
2019-09-22 01:03:08 +03:00
Evgeny Khramtsov
f5156390bb
Don't allow requesting certificates for localhost or IP-like domains
2019-09-22 00:53:03 +03:00
Evgeny Khramtsov
12691e738b
Improve warning message
2019-09-22 00:21:12 +03:00
Evgeny Khramtsov
81ae691738
Use round/0 instead of ceil/0
...
Because ceil/0 was introduced in OTP20.0 only
2019-09-20 15:33:08 +03:00
Evgeny Khramtsov
9805b1a73a
Fix typo
2019-09-20 14:04:00 +03:00
Evgeny Khramtsov
68ba109889
Remove unused file
2019-09-20 13:08:03 +03:00
Evgeny Khramtsov
4cdb4c2090
Don't auto request certificate for localhost and IP-like domains
2019-09-20 13:03:25 +03:00
Evgeny Khramtsov
e227940b85
Improve ACME implementation
...
Fixes #2487 , fixes #2590 , fixes #2638
2019-09-20 12:36:31 +03:00
Alexey Shchepin
0fe1e40a9d
JWT-only authentication for some users ( #3012 )
2019-09-18 18:46:24 +03:00
Holger Weiss
f48b4124b1
mod_jidprep: Don't call gen_mod functions directly
2019-09-18 17:39:40 +02:00
Badlop
fd4c5edc23
Apply default role after revoking admin affiliation ( #3023 )
2019-09-17 12:31:14 +02:00
Holger Weiss
b1c10d2a03
Add support for XEP-0328: JID Prep
...
The mod_jidprep module implements XEP-0328: JID Prep, version 0.1.
2019-09-12 09:26:45 +02:00
Evgeny Khramtsov
56b4d3902a
Log Mnesia table type on creation
2019-09-10 21:57:51 +03:00
Evgeny Khramtsov
533a4eec96
Replicate Mnesia 'bosh' table when nodes are joined
2019-09-10 16:02:51 +03:00
Mickael Remond
7b79921734
Use email field type to avoid jid capitalization on iOS
2019-09-09 12:12:54 +02:00
Alexey Shchepin
6d83cbd1a8
Add missing ejabberd_auth_jwt:user_exists/2 function ( #3012 )
2019-09-09 00:57:55 +03:00
Alexey Shchepin
21aa344ed5
Fix BEGIN/COMMIT/ROLLBACK syntax for MSSQL ( #2978 )
2019-09-09 00:16:44 +03:00
Evgeny Khramtsov
a8c6eec28c
Fix certificate selection for s2s
...
The bug was introduced in c2cbb4d879
Fixes #3015
2019-09-06 22:20:07 +03:00
Paweł Chmielowski
6d08ecc41f
Add ejabberd_oauth:verify_resowner_scope callback back
...
This fixes issue #2982
2019-09-06 16:47:22 +02:00
Evgeny Khramtsov
9a8245b8e6
Fix the regression introduced in dd57950
...
Fixes #3010
2019-09-04 10:31:09 +03:00
Badlop
e50ecf9e96
Fix some links to Guide in WebAdmin and add new ones ( #3003 )
2019-08-27 15:41:37 +02:00
Vyache
c0f8e5d7c0
Custom exit message is not broadcast
2019-08-23 09:32:58 +03:00
Badlop
1fd75265d6
Use select fields to input host in WebAdmin Backup ( #3000 )
2019-08-22 18:35:43 +02:00
Badlop
94d50a447d
Fix call to deprecated ejabberd_config:get_myhosts() ( #3000 )
2019-08-22 18:35:41 +02:00
Badlop
12c4dfd955
Provide meaningful error when adding non-local users to shared roster ( #3000 )
2019-08-22 17:13:18 +02:00
Badlop
a51aa2bc44
Check account auth provided in WebAdmin is a local host ( #3000 )
2019-08-22 17:13:13 +02:00
Paweł Chmielowski
07ef1775cd
Add another variant of transformation of offline_msg in mod_offline_mnesia
2019-08-16 18:34:42 +02:00
Evgeny Khramtsov
9ec69b8d62
Don't treat 'Host' header as a virtual XMPP host
...
Fixes #2989
2019-08-13 18:30:28 +03:00
Badlop
0bb14bdc0b
Revert "Affiliations other than admin and owner cannot invite to members_only rooms"
...
This reverts commit b010a1a0a0
.
More details in #2987
2019-08-13 14:55:37 +02:00
Badlop
a157e22c2f
When join new room with password, set pass and password_protected ( #2668 )
2019-08-13 11:37:32 +02:00
Badlop
a1dfb7fbe6
Improve rooms_* commands to accept 'global' as MUC service argument ( #2976 )
2019-08-12 17:03:32 +02:00
Evgeny Khramtsov
8f8f53a595
Fix typo in type spec
2019-08-12 12:28:17 +03:00
Evgeny Khramtsov
d796dcace5
Spawn SQL connections on demand only
2019-08-12 12:21:31 +03:00
Badlop
dd8c468de3
Rename MUC command arguments from Host to Service ( #2976 )
2019-08-08 12:32:59 +02:00
Evgeny Khramtsov
ced62e0df8
Don't use close/2: set stop_reason explicitly
...
Fixes #2984
2019-08-08 11:21:28 +03:00
Evgeny Khramtsov
950c209310
Report connection error before waiting for resumption
...
In other words don't hide the reason why c2s connection has failed
2019-08-06 16:18:04 +03:00
Evgeny Khramtsov
934392fd7e
Implement reload/3 for mod_http_upload
2019-08-06 12:31:33 +03:00
Evgeny Khramtsov
2168489ddf
Don't retain module option on gen_mod supervisor
...
When module's options were updated (e.g. by reloading ejabberd.yml)
and, later, the module's process crashed, gen_mod supervisor
restarts the process with outdated options. This is now fixed.
2019-08-04 21:46:18 +03:00
Evgeny Khramtsov
4dac9f1e6d
Validate BINVAL values of vcard elements as Base64
2019-08-02 14:20:10 +03:00
Evgeny Khramtsov
5a976719fb
Introduce 'vcard' option for the modules supporting vCards
...
The mapping between vCard's XML elements and YAML elements
of 'vcard' option is straightforward. For example, if you
want mod_muc to return the following vCard:
```
<vCard xmlns='vcard-temp'>
<FN>Conferences</FN>
<ADR>
<WORK/>
<STREET>Elm Street</STREET>
</ADR>
</vCard>
```
you need to set the configuration as:
```
modules:
...
mod_muc:
vcard:
fn: Conferences
adr:
-
work: true
street: Elm Street
...
```
2019-08-02 13:59:42 +03:00
Badlop
66d2e6ca27
Explain requirements of the FROM argument of send_message command ( #2959 )
2019-08-01 11:29:42 +02:00
Evgeny Khramtsov
059cf8fed1
Don't call ejabberd_cluster from its submodules
...
Fixes #2971
2019-07-31 19:25:47 +03:00
Evgeny Khramtsov
465e1f5ee1
Fix db_type validation
2019-07-31 18:55:43 +03:00
Paweł Chmielowski
51bf552c3f
For pubsub items with max_item = 1 use order by in sql queries
2019-07-31 13:06:44 +02:00
Evgeny Khramtsov
48bed43902
Don't render CAPTCHA whitelist when CAPTCHA is not configured
...
Fixes #2970
2019-07-31 12:35:06 +03:00
Evgeny Khramtsov
bbee13f970
Improve SQL timeouts handling
...
Also improve some formatting
2019-07-31 10:39:53 +03:00
Evgeny Khramtsov
651d69fb98
Also catch 'shutdown' exit reason
2019-07-30 23:17:10 +03:00
Evgeny Khramtsov
15f50f5331
Improve pattern matching
2019-07-30 20:57:32 +03:00
Evgeny Khramtsov
3e4d7a98af
Implement read-repair for session pids
2019-07-30 20:57:09 +03:00
Evgeny Khramtsov
46cc6c66ec
Remove dead code
2019-07-30 15:31:44 +03:00
Evgeny Khramtsov
b4770815c0
Fix race condition when deleting c2s session record
2019-07-30 15:21:58 +03:00
Evgeny Khramtsov
209f5d32e1
Fix SQL connections leakage
2019-07-30 14:26:11 +03:00
Evgeny Khramtsov
81996b153a
Fix previous commit
2019-07-30 13:40:40 +03:00
Evgeny Khramtsov
59adfcb8e0
Correctly report resume timeout
2019-07-30 12:50:31 +03:00
Evgeny Khramtsov
8a2b2668cf
Expose access_model and publish_model in pubsub#metadata
...
Fixes #2931
2019-07-30 10:45:32 +03:00
Evgeny Khramtsov
949e4c1c59
Generate 'remote-server-not-found' stanza error for non-IDN domains
...
Fixes #2969
2019-07-29 22:45:38 +03:00
Evgeny Khramtsov
d64951c2b2
Improve handling of errors in tree_action/3
2019-07-29 22:24:26 +03:00
Evgeny Khramtsov
2cd930b7d5
Appropriately abort pubsub transaction
2019-07-29 21:44:30 +03:00
Badlop
630cfe26b7
mod_multicast service discovery bugfix (thanks to McPo)( #2968 )
2019-07-29 19:32:26 +02:00
Evgeny Khramtsov
2da168cf05
Improve handling of errors in pubsub code
2019-07-29 17:13:16 +03:00
Frank Diebolt
cd88d342b9
Apply shaping to websocket connections
2019-07-29 14:54:25 +02:00
Evgeny Khramtsov
35576b4608
Improve hooks validator and fix bugs related to hooks registration
2019-07-29 10:46:20 +03:00
Evgeny Khramtsov
0aa004bafc
Improve ejabberd halting procedure
2019-07-26 11:40:19 +03:00
Evgeny Khramtsov
a54694684d
Fix default value of resume_timeout
2019-07-25 13:57:43 +03:00
Evgeny Khramtsov
3b18e7cc00
Don't attempt to restart killed lager
...
This is not very robust and the call may hang forever
2019-07-24 19:47:14 +03:00
Evgeny Khramtsov
ca0e53b3c5
Fix typo in log message
2019-07-24 18:56:44 +03:00
Evgeny Khramtsov
ae135e57d9
Improve SQL pool logic
...
Avoid using ETS table for SQL workers: rely on processes names instead
2019-07-24 14:28:43 +03:00
Holger Weiss
c3c8dffeab
Revert "mod_privacy: Don't try to look up 'undefined' list"
...
This reverts commit 4218aecd1c
. The issue
was fixed in a0d3fb3b23
already.
2019-07-24 11:29:57 +02:00
Holger Weiss
4218aecd1c
mod_privacy: Don't try to look up 'undefined' list
...
Don't crash if the <query/> element of an IQ of type 'set' contains
neither a <default/> nor an <active/> child.
This fixes a regression introduced in commit
8410a203ec
.
2019-07-24 10:45:30 +02:00
Evgeny Khramtsov
9ef52f2b0f
Fix UTF-8 support in translation files
2019-07-24 11:34:40 +03:00
Evgeny Khramtsov
052917961a
Add 'certauth' command to extauth port
2019-07-24 10:13:51 +03:00
Holger Weiss
8ac4a5f792
mod_stream_mgmt: Allow flexible timeout format
...
Adjust mod_stream_mgmt and the related code in mod_push_keepalive to
support the flexible timeout format.
2019-07-23 00:15:40 +02:00
Christophe Romain
c0dc95d529
Fix wrong virtual host in mod_pubsub:send_stanza ( #2930 )
2019-07-22 10:13:27 +02:00
Evgeny Khramtsov
4be98b5aef
Log an error when JWT authentication is configured without jwt_key
2019-07-19 12:01:57 +03:00
Evgeny Khramtsov
55d42b9000
Fix typo
2019-07-18 22:35:16 +03:00
Evgeny Khramtsov
6d6e3e348d
Improve robustness of reading jwt_key option
2019-07-18 22:31:08 +03:00