Rename Options to Config

This commit is contained in:
Mickael Remond 2018-09-26 16:25:04 +02:00
parent 1c3aaad174
commit fa5590e921
No known key found for this signature in database
GPG key ID: E6F6045D79965AA3
6 changed files with 29 additions and 29 deletions

View file

@ -14,7 +14,7 @@ import (
// server. // server.
type Client struct { type Client struct {
// Store user defined options // Store user defined options
options Options config Config
// Session gather data that can be accessed by users of this library // Session gather data that can be accessed by users of this library
Session *Session Session *Session
// TCP level connection / can be replaced by a TLS session after starttls // TCP level connection / can be replaced by a TLS session after starttls
@ -25,31 +25,31 @@ type Client struct {
Setting up the client / Checking the parameters Setting up the client / Checking the parameters
*/ */
// NewClient generates a new XMPP client, based on Options passed as parameters. // NewClient generates a new XMPP client, based on Config passed as parameters.
// If host is not specified, the DNS SRV should be used to find the host from the domainpart of the JID. // If host is not specified, the DNS SRV should be used to find the host from the domainpart of the JID.
// Default the port to 5222. // Default the port to 5222.
// TODO: better options checks // TODO: better config checks
func NewClient(options Options) (c *Client, err error) { func NewClient(config Config) (c *Client, err error) {
// TODO: If option address is nil, use the Jid domain to compose the address // TODO: If option address is nil, use the Jid domain to compose the address
if options.Address, err = checkAddress(options.Address); err != nil { if config.Address, err = checkAddress(config.Address); err != nil {
return return
} }
if options.Password == "" { if config.Password == "" {
err = errors.New("missing password") err = errors.New("missing password")
return return
} }
c = new(Client) c = new(Client)
c.options = options c.config = config
// Parse JID // Parse JID
if c.options.parsedJid, err = NewJid(c.options.Jid); err != nil { if c.config.parsedJid, err = NewJid(c.config.Jid); err != nil {
return return
} }
if c.options.ConnectTimeout == 0 { if c.config.ConnectTimeout == 0 {
c.options.ConnectTimeout = 15 // 15 second as default c.config.ConnectTimeout = 15 // 15 second as default
} }
return return
} }
@ -80,8 +80,8 @@ func (c *Client) Connect() (*Session, error) {
// TODO: Refactor = abstract retry loop in capped exponential back-off function // TODO: Refactor = abstract retry loop in capped exponential back-off function
var try = 0 var try = 0
var success bool var success bool
for try <= c.options.Retry || !success { for try <= c.config.Retry || !success {
if tcpconn, err = net.DialTimeout("tcp", c.options.Address, time.Duration(c.options.ConnectTimeout)*time.Second); err == nil { if tcpconn, err = net.DialTimeout("tcp", c.config.Address, time.Duration(c.config.ConnectTimeout)*time.Second); err == nil {
success = true success = true
} }
try++ try++
@ -92,7 +92,7 @@ func (c *Client) Connect() (*Session, error) {
// Connection is ok, we now open XMPP session // Connection is ok, we now open XMPP session
c.conn = tcpconn c.conn = tcpconn
if c.conn, c.Session, err = NewSession(c.conn, c.options); err != nil { if c.conn, c.Session, err = NewSession(c.conn, c.config); err != nil {
return c.Session, err return c.Session, err
} }

View file

@ -23,11 +23,11 @@ func TestClient_Connect(t *testing.T) {
mock.Start(t, testXMPPAddress, handlerConnectSuccess) mock.Start(t, testXMPPAddress, handlerConnectSuccess)
// Test / Check result // Test / Check result
options := Options{Address: testXMPPAddress, Jid: "test@localhost", Password: "test", Insecure: true} config := Config{Address: testXMPPAddress, Jid: "test@localhost", Password: "test", Insecure: true}
var client *Client var client *Client
var err error var err error
if client, err = NewClient(options); err != nil { if client, err = NewClient(config); err != nil {
t.Errorf("connect create XMPP client: %s", err) t.Errorf("connect create XMPP client: %s", err)
} }
@ -44,11 +44,11 @@ func TestClient_NoInsecure(t *testing.T) {
mock.Start(t, testXMPPAddress, handlerAbortTLS) mock.Start(t, testXMPPAddress, handlerAbortTLS)
// Test / Check result // Test / Check result
options := Options{Address: testXMPPAddress, Jid: "test@localhost", Password: "test"} config := Config{Address: testXMPPAddress, Jid: "test@localhost", Password: "test"}
var client *Client var client *Client
var err error var err error
if client, err = NewClient(options); err != nil { if client, err = NewClient(config); err != nil {
t.Errorf("cannot create XMPP client: %s", err) t.Errorf("cannot create XMPP client: %s", err)
} }

View file

@ -13,7 +13,7 @@ import (
) )
func main() { func main() {
options := xmpp.Options{ config := xmpp.Config{
Address: "localhost:5222", Address: "localhost:5222",
Jid: "test@localhost", Jid: "test@localhost",
Password: "test", Password: "test",
@ -21,7 +21,7 @@ func main() {
Insecure: true, Insecure: true,
} }
client, err := xmpp.NewClient(options) client, err := xmpp.NewClient(config)
if err != nil { if err != nil {
log.Fatal("Error: ", err) log.Fatal("Error: ", err)
} }

View file

@ -99,11 +99,11 @@ func playSCURL(p *mpg123.Player, rawURL string) {
} }
func connectXmpp(jid string, password string, address string) (client *xmpp.Client, err error) { func connectXmpp(jid string, password string, address string) (client *xmpp.Client, err error) {
xmppOptions := xmpp.Options{Address: address, xmppConfig := xmpp.Config{Address: address,
Jid: jid, Password: password, PacketLogger: os.Stdout, Insecure: true, Jid: jid, Password: password, PacketLogger: os.Stdout, Insecure: true,
Retry: 10} Retry: 10}
if client, err = xmpp.NewClient(xmppOptions); err != nil { if client, err = xmpp.NewClient(xmppConfig); err != nil {
return return
} }

View file

@ -31,7 +31,7 @@ type Session struct {
err error err error
} }
func NewSession(conn net.Conn, o Options) (net.Conn, *Session, error) { func NewSession(conn net.Conn, o Config) (net.Conn, *Session, error) {
s := new(Session) s := new(Session)
s.init(conn, o) s.init(conn, o)
@ -62,12 +62,12 @@ func (s *Session) PacketId() string {
return fmt.Sprintf("%x", s.lastPacketId) return fmt.Sprintf("%x", s.lastPacketId)
} }
func (s *Session) init(conn net.Conn, o Options) { func (s *Session) init(conn net.Conn, o Config) {
s.setProxy(nil, conn, o) s.setProxy(nil, conn, o)
s.Features = s.open(o.parsedJid.domain) s.Features = s.open(o.parsedJid.domain)
} }
func (s *Session) reset(conn net.Conn, newConn net.Conn, o Options) { func (s *Session) reset(conn net.Conn, newConn net.Conn, o Config) {
if s.err != nil { if s.err != nil {
return return
} }
@ -77,7 +77,7 @@ func (s *Session) reset(conn net.Conn, newConn net.Conn, o Options) {
} }
// TODO: setProxyLogger ? better name ? This is not a TCP / HTTP proxy // TODO: setProxyLogger ? better name ? This is not a TCP / HTTP proxy
func (s *Session) setProxy(conn net.Conn, newConn net.Conn, o Options) { func (s *Session) setProxy(conn net.Conn, newConn net.Conn, o Config) {
if newConn != conn { if newConn != conn {
s.socketProxy = newSocketProxy(newConn, o.PacketLogger) s.socketProxy = newSocketProxy(newConn, o.PacketLogger)
} }
@ -135,7 +135,7 @@ func (s *Session) startTlsIfSupported(conn net.Conn, domain string) net.Conn {
return conn return conn
} }
func (s *Session) auth(o Options) { func (s *Session) auth(o Config) {
if s.err != nil { if s.err != nil {
return return
} }
@ -143,7 +143,7 @@ func (s *Session) auth(o Options) {
s.err = authSASL(s.socketProxy, s.decoder, s.Features, o.parsedJid.username, o.Password) s.err = authSASL(s.socketProxy, s.decoder, s.Features, o.parsedJid.username, o.Password)
} }
func (s *Session) bind(o Options) { func (s *Session) bind(o Config) {
if s.err != nil { if s.err != nil {
return return
} }
@ -176,7 +176,7 @@ func (s *Session) bind(o Options) {
// TODO: remove when ejabberd is fixed: https://github.com/processone/ejabberd/issues/869 // TODO: remove when ejabberd is fixed: https://github.com/processone/ejabberd/issues/869
// After the bind, if the session is required (as per old RFC 3921), we send the session open iq // After the bind, if the session is required (as per old RFC 3921), we send the session open iq
func (s *Session) rfc3921Session(o Options) { func (s *Session) rfc3921Session(o Config) {
if s.err != nil { if s.err != nil {
return return
} }

View file

@ -6,7 +6,7 @@ import (
) )
// Mediated Read / Write on socket // Mediated Read / Write on socket
// Used if logFile from Options is not nil // Used if logFile from Config is not nil
type socketProxy struct { type socketProxy struct {
socket io.ReadWriter // Actual connection socket io.ReadWriter // Actual connection
logFile *os.File logFile *os.File