diff options
Diffstat (limited to 'ipc.c')
-rw-r--r-- | ipc.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -316,6 +316,12 @@ static void ipc_child_cmd_takeover( irc_t *irc, char **cmd ) else if( strcmp( cmd[1], "INIT" ) == 0 ) { /* Master->New connection */ + if( !set_getbool( &irc->b->set, "allow_takeover" ) ) + { + ipc_child_cmd_takeover_no( irc ); + return; + } + /* Offer to take over the old session, unless for some reason we're already logging into IM connections. */ if( irc->login_source_id != -1 ) @@ -335,7 +341,8 @@ static void ipc_child_cmd_takeover( irc_t *irc, char **cmd ) if( irc->password && cmd[2] && cmd[3] && ipc_child_recv_fd != -1 && strcmp( irc->user->nick, cmd[2] ) == 0 && - strcmp( irc->password, cmd[3] ) == 0 ) + strcmp( irc->password, cmd[3] ) == 0 && + set_getbool( &irc->b->set, "allow_takeover" ) ) { irc_switch_fd( irc, ipc_child_recv_fd ); irc_sync( irc ); @@ -463,7 +470,9 @@ gboolean ipc_child_identify( irc_t *irc ) strcmp( irc->password, old->password ) == 0 ) break; } - if( l == NULL ) + if( l == NULL || + !set_getbool( &irc->b->set, "allow_takeover" ) || + !set_getbool( &old->b->set, "allow_takeover" ) ) return FALSE; ipc_child_cmd_takeover( irc, to_init ); |