1,2 $ users cleared
1,2 $ channels cleared
-# connect with values set by /connect
+# connect with values set by /connect, init CAP negotation
1,2 $ hostname set to: [foo.bar.baz]
1,2 $ port set to: [-1]
1,2 $ nick_wanted set to: [foo]
1,2 $ password set to: [bar]
1,2 $ port set to: [6697]
1,2 $ connection_state set to: [connecting]
-
1,2 $ connection_state set to: [connected]
-
2 > CAP LS :302
2 > USER foobarbazquux 0 * :baz
2 > NICK :foo
+# expect some NOTICE and PING to process/reply during initiation
2 < :*.?.net NOTICE * :*** Looking up your ident...
1,2 $$$ *** Looking up your ident...
2 < :*.?.net NOTICE * :*** Looking up your hostname...
1,2 $$$ *** Looking up your hostname...
2 < :*.?.net NOTICE * :*** Found your hostname (baz.bar.foo)
1,2 $$$ *** Found your hostname (baz.bar.foo)
+2 < PING :?
+2 > PONG :?
+# collect server capabilities
2 < :*.?.net CAP * LS : foo bar sasl=PLAIN,EXTERNAL baz
2 > CAP REQ :sasl
2 > CAP :LIST
-
-2 < PING :?
-2 > PONG :?
-
2 < :*.?.net CAP ? ACK :sasl
2 < :*.?.net CAP ? LIST :cap-notify sasl
1,2 $ caps:bar:data set to: []
1,2 $ caps:sasl:data set to: [PLAIN,EXTERNAL]
1,2 $ caps:sasl:enabled set to: [True]
+# authenticate via SASL, collect items of user identity
1,2 $ sasl_auth_state set to: [attempting]
2 > AUTHENTICATE :PLAIN
2 < AUTHENTICATE +
2 > AUTHENTICATE :Zm9vAGZvbwBiYXI=
2 < :foo.bar.baz 900 foo foo!foobarbazq@baz.bar.foo foo :You are now logged in as foo
-
1,2 $ users:me:nick set to: [?]
-1,2 $ ?!?@? renames ?
1,2 $ users:me:nick set to: [foo]
-1,2 $ ?!?@? renames foo
1,2 $ users:me:user set to: [foobarbazq]
1,2 $ users:me:host set to: [baz.bar.foo]
-
1,2 $ sasl_account set to: [foo]
2 < :foo.bar.baz 903 foo :SASL authentication successful
1,2 $ sasl_auth_state set to: [SASL authentication successful]
+# finish CAP negotation, thus login procedure
2 > CAP :END
2 < :foo.bar.baz 001 foo :Welcome to the foo.bar.baz network
4 $ bar!~bar@bar.bar set topic: foo bar baz
2 < :foo.bar.baz 353 foo @ #test :foo @bar
1,2 $ users:1:nick set to: [?]
-, $ ?!?@? renames ?
1,2 $ users:1:nick set to: [bar]
-, $ ?!?@? renames bar
2 < :foo.bar.baz 366 foo #test :End of /NAMES list.
4 $ residents: bar, foo
2 < :bar!~bar@bar.bar PRIVMSG #test :hi there
4 $ bar!~bar@bar.bar set topic: abc def ghi
2 < :baz!~baz@baz.baz JOIN :#test
1,2 $ users:2:nick set to: [?]
-, $ ?!?@? renames ?
1,2 $ users:2:nick set to: [baz]
-, $ ?!?@? renames baz
1,2 $ users:2:user set to: [~baz]
1,2 $ users:2:host set to: [baz.baz]
4 $ joining: baz
4 $ bazbaz!~baz@baz.baz parts
1,2 $ users:2 cleared
1,2 $ users:2:nick set to: [?]
-, $ ?!?@? renames ?
2 < :bazbaz!~baz@baz.baz JOIN :#test
1,2 $ users:3:nick set to: [?]
-, $ ?!?@? renames ?
1,2 $ users:3:nick set to: [bazbaz]
-, $ ?!?@? renames bazbaz
1,2 $ users:3:user set to: [~baz]
1,2 $ users:3:host set to: [baz.baz]
4 $ joining: bazbaz
1,2 $ users:2 cleared
1,2 $ users:3 cleared
1,2 $ users:3:nick set to: [?]
-, $ ?!?@? renames ?
2 < :foo!~foobarbaz@baz.bar.foo PART :#test
1,2,3,4 $ foo!~foobarbaz@baz.bar.foo parts
1,2 $ users:3 cleared
2 > AUTHENTICATE :Zm9vAGZvbwBiYXI=
2 < :foo.bar.baz 900 foo foo!foobarbazq@baz.bar.foo foo :You are now logged in as foo
1,2 $ users:me:nick set to: [?]
-1,2,3,4 $ ?!?@? renames ?
1,2 $ users:me:nick set to: [foo]
-1,2,3,4 $ ?!?@? renames foo
1,2 $ users:me:user set to: [foobarbazq]
1,2 $ users:me:host set to: [baz.bar.foo]
1,2 $ sasl_account set to: [foo]
1,2 $ users:me:user set to: [~foobarbaz]
2 < :foo.bar.baz 353 foo @ #test :foo @bar
1,2 $ users:4:nick set to: [?]
-, $ ?!?@? renames ?
1,2 $ users:4:nick set to: [bar]
-, $ ?!?@? renames bar
2 < :foo.bar.baz 366 foo #test :End of /NAMES list.
4 $ residents: bar, foo
2 < :bar!~bar@bar.bar PRIVMSG #test :hi there