2019-06-18 07:28:30 -07:00
|
|
|
package xmpp
|
2016-01-06 07:51:12 -08:00
|
|
|
|
2018-10-13 05:45:48 -07:00
|
|
|
import (
|
2020-01-09 06:33:11 -08:00
|
|
|
"gosrc.io/xmpp/stanza"
|
2018-10-13 05:45:48 -07:00
|
|
|
"os"
|
2019-12-04 13:17:58 -08:00
|
|
|
"time"
|
2018-10-13 05:45:48 -07:00
|
|
|
)
|
2016-01-06 07:51:12 -08:00
|
|
|
|
2019-11-04 03:58:10 -08:00
|
|
|
// Config & TransportConfiguration must not be modified after having been passed to NewClient. Any
|
|
|
|
// changes made after connecting are ignored.
|
2018-09-26 07:27:37 -07:00
|
|
|
type Config struct {
|
2019-10-10 21:24:27 -07:00
|
|
|
TransportConfiguration
|
|
|
|
|
2019-12-04 13:17:58 -08:00
|
|
|
Jid string
|
2020-01-09 06:33:11 -08:00
|
|
|
parsedJid *stanza.Jid // For easier manipulation
|
2019-12-04 13:17:58 -08:00
|
|
|
Credential Credential
|
|
|
|
StreamLogger *os.File // Used for debugging
|
|
|
|
Lang string // TODO: should default to 'en'
|
|
|
|
KeepaliveInterval time.Duration // Interval between keepalive packets
|
|
|
|
ConnectTimeout int // Client timeout in seconds. Default to 15
|
2019-05-31 10:22:36 -07:00
|
|
|
// Insecure can be set to true to allow to open a session without TLS. If TLS
|
|
|
|
// is supported on the server, we will still try to use it.
|
2019-10-18 11:29:54 -07:00
|
|
|
Insecure bool
|
2020-03-06 07:44:01 -08:00
|
|
|
|
|
|
|
// Activate stream management process during session
|
|
|
|
StreamManagementEnable bool
|
|
|
|
// Enable stream management resume capability
|
|
|
|
streamManagementResume bool
|
|
|
|
}
|
|
|
|
|
|
|
|
// IsStreamResumable tells if a stream session is resumable by reading the "config" part of a client.
|
|
|
|
// It checks if stream management is enabled, and if stream resumption was set and accepted by the server.
|
|
|
|
func IsStreamResumable(c *Client) bool {
|
|
|
|
return c.config.StreamManagementEnable && c.config.streamManagementResume
|
2016-01-06 07:51:12 -08:00
|
|
|
}
|