passthrough upstream disconnections instead of intermediary-reconnecting
--HG-- branch : nmdc-ircfrontend
This commit is contained in:
parent
928a5c7324
commit
e2c2953fc5
29
COMPATIBILITY.txt
Normal file
29
COMPATIBILITY.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
Everything works:
|
||||||
|
Hexchat
|
||||||
|
Mango IRC (ads)
|
||||||
|
AndroIRC (ads)
|
||||||
|
Mutter
|
||||||
|
Weechat
|
||||||
|
|
||||||
|
Usable, with bugs:
|
||||||
|
AndChat
|
||||||
|
- duplicate usernames appearing. possibly an upstream bug https://github.com/znc/znc/issues/424
|
||||||
|
Irssi
|
||||||
|
- critical nicklist_set_host: assertion 'host != NULL' failed
|
||||||
|
- still occurs even without blank nicks in room privmsgs
|
||||||
|
|
||||||
|
Unusable:
|
||||||
|
Lite IRC (ads)
|
||||||
|
- sends USER /then/ NICK instead of the other way around, handshake fails
|
||||||
|
2016/05/07 22:57:04 <<< :nmdc-ircfrontend 375 :- Message of the day -
|
||||||
|
2016/05/07 22:57:04 <<< :nmdc-ircfrontend 372 :- Connected to nmdc-ircfrontend. You /must/ join #chat to continue.
|
||||||
|
2016/05/07 22:57:04 <<< :nmdc-ircfrontend 376 :- End of MOTD
|
||||||
|
2016/05/07 22:57:04 >>> 'USER' [pineapple420 0 * :first last]
|
||||||
|
2016/05/07 22:57:04 <<< :Your nickname is already being used KILL A
|
||||||
|
2016/05/07 22:57:04 >>> 'NICK' [pineapple420]
|
||||||
|
2016/05/07 22:57:04 Broken loop.
|
||||||
|
Yaaic/Atomic
|
||||||
|
- doesn't properly understand/parse the room join
|
||||||
|
Atomic
|
||||||
|
- crashes if a blank nick is used for room privmsgs (but PtokaX is fine)
|
44
TODO.txt
44
TODO.txt
@ -1,46 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
COMPATIBILITY
|
|
||||||
=============
|
|
||||||
|
|
||||||
Everything works:
|
|
||||||
Hexchat
|
|
||||||
Mango IRC (ads)
|
|
||||||
AndroIRC (ads)
|
|
||||||
Mutter
|
|
||||||
Weechat
|
|
||||||
|
|
||||||
Usable, with bugs:
|
|
||||||
AndChat
|
|
||||||
- duplicate usernames appearing. possibly an upstream bug https://github.com/znc/znc/issues/424
|
|
||||||
Irssi
|
|
||||||
- critical nicklist_set_host: assertion 'host != NULL' failed
|
|
||||||
- still occurs even without blank nicks in room privmsgs
|
|
||||||
|
|
||||||
Unusable:
|
|
||||||
Lite IRC (ads)
|
|
||||||
- sends USER /then/ NICK instead of the other way around, handshake fails
|
|
||||||
2016/05/07 22:57:04 <<< :nmdc-ircfrontend 375 :- Message of the day -
|
|
||||||
2016/05/07 22:57:04 <<< :nmdc-ircfrontend 372 :- Connected to nmdc-ircfrontend. You /must/ join #chat to continue.
|
|
||||||
2016/05/07 22:57:04 <<< :nmdc-ircfrontend 376 :- End of MOTD
|
|
||||||
2016/05/07 22:57:04 >>> 'USER' [pineapple420 0 * :first last]
|
|
||||||
2016/05/07 22:57:04 <<< :Your nickname is already being used KILL A
|
|
||||||
2016/05/07 22:57:04 >>> 'NICK' [pineapple420]
|
|
||||||
2016/05/07 22:57:04 Broken loop.
|
|
||||||
Yaaic/Atomic
|
|
||||||
- doesn't properly understand/parse the room join
|
|
||||||
Atomic
|
|
||||||
- crashes if a blank nick is used for room privmsgs (but PtokaX is fine)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PRE-RELEASE
|
PRE-RELEASE
|
||||||
===========
|
===========
|
||||||
|
|
||||||
- part all nicks upon upstream server disconnection
|
|
||||||
|
|
||||||
- test the current password auth
|
|
||||||
|
|
||||||
- detect our own /me messages + don't echo back
|
- detect our own /me messages + don't echo back
|
||||||
|
|
||||||
- threadsafe access to libnmdc hub options
|
- threadsafe access to libnmdc hub options
|
||||||
@ -49,6 +10,9 @@ PRE-RELEASE
|
|||||||
|
|
||||||
- expose upstream op status
|
- expose upstream op status
|
||||||
|
|
||||||
|
- remove color code escape sequences
|
||||||
|
|
||||||
|
---- libnmdc no alert on bad nick
|
||||||
|
|
||||||
|
|
||||||
WISHLIST
|
WISHLIST
|
||||||
@ -72,8 +36,6 @@ WISHLIST
|
|||||||
|
|
||||||
- support SASL PLAIN authentication as well as just classic PASS
|
- support SASL PLAIN authentication as well as just classic PASS
|
||||||
|
|
||||||
- remove color code escape sequences
|
|
||||||
|
|
||||||
- KILL messages not being exposed in client(?)
|
- KILL messages not being exposed in client(?)
|
||||||
2016/05/07 22:51:33 <<< :Your nickname is already being used KILL A
|
2016/05/07 22:51:33 <<< :Your nickname is already being used KILL A
|
||||||
|
|
||||||
|
@ -62,8 +62,9 @@ func NewServer(name string, upstream libnmdc.HubAddress, conn net.Conn) *Server
|
|||||||
clientState: CSUnregistered,
|
clientState: CSUnregistered,
|
||||||
motd: "Connected to " + name + ". You /must/ join " + BLESSED_CHANNEL + " to continue.",
|
motd: "Connected to " + name + ". You /must/ join " + BLESSED_CHANNEL + " to continue.",
|
||||||
upstreamLauncher: libnmdc.HubConnectionOptions{
|
upstreamLauncher: libnmdc.HubConnectionOptions{
|
||||||
Address: upstream,
|
Address: upstream,
|
||||||
Self: *self,
|
Self: *self,
|
||||||
|
SkipAutoReconnect: true,
|
||||||
},
|
},
|
||||||
upstreamCloser: make(chan struct{}, 1),
|
upstreamCloser: make(chan struct{}, 1),
|
||||||
}
|
}
|
||||||
@ -170,6 +171,10 @@ func (s *Server) upstreamWorker() {
|
|||||||
if hubEvent.StateChange == libnmdc.CONNECTIONSTATE_CONNECTED {
|
if hubEvent.StateChange == libnmdc.CONNECTIONSTATE_CONNECTED {
|
||||||
s.sendNames() // delay doing this until now
|
s.sendNames() // delay doing this until now
|
||||||
}
|
}
|
||||||
|
if hubEvent.StateChange == libnmdc.CONNECTIONSTATE_DISCONNECTED {
|
||||||
|
// Abandon thread. Don't try to autoreconnect at our level, the remote client can be responsible for that
|
||||||
|
s.DisconnectClient()
|
||||||
|
}
|
||||||
|
|
||||||
case libnmdc.EVENT_HUBNAME_CHANGED:
|
case libnmdc.EVENT_HUBNAME_CHANGED:
|
||||||
s.sendChannelTopic(hubEvent.Nick)
|
s.sendChannelTopic(hubEvent.Nick)
|
||||||
|
Loading…
Reference in New Issue
Block a user