Created
September 28, 2021 21:54
-
-
Save nillkitty/1db2ad2ee6d97da353225c1688b38954 to your computer and use it in GitHub Desktop.
IRC - GhostX option - 2007
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The following is an excerpt from the FAQ for devil IRCd which was never released: | |
What is ghostx and why am i getting messages in my channels telling me users are dropping? | |
GHOSTX is a technology that gives a grace period to users that disconnect immaturely | |
(e.g. not with /quit). Users that quit are given up to ping_frequency seconds (for | |
their class) to reconnect to any server with the same nickname and IP. If a client | |
connects to any server on the network with the same IP and the same nickname, they will | |
resume exactly where they left off, in all of their channels, with all their modes, etc. | |
There are several 'etc' options that conigure this: | |
<ghostx /> If this is present GHOSTX will be on. Otherwise disconnected users | |
will quit immediately. | |
<ghostxmsg /> If this is present, channels will notify users that a user has | |
disconnected and for what reason the second they disconnect. If | |
this is not present, users will need to /whois or /msg a user to find | |
out that they have dropped. | |
<gxclass>...</gxlass> | |
This is required and specifies the name of a class that users from | |
OTHER servers will be sorted into if they reconnect to this server | |
(since classes are not global). | |
Note that if a special user such as an oper or something connects to | |
a different server using GHOSTX, they will lose their special opers class. | |
<gxworkaround /> | |
This should only be used for testing and should be turned off on | |
actual networks. If present the server sees "127.0.0.1" as being equal | |
to all IP addresses, since a user IRCing from localhost to their local | |
server will not be able to connect as 127.0.0.1 when they reconnect | |
to a server running elsewhere. | |
So you're telling me if ghostx is on, users can disconnect and reconnect anywhere without | |
quitting or losing their modes and channels? | |
Yes. But they need to *disconnect* NOT quit. Some clients will not disconnect without | |
quitting unless you kill their process. This does NOT affect server-initiated disconnects | |
such as Ping Timeout, Kills, Bans, etc. If a user pings out, they ping out. In order | |
for a user to drop without quitting they need to either send a TCP graceful disconnect | |
(FIN packet or socket EOF of whatever you like to call it), or disconnect with a read | |
or write error (e.g. Connection reset by peer). /QUIT /KILL or any server-initiated | |
closing will remove the user immediately. | |
How long does a user stay in the offline state and how can i tell which users are offline? | |
A user stays in the offline state until either they reconnect or until it comes time | |
for the server to PING them. If the server goes to send a PING to a client that is | |
offline, they will quit with a special quit message as in the following examples: | |
*** bob (bbarker@cbs.com) has quit IRC (Client exited 54secs ago) | |
*** bob (bbarker@cbs.com) has quit IRC (10054: Connection reset by peer 1min 28secs ago) | |
You can tell a user is offline because: | |
1. If you /whois them, their servername will be "*" and the server description will | |
be the reason they are offline. | |
2. If you /who them, their servername will be "*" and their flags field will contain | |
"X" (offline) and "G" (gone). | |
3. If you /msg or /invite them, you'll recieve a RPL_AWAY message with the reason | |
they are offline. | |
And what about channelmode "f"? | |
When a channel has mode "f", it cannot contain offline users. If a user drops while | |
in one of these channels, they'll part the channel and must rejoin the channel if they | |
reconnect. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment