matrix_sdk 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/matrix_sdk/api.rb +24 -7
- data/lib/matrix_sdk/client.rb +3 -3
- data/lib/matrix_sdk/extensions.rb +2 -0
- data/lib/matrix_sdk/protocols/cs.rb +1 -1
- data/lib/matrix_sdk/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 487904c24bd70f3d0412ba040f84687d6ef7a6bfe570d259f6d5d73fe7194128
|
4
|
+
data.tar.gz: 7d6f53ba5ec1e1426c5bd274e0809f0edcb67a8e8a355b1dd6d409ac57ee3e0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfbaff099abec9777a5593fa1646ff5e4285fc246894f850b000834185d352f024e8bc9340c17554da6e73c056db9f327bd98f27c259d123ceadf78977203ed0
|
7
|
+
data.tar.gz: f53ec1ca41f8884a8916609f364db9fd849b8957629c1f46cfaa440910030035d6f4c92de464aaabd3dc3d207ccf47e9bedccce30980ab213a625d5bb4e13473
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 2.1.1 - 2020-08-21
|
2
|
+
|
3
|
+
- Fixes crash if state event content is null (#11)
|
4
|
+
- Fixes an uninitialized URI constant exception when requiring only the main library file
|
5
|
+
- Fixes the Api#get_pushrules method missing an ending slash in the request URI
|
6
|
+
- Fixes discovery code for client/server connections based on domain
|
7
|
+
|
1
8
|
## 2.1.0 - 2020-05-22
|
2
9
|
|
3
10
|
- Adds unique query IDs as well as duration in API debug output, to make it easier to track long requests
|
data/lib/matrix_sdk/api.rb
CHANGED
@@ -92,6 +92,8 @@ module MatrixSdk
|
|
92
92
|
uri = URI("http#{ssl ? 's' : ''}://#{domain}")
|
93
93
|
well_known = nil
|
94
94
|
target_uri = nil
|
95
|
+
logger = ::Logging.logger[self]
|
96
|
+
logger.debug "Resolving #{domain}"
|
95
97
|
|
96
98
|
if !port.nil? && !port.empty?
|
97
99
|
# If the domain is fully qualified according to Matrix (FQDN and port) then skip discovery
|
@@ -101,17 +103,26 @@ module MatrixSdk
|
|
101
103
|
target_uri = begin
|
102
104
|
require 'resolv'
|
103
105
|
resolver = Resolv::DNS.new
|
104
|
-
|
105
|
-
|
106
|
+
srv = "_matrix._tcp.#{domain}"
|
107
|
+
logger.debug "Trying DNS #{srv}..."
|
108
|
+
d = resolver.getresource(srv, Resolv::DNS::Resource::IN::SRV)
|
109
|
+
d
|
110
|
+
rescue StandardError => e
|
111
|
+
logger.debug "DNS lookup failed with #{e.class}: #{e.message}"
|
106
112
|
nil
|
107
113
|
end
|
108
114
|
|
109
115
|
if target_uri.nil?
|
110
116
|
# Attempt .well-known discovery for server-to-server
|
111
117
|
well_known = begin
|
112
|
-
|
118
|
+
uri = URI("https://#{domain}/.well-known/matrix/server")
|
119
|
+
logger.debug "Trying #{uri}..."
|
120
|
+
data = Net::HTTP.start(uri.host, uri.port, use_ssl: true, open_timeout: 5, read_timeout: 5, write_timeout: 5) do |http|
|
121
|
+
http.get(uri.path).body
|
122
|
+
end
|
113
123
|
JSON.parse(data)
|
114
|
-
rescue StandardError
|
124
|
+
rescue StandardError => e
|
125
|
+
logger.debug "Well-known failed with #{e.class}: #{e.message}"
|
115
126
|
nil
|
116
127
|
end
|
117
128
|
|
@@ -122,9 +133,14 @@ module MatrixSdk
|
|
122
133
|
elsif %i[client identity].include? target
|
123
134
|
# Attempt .well-known discovery
|
124
135
|
well_known = begin
|
125
|
-
|
126
|
-
|
127
|
-
|
136
|
+
uri = URI("https://#{domain}/.well-known/matrix/client")
|
137
|
+
logger.debug "Trying #{uri}..."
|
138
|
+
data = Net::HTTP.start(uri.host, uri.port, use_ssl: true, open_timeout: 5, read_timeout: 5, write_timeout: 5) do |http|
|
139
|
+
http.get(uri.path).body
|
140
|
+
end
|
141
|
+
data = JSON.parse(data)
|
142
|
+
rescue StandardError => e
|
143
|
+
logger.debug "Well-known failed with #{e.class}: #{e.message}"
|
128
144
|
nil
|
129
145
|
end
|
130
146
|
|
@@ -138,6 +154,7 @@ module MatrixSdk
|
|
138
154
|
end
|
139
155
|
end
|
140
156
|
end
|
157
|
+
logger.debug "Using #{target_uri.inspect}"
|
141
158
|
|
142
159
|
# Fall back to direct domain connection
|
143
160
|
target_uri ||= URI("https://#{domain}:8448")
|
data/lib/matrix_sdk/client.rb
CHANGED
@@ -44,7 +44,7 @@ module MatrixSdk
|
|
44
44
|
# @see #initialize
|
45
45
|
def self.new_for_domain(domain, **params)
|
46
46
|
api = MatrixSdk::Api.new_for_domain(domain, keep_wellknown: true)
|
47
|
-
return new(api, params) unless api.well_known
|
47
|
+
return new(api, params) unless api.well_known&.key?('m.identity_server')
|
48
48
|
|
49
49
|
identity_server = MatrixSdk::Api.new(api.well_known['m.identity_server']['base_url'], protocols: %i[IS])
|
50
50
|
new(api, params.merge(identity_server: identity_server))
|
@@ -574,9 +574,9 @@ module MatrixSdk
|
|
574
574
|
when 'm.room.aliases'
|
575
575
|
room.instance_variable_get('@aliases').concat content[:aliases]
|
576
576
|
when 'm.room.join_rules'
|
577
|
-
room.instance_variable_set '@join_rule', content[:join_rule].to_sym
|
577
|
+
room.instance_variable_set '@join_rule', content[:join_rule].nil? ? nil : content[:join_rule].to_sym
|
578
578
|
when 'm.room.guest_access'
|
579
|
-
room.instance_variable_set '@guest_access', content[:guest_access].to_sym
|
579
|
+
room.instance_variable_set '@guest_access', content[:guest_access].nil? ? nil : content[:guest_access].to_sym
|
580
580
|
when 'm.room.member'
|
581
581
|
return unless cache == :all
|
582
582
|
|
@@ -1823,7 +1823,7 @@ module MatrixSdk::Protocols::CS
|
|
1823
1823
|
# @see https://matrix.org/docs/spec/client_server/latest#get-matrix-client-r0-pushrules
|
1824
1824
|
# The Matrix Spec, for more information about the parameters and data
|
1825
1825
|
def get_pushrules
|
1826
|
-
request(:get, :client_r0, '/pushrules')
|
1826
|
+
request(:get, :client_r0, '/pushrules/')
|
1827
1827
|
end
|
1828
1828
|
|
1829
1829
|
# Retrieves a single registered push rule for the current user
|
data/lib/matrix_sdk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matrix_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Olofsson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mocha
|