X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Firc-server.c;h=d605745c75d37655aeae29c57d73acf31c76ceb6;hb=23b07bdf50ef5cc7b57c057b6088e4f5e4d7d6da;hp=2ce4fadd8ef8430a45155e824ebbeec501a6717a;hpb=7b01bb833f5bc3386611dc0c015a99c236e941f6;p=ngircd-alex.git diff --git a/src/ngircd/irc-server.c b/src/ngircd/irc-server.c index 2ce4fadd..d605745c 100644 --- a/src/ngircd/irc-server.c +++ b/src/ngircd/irc-server.c @@ -54,7 +54,7 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) CLIENT *from, *c; int i; CONN_ID con; - + assert( Client != NULL ); assert( Req != NULL ); @@ -80,14 +80,15 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) Conn_Close( Client_Conn( Client ), NULL, "Server not configured here", true); return DISCONNECTED; } - if( strcmp( Client_Password( Client ), Conf_Server[i].pwd_in ) != 0 ) + if( strcmp( Conn_Password( Client_Conn( Client ) ), + Conf_Server[i].pwd_in ) != 0 ) { /* wrong password */ Log( LOG_ERR, "Connection %d: Got bad password from server \"%s\"!", Client_Conn( Client ), Req->argv[0] ); Conn_Close( Client_Conn( Client ), NULL, "Bad password", true); return DISCONNECTED; } - + /* Is there a registered server with this ID? */ if( ! Client_CheckID( Client, Req->argv[0] )) return DISCONNECTED; @@ -205,7 +206,7 @@ IRC_NJOIN( CLIENT *Client, REQUEST *Req ) bool is_owner, is_chanadmin, is_op, is_halfop, is_voiced; CHANNEL *chan; CLIENT *c; - + assert( Client != NULL ); assert( Req != NULL ); @@ -218,12 +219,12 @@ IRC_NJOIN( CLIENT *Client, REQUEST *Req ) ptr = strtok( nick_in, "," ); while( ptr ) { - is_op = is_voiced = false; - + is_owner = is_chanadmin = is_op = is_halfop = is_voiced = false; + /* cut off prefixes */ while(( *ptr == '~') || ( *ptr == '&' ) || ( *ptr == '@' ) || ( *ptr == '%') || ( *ptr == '+' )) - { + { if( *ptr == '~' ) is_owner = true; if( *ptr == '&' ) is_chanadmin = true; if( *ptr == '@' ) is_op = true; @@ -238,7 +239,7 @@ IRC_NJOIN( CLIENT *Client, REQUEST *Req ) Channel_Join( c, channame ); chan = Channel_Search( channame ); assert( chan != NULL ); - + if( is_owner ) Channel_UserModeAdd( chan, c, 'q' ); if( is_chanadmin ) Channel_UserModeAdd( chan, c, 'a' ); if( is_op ) Channel_UserModeAdd( chan, c, 'o' ); @@ -265,7 +266,7 @@ IRC_NJOIN( CLIENT *Client, REQUEST *Req ) strlcat( nick_out, ptr, sizeof( nick_out )); } else Log( LOG_ERR, "Got NJOIN for unknown nick \"%s\" for channel \"%s\"!", ptr, channame ); - + /* search for next Nick */ ptr = strtok( NULL, "," ); }