irssi-import / bugs.irssi.org

bugs.irssi.org archive
https://github.com/irssi/irssi/issues
0 stars 0 forks source link

alternate_nick to null at connect. #473

Open irssibot opened 17 years ago

irssibot commented 17 years ago

In "irc/core/irc-nicklist.c" Function: event_nick_in_use

The value server->connrec->alternate_nick is set to NULL when you set the alternate_nick in irssi an saved the changes.

Example: I have a network configured in chatnets with a nickname and some servers: hispano = {type ="IRC"; nick ="anick:password";};

When I connect with: irssi -c hispano, if the nick is in use, it doesn't try the alternate_nick. I checked this using a fprintf in the function "event_nick_in_use":

fprintf(stderr,"server->nick = %s\nserver->connrec->nick = %s\nserver->connrec->alternate_nick=%s\n", server->nick, server->connrec->nick, server->connrec->alternate_nick); / nick already in use - need to change it .. / .....

And I got this: server->nick = anick:apassword server->connrec->nick = anick:apassword server->connrec->alternate_nick=(null)

But in the configuration it's not null: 18:21 [server] 18:21 alternate_nick = rolf2

I'm trying to track down the where that structure is filled, but my knowledge of the source code is limited and I'm going very slow.

Also the behaviour in irssi-svn is the same.

Thank you for your time.

irssibot commented 17 years ago

More information.

I've been tracing the variable through these functions, and the value is lost in function get_server_connect.

[create_addr_conn] conn: 0x1246fe0 [sig_server_setup_fill] conn - 0x1246fe0 [sig_server_setup_fill] alternate_nick = rolf2 (0x1246fd0) [get_server_connect] conn: 0x1246fe0 [get_server_connect] alternate_nick = "rolf2" (0x1246fd0) [get_server_connect] alternate_nick = "" (0x1246fd0) [cmd_connect] conn: 0x1246fe0 [cmd_connect] alternate_nick = "" (0x1246fd0) [irc_server_init_connect] conn: 0x1246fe0 [irc_server_init_connect] alternate_nick: (null)

Exactly when it returns from cmd_params_free(free_arg); just before returning (at the end).

Now I'm a bit lost in the code. I'll try to give more information.

irssibot commented 17 years ago

(2nd try with this post)

I found the... "problem"?

After cleaning some errors in my debug code (pointers, as always).

File: irc/core/irc-servers-setup.c Function: sig_server_setup_fill_chatnet Code: if (ircnet->nick != NULL) g_free_and_null(conn->alternate_nick);

If you do that... when connecting we don't have an alternate nickname...