@@ -1402,9 +1402,10 @@ oper_up(struct Client *source_p, struct oper_conf *oper_p)
14021402{
14031403 unsigned int old = source_p -> umodes , oldsnomask = source_p -> snomask , i = 0 ;
14041404 rb_dlink_node * ptr ;
1405+ struct membership * mscptr ;
14051406 struct Channel * chptr ;
1406- unsigned char cmode1 [256 ], cmode2 [256 ];
1407- unsigned char * cmode_ptr = cmode1 ;
1407+ unsigned char cmodes_hidden [256 ], cmodes_send [256 ];
1408+ unsigned char * cmode_ptr = cmodes_hidden ;
14081409
14091410 hook_data_umode_changed hdata ;
14101411
@@ -1484,16 +1485,17 @@ oper_up(struct Client *source_p, struct oper_conf *oper_p)
14841485
14851486 RB_DLINK_FOREACH (ptr , source_p -> user -> channel .head )
14861487 {
1487- chptr = ((struct membership * )ptr -> data )-> chptr ;
1488- cmode_ptr = cmode2 ;
1488+ mscptr = ptr -> data ;
1489+ chptr = mscptr -> chptr ;
1490+ cmode_ptr = cmodes_send ;
14891491
1490- for (i = 0 ; cmode1 [i ]; i ++ )
1491- if (chptr -> mode .mode & chmode_flags [cmode1 [i ]])
1492- * cmode_ptr ++ = cmode1 [i ];
1492+ for (i = 0 ; cmodes_hidden [i ]; i ++ )
1493+ if (chptr -> mode .mode & chmode_flags [cmodes_hidden [i ]])
1494+ * cmode_ptr ++ = cmodes_hidden [i ];
14931495 * cmode_ptr = '\0' ;
14941496
1495- if (* cmode2 )
1496- sendto_one (source_p , ":%s MODE %s +%s" , me .name , chptr -> chname , cmode2 );
1497+ if (cmodes_send [ 0 ] != '\0' )
1498+ sendto_one (source_p , ":%s MODE %s +%s" , me .name , chptr -> chname , cmodes_send );
14971499 }
14981500 }
14991501
0 commit comments