~samwhited/xmpp

internal/integration/prosody: support zlib

Add support for zlib compression using mod_compress_unsafe for testing
the compression package.

Signed-off-by: Sam Whited <sam@samwhited.com>
ibr2: minor package cleanup

Improve some docs, remove some bare returns, and split docs out into
their own file.

Signed-off-by: Sam Whited <sam@samwhited.com>
ibr2: use new OOB WriterTo implementation

Signed-off-by: Sam Whited <sam@samwhited.com>
internal/integration/ejabberd: component support

Signed-off-by: Sam Whited <sam@samwhited.com>
component: add integration tests

Signed-off-by: Sam Whited <sam@samwhited.com>
component: unmarshal stream errors

Instead of returning a generic error that looks like it might have been
sent over the stream, causing confusion, actually unmarshal the error.

Signed-off-by: Sam Whited <sam@samwhited.com>
component: only check stream ID if not an error

This fixes an error where the stream ID wasn't set on Prosody unless the
stream would be used. While I think Prosody is in the wrong here, their
behavior likely won't cause any problems so it doesn't hurt us to mimic
it for compatibility as long as we still maintain the check on streams
that will be used.

Signed-off-by: Sam Whited <sam@samwhited.com>
component: fix error convention

Fix errors to use messages that follow the convention used in other
packages in this module.

Signed-off-by: Sam Whited <sam@samwhited.com>
internal/integration/prosody: component support

Signed-off-by: Sam Whited <sam@samwhited.com>
internal/integration: add support for components

This adds support for creating a listener for the component protocol as
well as a way to get connections without negotiating a session (to test
custom negotiators like the one in `component`).

Signed-off-by: Sam Whited <sam@samwhited.com>
component: further simplify tests

Signed-off-by: Sam Whited <sam@samwhited.com>
stream: support text elements in errors

Signed-off-by: Sam Whited <sam@samwhited.com>
stream: improve error comparisons

Signed-off-by: Sam Whited <sam@samwhited.com>
stream: fix stream error unmarshaling

Signed-off-by: Sam Whited <sam@samwhited.com>
all: compare custom error types with errors.Is

Previously these errors were being compared with == and != but soon
we'll want to support error wrapping on these errors and may want to add
fields that will make them uncomparable.

Signed-off-by: Sam Whited <sam@samwhited.com>
internal/integration/ejabberd: wait after stop

The "ejabberdctl stop" command was run asynchronously which was causing
a race condition that would sometimes cause the next tests to fail with
an error about ejabberd already being started.
Block until its completely stopped with a second call to the
"ejabberdctl stopped" command.

This doesn't appear to actually fix the issue (on FreeBSD at least), but
it should be done either way and will likely help.

Signed-off-by: Sam Whited <sam@samwhited.com>
jid: add fuzz testing

No issues found, but commit the fuzz testing tool anyways in case we
want to run it again later.

Signed-off-by: Sam Whited <sam@samwhited.com>
styling: minor typo fix in fuzz tests

Signed-off-by: Sam Whited <sam@samwhited.com>
stanza: add Error method on IQ

This provides an easy way to reply to IQs with an error, similar to
Result.

Signed-off-by: Sam Whited <sam@samwhited.com>
Next