diff --git a/xmpp.go b/xmpp.go index b8b60c7..1f9109d 100644 --- a/xmpp.go +++ b/xmpp.go @@ -436,7 +436,7 @@ func (c *Client) init(o *Options) error { } clientNonce := cnonce() clientFirstMessage := "n=" + user + ",r=" + clientNonce - fmt.Fprintf(c.stanzaWriter, "%s", + fmt.Fprintf(c.stanzaWriter, "%s\n", nsSASL, mechanism, base64.StdEncoding.EncodeToString([]byte("n,,"+ clientFirstMessage))) var sfm string @@ -536,7 +536,7 @@ func (c *Client) init(o *Options) error { } clientFinalMessage := base64.StdEncoding.EncodeToString([]byte(clientFinalMessageBare + ",p=" + base64.StdEncoding.EncodeToString(clientProof))) - fmt.Fprintf(c.stanzaWriter, "%s", nsSASL, + fmt.Fprintf(c.stanzaWriter, "%s\n", nsSASL, clientFinalMessage) } if mechanism == "X-OAUTH2" && o.OAuthToken != "" && o.OAuthScope != "" { @@ -665,11 +665,11 @@ func (c *Client) init(o *Options) error { if o.Session { //if server support session, open it - fmt.Fprintf(c.stanzaWriter, "", xmlEscape(domain), cookie, nsSession) + fmt.Fprintf(c.stanzaWriter, "\n", xmlEscape(domain), cookie, nsSession) } // We're connected and can now receive and send messages. - fmt.Fprintf(c.stanzaWriter, "%s%s", o.Status, o.StatusMessage) + fmt.Fprintf(c.stanzaWriter, "%s%s\n", o.Status, o.StatusMessage) return nil } @@ -732,7 +732,7 @@ func (c *Client) startStream(o *Options, domain string) (*streamFeatures, error) _, err := fmt.Fprintf(c.stanzaWriter, ""+ "", + " xmlns:stream='%s' version='1.0'>\n", xmlEscape(domain), nsClient, nsStream) if err != nil { return nil, err @@ -1056,7 +1056,7 @@ func (c *Client) Send(chat Chat) (n int, err error) { oobtext += `` } - stanza := "" + subtext + "%s" + oobtext + thdtext + "" + stanza := "" + subtext + "%s" + oobtext + thdtext + "\n" return fmt.Fprintf(c.stanzaWriter, stanza, xmlEscape(chat.Remote), xmlEscape(chat.Type), cnonce(), xmlEscape(chat.Text)) @@ -1075,17 +1075,17 @@ func (c *Client) SendOOB(chat Chat) (n int, err error) { } oobtext += `` } - return fmt.Fprintf(c.stanzaWriter, ""+oobtext+thdtext+"", + return fmt.Fprintf(c.stanzaWriter, ""+oobtext+thdtext+"\n", xmlEscape(chat.Remote), xmlEscape(chat.Type), cnonce()) } // SendOrg sends the original text without being wrapped in an XMPP message stanza. func (c *Client) SendOrg(org string) (n int, err error) { - return fmt.Fprint(c.stanzaWriter, org) + return fmt.Fprint(c.stanzaWriter, org+"\n") } func (c *Client) SendPresence(presence Presence) (n int, err error) { - return fmt.Fprintf(c.stanzaWriter, "", xmlEscape(presence.From), xmlEscape(presence.To)) + return fmt.Fprintf(c.stanzaWriter, "\n", xmlEscape(presence.From), xmlEscape(presence.To)) } // SendKeepAlive sends a "whitespace keepalive" as described in chapter 4.6.1 of RFC6120. @@ -1097,7 +1097,7 @@ func (c *Client) SendKeepAlive() (n int, err error) { func (c *Client) SendHtml(chat Chat) (n int, err error) { return fmt.Fprintf(c.stanzaWriter, ""+ "%s"+ - "%s", + "%s\n", xmlEscape(chat.Remote), xmlEscape(chat.Type), xmlEscape(chat.Text), chat.Text) } diff --git a/xmpp_information_query.go b/xmpp_information_query.go index bda5d86..3abac58 100644 --- a/xmpp_information_query.go +++ b/xmpp_information_query.go @@ -34,14 +34,14 @@ func (c *Client) DiscoverEntityItems(jid string) (string, error) { // RawInformationQuery sends an information query request to the server. func (c *Client) RawInformationQuery(from, to, id, iqType, requestNamespace, body string) (string, error) { - const xmlIQ = "%s" + const xmlIQ = "%s\n" _, err := fmt.Fprintf(c.stanzaWriter, xmlIQ, xmlEscape(from), xmlEscape(to), id, iqType, requestNamespace, body) return id, err } // rawInformation send a IQ request with the payload body to the server func (c *Client) RawInformation(from, to, id, iqType, body string) (string, error) { - const xmlIQ = "%s" + const xmlIQ = "%s\n" _, err := fmt.Fprintf(c.stanzaWriter, xmlIQ, xmlEscape(from), xmlEscape(to), id, iqType, body) return id, err } diff --git a/xmpp_muc.go b/xmpp_muc.go index aec89bc..25b247e 100644 --- a/xmpp_muc.go +++ b/xmpp_muc.go @@ -25,7 +25,7 @@ const ( // Send sends room topic wrapped inside an XMPP message stanza body. func (c *Client) SendTopic(chat Chat) (n int, err error) { - return fmt.Fprintf(c.stanzaWriter, ""+"%s", + return fmt.Fprintf(c.stanzaWriter, ""+"%s\n", xmlEscape(chat.Remote), xmlEscape(chat.Type), xmlEscape(chat.Text)) } @@ -47,34 +47,34 @@ func (c *Client) JoinMUC(jid, nick string, history_type, history int, history_da } switch history_type { case NoHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC) case CharHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ + return fmt.Fprintf(c.stanzaWriter, ""+ "\n"+ - "\n"+ - "", + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, history) case StanzaHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, history) case SecondsHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, history) case SinceHistory: if history_date != nil { - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, history_date.Format(time.RFC3339)) } } @@ -88,40 +88,40 @@ func (c *Client) JoinProtectedMUC(jid, nick string, password string, history_typ } switch history_type { case NoHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ "%s"+ - "\n"+ - "", + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password)) case CharHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "%s\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + "%s"+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history) case StanzaHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "%s\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + "%s"+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history) case SecondsHistory: - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "%s\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + "%s"+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history) case SinceHistory: if history_date != nil { - return fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "%s\n"+ - "\n"+ - "", + return fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + "%s"+ + ""+ + "\n", xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history_date.Format(time.RFC3339)) } } @@ -130,6 +130,6 @@ func (c *Client) JoinProtectedMUC(jid, nick string, password string, history_typ // xep-0045 7.14 func (c *Client) LeaveMUC(jid string) (n int, err error) { - return fmt.Fprintf(c.stanzaWriter, "", + return fmt.Fprintf(c.stanzaWriter, "\n", c.jid, xmlEscape(jid)) } diff --git a/xmpp_ping.go b/xmpp_ping.go index b22e52d..f851d41 100644 --- a/xmpp_ping.go +++ b/xmpp_ping.go @@ -11,23 +11,23 @@ func (c *Client) PingC2S(jid, server string) error { if server == "" { server = c.domain } - _, err := fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "", + _, err := fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + "\n", xmlEscape(jid), xmlEscape(server)) return err } func (c *Client) PingS2S(fromServer, toServer string) error { - _, err := fmt.Fprintf(c.stanzaWriter, "\n"+ - "\n"+ - "", + _, err := fmt.Fprintf(c.stanzaWriter, ""+ + ""+ + "\n", xmlEscape(fromServer), xmlEscape(toServer)) return err } func (c *Client) SendResultPing(id, toServer string) error { - _, err := fmt.Fprintf(c.stanzaWriter, "", + _, err := fmt.Fprintf(c.stanzaWriter, "\n", xmlEscape(toServer), xmlEscape(id)) return err } diff --git a/xmpp_subscription.go b/xmpp_subscription.go index 2f90339..37a03d2 100644 --- a/xmpp_subscription.go +++ b/xmpp_subscription.go @@ -5,21 +5,21 @@ import ( ) func (c *Client) ApproveSubscription(jid string) { - fmt.Fprintf(c.stanzaWriter, "", + fmt.Fprintf(c.stanzaWriter, "\n", xmlEscape(jid)) } func (c *Client) RevokeSubscription(jid string) { - fmt.Fprintf(c.stanzaWriter, "", + fmt.Fprintf(c.stanzaWriter, "\n", xmlEscape(jid)) } func (c *Client) RetrieveSubscription(jid string) { - fmt.Fprintf(c.conn, "", + fmt.Fprintf(c.conn, "\n", xmlEscape(jid)) } func (c *Client) RequestSubscription(jid string) { - fmt.Fprintf(c.stanzaWriter, "", + fmt.Fprintf(c.stanzaWriter, "\n", xmlEscape(jid)) }