<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.darenet.org/skins/common/feed.css?12"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>IRCU readme.login-on-connect - Revision history</title>
		<link>http://wiki.darenet.org/index.php?title=IRCU_readme.login-on-connect&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.15.1</generator>
		<lastBuildDate>Thu, 25 Jun 2026 08:20:33 GMT</lastBuildDate>
		<item>
			<title>Secretagent:&amp;#32;New page: &lt;pre&gt;Login-on-connect documentation Last updated 22 Jun 2004 by Vampire-  1. This feature is experimental.  2. The main point is to allow clients to log in to a service bot (i.e., X) *befo...</title>
			<link>http://wiki.darenet.org/index.php?title=IRCU_readme.login-on-connect&amp;diff=2249&amp;oldid=prev</link>
			<description>&lt;p&gt;New page: &amp;lt;pre&amp;gt;Login-on-connect documentation Last updated 22 Jun 2004 by Vampire-  1. This feature is experimental.  2. The main point is to allow clients to log in to a service bot (i.e., X) *befo...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;Login-on-connect documentation&lt;br /&gt;
Last updated 22 Jun 2004 by Vampire-&lt;br /&gt;
&lt;br /&gt;
1. This feature is experimental.&lt;br /&gt;
&lt;br /&gt;
2. The main point is to allow clients to log in to a service bot (i.e., X)&lt;br /&gt;
*before* being announced to the network. Otherwise, a combination of a&lt;br /&gt;
malicious user, /ISON, /USERIP and low latency can reveal it's real host/IP&lt;br /&gt;
before he gets a chance to log in and set himself +x&lt;br /&gt;
&lt;br /&gt;
3. Client&amp;lt;-&amp;gt;Server changes:&lt;br /&gt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
The PASS command now has the following syntax:&lt;br /&gt;
&lt;br /&gt;
PASS [optional I-line password] &amp;lt;bot nick&amp;gt; &amp;lt;username&amp;gt; :&amp;lt;passphrase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the client sends such a password message, after sending NICK,&lt;br /&gt;
USER and PONG, it's username/passphrase are sent to the specified bot&lt;br /&gt;
for validation, while holding the client in the 'registration' state.&lt;br /&gt;
If the authentication succeeds, the client's account and umode +x are set,&lt;br /&gt;
after which he is introduced to the network, continuing the regular connect&lt;br /&gt;
phase. If authentication fails (or the bot is not on the network), the user&lt;br /&gt;
is given a chance to retry (he can do this by sending another PASS command),&lt;br /&gt;
or to disconnect from the server. If he wishes to connect without a hidden&lt;br /&gt;
hostmask, he can send a PASS command with no parameters.&lt;br /&gt;
&lt;br /&gt;
Update: For buggy clients that send (&amp;quot;PASS :%s&amp;quot;, whatever-the-user-typed)&lt;br /&gt;
and thus are incapable of sending multiple arguments, there's a hack in&lt;br /&gt;
mr_pass that splits up the argument if the first character is a ':'.&lt;br /&gt;
This way users might use &amp;quot;:bot user :pass phrase&amp;quot; in their clients.&lt;br /&gt;
The example above would be, in raw form:&lt;br /&gt;
&lt;br /&gt;
PASS ::[optional I-line password] &amp;lt;bot nick&amp;gt; &amp;lt;username&amp;gt; :&amp;lt;passphrase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Server&amp;lt;-&amp;gt;Server changes:&lt;br /&gt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
The ACCOUNT message now has the following syntax:&lt;br /&gt;
&lt;br /&gt;
Auth check: &lt;br /&gt;
&amp;lt;client's server numeric&amp;gt; AC &amp;lt;bot's numeric&amp;gt; C &amp;lt;request-id&amp;gt; &amp;lt;username&amp;gt; :&amp;lt;passphrase&amp;gt;&lt;br /&gt;
Servers send this message to request a service bot to authenticate the client.&lt;br /&gt;
&amp;lt;request-id&amp;gt; is not processed neither by the servers along the way nor the&lt;br /&gt;
service bot. Currently this is:&lt;br /&gt;
	 '.' &amp;lt;fd&amp;gt; '.' &amp;lt;cookie&amp;gt;&lt;br /&gt;
The inital '.' makes sure that the ID is not a valid integer, which is part of&lt;br /&gt;
the hack required to support old-style ACCOUNT messages. The cookie is used to&lt;br /&gt;
validate replies, since the user might disconnect and the fd be reused before&lt;br /&gt;
the reply comes back from the service. Hubs propagate this message as-is&lt;br /&gt;
towards the service bot, not unlike PRIVMSG.&lt;br /&gt;
&lt;br /&gt;
Auth reply:&lt;br /&gt;
&amp;lt;bot's server numeric&amp;gt; AC &amp;lt;client's server numeric&amp;gt; A|D &amp;lt;request-id&amp;gt;&lt;br /&gt;
Service bots send this in reply to an 'auth check' message from a server.&lt;br /&gt;
&amp;quot;A&amp;quot; stands for &amp;quot;accepted&amp;quot;, &amp;quot;D&amp;quot; for &amp;quot;denied&amp;quot;. Again, hubs will have&lt;br /&gt;
to proagate this message back to the client's server.&lt;br /&gt;
&lt;br /&gt;
Remote auth:&lt;br /&gt;
&amp;lt;bot's server numeric&amp;gt; AC &amp;lt;client numeric&amp;gt; R &amp;lt;account&amp;gt; [&amp;lt;timestamp&amp;gt;]&lt;br /&gt;
This is the current message used by service bots to announce the network&lt;br /&gt;
that a user has logged in. The old format is still supported:&lt;br /&gt;
&amp;lt;bot's server numeric&amp;gt; AC &amp;lt;client numeric&amp;gt; &amp;lt;account&amp;gt; [&amp;lt;timestamp&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
5. ircu code changes&lt;br /&gt;
~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
A new feature, FEAT_LOGIN_ON_CONNECT (default FALSE) will specify whether&lt;br /&gt;
ircu will honour the login scheme as specified above for the PASS command.&lt;br /&gt;
ircu will route ACCOUNT messages anyway, regardless of this feature's value.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</description>
			<pubDate>Fri, 25 Apr 2008 03:38:50 GMT</pubDate>			<dc:creator>Secretagent</dc:creator>			<comments>http://wiki.darenet.org/Talk:IRCU_readme.login-on-connect</comments>		</item>
	</channel>
</rss>