diff --git a/xmpp_error.go b/xmpp_error.go new file mode 100644 index 0000000..026820a --- /dev/null +++ b/xmpp_error.go @@ -0,0 +1,57 @@ +package xmpp + +import ( + "fmt" +) + +// ErrorServiceUnavailable implements error response about feature that is not available. Currently implemented for +// xep-0030. +// QueryXmlns is about incoming xmlns attribute in query tag. +// Node is about incoming node attribute in query tag (looks like it used only in disco#commands). +// +// If queried feature is not here on purpose, standards suggest answer with this stanza. +func (c *Client) ErrorServiceUnavailable(v IQ, queryXmlns, node string) (string, error) { + query := fmt.Sprintf("", node) + } else { + query += "/>" + } + + query += "" + query += "" + query += "" + + return c.RawInformation( + v.To, + v.From, + v.ID, + IQTypeError, + query, + ) +} + +// ErrorNotImplemented implements error response about feature that is not (yet?) implemented. +// Xmlns is about not implemented feature. +// +// If queried feature is not here because of it under development or for similar reasons, standards suggest answer with +// this stanza. +func (c *Client) ErrorNotImplemented(v IQ, xmlns, feature string) (string, error) { + query := "" + query += "" + query += fmt.Sprintf( + "", + xmlns, + feature, + ) + query += "" + + return c.RawInformation( + v.To, + v.From, + v.ID, + IQTypeError, + query, + ) +}