Anonymous connection using "justinfan"

Is connection via IRC anonymously currently broken?

As of yesterday, TeeBoard users are no longer able to connect to the Twitch IRC server. TeeBoard connects to irc.twitch.tv anonymously for its widgets (Chat, Poll, etc…), using “justinfan + random number” as the NICK.

This has been working fine for over a year now but seems to fail as of yesterday.

Are you sending PASS? If not, does it make any difference if you do (even a random one)?

I’m not sending PASS.
I noticed they switched to new servers recently and maybe that has something to do with it.

It looks like sending a message now requires a different ending (line feed). Previously (and up to yesterday) I’d send the following to connect:

  	ircSocket.writeUTFBytes("NICK " + jfan + "\n");
  	ircSocket.flush();

Now it seems to require the following:

  	ircSocket.writeUTFBytes("NICK " + jfan + "\n\r");
  	ircSocket.flush();

Note the extra “\r” (carriage return) at the very end.

Ah yes. I believe the IRC spec does say both are “required”.

It even accepts two line feeds (\n\n), but a single line feed no longer works (as of yesterday).

Would be nice to know if this change is a permanent one.

Ah yes. I believe the IRC spec does say both are “required”.

It looks like that is the case, however, they are in reverse, at least according to this document:

IRC messages are always lines of characters terminated with a CR-LF
   (Carriage Return - Line Feed) pair

So in my case that would be \r\n, however, this fails. So IMO something is still not right.

To summarize

  • according to the specs it should be \r\n, which doesn’t work
  • It used to work with just \n, but no longer does
  • \n\r works
  • \n\n works

@DeezjaVu I can confirm I’m seeing this issue as well, but it’s not that \n\r works, but rather for some reason to authenticate without PASS you need two return statements.

In other words, Twitch’s TMI doesn’t require you to send a carriage return (even though IRC spec requires it). Sending the following works:

NICK justinfan12345\r\n
\r\n

as well as

NICK justinfan12345\n
\n

The problem here lies in the fact that something changed in the authentication logic over at Twitch, where if you don’t supply a PASS it’s still requiring the extra CRLF. You can specify a blank/random PASS statement before NICK if you would like, but I would hope Twitch fixes this since it does break RFC.

This should work, for example:

PASS kappa\r\n
NICK justinfan12345\r\n

@night Thanks for clarifying that.

I have to assume this is the reason why my Trillian that I use through IRC on Twitch to see my chat in game is also not working anymore.

This is fixed - thank you for the reports! This was caused by a regression introduced by some recent server improvements which will lead to some very…interesting stuff happening soon :wink:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.