/[svn]/ircd-hybrid-8/doc/technical/Persistent_Clients.txt
ViewVC logotype

Contents of /ircd-hybrid-8/doc/technical/Persistent_Clients.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1156 - (show annotations)
Tue Aug 9 20:29:20 2011 UTC (9 years, 1 month ago) by michael
File MIME type: text/plain
File size: 3608 byte(s)
- create ircd-hybrid-8 "branch"

1 Persistent Clients
2 ==================
3 (Ideas by Dianora and madmax and many others.; initial spec by Dianora)
4
5 Background: This idea has been going around for a while, I think I
6 first described it to bleep of Undernet over a year ago,
7 and it made it in an edited irc log form to coder-com
8 on Undernet. I'd have to look.
9
10 Basic idea: Clients really don't need to "quit" when the user using
11 using that client /quit's or the client gets DDoS'ed off.
12 Rather, that client can be marked as "suspended" waiting
13 for an active person to reconnect to the client making
14 it active again.
15
16 What this means is, a client has the option of staying alive
17 even if the controlling connection has died.
18
19 To work ircd would need the following commands added:
20
21 1) /cookie
22
23 To resume a suspended client, an user must have an unique client id
24 and password to resume the client later. The cookie command would
25 return a numeric (TBD) that would give both the UID and password
26 for that client. This could be cut and pasted into a buffer for later
27 resume, or captured by a simple script.
28
29 To work effectively, EFnet must implement unique client id's. This
30 could be based on orabidoo's TS4 code.
31
32 2) /suspend
33
34 An user can suspend their client for later reconnection at any
35 time, using the suspend command.
36
37 3) /resume uid cookie
38
39 Any user who has become disconnected or has voluntarily suspended
40 from their active client can resume that client by registering to the
41 ircd in the normal user/nick way, then issuing a /resume uid cookie command.
42 Their session then becomes attached to the client sitting in all the
43 channels with all their modes restored.
44
45
46 Unfortunately occasional oper intervention will be necessary using
47 the following commands.
48
49 4) /destroy uid|channel
50
51 Any client uid matching that uid can be destroyed from the network. This
52 is a form of old style /kill but it also destroys the uid and cookie pair.
53 (TBD)
54
55 A channel name if given instead, will result in all members of the channel
56 being tossed out, and apparently kicked by themselves. (chanop hiding
57 in h7) The channel will then be marked as "juped" for a period of 1
58 minute. First come, first serve just like old style EFnet.
59
60 5) /setpass uid
61
62 A client after successfully proven their ownership can have their
63 cookie password reset.
64
65 1.1
66
67 The TS NICK command as described in orabidoo's TSora paper is rather
68 overloaded as it is for adding an unique UID to each nick. It is proposed
69 to add a new UID command that would result in NICK being deprecated.
70 It would also add the capability "UID" to the servers capability list.
71
72 The format would take this form.
73
74 :%s UID uid_string nick UID hopcount nick_creation umodes username
75 host server :gecos
76
77 The observant will note this is the old NICK command with an
78 additional parameter added "uid_string."
79
80 1.2
81
82 With an UID, there is no reason to nick collide, the client is now
83 uniquely identified by the UID not the nick. When a nick collide happens,
84 the client still maintains any chanop status it had, and is marked
85 as suspended.
86
87 1.3
88
89 User disconnection due to DDoS or phone line hang ups results in the
90 client being marked as suspended.
91
92 1.4
93
94 Client expiries would take place on a 24 hour basis. If you do not
95 resume every 24 hours, you lose the client.
96
97 1.5
98
99 To cut down on abuse, a client may not register more than one suspended
100 client per user@host.
101
102 TBD. What to do if a dronebot net is programmed to /suspend as many
103 as possible, in order to eat up memory in a DDoS attempt.
104
105 $Id$

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision

svnadmin@ircd-hybrid.org
ViewVC Help
Powered by ViewVC 1.1.28