Compare commits
5 Commits
7ceee48d31
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| c61ddeb338 | |||
| e2515e25e4 | |||
| 09a849c6eb | |||
| 9eb94e5f48 | |||
| db77790bf4 |
@@ -1,2 +1,4 @@
|
|||||||
|
set -ex
|
||||||
|
|
||||||
prosodyctl --config ./prosody.cfg.lua register testuser1 localhost abc123
|
prosodyctl --config ./prosody.cfg.lua register testuser1 localhost abc123
|
||||||
prosodyctl --config ./prosody.cfg.lua register testuser2 localhost abc123
|
prosodyctl --config ./prosody.cfg.lua register testuser2 localhost abc123
|
||||||
@@ -3,14 +3,16 @@ description: A sample command-line application.
|
|||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.18.0 <3.0.0'
|
sdk: ">=3.0.0 <4.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
logging: ^1.0.2
|
logging: ^1.3.0
|
||||||
moxxmpp: 0.3.0
|
moxxmpp:
|
||||||
moxxmpp_socket_tcp: 0.3.0
|
path: ../packages/moxxmpp
|
||||||
|
moxxmpp_socket_tcp:
|
||||||
|
path: ../packages/moxxmpp_socket_tcp
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
lints: ^2.0.0
|
build_runner: ^2.4.13
|
||||||
test: ^1.16.0
|
test: ^1.25.8
|
||||||
very_good_analysis: ^3.0.1
|
very_good_analysis: ^6.0.0
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import 'package:moxxmpp_socket_tcp/moxxmpp_socket_tcp.dart';
|
|||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class TestingTCPSocketWrapper extends TCPSocketWrapper {
|
class TestingTCPSocketWrapper extends TCPSocketWrapper {
|
||||||
|
TestingTCPSocketWrapper() : super(true);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool onBadCertificate(dynamic certificate, String domain) {
|
bool onBadCertificate(dynamic certificate, String domain) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import 'package:moxxmpp_socket_tcp/moxxmpp_socket_tcp.dart';
|
|||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class TestingTCPSocketWrapper extends TCPSocketWrapper {
|
class TestingTCPSocketWrapper extends TCPSocketWrapper {
|
||||||
|
TestingTCPSocketWrapper() : super(true);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool onBadCertificate(dynamic certificate, String domain) {
|
bool onBadCertificate(dynamic certificate, String domain) {
|
||||||
return true;
|
return true;
|
||||||
@@ -27,7 +29,7 @@ void main() {
|
|||||||
ClientToServerNegotiator(),
|
ClientToServerNegotiator(),
|
||||||
TestingTCPSocketWrapper(),
|
TestingTCPSocketWrapper(),
|
||||||
)..connectionSettings = ConnectionSettings(
|
)..connectionSettings = ConnectionSettings(
|
||||||
jid: JID.fromString('testuser@localhost'),
|
jid: JID.fromString('testuser1@localhost'),
|
||||||
password: 'abc123',
|
password: 'abc123',
|
||||||
host: '127.0.0.1',
|
host: '127.0.0.1',
|
||||||
port: 5222,
|
port: 5222,
|
||||||
@@ -40,6 +42,8 @@ void main() {
|
|||||||
]);
|
]);
|
||||||
await conn.registerFeatureNegotiators([
|
await conn.registerFeatureNegotiators([
|
||||||
SaslPlainNegotiator(),
|
SaslPlainNegotiator(),
|
||||||
|
SaslScramNegotiator(9, '', '', ScramHashType.sha1),
|
||||||
|
SaslScramNegotiator(10, '', '', ScramHashType.sha256),
|
||||||
ResourceBindingNegotiator(),
|
ResourceBindingNegotiator(),
|
||||||
FASTSaslNegotiator(),
|
FASTSaslNegotiator(),
|
||||||
Bind2Negotiator(),
|
Bind2Negotiator(),
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
## 0.4.1
|
||||||
|
- Moved FAST from staging to xep_0484.dart
|
||||||
|
|
||||||
## 0.4.0
|
## 0.4.0
|
||||||
|
|
||||||
- **BREAKING**: Remove `lastResource` from `XmppConnection`'s `connect` method. Instead, set the `StreamManagementNegotiator`'s `resource` attribute instead. Since the resource can only really be restored by stream management, this is no issue.
|
- **BREAKING**: Remove `lastResource` from `XmppConnection`'s `connect` method. Instead, set the `StreamManagementNegotiator`'s `resource` attribute instead. Since the resource can only really be restored by stream management, this is no issue.
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ export 'package:moxxmpp/src/socket.dart';
|
|||||||
export 'package:moxxmpp/src/stanza.dart';
|
export 'package:moxxmpp/src/stanza.dart';
|
||||||
export 'package:moxxmpp/src/stringxml.dart';
|
export 'package:moxxmpp/src/stringxml.dart';
|
||||||
export 'package:moxxmpp/src/util/typed_map.dart';
|
export 'package:moxxmpp/src/util/typed_map.dart';
|
||||||
export 'package:moxxmpp/src/xeps/staging/fast.dart';
|
|
||||||
export 'package:moxxmpp/src/xeps/staging/file_upload_notification.dart';
|
export 'package:moxxmpp/src/xeps/staging/file_upload_notification.dart';
|
||||||
export 'package:moxxmpp/src/xeps/xep_0004.dart';
|
export 'package:moxxmpp/src/xeps/xep_0004.dart';
|
||||||
export 'package:moxxmpp/src/xeps/xep_0030/errors.dart';
|
export 'package:moxxmpp/src/xeps/xep_0030/errors.dart';
|
||||||
@@ -96,3 +95,4 @@ export 'package:moxxmpp/src/xeps/xep_0447.dart';
|
|||||||
export 'package:moxxmpp/src/xeps/xep_0448.dart';
|
export 'package:moxxmpp/src/xeps/xep_0448.dart';
|
||||||
export 'package:moxxmpp/src/xeps/xep_0449.dart';
|
export 'package:moxxmpp/src/xeps/xep_0449.dart';
|
||||||
export 'package:moxxmpp/src/xeps/xep_0461.dart';
|
export 'package:moxxmpp/src/xeps/xep_0461.dart';
|
||||||
|
export 'package:moxxmpp/src/xeps/xep_0484.dart';
|
||||||
|
|||||||
@@ -96,7 +96,9 @@ class SaslPlainNegotiator extends Sasl2AuthenticationNegotiator {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Result<bool, NegotiatorError>> onSasl2Success(XMLNode response) async {
|
Future<Result<bool, NegotiatorError>> onSasl2Success(XMLNode response) async {
|
||||||
|
if (pickedForSasl2) {
|
||||||
state = NegotiatorState.done;
|
state = NegotiatorState.done;
|
||||||
|
}
|
||||||
return const Result(true);
|
return const Result(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -363,6 +363,11 @@ class SaslScramNegotiator extends Sasl2AuthenticationNegotiator {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Result<bool, NegotiatorError>> onSasl2Success(XMLNode response) async {
|
Future<Result<bool, NegotiatorError>> onSasl2Success(XMLNode response) async {
|
||||||
|
// Don't do anything if we have not been picked for SASL2.
|
||||||
|
if (!pickedForSasl2) {
|
||||||
|
return const Result(true);
|
||||||
|
}
|
||||||
|
|
||||||
// When we're done with SASL2, check the additional data to verify the server
|
// When we're done with SASL2, check the additional data to verify the server
|
||||||
// signature.
|
// signature.
|
||||||
state = NegotiatorState.done;
|
state = NegotiatorState.done;
|
||||||
|
|||||||
@@ -4,6 +4,10 @@ class UnknownOmemoError extends OmemoError {}
|
|||||||
|
|
||||||
class InvalidAffixElementsException implements Exception {}
|
class InvalidAffixElementsException implements Exception {}
|
||||||
|
|
||||||
|
/// Internal exception that is returned when the device list cannot be
|
||||||
|
/// fetched because the returned list is empty.
|
||||||
|
class EmptyDeviceListException implements OmemoError {}
|
||||||
|
|
||||||
class OmemoNotSupportedForContactException extends OmemoError {}
|
class OmemoNotSupportedForContactException extends OmemoError {}
|
||||||
|
|
||||||
class EncryptionFailedException implements Exception {}
|
class EncryptionFailedException implements Exception {}
|
||||||
|
|||||||
@@ -535,7 +535,10 @@ class OmemoManager extends XmppManagerBase {
|
|||||||
final pm = getAttributes().getManagerById<PubSubManager>(pubsubManager)!;
|
final pm = getAttributes().getManagerById<PubSubManager>(pubsubManager)!;
|
||||||
final result = await pm.getItems(jid.toBare(), omemoDevicesXmlns);
|
final result = await pm.getItems(jid.toBare(), omemoDevicesXmlns);
|
||||||
if (result.isType<PubSubError>()) return Result(UnknownOmemoError());
|
if (result.isType<PubSubError>()) return Result(UnknownOmemoError());
|
||||||
return Result(result.get<List<PubSubItem>>().first.payload);
|
|
||||||
|
final itemList = result.get<List<PubSubItem>>();
|
||||||
|
if (itemList.isEmpty) return Result(EmptyDeviceListException());
|
||||||
|
return Result(itemList.first.payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Retrieves the OMEMO device list from [jid].
|
/// Retrieves the OMEMO device list from [jid].
|
||||||
|
|||||||
@@ -274,16 +274,16 @@
|
|||||||
<xmpp:version>0.2.0</xmpp:version>
|
<xmpp:version>0.2.0</xmpp:version>
|
||||||
</xmpp:SupportedXep>
|
</xmpp:SupportedXep>
|
||||||
</implements>
|
</implements>
|
||||||
|
|
||||||
<!-- Non-Standard (Proto) XEPs -->
|
|
||||||
<implements>
|
<implements>
|
||||||
<xmpp:SupportedXep>
|
<xmpp:SupportedXep>
|
||||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/inbox/xep-fast.html" />
|
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0484.html" />
|
||||||
<xmpp:status>partial</xmpp:status>
|
<xmpp:status>partial</xmpp:status>
|
||||||
<xmpp:version>0.0.1</xmpp:version>
|
<xmpp:version>0.1.1</xmpp:version>
|
||||||
<xmpp:note xml:lang="en">Invalidation is never requested</xmpp:note>
|
<xmpp:note xml:lang="en">Invalidation is never requested</xmpp:note>
|
||||||
</xmpp:SupportedXep>
|
</xmpp:SupportedXep>
|
||||||
</implements>
|
</implements>
|
||||||
|
|
||||||
|
<!-- Non-Standard (Proto) XEPs -->
|
||||||
<implements>
|
<implements>
|
||||||
<xmpp:SupportedXep>
|
<xmpp:SupportedXep>
|
||||||
<xmpp:xep rdf:resource="https://codeberg.org/moxxy/custom-xeps/src/branch/master/xep-xxxx-file-upload-notification.md"/>
|
<xmpp:xep rdf:resource="https://codeberg.org/moxxy/custom-xeps/src/branch/master/xep-xxxx-file-upload-notification.md"/>
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ environment:
|
|||||||
sdk: ">=3.0.0 <4.0.0"
|
sdk: ">=3.0.0 <4.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
collection: ^1.19.0
|
collection: ^1.18.0
|
||||||
cryptography: ^2.7.0
|
cryptography: ^2.7.0
|
||||||
hex: ^0.2.0
|
hex: ^0.2.0
|
||||||
json_serializable: ^6.8.0
|
json_serializable: ^6.8.0
|
||||||
logging: ^1.2.0
|
logging: ^1.2.0
|
||||||
meta: ^1.16.0
|
meta: ^1.15.0
|
||||||
moxlib:
|
moxlib:
|
||||||
hosted: https://git.polynom.me/api/packages/Moxxy/pub
|
hosted: https://git.polynom.me/api/packages/Moxxy/pub
|
||||||
version: ^0.2.0
|
version: ^0.2.0
|
||||||
|
|||||||
Reference in New Issue
Block a user