1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 3.2//EN">
4 <TITLE> [IRCServices] ircservices
5.1.11 RFC
1459 protocol module broken?
6 <LINK REL=
"Index" HREF=
"index.html" >
7 <LINK REL=
"made" HREF=
"mailto:ircservices%40ircservices.za.net?Subject=%5BIRCServices%5D%20ircservices%205.1.11%20RFC%201459%20protocol%20module%0A%09broken%3F&In-Reply-To=FD68DED0-3656-4099-AACC-AF25241FE1C5%40barton.de">
8 <META NAME=
"robots" CONTENT=
"index,nofollow">
9 <META http-equiv=
"Content-Type" content=
"text/html; charset=us-ascii">
10 <LINK REL=
"Previous" HREF=
"005654.html">
11 <LINK REL=
"Next" HREF=
"005656.html">
13 <BODY BGCOLOR=
"#ffffff">
14 <H1>[IRCServices] ircservices
5.1.11 RFC
1459 protocol module broken?
</H1>
16 <A HREF=
"mailto:ircservices%40ircservices.za.net?Subject=%5BIRCServices%5D%20ircservices%205.1.11%20RFC%201459%20protocol%20module%0A%09broken%3F&In-Reply-To=FD68DED0-3656-4099-AACC-AF25241FE1C5%40barton.de"
17 TITLE=
"[IRCServices] ircservices 5.1.11 RFC 1459 protocol module broken?">achurch at achurch.org
19 <I>Sat Nov
8 01:
59:
41 PST
2008</I>
21 <LI>Previous message:
<A HREF=
"005654.html">[IRCServices] ircservices
5.1.11 RFC
1459 protocol module broken?
23 <LI>Next message:
<A HREF=
"005656.html">[IRCServices] Services
5.1.13 released
25 <LI> <B>Messages sorted by:
</B>
26 <a href=
"date.html#5655">[ date ]
</a>
27 <a href=
"thread.html#5655">[ thread ]
</a>
28 <a href=
"subject.html#5655">[ subject ]
</a>
29 <a href=
"author.html#5655">[ author ]
</a>
34 <PRE>Fixed, thanks for the report.
36 As for which protocol is
"most advanced
", it's hard to say; each protocol
37 has its own different set of features. The rfc1459, ts8, dalnet, and
38 undernet-p9 protocols are all archaic at this point, but most of the other
39 protocols supported by Services are reasonably modern and suitable for use.
42 <A HREF=
"http://lists.ircservices.za.net/mailman/listinfo/ircservices">achurch at achurch.org
</A>
43 <A HREF=
"http://achurch.org/">http://achurch.org/
</A>
47 </I>><i>I'm working on getting ngIRCd connected to the ircservices
5.1.11
48 </I>><i>package, at the moment I'm using the RFC
1459 protocol module and
49 </I>><i>enhanced ngIRCd to understand server and user registration according
50 </I>><i>to this older RFC.
52 </I>><i>Thereby I encountered a problem: ircservices all the time answered
53 </I>><i>with the following error message:
55 </I>><i>----------
> cut here
<----------
56 </I>><i>debug: Received: :a.irc.net PASS srvPWD
0210-IRC+ ngircd|dev:CHLZ PZ
57 </I>><i>debug: Received: :a.irc.net SERVER a.irc.net
1 :A Server Info Text
58 </I>><i>debug: Received: NICK test :
1
59 </I>><i>debug: Received: :test USER ~alex localhost a.irc.net :Alex
60 </I>><i>debug: Received: :test MODE test :+w
61 </I>><i>debug: user: MODE +w for nonexistent nick test from test: test +w
62 </I>><i>----------
> cut here
<----------
64 </I>><i>"nonexistent nick test
" ... hm!?
66 </I>><i>Digging through the source code of ircservices, I found the folowing
67 </I>><i>code in modules/protocol/rfc1459.c, line
42 ff.:
69 </I>><i>----------
> cut here
<----------
70 </I>><i>static void m_user(char *source, int ac, char **av)
72 </I>><i> char *new_av[
7];
73 </I>><i> if (ac !=
5)
75 </I>><i>----------
> cut here
<----------
77 </I>><i>So this function checks if the USER command das
5(!) parameters. BUT:
78 </I>><i>according to RFC
1459 the USER command only has
4 parameters, see
79 </I>><i>section
4.1.3:
81 </I>><i>----------
> cut here
<----------
82 </I>><i>4.1.3 User message
84 </I>><i> Command: USER
85 </I>><i> Parameters:
<username
> <hostname
> <servername
> <realname
>
88 </I>><i>----------
> cut here
<----------
90 </I>><i>So the above mentioned test in ircservices always silently failed.
92 </I>><i>Proposed patch:
94 </I>><i>----------
> cut here
<----------
95 </I>><i>--- rfc1459.c.ORIG
2008-
08-
13 21:
28:
33.000000000 +
0200
96 </I>><i>+++ rfc1459.c
2008-
08-
13 21:
27:
51.000000000 +
0200
97 </I>><i>@@ -
43,
8 +
43,
11 @@ static void m_user(char *source, int ac,
99 </I>><i> char *new_av[
7];
101 </I>><i>- if (ac !=
5)
102 </I>><i>+ if (ac !=
4) {
103 </I>><i>+ module_log_debug(
1,
"USER message: wrong number of parameters
"
104 </I>><i>+
" (%d) for source `%s'
", ac, source ?
105 </I>><i>source :
"?
");
108 </I>><i> new_av[
0] = source; /* Nickname */
109 </I>><i> new_av[
1] = (char *)
"0"; /* # of hops (was in NICK command... we
111 </I>><i> new_av[
2] = (char *)
"0"; /* Timestamp */
112 </I>><i>----------
> cut here
<----------
114 </I>><i>Can you tell me if I'm correct? Or do I overlook something?
116 </I>><i>And can you tell me which protocol module is the
"most advanced
" or
117 </I>><i>"best
"?
119 </I>><i>Thanks a lot!
121 </I>><i>------------------------------------------------------------------
122 </I>><i>To unsubscribe or change your subscription options, visit:
123 </I>><i><A HREF=
"http://lists.ircservices.za.net/mailman/listinfo/ircservices">http://lists.ircservices.za.net/mailman/listinfo/ircservices
</A>
133 <LI>Previous message:
<A HREF=
"005654.html">[IRCServices] ircservices
5.1.11 RFC
1459 protocol module broken?
135 <LI>Next message:
<A HREF=
"005656.html">[IRCServices] Services
5.1.13 released
137 <LI> <B>Messages sorted by:
</B>
138 <a href=
"date.html#5655">[ date ]
</a>
139 <a href=
"thread.html#5655">[ thread ]
</a>
140 <a href=
"subject.html#5655">[ subject ]
</a>
141 <a href=
"author.html#5655">[ author ]
</a>