raoergsls / miranda

Automatically exported from code.google.com/p/miranda
0 stars 1 forks source link

IRC channels displayed as offline when joined using bouncer #1182

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Miranda Version                  : 0.911
Unicode Build                    : Yes
Test Build # (if applicable)     :
Plugin Version # (if applicable) : 0.9.11.2

What steps will reproduce the problem?
When using an IRC bouncer which automatically makes you join the channels 
configured and connection to WAN is lost (due to redial or IM crash) Miranda 
tries to reconnect immediatel but this results into the channel (where joined 
to previously) being displayed as offline in the contact list, while the server 
status window still says that "you have joined channel #xyz".

What is the expected result?

The channel should be marked as online so double-clicking would open it.

What happens instead?

The channel is displayed as offline so I won't be able to rejoin (even when the 
server status window reports successfull joins).

Please attach or post your VersionInfo.
See attachment...

Other Resources:
Attach a Network Log:  http://miranda.pastebin.ca/2002952

Original issue reported on code.google.com by netc...@email.ru on 26 Nov 2010 at 3:07

Attachments:

GoogleCodeExporter commented 9 years ago
Can you confirm this without any 3rd party plugins please, especially 
metacontacts. Thanks.

Original comment by sami%mir...@gtempaccount.com on 26 Nov 2010 at 8:12

GoogleCodeExporter commented 9 years ago
Will do and post results when the error occours again.

Original comment by netc...@email.ru on 26 Nov 2010 at 8:14

GoogleCodeExporter commented 9 years ago
Confirmed without any 3rd party plugins except modern contact list.

Original comment by netc...@email.ru on 1 Dec 2010 at 1:14

GoogleCodeExporter commented 9 years ago
You have multiple accounts trying to listen on port 113, this not going to 
work, only 1 account can listen on any given port. 

Original comment by borkra on 1 Dec 2010 at 6:08

GoogleCodeExporter commented 9 years ago
@borka

If that's the case how come my connections work when I part the channel, delete 
it from my contact list and rejoin it again? Using ident on port 113 is only 
used when conencting to a network but using part and join won't require such an 
auth-mechanism so it's not about port 113. I also have enabled "only use when 
connecting" and the problem won't be solved just by reconnecting to gamesurge 
network. Only the above procedure (part/delete/rejoin) will work. Also, you can 
send multiple packets with different destinations through a single port. 
Otherwise, you won't be able to download a file and browse the internet at the 
same time. That's where SYN, ACK and the TCP sequence numbers are used for.

Original comment by netc...@email.ru on 1 Dec 2010 at 2:37

GoogleCodeExporter commented 9 years ago
PS: I think it's because the bouncer acts in a different way delivering joined 
channels to the client, since this is normally done by using perform-commands 
within Miranda - but a bouncer makes you join automatically (which is normal 
for such a feature).

Original comment by netc...@email.ru on 1 Dec 2010 at 2:40

GoogleCodeExporter commented 9 years ago
Well, 

1. You are mixing up port on server side with port on client side. Port on 
client side is always different, port on server side is the same, but they are 
different servers. Servers can share port if they are designed to do that, 
Miranda IRC is not. It have to be one account - one port. 

2. If you have issued any commands, how would Miranda would know that you 
joined a channel? Psychic powers?

Original comment by borkra on 1 Dec 2010 at 6:52

GoogleCodeExporter commented 9 years ago
borka, I really appreciate your help but it also happens without ident 
activated within Miranda. Mirc for example could handle this using the same 
port for different networks. SO it's not about port failure. Otherwise, I even 
wouldn't be able to connect to the gamesurge network at all if ident fails. 
Ident is always checked BEFORE any channel can be joined (hence the name 
identIFICATION). Since the server window outputs a successfull connection 
procedure and saying "you have joined  #xyz" Miranda obviously knows I HAVE 
joined a channel. Sure, you only can send packets to port 113 within a single 
connection but opening port to first network -> ident -> close -> open port to 
secondary network -> auth -> and so on... is possible. Hence my http-download 
example, which also works by connecting to two different http-daemons on port 
80 - the connection to port 80 is initialized by the client, otherwise NAT 
would deny any download-data sent by the webserver. Back to topic: As I said, 
mirc can handle this, so can miranda with 2 different networks (freenode and 
ustream) but gamesurge fails. So it's really not about ident port 113. 
Otherwise it wouldn't work for a second network either.

Original comment by netc...@email.ru on 1 Dec 2010 at 7:13

GoogleCodeExporter commented 9 years ago
> Hence my http-download example, which also works by connecting to two 
different http-> daemons on port 80 - the connection to port 80 is initialized 
by the client, 
> otherwise NAT would deny any download-data sent by the webserver.

Yes this is connecting "to" port 80 not connecting "from" port 80. From port 
(local port) is different in this case. In ident case Miranda is a server, thus 
only one client (account) allowed to listen on any port.

Again you mixing up port on the remote computer with port on local computer. 
Any TCP connection involves 2 ports local port and remote port. Usually only 
server port matters, thus when casually talking about TCP connection, one 
refers only to server port, ignoring the client port, which is technically not 
correct and in some cases will result in issues.

Original comment by borkra on 1 Dec 2010 at 8:16

GoogleCodeExporter commented 9 years ago
OK, now I got it, sorry mate. Ident is LISTENING for an irc server REQUESTING 
an ident packet, right? Well, even if that's the case, as I said, the problem 
also occours whether ident server is active on any Miranda IRC connection or 
not. Also, there are 2 different networks which work perfectly with or without 
ident. I think it's just about the way gamesurge acts when conneting to it. If 
all that happens without ident I think we could (and should) now stop thinking 
about port trouble. It's really not the case...

Original comment by netc...@email.ru on 1 Dec 2010 at 8:26

GoogleCodeExporter commented 9 years ago
PS: Also as I stated, Miranda CAN connect to gamesurge and join the specified 
channel. So it's all about one difference: A channel which I (regarding the 
serverlog output) have joined to and a contact list still showing the channel 
as offline. You see that difference? It's just about the contact list not 
recognizing Mirandas OWN connection status.

Original comment by netc...@email.ru on 1 Dec 2010 at 8:28

GoogleCodeExporter commented 9 years ago

Original comment by borkra on 2 Dec 2010 at 3:26

GoogleCodeExporter commented 9 years ago
BTW: Anyone could reproduce the problem by getting a free bouncer at rdlbnc.com 
and try using gamesurge and Miranda...

Original comment by netc...@email.ru on 2 Dec 2010 at 8:19

GoogleCodeExporter commented 9 years ago
Happend today again and here's what my serverlog says: 
http://miranda.pastebin.com/MNMYcr1v

Original comment by netc...@email.ru on 2 Dec 2010 at 8:25

GoogleCodeExporter commented 9 years ago
Try disabling IRC built-in reconnect and use KeepStatus, this should fix your 
problem.

Original comment by borkra on 3 Dec 2010 at 7:22

GoogleCodeExporter commented 9 years ago
I'll try and report...

Original comment by netc...@email.ru on 5 Dec 2010 at 12:38