Implemented initial support for zombie mode by Jan Krüger <jk@jk.gs>
authorpk910 <philipp@zoelle1.de>
Fri, 11 May 2012 01:55:33 +0000 (03:55 +0200)
committerpk910 <philipp@zoelle1.de>
Fri, 11 May 2012 01:59:50 +0000 (03:59 +0200)
commit5fc729d47823a57c8e6e0e3b078522eccd120ca7
tree24d14836edd04eb8ba2d2e14255588bae40ba81e
parent98c74ba6a77e8f110f03252eead8cd37e7ecc83e
Implemented initial support for zombie mode by Jan Krüger <jk@jk.gs>

This allows users to regain their status on the network after a ping
timeout. When a user pings out, the client structure is marked as a
zombie (FLAG_NOTCONN). Now the user has 15 minutes to reattach to that
client structure, using a separate Login on Connect feature.

When a user turns into a zombie, a ZO token is sent across the network;
the zombie status is reported in net bursts as the +Z umode.

> YY ZO YYXXX

When a user re-attaches, he regains all previous state information
(except oper privileges which are cleared), but retains his current
numnick.

> ZZ ZU ZZQQQ YYXXX

Here, ZZQQQ takes over all the state information of YYXXX.

Zombie mode is designed to be completely transparent to other users in
the sense that the user's disappearance should not be noticeable. The
current implementation silently drops all messages addressed to the
zombie in order to achieve this.
15 files changed:
include/client.h
include/handlers.h
include/msg.h
include/s_bsd.h
include/s_misc.h
include/s_user.h
ircd/Makefile.in
ircd/ircd.c
ircd/m_unzombie.c [new file with mode: 0644]
ircd/m_zombie.c [new file with mode: 0644]
ircd/parse.c
ircd/s_bsd.c
ircd/s_misc.c
ircd/s_user.c
ircd/send.c