Changeset 3864c08


Ignore:
Timestamp:
2011-10-21T03:00:54Z (8 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
e6b41b1
Parents:
6a45181 (diff), aea22cd (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Big merge from pesco, closing some OTR issues: #759, #824, #839, #830.

Files:
13 edited

Legend:

Unmodified
Added
Removed
  • ipc.c

    r6a45181 r3864c08  
    356356                        irc_switch_fd( irc, ipc_child_recv_fd );
    357357                        irc_sync( irc );
    358                         irc_usermsg( irc, "You've successfully taken over your old session" );
     358                        irc_rootmsg( irc, "You've successfully taken over your old session" );
    359359                        ipc_child_recv_fd = -1;
    360360                       
     
    374374        {
    375375                /* Master->New connection */
    376                 irc_usermsg( irc, "Could not take over old session" );
     376                irc_rootmsg( irc, "Could not take over old session" );
    377377        }
    378378}
     
    412412        /* Drop credentials, we'll shut down soon and shouldn't overwrite
    413413           any settings. */
    414         irc_usermsg( irc, "Trying to take over existing session" );
     414        irc_rootmsg( irc, "Trying to take over existing session" );
    415415       
    416416        irc_desync( irc );
  • irc.c

    r6a45181 r3864c08  
    363363                                        if( irc->status & USTATUS_LOGGED_IN )
    364364                                        {
    365                                                 irc_usermsg( irc, "Error: Charset mismatch detected. The charset "
     365                                                irc_rootmsg( irc, "Error: Charset mismatch detected. The charset "
    366366                                                                  "setting is currently set to %s, so please make "
    367367                                                                  "sure your IRC client will send and accept text in "
     
    767767                        irc->root->last_channel = irc->default_channel;
    768768                       
    769                         irc_usermsg( irc,
     769                        irc_rootmsg( irc,
    770770                                     "Welcome to the BitlBee gateway!\n\n"
    771771                                     "If you've never used BitlBee before, please do read the help "
     
    910910                g_free( test );
    911911                g_iconv_close( oc );
    912                 irc_usermsg( irc, "Unsupported character set: The IRC protocol "
     912                irc_rootmsg( irc, "Unsupported character set: The IRC protocol "
    913913                                  "only supports 8-bit character sets." );
    914914                return NULL;
     
    941941        GSList *l;
    942942       
    943         irc_usermsg( irc, "Setting `%s' is obsolete, use the `show_users' "
     943        irc_rootmsg( irc, "Setting `%s' is obsolete, use the `show_users' "
    944944                     "channel setting instead.", set->key );
    945945       
  • irc.h

    r6a45181 r3864c08  
    317317void irc_send_login( irc_t *irc );
    318318void irc_send_motd( irc_t *irc );
    319 void irc_usermsg( irc_t *irc, char *format, ... );
     319const char *irc_user_msgdest( irc_user_t *iu );
     320void irc_rootmsg( irc_t *irc, char *format, ... );
     321void irc_usermsg( irc_user_t *iu, char *format, ... );
     322void irc_usernotice( irc_user_t *iu, char *format, ... );
    320323void irc_send_join( irc_channel_t *ic, irc_user_t *iu );
    321324void irc_send_part( irc_channel_t *ic, irc_user_t *iu, const char *reason );
  • irc_commands.c

    r6a45181 r3864c08  
    9292                        irc->status &= ~USTATUS_IDENTIFIED;
    9393                        irc_umode_set( irc, "-R", 1 );
    94                         irc_usermsg( irc, "Changing nicks resets your identify status. "
     94                        irc_rootmsg( irc, "Changing nicks resets your identify status. "
    9595                                     "Re-identify or register a new account if you want "
    9696                                     "your configuration to be saved. See \x02help "
     
    433433                        {
    434434                                set_setstr( &a->set, "password", password );
    435                                 irc_usermsg( irc, "Password added to IM account "
     435                                irc_rootmsg( irc, "Password added to IM account "
    436436                                             "%s(%s)", a->prpl->name, a->user );
    437437                                /* The IRC client may expect this. 491 suggests the OPER
  • irc_im.c

    r6a45181 r3864c08  
    197197        irc_t *irc = bee->ui_data;
    198198        irc_user_t *iu = (irc_user_t *) bu->ui_data;
    199         char *dst, *prefix = NULL;
     199        const char *dst;
     200        char *prefix = NULL;
    200201        char *wrapped, *ts = NULL;
    201         irc_channel_t *ic = NULL;
    202202        char *msg = g_strdup( msg_ );
    203203        GSList *l;
     
    206206                ts = irc_format_timestamp( irc, sent_at );
    207207       
    208         /* Too similar to irc_usermsg()... */
    209         if( iu->last_channel )
    210         {
    211                 if( iu->last_channel->flags & IRC_CHANNEL_JOINED )
    212                         ic = iu->last_channel;
    213                 else
    214                         ic = irc_channel_with_user( irc, iu );
    215         }
    216        
    217         if( ic )
    218         {
    219                 dst = ic->name;
     208        dst = irc_user_msgdest( iu );
     209        if( dst != irc->user->nick )
     210        {
     211                /* if not messaging directly, call user by name */
    220212                prefix = g_strdup_printf( "%s%s%s", irc->user->nick, set_getstr( &bee->set, "to_char" ), ts ? : "" );
    221213        }
    222214        else
    223215        {
    224                 dst = irc->user->nick;
    225216                prefix = ts;
    226                 ts = NULL;
     217                ts = NULL;      /* don't double-free */
    227218        }
    228219       
     
    993984        else if( !acc->prpl->chat_join )
    994985        {
    995                 irc_usermsg( ic->irc, "Named chatrooms not supported on that account." );
     986                irc_rootmsg( ic->irc, "Named chatrooms not supported on that account." );
    996987                return SET_INVALID;
    997988        }
  • irc_send.c

    r6a45181 r3864c08  
    110110}
    111111
    112 void irc_usermsg( irc_t *irc, char *format, ... )
    113 {
     112/* Used by some funcs that generate PRIVMSGs to figure out if we're talking to
     113   this person in /query or in a control channel. WARNING: callers rely on
     114   this returning a pointer at irc->user_nick, not a copy of it. */
     115const char *irc_user_msgdest( irc_user_t *iu )
     116{
     117        irc_t *irc = iu->irc;
    114118        irc_channel_t *ic = NULL;
    115         irc_user_t *iu = irc->root;
    116         char text[2048];
    117         va_list params;
    118         char *dst;
    119        
    120         va_start( params, format );
    121         g_vsnprintf( text, sizeof( text ), format, params );
    122         va_end( params );
    123        
    124         /* Too similar to bee_irc_user_msg()... */
     119
    125120        if( iu->last_channel )
    126121        {
     
    128123                        ic = iu->last_channel;
    129124                else
    130                         ic = irc_channel_with_user( irc, irc->root );
     125                        ic = irc_channel_with_user( irc, iu );
    131126        }
    132127       
    133128        if( ic )
    134                 dst = ic->name;
     129                return ic->name;
    135130        else
    136                 dst = irc->user->nick;
    137        
    138         irc_send_msg( irc->root, "PRIVMSG", dst, text, NULL );
     131                return irc->user->nick;
     132}
     133
     134/* cmd = "PRIVMSG" or "NOTICE" */
     135static void irc_usermsg_( const char *cmd, irc_user_t *iu, const char *format, va_list params )
     136{
     137        char text[2048];
     138        const char *dst;
     139       
     140        g_vsnprintf( text, sizeof( text ), format, params );
     141       
     142        dst = irc_user_msgdest( iu );
     143        irc_send_msg( iu, cmd, dst, text, NULL );
     144}
     145
     146void irc_usermsg(irc_user_t *iu, char *format, ... )
     147{
     148        va_list params;
     149        va_start( params, format );
     150        irc_usermsg_( "PRIVMSG", iu, format, params );
     151        va_end( params );
     152}
     153
     154void irc_usernotice(irc_user_t *iu, char *format, ... )
     155{
     156        va_list params;
     157        va_start( params, format );
     158        irc_usermsg_( "NOTICE", iu, format, params );
     159        va_end( params );
     160}
     161
     162void irc_rootmsg( irc_t *irc, char *format, ... )
     163{
     164        va_list params;
     165        va_start( params, format );
     166        irc_usermsg_( "PRIVMSG", irc->root, format, params );
     167        va_end( params );
    139168}
    140169
  • nick.c

    r6a45181 r3864c08  
    243243                        int i;
    244244                       
    245                         irc_usermsg( irc, "Warning: Almost had an infinite loop in nick_get()! "
     245                        irc_rootmsg( irc, "Warning: Almost had an infinite loop in nick_get()! "
    246246                                          "This used to be a fatal BitlBee bug, but we tried to fix it. "
    247247                                          "This message should *never* appear anymore. "
     
    249249                                          "Please send all the following lines in your report:" );
    250250                       
    251                         irc_usermsg( irc, "Trying to get a sane nick for handle %s", bu->handle );
     251                        irc_rootmsg( irc, "Trying to get a sane nick for handle %s", bu->handle );
    252252                        for( i = 0; i < MAX_NICK_LENGTH; i ++ )
    253                                 irc_usermsg( irc, "Char %d: %c/%d", i, nick[i], nick[i] );
    254                        
    255                         irc_usermsg( irc, "FAILED. Returning an insane nick now. Things might break. "
     253                                irc_rootmsg( irc, "Char %d: %c/%d", i, nick[i], nick[i] );
     254                       
     255                        irc_rootmsg( irc, "FAILED. Returning an insane nick now. Things might break. "
    256256                                          "Good luck, and please don't forget to paste the lines up here "
    257257                                          "in #bitlbee on OFTC or in a mail to wilmer@gaast.net" );
  • otr.c

    r6a45181 r3864c08  
    278278        e = otrl_privkey_read(irc->otr->us, s);
    279279        if(e && e!=enoent) {
    280                 irc_usermsg(irc, "otr load: %s: %s", s, gcry_strerror(e));
     280                irc_rootmsg(irc, "otr load: %s: %s", s, gcry_strerror(e));
    281281        }
    282282        g_snprintf(s, 511, "%s%s.otr_fprints", global.conf->configdir, irc->user->nick);
    283283        e = otrl_privkey_read_fingerprints(irc->otr->us, s, NULL, NULL);
    284284        if(e && e!=enoent) {
    285                 irc_usermsg(irc, "otr load: %s: %s", s, gcry_strerror(e));
     285                irc_rootmsg(irc, "otr load: %s: %s", s, gcry_strerror(e));
    286286        }
    287287       
     
    291291        }
    292292        if(kg) {
    293                 irc_usermsg(irc, "Notice: "
     293                irc_rootmsg(irc, "Notice: "
    294294                        "The accounts above do not have OTR encryption keys associated with them, yet. "
    295295                        "These keys are now being generated in the background. "
     
    309309        e = otrl_privkey_write_fingerprints(irc->otr->us, s);
    310310        if(e) {
    311                 irc_usermsg(irc, "otr save: %s: %s", s, gcry_strerror(e));
     311                irc_rootmsg(irc, "otr save: %s: %s", s, gcry_strerror(e));
    312312        }
    313313        chmod(s, 0600);
     
    348348        k = otrl_privkey_find(irc->otr->us, a->user, a->prpl->name);
    349349        if(k) {
    350                 irc_usermsg(irc, "otr: %s/%s ready", a->user, a->prpl->name);
     350                irc_rootmsg(irc, "otr: %s/%s ready", a->user, a->prpl->name);
    351351                return 0;
    352352        } if(keygen_in_progress(irc, a->user, a->prpl->name)) {
    353                 irc_usermsg(irc, "otr: keygen for %s/%s already in progress", a->user, a->prpl->name);
     353                irc_rootmsg(irc, "otr: keygen for %s/%s already in progress", a->user, a->prpl->name);
    354354                return 0;
    355355        } else {
    356                 irc_usermsg(irc, "otr: starting background keygen for %s/%s", a->user, a->prpl->name);
     356                irc_rootmsg(irc, "otr: starting background keygen for %s/%s", a->user, a->prpl->name);
    357357                otr_keygen(irc, a->user, a->prpl->name);
    358358                return 1;
     
    365365        char *newmsg = NULL;
    366366        OtrlTLV *tlvs = NULL;
    367         char *colormsg;
    368367        irc_t *irc = iu->irc;
    369368        struct im_connection *ic = iu->bu->ic;
     
    385384        } else if(!newmsg) {
    386385                /* this was a non-OTR message */
    387                 return g_strdup(msg);
     386                return msg;
    388387        } else {
    389388                /* OTR has processed this message */
    390389                ConnContext *context = otrl_context_find(irc->otr->us, iu->bu->handle,
    391390                        ic->acc->user, ic->acc->prpl->name, 0, NULL, NULL, NULL);
     391
     392                /* we're done with the original msg, which will be caller-freed. */
     393                /* NB: must not change the newmsg pointer, since we free it. */
     394                msg = newmsg;
    392395
    393396                if(context && context->msgstate == OTRL_MSGSTATE_ENCRYPTED) {
     
    397400                           !(ic->flags & OPT_DOES_HTML) &&
    398401                           set_getbool(&ic->bee->set, "strip_html")) {
    399                                 strip_html(newmsg);
     402                                strip_html(msg);
    400403                        }
    401404
    402405                        /* coloring */
    403406                        if(set_getbool(&ic->bee->set, "otr_color_encrypted")) {
    404                                 /* color according to f'print trust */
    405                                 int color;
     407                                int color;                /* color according to f'print trust */
     408                                char *pre="", *sep="";    /* optional parts */
    406409                                const char *trust = context->active_fingerprint->trust;
     410
    407411                                if(trust && trust[0] != '\0')
    408412                                        color=3;   /* green */
     
    410414                                        color=5;   /* red */
    411415
    412                                 if(newmsg[0] == ',') {
    413                                         /* could be a problem with the color code */
    414                                         /* insert a space between color spec and message */
    415                                         colormsg = g_strdup_printf("\x03%.2d %s\x0F", color, newmsg);
    416                                 } else {
    417                                         colormsg = g_strdup_printf("\x03%.2d%s\x0F", color, newmsg);
     416                                /* in a query window, keep "/me " uncolored at the beginning */
     417                                if(g_strncasecmp(msg, "/me ", 4) == 0
     418                                   && irc_user_msgdest(iu) == irc->user->nick) {
     419                                        msg += 4;  /* skip */
     420                                        pre = "/me ";
    418421                                }
     422
     423                                /* comma in first place could mess with the color code */
     424                                if(msg[0] == ',') {
     425                                    /* insert a space between color spec and message */
     426                                    sep = " ";
     427                                }
     428
     429                                msg = g_strdup_printf("%s\x03%.2d%s%s\x0F", pre,
     430                                        color, sep, msg);
    419431                        }
    420                 } else {
    421                         colormsg = g_strdup(newmsg);
    422                 }
    423 
     432                }
     433
     434                if(msg == newmsg) {
     435                        msg = g_strdup(newmsg);
     436                }
    424437                otrl_message_free(newmsg);
    425                 return colormsg;
     438                return msg;
    426439        }
    427440}
     
    431444        int st;
    432445        char *otrmsg = NULL;
     446        char *emsg = msg;           /* the message as we hand it to libotr */
    433447        ConnContext *ctx = NULL;
    434448        irc_t *irc = iu->irc;
     
    440454        }
    441455
    442         /* HTML encoding */
    443         /* consider OTR plaintext to be HTML if otr_does_html is set */
    444         if(set_getbool(&ic->bee->set, "otr_does_html") &&
    445            (g_strncasecmp(msg, "<html>", 6) != 0)) {
    446                 msg = escape_html(msg);
    447         }
    448        
    449         st = otrl_message_sending(irc->otr->us, &otr_ops, ic,
    450                 ic->acc->user, ic->acc->prpl->name, iu->bu->handle,
    451                 msg, NULL, &otrmsg, NULL, NULL);
    452         if(st) {
    453                 return NULL;
    454         }
    455 
    456456        ctx = otrl_context_find(irc->otr->us,
    457457                        iu->bu->handle, ic->acc->user, ic->acc->prpl->name,
    458458                        1, NULL, NULL, NULL);
     459
     460        /* HTML encoding */
     461        /* consider OTR plaintext to be HTML if otr_does_html is set */
     462        if(ctx && ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED &&
     463           set_getbool(&ic->bee->set, "otr_does_html") &&
     464           (g_strncasecmp(msg, "<html>", 6) != 0)) {
     465                emsg = escape_html(msg);
     466        }
     467       
     468        st = otrl_message_sending(irc->otr->us, &otr_ops, ic,
     469                ic->acc->user, ic->acc->prpl->name, iu->bu->handle,
     470                emsg, NULL, &otrmsg, NULL, NULL);
     471        if(emsg != msg) {
     472                g_free(emsg);   /* we're done with this one */
     473        }
     474        if(st) {
     475                return NULL;
     476        }
    459477
    460478        if(otrmsg) {
     
    504522       
    505523        if(!cmd->command) {
    506                 irc_usermsg(irc, "%s: unknown subcommand \"%s\", see \x02help otr\x02",
     524                irc_rootmsg(irc, "%s: unknown subcommand \"%s\", see \x02help otr\x02",
    507525                        args[0], args[1]);
    508526                return;
     
    510528       
    511529        if(!args[cmd->required_parameters+1]) {
    512                 irc_usermsg(irc, "%s %s: not enough arguments (%d req.)",
     530                irc_rootmsg(irc, "%s %s: not enough arguments (%d req.)",
    513531                        args[0], args[1], cmd->required_parameters);
    514532                return;
     
    582600        if (strcmp(accountname, recipient) == 0) {
    583601                /* huh? injecting messages to myself? */
    584                 irc_usermsg(irc, "note to self: %s", message);
     602                irc_rootmsg(irc, "note to self: %s", message);
    585603        } else {
    586604                /* need to drop some consts here :-( */
     
    597615        char *msg = g_strdup(message);
    598616        irc_t *irc = ic->bee->ui_data;
     617        irc_user_t *u = peeruser(irc, username, protocol);
    599618
    600619        strip_html(msg);
    601         irc_usermsg(irc, "otr: %s", msg);
     620        if(u) {
     621                /* display as a notice from this particular user */
     622                irc_usernotice(u, "%s", msg);
     623        } else {
     624                irc_rootmsg(irc, "[otr] %s", msg);
     625        }
    602626
    603627        g_free(msg);
     
    611635        struct im_connection *ic = check_imc(opdata, accountname, protocol);
    612636        irc_t *irc = ic->bee->ui_data;
     637        irc_user_t *u = peeruser(irc, username, protocol);
    613638        char hunam[45];         /* anybody looking? ;-) */
    614639       
    615640        otrl_privkey_hash_to_human(hunam, fingerprint);
    616         irc_usermsg(irc, "new fingerprint for %s: %s",
    617                 peernick(irc, username, protocol), hunam);
     641        if(u) {
     642                irc_usernotice(u, "new fingerprint: %s", hunam);
     643        } else {
     644                /* this case shouldn't normally happen */
     645                irc_rootmsg(irc, "new fingerprint for %s/%s: %s",
     646                        username, protocol, hunam);
     647        }
    618648}
    619649
     
    644674        if(!otr_update_modeflags(irc, u)) {
    645675                char *trust = u->flags & IRC_USER_OTR_TRUSTED ? "trusted" : "untrusted!";
    646                 irc_usermsg(irc, "conversation with %s is now off the record (%s)", u->nick, trust);
     676                irc_usernotice(u, "conversation is now off the record (%s)", trust);
    647677        }
    648678}
     
    664694        otr_update_uflags(context, u);
    665695        if(!otr_update_modeflags(irc, u))
    666                 irc_usermsg(irc, "conversation with %s is now in the clear", u->nick);
     696                irc_usernotice(u, "conversation is now in cleartext");
    667697}
    668698
     
    685715        if(!otr_update_modeflags(irc, u)) {
    686716                char *trust = u->flags & IRC_USER_OTR_TRUSTED ? "trusted" : "untrusted!";
    687                 irc_usermsg(irc, "otr connection with %s has been refreshed (%s)", u->nick, trust);
     717                irc_usernotice(u, "otr connection has been refreshed (%s)", trust);
    688718        }
    689719}
     
    729759        u = irc_user_by_name(irc, args[1]);
    730760        if(!u || !u->bu || !u->bu->ic) {
    731                 irc_usermsg(irc, "%s: unknown user", args[1]);
     761                irc_rootmsg(irc, "%s: unknown user", args[1]);
    732762                return;
    733763        }
     
    754784        u = irc_user_by_name(irc, args[1]);
    755785        if(!u || !u->bu || !u->bu->ic) {
    756                 irc_usermsg(irc, "%s: unknown user", args[1]);
     786                irc_rootmsg(irc, "%s: unknown user", args[1]);
    757787                return;
    758788        }
    759789        if(!(u->bu->flags & BEE_USER_ONLINE)) {
    760                 irc_usermsg(irc, "%s is offline", args[1]);
     790                irc_rootmsg(irc, "%s is offline", args[1]);
    761791                return;
    762792        }
     
    785815        u = irc_user_by_name(irc, args[1]);
    786816        if(!u || !u->bu || !u->bu->ic) {
    787                 irc_usermsg(irc, "%s: unknown user", args[1]);
     817                irc_rootmsg(irc, "%s: unknown user", args[1]);
    788818                return;
    789819        }
     
    792822                u->bu->ic->acc->user, u->bu->ic->acc->prpl->name, 0, NULL, NULL, NULL);
    793823        if(!ctx) {
    794                 irc_usermsg(irc, "%s: no otr context with user", args[1]);
     824                irc_rootmsg(irc, "%s: no otr context with user", args[1]);
    795825                return;
    796826        }
     
    804834                       
    805835                        if(!*p || !*q) {
    806                                 irc_usermsg(irc, "failed: truncated fingerprint block %d", i+1);
     836                                irc_rootmsg(irc, "failed: truncated fingerprint block %d", i+1);
    807837                                return;
    808838                        }
     
    811841                        y = hexval(*q);
    812842                        if(x<0) {
    813                                 irc_usermsg(irc, "failed: %d. hex digit of block %d out of range", 2*j+1, i+1);
     843                                irc_rootmsg(irc, "failed: %d. hex digit of block %d out of range", 2*j+1, i+1);
    814844                                return;
    815845                        }
    816846                        if(y<0) {
    817                                 irc_usermsg(irc, "failed: %d. hex digit of block %d out of range", 2*j+2, i+1);
     847                                irc_rootmsg(irc, "failed: %d. hex digit of block %d out of range", 2*j+2, i+1);
    818848                                return;
    819849                        }
     
    824854        fp = otrl_context_find_fingerprint(ctx, raw, 0, NULL);
    825855        if(!fp) {
    826                 irc_usermsg(irc, "failed: no such fingerprint for %s", args[1]);
     856                irc_rootmsg(irc, "failed: no such fingerprint for %s", args[1]);
    827857        } else {
    828858                char *trust = args[7] ? args[7] : "affirmed";
    829859                otrl_context_set_trust(fp, trust);
    830                 irc_usermsg(irc, "fingerprint match, trust set to \"%s\"", trust);
     860                irc_rootmsg(irc, "fingerprint match, trust set to \"%s\"", trust);
    831861                if(u->flags & IRC_USER_OTR_ENCRYPTED)
    832862                        u->flags |= IRC_USER_OTR_TRUSTED;
     
    856886                        ctx = otrl_context_find(irc->otr->us, handle, myhandle, protocol, 0, NULL, NULL, NULL);
    857887                        if(!ctx) {
    858                                 irc_usermsg(irc, "no such context");
     888                                irc_rootmsg(irc, "no such context");
    859889                                g_free(arg);
    860890                                return;
     
    863893                        irc_user_t *u = irc_user_by_name(irc, args[1]);
    864894                        if(!u || !u->bu || !u->bu->ic) {
    865                                 irc_usermsg(irc, "%s: unknown user", args[1]);
     895                                irc_rootmsg(irc, "%s: unknown user", args[1]);
    866896                                g_free(arg);
    867897                                return;
     
    870900                                u->bu->ic->acc->prpl->name, 0, NULL, NULL, NULL);
    871901                        if(!ctx) {
    872                                 irc_usermsg(irc, "no otr context with %s", args[1]);
     902                                irc_rootmsg(irc, "no otr context with %s", args[1]);
    873903                                g_free(arg);
    874904                                return;
     
    878908                /* show how we resolved the (nick) argument, if we did */
    879909                if(handle!=arg) {
    880                         irc_usermsg(irc, "%s is %s/%s; we are %s/%s to them", args[1],
     910                        irc_rootmsg(irc, "%s is %s/%s; we are %s/%s to them", args[1],
    881911                                ctx->username, ctx->protocol, ctx->accountname, ctx->protocol);
    882912                }
     
    893923        n = atoi(args[1]);
    894924        if(n<0 || (!n && strcmp(args[1], "0"))) {
    895                 irc_usermsg(irc, "%s: invalid account number", args[1]);
     925                irc_rootmsg(irc, "%s: invalid account number", args[1]);
    896926                return;
    897927        }
     
    900930        for(i=0; i<n && a; i++, a=a->next);
    901931        if(!a) {
    902                 irc_usermsg(irc, "%s: no such account", args[1]);
     932                irc_rootmsg(irc, "%s: no such account", args[1]);
    903933                return;
    904934        }
    905935       
    906936        if(keygen_in_progress(irc, a->user, a->prpl->name)) {
    907                 irc_usermsg(irc, "keygen for account %d already in progress", n);
     937                irc_rootmsg(irc, "keygen for account %d already in progress", n);
    908938                return;
    909939        }
     
    927957       
    928958        if(fp == fp->context->active_fingerprint) {
    929                 irc_usermsg(irc, "that fingerprint is active, terminate otr connection first");
     959                irc_rootmsg(irc, "that fingerprint is active, terminate otr connection first");
    930960                return;
    931961        }
     
    943973       
    944974        if(ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED) {
    945                 irc_usermsg(irc, "active otr connection with %s, terminate it first",
     975                irc_rootmsg(irc, "active otr connection with %s, terminate it first",
    946976                        peernick(irc, ctx->username, ctx->protocol));
    947977                return;
     
    9751005               
    9761006                if(!args[3]) {
    977                         irc_usermsg(irc, "otr %s %s: not enough arguments (2 req.)", args[0], args[1]);
     1007                        irc_rootmsg(irc, "otr %s %s: not enough arguments (2 req.)", args[0], args[1]);
    9781008                        return;
    9791009                }
     
    9821012                u = irc_user_by_name(irc, args[2]);
    9831013                if(!u || !u->bu || !u->bu->ic) {
    984                         irc_usermsg(irc, "%s: unknown user", args[2]);
     1014                        irc_rootmsg(irc, "%s: unknown user", args[2]);
    9851015                        return;
    9861016                }
     
    9891019                        u->bu->ic->acc->prpl->name, 0, NULL, NULL, NULL);
    9901020                if(!ctx) {
    991                         irc_usermsg(irc, "no otr context with %s", args[2]);
     1021                        irc_rootmsg(irc, "no otr context with %s", args[2]);
    9921022                        return;
    9931023                }
     
    10001030               
    10011031                if(fp == ctx->active_fingerprint) {
    1002                         irc_usermsg(irc, "that fingerprint is active, terminate otr connection first");
     1032                        irc_rootmsg(irc, "that fingerprint is active, terminate otr connection first");
    10031033                        return;
    10041034                }
     
    10251055                u = irc_user_by_name(irc, args[2]);
    10261056                if(!u || !u->bu || !u->bu->ic) {
    1027                         irc_usermsg(irc, "%s: unknown user", args[2]);
     1057                        irc_rootmsg(irc, "%s: unknown user", args[2]);
    10281058                        return;
    10291059                }
     
    10321062                        u->bu->ic->acc->prpl->name, 0, NULL, NULL, NULL);
    10331063                if(!ctx) {
    1034                         irc_usermsg(irc, "no otr context with %s", args[2]);
     1064                        irc_rootmsg(irc, "no otr context with %s", args[2]);
    10351065                        return;
    10361066                }
    10371067               
    10381068                if(ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED) {
    1039                         irc_usermsg(irc, "active otr connection with %s, terminate it first", args[2]);
     1069                        irc_rootmsg(irc, "active otr connection with %s, terminate it first", args[2]);
    10401070                        return;
    10411071                }
     
    10701100        else
    10711101        {
    1072                 irc_usermsg(irc, "otr %s: unknown subcommand \"%s\", see \x02help otr forget\x02",
     1102                irc_rootmsg(irc, "otr %s: unknown subcommand \"%s\", see \x02help otr forget\x02",
    10731103                        args[0], args[1]);
    10741104        }
     
    10961126        if(!context) {
    10971127                /* huh? out of memory or what? */
    1098                 irc_usermsg(irc, "smp: failed to get otr context for %s", u->nick);
     1128                irc_rootmsg(irc, "smp: failed to get otr context for %s", u->nick);
    10991129                otrl_message_abort_smp(us, ops, u->bu->ic, context);
    11001130                otrl_sm_state_free(context->smstate);
     
    11041134
    11051135        if (context->smstate->sm_prog_state == OTRL_SMP_PROG_CHEATED) {
    1106                 irc_usermsg(irc, "smp %s: opponent violated protocol, aborting",
     1136                irc_rootmsg(irc, "smp %s: opponent violated protocol, aborting",
    11071137                        u->nick);
    11081138                otrl_message_abort_smp(us, ops, u->bu->ic, context);
     
    11141144        if (tlv) {
    11151145                if (nextMsg != OTRL_SMP_EXPECT1) {
    1116                         irc_usermsg(irc, "smp %s: spurious SMP1Q received, aborting", u->nick);
     1146                        irc_rootmsg(irc, "smp %s: spurious SMP1Q received, aborting", u->nick);
    11171147                        otrl_message_abort_smp(us, ops, u->bu->ic, context);
    11181148                        otrl_sm_state_free(context->smstate);
    11191149                } else {
    11201150                        char *question = g_strndup((char *)tlv->data, tlv->len);
    1121                         irc_usermsg(irc, "smp: initiated by %s with question: \x02\"%s\"\x02", u->nick,
     1151                        irc_rootmsg(irc, "smp: initiated by %s with question: \x02\"%s\"\x02", u->nick,
    11221152                                question);
    1123                         irc_usermsg(irc, "smp: respond with \x02otr smp %s <answer>\x02",
     1153                        irc_rootmsg(irc, "smp: respond with \x02otr smp %s <answer>\x02",
    11241154                                u->nick);
    11251155                        g_free(question);
     
    11301160        if (tlv) {
    11311161                if (nextMsg != OTRL_SMP_EXPECT1) {
    1132                         irc_usermsg(irc, "smp %s: spurious SMP1 received, aborting", u->nick);
     1162                        irc_rootmsg(irc, "smp %s: spurious SMP1 received, aborting", u->nick);
    11331163                        otrl_message_abort_smp(us, ops, u->bu->ic, context);
    11341164                        otrl_sm_state_free(context->smstate);
    11351165                } else {
    1136                         irc_usermsg(irc, "smp: initiated by %s"
     1166                        irc_rootmsg(irc, "smp: initiated by %s"
    11371167                                " - respond with \x02otr smp %s <secret>\x02",
    11381168                                u->nick, u->nick);
     
    11431173        if (tlv) {
    11441174                if (nextMsg != OTRL_SMP_EXPECT2) {
    1145                         irc_usermsg(irc, "smp %s: spurious SMP2 received, aborting", u->nick);
     1175                        irc_rootmsg(irc, "smp %s: spurious SMP2 received, aborting", u->nick);
    11461176                        otrl_message_abort_smp(us, ops, u->bu->ic, context);
    11471177                        otrl_sm_state_free(context->smstate);
     
    11541184        if (tlv) {
    11551185                if (nextMsg != OTRL_SMP_EXPECT3) {
    1156                         irc_usermsg(irc, "smp %s: spurious SMP3 received, aborting", u->nick);
     1186                        irc_rootmsg(irc, "smp %s: spurious SMP3 received, aborting", u->nick);
    11571187                        otrl_message_abort_smp(us, ops, u->bu->ic, context);
    11581188                        otrl_sm_state_free(context->smstate);
     
    11611191                        if(context->smstate->sm_prog_state == OTRL_SMP_PROG_SUCCEEDED) {
    11621192                                if(context->smstate->received_question) {
    1163                                         irc_usermsg(irc, "smp %s: correct answer, you are trusted",
     1193                                        irc_rootmsg(irc, "smp %s: correct answer, you are trusted",
    11641194                                                u->nick);
    11651195                                } else {
    1166                                         irc_usermsg(irc, "smp %s: secrets proved equal, fingerprint trusted",
     1196                                        irc_rootmsg(irc, "smp %s: secrets proved equal, fingerprint trusted",
    11671197                                                u->nick);
    11681198                                }
    11691199                        } else {
    11701200                                if(context->smstate->received_question) {
    1171                                         irc_usermsg(irc, "smp %s: wrong answer, you are not trusted",
     1201                                        irc_rootmsg(irc, "smp %s: wrong answer, you are not trusted",
    11721202                                                u->nick);
    11731203                                } else {
    1174                                         irc_usermsg(irc, "smp %s: secrets did not match, fingerprint not trusted",
     1204                                        irc_rootmsg(irc, "smp %s: secrets did not match, fingerprint not trusted",
    11751205                                                u->nick);
    11761206                                }
     
    11831213        if (tlv) {
    11841214                if (nextMsg != OTRL_SMP_EXPECT4) {
    1185                         irc_usermsg(irc, "smp %s: spurious SMP4 received, aborting", u->nick);
     1215                        irc_rootmsg(irc, "smp %s: spurious SMP4 received, aborting", u->nick);
    11861216                        otrl_message_abort_smp(us, ops, u->bu->ic, context);
    11871217                        otrl_sm_state_free(context->smstate);
     
    11891219                        /* SMP4 received, otrl_message_receiving will have set fp trust */
    11901220                        if(context->smstate->sm_prog_state == OTRL_SMP_PROG_SUCCEEDED) {
    1191                                 irc_usermsg(irc, "smp %s: secrets proved equal, fingerprint trusted",
     1221                                irc_rootmsg(irc, "smp %s: secrets proved equal, fingerprint trusted",
    11921222                                        u->nick);
    11931223                        } else {
    1194                                 irc_usermsg(irc, "smp %s: secrets did not match, fingerprint not trusted",
     1224                                irc_rootmsg(irc, "smp %s: secrets did not match, fingerprint not trusted",
    11951225                                        u->nick);
    11961226                        }
     
    12011231        tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP_ABORT);
    12021232        if (tlv) {
    1203                 irc_usermsg(irc, "smp: received abort from %s", u->nick);
     1233                irc_rootmsg(irc, "smp: received abort from %s", u->nick);
    12041234                otrl_sm_state_free(context->smstate);
    12051235                /* smp is in back in EXPECT1 */
     
    12161246        u = irc_user_by_name(irc, nick);
    12171247        if(!u || !u->bu || !u->bu->ic) {
    1218                 irc_usermsg(irc, "%s: unknown user", nick);
     1248                irc_rootmsg(irc, "%s: unknown user", nick);
    12191249                return;
    12201250        }
    12211251        if(!(u->bu->flags & BEE_USER_ONLINE)) {
    1222                 irc_usermsg(irc, "%s is offline", nick);
     1252                irc_rootmsg(irc, "%s is offline", nick);
    12231253                return;
    12241254        }
     
    12271257                u->bu->ic->acc->user, u->bu->ic->acc->prpl->name, 0, NULL, NULL, NULL);
    12281258        if(!ctx || ctx->msgstate != OTRL_MSGSTATE_ENCRYPTED) {
    1229                 irc_usermsg(irc, "smp: otr inactive with %s, try \x02otr connect"
     1259                irc_rootmsg(irc, "smp: otr inactive with %s, try \x02otr connect"
    12301260                                " %s\x02", nick, nick);
    12311261                return;
     
    12421272        if(question) {
    12431273                /* this was 'otr smpq', just initiate */
    1244                 irc_usermsg(irc, "smp: initiating with %s...", u->nick);
     1274                irc_rootmsg(irc, "smp: initiating with %s...", u->nick);
    12451275                otrl_message_initiate_smp_q(irc->otr->us, &otr_ops, u->bu->ic, ctx,
    12461276                        question, (unsigned char *)secret, strlen(secret));
     
    12511281                   is completed or aborted! */
    12521282                if(ctx->smstate->secret == NULL) {
    1253                         irc_usermsg(irc, "smp: initiating with %s...", u->nick);
     1283                        irc_rootmsg(irc, "smp: initiating with %s...", u->nick);
    12541284                        otrl_message_initiate_smp(irc->otr->us, &otr_ops,
    12551285                                u->bu->ic, ctx, (unsigned char *)secret, strlen(secret));
     
    12581288                        /* if we're still in EXPECT1 but smstate is initialized, we must have
    12591289                           received the SMP1, so let's issue a response */
    1260                         irc_usermsg(irc, "smp: responding to %s...", u->nick);
     1290                        irc_rootmsg(irc, "smp: responding to %s...", u->nick);
    12611291                        otrl_message_respond_smp(irc->otr->us, &otr_ops,
    12621292                                u->bu->ic, ctx, (unsigned char *)secret, strlen(secret));
     
    13731403                }
    13741404                if(fp == ctx->active_fingerprint) {
    1375                         irc_usermsg(irc, "    \x02%s (%s)\x02", human, trust);
     1405                        irc_rootmsg(irc, "    \x02%s (%s)\x02", human, trust);
    13761406                } else {
    1377                         irc_usermsg(irc, "    %s (%s)", human, trust);
     1407                        irc_rootmsg(irc, "    %s (%s)", human, trust);
    13781408                }
    13791409        }
    13801410        if(count==0)
    1381                 irc_usermsg(irc, "    (none)");
     1411                irc_rootmsg(irc, "    (none)");
    13821412}
    13831413
     
    13981428                       
    13991429                        if(n>=40) {
    1400                                 irc_usermsg(irc, "too many fingerprint digits given, expected at most 40");
     1430                                irc_rootmsg(irc, "too many fingerprint digits given, expected at most 40");
    14011431                                return NULL;
    14021432                        }
     
    14051435                                *(p++) = c;
    14061436                        } else {
    1407                                 irc_usermsg(irc, "invalid hex digit '%c' in block %d", args[i][j], i+1);
     1437                                irc_rootmsg(irc, "invalid hex digit '%c' in block %d", args[i][j], i+1);
    14081438                                return NULL;
    14091439                        }
     
    14261456        }
    14271457        if(!fp) {
    1428                 irc_usermsg(irc, "%s: no match", prefix);
     1458                irc_rootmsg(irc, "%s: no match", prefix);
    14291459                return NULL;
    14301460        }
     
    14391469        }
    14401470        if(fp2) {
    1441                 irc_usermsg(irc, "%s: multiple matches", prefix);
     1471                irc_rootmsg(irc, "%s: multiple matches", prefix);
    14421472                return NULL;
    14431473        }
     
    14621492                       
    14631493                        if(n>=40) {
    1464                                 irc_usermsg(irc, "too many fingerprint digits given, expected at most 40");
     1494                                irc_rootmsg(irc, "too many fingerprint digits given, expected at most 40");
    14651495                                return NULL;
    14661496                        }
     
    14691499                                *(p++) = c;
    14701500                        } else {
    1471                                 irc_usermsg(irc, "invalid hex digit '%c' in block %d", args[i][j], i+1);
     1501                                irc_rootmsg(irc, "invalid hex digit '%c' in block %d", args[i][j], i+1);
    14721502                                return NULL;
    14731503                        }
     
    14901520        }
    14911521        if(!k) {
    1492                 irc_usermsg(irc, "%s: no match", prefix);
     1522                irc_rootmsg(irc, "%s: no match", prefix);
    14931523                return NULL;
    14941524        }
     
    15031533        }
    15041534        if(k2) {
    1505                 irc_usermsg(irc, "%s: multiple matches", prefix);
     1535                irc_rootmsg(irc, "%s: multiple matches", prefix);
    15061536                return NULL;
    15071537        }
     
    15181548
    15191549        /* list all privkeys (including ones being generated) */
    1520         irc_usermsg(irc, "\x1fprivate keys:\x1f");
     1550        irc_rootmsg(irc, "\x1fprivate keys:\x1f");
    15211551        for(key=irc->otr->us->privkey_root; key; key=key->next) {
    15221552                const char *hash;
     
    15241554                switch(key->pubkey_type) {
    15251555                case OTRL_PUBKEY_TYPE_DSA:
    1526                         irc_usermsg(irc, "  %s/%s - DSA", key->accountname, key->protocol);
     1556                        irc_rootmsg(irc, "  %s/%s - DSA", key->accountname, key->protocol);
    15271557                        break;
    15281558                default:
    1529                         irc_usermsg(irc, "  %s/%s - type %d", key->accountname, key->protocol,
     1559                        irc_rootmsg(irc, "  %s/%s - type %d", key->accountname, key->protocol,
    15301560                                key->pubkey_type);
    15311561                }
     
    15361566                hash = otrl_privkey_fingerprint(irc->otr->us, human, key->accountname, key->protocol);
    15371567                if(hash) /* should always succeed */
    1538                         irc_usermsg(irc, "    %s", human);
     1568                        irc_rootmsg(irc, "    %s", human);
    15391569        }
    15401570        if(irc->otr->sent_accountname) {
    1541                 irc_usermsg(irc, "  %s/%s - DSA", irc->otr->sent_accountname,
     1571                irc_rootmsg(irc, "  %s/%s - DSA", irc->otr->sent_accountname,
    15421572                        irc->otr->sent_protocol);
    1543                 irc_usermsg(irc, "    (being generated)");
     1573                irc_rootmsg(irc, "    (being generated)");
    15441574        }
    15451575        for(kg=irc->otr->todo; kg; kg=kg->next) {
    1546                 irc_usermsg(irc, "  %s/%s - DSA", kg->accountname, kg->protocol);
    1547                 irc_usermsg(irc, "    (queued)");
     1576                irc_rootmsg(irc, "  %s/%s - DSA", kg->accountname, kg->protocol);
     1577                irc_rootmsg(irc, "    (queued)");
    15481578        }
    15491579        if(key == irc->otr->us->privkey_root &&
    15501580           !irc->otr->sent_accountname &&
    15511581           kg == irc->otr->todo)
    1552                 irc_usermsg(irc, "  (none)");
     1582                irc_rootmsg(irc, "  (none)");
    15531583
    15541584        /* list all contexts */
    1555         irc_usermsg(irc, "%s", "");
    1556         irc_usermsg(irc, "\x1f" "connection contexts:\x1f (bold=currently encrypted)");
     1585        irc_rootmsg(irc, "%s", "");
     1586        irc_rootmsg(irc, "\x1f" "connection contexts:\x1f (bold=currently encrypted)");
    15571587        for(ctx=irc->otr->us->context_root; ctx; ctx=ctx->next) {\
    15581588                irc_user_t *u;
     
    15681598               
    15691599                if(ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED) {
    1570                         irc_usermsg(irc, "  \x02%s\x02", userstring);
     1600                        irc_rootmsg(irc, "  \x02%s\x02", userstring);
    15711601                } else {
    1572                         irc_usermsg(irc, "  %s", userstring);
     1602                        irc_rootmsg(irc, "  %s", userstring);
    15731603                }
    15741604               
     
    15761606        }
    15771607        if(ctx == irc->otr->us->context_root)
    1578                 irc_usermsg(irc, "  (none)");
     1608                irc_rootmsg(irc, "  (none)");
    15791609}
    15801610
     
    15831613        switch(ctx->otr_offer) {
    15841614        case OFFER_NOT:
    1585                 irc_usermsg(irc, "  otr offer status: none sent");
     1615                irc_rootmsg(irc, "  otr offer status: none sent");
    15861616                break;
    15871617        case OFFER_SENT:
    1588                 irc_usermsg(irc, "  otr offer status: awaiting reply");
     1618                irc_rootmsg(irc, "  otr offer status: awaiting reply");
    15891619                break;
    15901620        case OFFER_ACCEPTED:
    1591                 irc_usermsg(irc, "  otr offer status: accepted our offer");
     1621                irc_rootmsg(irc, "  otr offer status: accepted our offer");
    15921622                break;
    15931623        case OFFER_REJECTED:
    1594                 irc_usermsg(irc, "  otr offer status: ignored our offer");
     1624                irc_rootmsg(irc, "  otr offer status: ignored our offer");
    15951625                break;
    15961626        default:
    1597                 irc_usermsg(irc, "  otr offer status: %d", ctx->otr_offer);
     1627                irc_rootmsg(irc, "  otr offer status: %d", ctx->otr_offer);
    15981628        }
    15991629
    16001630        switch(ctx->msgstate) {
    16011631        case OTRL_MSGSTATE_PLAINTEXT:
    1602                 irc_usermsg(irc, "  connection state: cleartext");
     1632                irc_rootmsg(irc, "  connection state: cleartext");
    16031633                break;
    16041634        case OTRL_MSGSTATE_ENCRYPTED:
    1605                 irc_usermsg(irc, "  connection state: encrypted (v%d)", ctx->protocol_version);
     1635                irc_rootmsg(irc, "  connection state: encrypted (v%d)", ctx->protocol_version);
    16061636                break;
    16071637        case OTRL_MSGSTATE_FINISHED:
    1608                 irc_usermsg(irc, "  connection state: shut down");
     1638                irc_rootmsg(irc, "  connection state: shut down");
    16091639                break;
    16101640        default:
    1611                 irc_usermsg(irc, "  connection state: %d", ctx->msgstate);
    1612         }
    1613 
    1614         irc_usermsg(irc, "  fingerprints: (bold=active)");     
     1641                irc_rootmsg(irc, "  connection state: %d", ctx->msgstate);
     1642        }
     1643
     1644        irc_rootmsg(irc, "  fingerprints: (bold=active)");     
    16151645        show_fingerprints(irc, ctx);
    16161646}
     
    16521682               
    16531683                if(pipe(to) < 0 || pipe(from) < 0) {
    1654                         irc_usermsg(irc, "otr keygen: couldn't create pipe: %s", strerror(errno));
     1684                        irc_rootmsg(irc, "otr keygen: couldn't create pipe: %s", strerror(errno));
    16551685                        return;
    16561686                }
     
    16591689                fromf = fdopen(from[0], "r");
    16601690                if(!tof || !fromf) {
    1661                         irc_usermsg(irc, "otr keygen: couldn't streamify pipe: %s", strerror(errno));
     1691                        irc_rootmsg(irc, "otr keygen: couldn't streamify pipe: %s", strerror(errno));
    16621692                        return;
    16631693                }
     
    16651695                p = fork();
    16661696                if(p<0) {
    1667                         irc_usermsg(irc, "otr keygen: couldn't fork: %s", strerror(errno));
     1697                        irc_rootmsg(irc, "otr keygen: couldn't fork: %s", strerror(errno));
    16681698                        return;
    16691699                }
     
    17451775        myfgets(msg, 512, irc->otr->from);
    17461776       
    1747         irc_usermsg(irc, "%s", msg);
     1777        irc_rootmsg(irc, "%s", msg);
    17481778        if(filename[0]) {
    17491779                char *kf = g_strdup_printf("%s%s.otr_keys", global.conf->configdir, irc->user->nick);
     
    18191849       
    18201850        if(keygen_in_progress(irc, acc->user, acc->prpl->name)) {
    1821                 irc_usermsg(irc, "keygen for %s/%s already in progress",
     1851                irc_rootmsg(irc, "keygen for %s/%s already in progress",
    18221852                        acc->user, acc->prpl->name);
    18231853        } else {
    1824                 irc_usermsg(irc, "starting background keygen for %s/%s",
     1854                irc_rootmsg(irc, "starting background keygen for %s/%s",
    18251855                        acc->user, acc->prpl->name);
    1826                 irc_usermsg(irc, "you will be notified when it completes");
     1856                irc_rootmsg(irc, "you will be notified when it completes");
    18271857                otr_keygen(irc, acc->user, acc->prpl->name);
    18281858        }
    18291859}
     1860
     1861/* vim: set noet ts=4 sw=4: */
  • protocols/nogaim.c

    r6a45181 r3864c08  
    216216        if( a )
    217217                /* FIXME(wilmer): ui_log callback or so */
    218                 irc_usermsg( ic->bee->ui_data, "%s(%s) - %s", ic->acc->prpl->name, ic->acc->user, text );
     218                irc_rootmsg( ic->bee->ui_data, "%s(%s) - %s", ic->acc->prpl->name, ic->acc->user, text );
    219219        else
    220                 irc_usermsg( ic->bee->ui_data, "%s - %s", ic->acc->prpl->name, text );
     220                irc_rootmsg( ic->bee->ui_data, "%s - %s", ic->acc->prpl->name, text );
    221221       
    222222        g_free( text );
  • protocols/purple/purple.c

    r6a45181 r3864c08  
    181181                        /** No way to talk to the user right now, invent one when
    182182                        this becomes important.
    183                         irc_usermsg( acc->irc, "Setting with unknown type: %s (%d) Expect stuff to break..\n",
     183                        irc_rootmsg( acc->irc, "Setting with unknown type: %s (%d) Expect stuff to break..\n",
    184184                                     name, purple_account_option_get_type( o ) );
    185185                        */
  • query.c

    r6a45181 r3864c08  
    150150                        imcb_log( q->ic, "Accepted: %s", q->question );
    151151                else
    152                         irc_usermsg( irc, "Accepted: %s", q->question );
     152                        irc_rootmsg( irc, "Accepted: %s", q->question );
    153153                if( q->yes )
    154154                        q->yes( q->data );
     
    159159                        imcb_log( q->ic, "Rejected: %s", q->question );
    160160                else
    161                         irc_usermsg( irc, "Rejected: %s", q->question );
     161                        irc_rootmsg( irc, "Rejected: %s", q->question );
    162162                if( q->no )
    163163                        q->no( q->data );
     
    179179        else
    180180        {
    181                 irc_usermsg( irc, "New request: %s\nYou can use the \2yes\2/\2no\2 commands to accept/reject this request.", q->question );
     181                irc_rootmsg( irc, "New request: %s\nYou can use the \2yes\2/\2no\2 commands to accept/reject this request.", q->question );
    182182        }
    183183}
  • root_commands.c

    r6a45181 r3864c08  
    4242                        if( cmd[blaat] == NULL )                               \
    4343                        {                                                      \
    44                                 irc_usermsg( irc, "Not enough parameters given (need %d).", x ); \
     44                                irc_rootmsg( irc, "Not enough parameters given (need %d).", x ); \
    4545                                return y;                                      \
    4646                        }                                                      \
     
    6969                }
    7070       
    71         irc_usermsg( irc, "Unknown command: %s. Please use \x02help commands\x02 to get a list of available commands.", cmd[0] );
     71        irc_rootmsg( irc, "Unknown command: %s. Please use \x02help commands\x02 to get a list of available commands.", cmd[0] );
    7272}
    7373
     
    9090        if( s )
    9191        {
    92                 irc_usermsg( irc, "%s", s );
     92                irc_rootmsg( irc, "%s", s );
    9393                g_free( s );
    9494        }
    9595        else
    9696        {
    97                 irc_usermsg( irc, "Error opening helpfile." );
     97                irc_rootmsg( irc, "Error opening helpfile." );
    9898        }
    9999}
     
    110110        if( irc->status & USTATUS_IDENTIFIED )
    111111        {
    112                 irc_usermsg( irc, "You're already logged in." );
     112                irc_rootmsg( irc, "You're already logged in." );
    113113                return;
    114114        }
     
    128128        else if( irc->b->accounts != NULL )
    129129        {
    130                 irc_usermsg( irc,
     130                irc_rootmsg( irc,
    131131                             "You're trying to identify yourself, but already have "
    132132                             "at least one IM account set up. "
     
    138138        if( password == NULL )
    139139        {
    140                 irc_usermsg( irc, "About to identify, use /OPER to enter the password" );
     140                irc_rootmsg( irc, "About to identify, use /OPER to enter the password" );
    141141                irc->status |= OPER_HACK_IDENTIFY;
    142142                return;
     
    150150        switch (status) {
    151151        case STORAGE_INVALID_PASSWORD:
    152                 irc_usermsg( irc, "Incorrect password" );
     152                irc_rootmsg( irc, "Incorrect password" );
    153153                break;
    154154        case STORAGE_NO_SUCH_USER:
    155                 irc_usermsg( irc, "The nick is (probably) not registered" );
     155                irc_rootmsg( irc, "The nick is (probably) not registered" );
    156156                break;
    157157        case STORAGE_OK:
    158                 irc_usermsg( irc, "Password accepted%s",
     158                irc_rootmsg( irc, "Password accepted%s",
    159159                             load ? ", settings and accounts loaded" : "" );
    160160                irc_setpass( irc, password );
     
    192192        case STORAGE_OTHER_ERROR:
    193193        default:
    194                 irc_usermsg( irc, "Unknown error while loading configuration" );
     194                irc_rootmsg( irc, "Unknown error while loading configuration" );
    195195                break;
    196196        }
     
    215215        if( global.conf->authmode == AUTHMODE_REGISTERED )
    216216        {
    217                 irc_usermsg( irc, "This server does not allow registering new accounts" );
     217                irc_rootmsg( irc, "This server does not allow registering new accounts" );
    218218                return;
    219219        }
     
    221221        if( cmd[1] == NULL )
    222222        {
    223                 irc_usermsg( irc, "About to register, use /OPER to enter the password" );
     223                irc_rootmsg( irc, "About to register, use /OPER to enter the password" );
    224224                irc->status |= OPER_HACK_REGISTER;
    225225                return;
     
    228228        switch( storage_save( irc, cmd[1], FALSE ) ) {
    229229                case STORAGE_ALREADY_EXISTS:
    230                         irc_usermsg( irc, "Nick is already registered" );
     230                        irc_rootmsg( irc, "Nick is already registered" );
    231231                        break;
    232232                       
    233233                case STORAGE_OK:
    234                         irc_usermsg( irc, "Account successfully created" );
     234                        irc_rootmsg( irc, "Account successfully created" );
    235235                        irc_setpass( irc, cmd[1] );
    236236                        irc->status |= USTATUS_IDENTIFIED;
     
    245245
    246246                default:
    247                         irc_usermsg( irc, "Error registering" );
     247                        irc_rootmsg( irc, "Error registering" );
    248248                        break;
    249249        }
     
    257257        switch (status) {
    258258        case STORAGE_NO_SUCH_USER:
    259                 irc_usermsg( irc, "That account does not exist" );
     259                irc_rootmsg( irc, "That account does not exist" );
    260260                break;
    261261        case STORAGE_INVALID_PASSWORD:
    262                 irc_usermsg( irc, "Password invalid" );
     262                irc_rootmsg( irc, "Password invalid" );
    263263                break;
    264264        case STORAGE_OK:
     
    266266                irc->status &= ~USTATUS_IDENTIFIED;
    267267                irc_umode_set( irc, "-R", 1 );
    268                 irc_usermsg( irc, "Account `%s' removed", irc->user->nick );
     268                irc_rootmsg( irc, "Account `%s' removed", irc->user->nick );
    269269                break;
    270270        default:
    271                 irc_usermsg( irc, "Error: `%d'", status );
     271                irc_rootmsg( irc, "Error: `%d'", status );
    272272                break;
    273273        }
     
    277277{
    278278        if( ( irc->status & USTATUS_IDENTIFIED ) == 0 )
    279                 irc_usermsg( irc, "Please create an account first" );
     279                irc_rootmsg( irc, "Please create an account first" );
    280280        else if( storage_save( irc, NULL, TRUE ) == STORAGE_OK )
    281                 irc_usermsg( irc, "Configuration saved" );
    282         else
    283                 irc_usermsg( irc, "Configuration could not be saved!" );
     281                irc_rootmsg( irc, "Configuration saved" );
     282        else
     283                irc_rootmsg( irc, "Configuration could not be saved!" );
    284284}
    285285
     
    290290       
    291291        if( ( val = set_getstr( head, key ) ) )
    292                 irc_usermsg( irc, "%s = `%s'", key, val );
     292                irc_rootmsg( irc, "%s = `%s'", key, val );
    293293        else if( !( set = set_find( head, key ) ) )
    294294        {
    295                 irc_usermsg( irc, "Setting `%s' does not exist.", key );
     295                irc_rootmsg( irc, "Setting `%s' does not exist.", key );
    296296                if( *head == irc->b->set )
    297                         irc_usermsg( irc, "It might be an account or channel setting. "
     297                        irc_rootmsg( irc, "It might be an account or channel setting. "
    298298                                     "See \x02help account set\x02 and \x02help channel set\x02." );
    299299        }
    300300        else if( set->flags & SET_PASSWORD )
    301                 irc_usermsg( irc, "%s = `********' (hidden)", key );
    302         else
    303                 irc_usermsg( irc, "%s is empty", key );
     301                irc_rootmsg( irc, "%s = `********' (hidden)", key );
     302        else
     303                irc_rootmsg( irc, "%s is empty", key );
    304304}
    305305
     
    344344                           feedback. */
    345345                        if( st )
    346                                 irc_usermsg( irc, "Setting changed successfully" );
     346                                irc_rootmsg( irc, "Setting changed successfully" );
    347347                        else
    348                                 irc_usermsg( irc, "Failed to change setting" );
     348                                irc_rootmsg( irc, "Failed to change setting" );
    349349                }
    350350                else
     
    377377        if( a->ic && s && s->flags & ACC_SET_OFFLINE_ONLY )
    378378        {
    379                 irc_usermsg( irc, "This setting can only be changed when the account is %s-line", "off" );
     379                irc_rootmsg( irc, "This setting can only be changed when the account is %s-line", "off" );
    380380                return 0;
    381381        }
    382382        else if( !a->ic && s && s->flags & ACC_SET_ONLINE_ONLY )
    383383        {
    384                 irc_usermsg( irc, "This setting can only be changed when the account is %s-line", "on" );
     384                irc_rootmsg( irc, "This setting can only be changed when the account is %s-line", "on" );
    385385                return 0;
    386386        }
     
    396396        if( global.conf->authmode == AUTHMODE_REGISTERED && !( irc->status & USTATUS_IDENTIFIED ) )
    397397        {
    398                 irc_usermsg( irc, "This server only accepts registered users" );
     398                irc_rootmsg( irc, "This server only accepts registered users" );
    399399                return;
    400400        }
     
    413413                                if( strcmp( a->pass, PASSWORD_PENDING ) == 0 )
    414414                                {
    415                                         irc_usermsg( irc, "Enter password for account %s(%s) "
     415                                        irc_rootmsg( irc, "Enter password for account %s(%s) "
    416416                                                     "first (use /OPER)", a->prpl->name, a->user );
    417417                                        return;
     
    425425                if( prpl == NULL )
    426426                {
    427                         irc_usermsg( irc, "Unknown protocol" );
     427                        irc_rootmsg( irc, "Unknown protocol" );
    428428                        return;
    429429                }
     
    431431                for( a = irc->b->accounts; a; a = a->next )
    432432                        if( a->prpl == prpl && prpl->handle_cmp( a->user, cmd[3] ) == 0 )
    433                                 irc_usermsg( irc, "Warning: You already have an account with "
     433                                irc_rootmsg( irc, "Warning: You already have an account with "
    434434                                             "protocol `%s' and username `%s'. Are you accidentally "
    435435                                             "trying to add it twice?", prpl->name, cmd[3] );
     
    438438                if( cmd[5] )
    439439                {
    440                         irc_usermsg( irc, "Warning: Passing a servername/other flags to `account add' "
     440                        irc_rootmsg( irc, "Warning: Passing a servername/other flags to `account add' "
    441441                                          "is now deprecated. Use `account set' instead." );
    442442                        set_setstr( &a->set, "server", cmd[5] );
    443443                }
    444444               
    445                 irc_usermsg( irc, "Account successfully added%s", cmd[4] ? "" :
     445                irc_rootmsg( irc, "Account successfully added%s", cmd[4] ? "" :
    446446                             ", now use /OPER to enter the password" );
    447447               
     
    453453               
    454454                if( strchr( irc->umode, 'b' ) )
    455                         irc_usermsg( irc, "Account list:" );
     455                        irc_rootmsg( irc, "Account list:" );
    456456               
    457457                for( a = irc->b->accounts; a; a = a->next )
     
    468468                                con = "";
    469469                       
    470                         irc_usermsg( irc, "%2d (%s): %s, %s%s", i, a->tag, a->prpl->name, a->user, con );
     470                        irc_rootmsg( irc, "%2d (%s): %s, %s%s", i, a->tag, a->prpl->name, a->user, con );
    471471                       
    472472                        i ++;
    473473                }
    474                 irc_usermsg( irc, "End of account list" );
     474                irc_rootmsg( irc, "End of account list" );
    475475               
    476476                return;
     
    484484                if ( irc->b->accounts )
    485485                {
    486                         irc_usermsg( irc, "Trying to get all accounts connected..." );
     486                        irc_rootmsg( irc, "Trying to get all accounts connected..." );
    487487               
    488488                        for( a = irc->b->accounts; a; a = a->next )
     
    490490                                {
    491491                                        if( strcmp( a->pass, PASSWORD_PENDING ) == 0 )
    492                                                 irc_usermsg( irc, "Enter password for account %s(%s) "
     492                                                irc_rootmsg( irc, "Enter password for account %s(%s) "
    493493                                                             "first (use /OPER)", a->prpl->name, a->user );
    494494                                        else
     
    498498                else
    499499                {
    500                         irc_usermsg( irc, "No accounts known. Use `account add' to add one." );
     500                        irc_rootmsg( irc, "No accounts known. Use `account add' to add one." );
    501501                }
    502502               
     
    505505        else if( len >= 2 && g_strncasecmp( cmd[1], "off", len ) == 0 )
    506506        {
    507                 irc_usermsg( irc, "Deactivating all active (re)connections..." );
     507                irc_rootmsg( irc, "Deactivating all active (re)connections..." );
    508508               
    509509                for( a = irc->b->accounts; a; a = a->next )
     
    530530            ( a = account_get( irc->b, cmd[1] ) ) == NULL )
    531531        {
    532                 irc_usermsg( irc, "Could not find account `%s'. Note that the syntax "
     532                irc_rootmsg( irc, "Could not find account `%s'. Note that the syntax "
    533533                             "of the account command changed, see \x02help account\x02.", cmd[1] );
    534534               
     
    540540                if( a->ic )
    541541                {
    542                         irc_usermsg( irc, "Account is still logged in, can't delete" );
     542                        irc_rootmsg( irc, "Account is still logged in, can't delete" );
    543543                }
    544544                else
    545545                {
    546546                        account_del( irc->b, a );
    547                         irc_usermsg( irc, "Account deleted" );
     547                        irc_rootmsg( irc, "Account deleted" );
    548548                }
    549549        }
     
    551551        {
    552552                if( a->ic )
    553                         irc_usermsg( irc, "Account already online" );
     553                        irc_rootmsg( irc, "Account already online" );
    554554                else if( strcmp( a->pass, PASSWORD_PENDING ) == 0 )
    555                         irc_usermsg( irc, "Enter password for account %s(%s) "
     555                        irc_rootmsg( irc, "Enter password for account %s(%s) "
    556556                                     "first (use /OPER)", a->prpl->name, a->user );
    557557                else
     
    567567                {
    568568                        cancel_auto_reconnect( a );
    569                         irc_usermsg( irc, "Reconnect cancelled" );
    570                 }
    571                 else
    572                 {
    573                         irc_usermsg( irc, "Account already offline" );
     569                        irc_rootmsg( irc, "Reconnect cancelled" );
     570                }
     571                else
     572                {
     573                        irc_rootmsg( irc, "Account already offline" );
    574574                }
    575575        }
     
    580580        else
    581581        {
    582                 irc_usermsg( irc, "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "account", cmd[2] );
     582                irc_rootmsg( irc, "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "account", cmd[2] );
    583583        }
    584584}
     
    597597               
    598598                if( strchr( irc->umode, 'b' ) )
    599                         irc_usermsg( irc, "Channel list:" );
     599                        irc_rootmsg( irc, "Channel list:" );
    600600               
    601601                for( l = irc->channels; l; l = l->next )
     
    603603                        irc_channel_t *ic = l->data;
    604604                       
    605                         irc_usermsg( irc, "%2d. %s, %s channel%s", i, ic->name,
     605                        irc_rootmsg( irc, "%2d. %s, %s channel%s", i, ic->name,
    606606                                     set_getstr( &ic->set, "type" ),
    607607                                     ic->flags & IRC_CHANNEL_JOINED ? " (joined)" : "" );
     
    609609                        i ++;
    610610                }
    611                 irc_usermsg( irc, "End of channel list" );
     611                irc_rootmsg( irc, "End of channel list" );
    612612               
    613613                return;
     
    623623                        cmd_set_real( irc, cmd + 1, &ic->set, NULL );
    624624                else
    625                         irc_usermsg( irc, "Could not find channel `%s'", cmd[1] );
     625                        irc_rootmsg( irc, "Could not find channel `%s'", cmd[1] );
    626626               
    627627                return;
     
    640640                    ic != ic->irc->default_channel )
    641641                {
    642                         irc_usermsg( irc, "Channel %s deleted.", ic->name );
     642                        irc_rootmsg( irc, "Channel %s deleted.", ic->name );
    643643                        irc_channel_free( ic );
    644644                }
    645645                else
    646                         irc_usermsg( irc, "Couldn't remove channel (main channel %s or "
     646                        irc_rootmsg( irc, "Couldn't remove channel (main channel %s or "
    647647                                          "channels you're still in cannot be deleted).",
    648648                                          irc->default_channel->name );
     
    650650        else
    651651        {
    652                 irc_usermsg( irc, "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "channel", cmd[1] );
     652                irc_rootmsg( irc, "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "channel", cmd[1] );
    653653        }
    654654}
     
    668668        if( !( a = account_get( irc->b, cmd[1] ) ) )
    669669        {
    670                 irc_usermsg( irc, "Invalid account" );
     670                irc_rootmsg( irc, "Invalid account" );
    671671                return;
    672672        }
    673673        else if( !( a->ic && ( a->ic->flags & OPT_LOGGED_IN ) ) )
    674674        {
    675                 irc_usermsg( irc, "That account is not on-line" );
     675                irc_rootmsg( irc, "That account is not on-line" );
    676676                return;
    677677        }
     
    681681                if( !nick_ok( cmd[3] ) )
    682682                {
    683                         irc_usermsg( irc, "The requested nick `%s' is invalid", cmd[3] );
     683                        irc_rootmsg( irc, "The requested nick `%s' is invalid", cmd[3] );
    684684                        return;
    685685                }
    686686                else if( irc_user_by_name( irc, cmd[3] ) )
    687687                {
    688                         irc_usermsg( irc, "The requested nick `%s' already exists", cmd[3] );
     688                        irc_rootmsg( irc, "The requested nick `%s' already exists", cmd[3] );
    689689                        return;
    690690                }
     
    704704                    strcmp( s, "group" ) == 0 &&
    705705                    ( group = set_getstr( &ic->set, "group" ) ) )
    706                         irc_usermsg( irc, "Adding `%s' to contact list (group %s)",
     706                        irc_rootmsg( irc, "Adding `%s' to contact list (group %s)",
    707707                                     cmd[2], group );
    708708                else
    709                         irc_usermsg( irc, "Adding `%s' to contact list", cmd[2] );
     709                        irc_rootmsg( irc, "Adding `%s' to contact list", cmd[2] );
    710710               
    711711                a->prpl->add_buddy( a->ic, cmd[2], group );
     
    720720                if( ( bu = bee_user_new( irc->b, a->ic, cmd[2], BEE_USER_LOCAL ) ) &&
    721721                    ( iu = bu->ui_data ) )
    722                         irc_usermsg( irc, "Temporarily assigned nickname `%s' "
     722                        irc_rootmsg( irc, "Temporarily assigned nickname `%s' "
    723723                                     "to contact `%s'", iu->nick, cmd[2] );
    724724        }
     
    734734        if( !( iu = irc_user_by_name( irc, cmd[1] ) ) || !( bu = iu->bu ) )
    735735        {
    736                 irc_usermsg( irc, "Buddy `%s' not found", cmd[1] );
     736                irc_rootmsg( irc, "Buddy `%s' not found", cmd[1] );
    737737                return;
    738738        }
     
    744744                bee_user_free( irc->b, bu );
    745745       
    746         irc_usermsg( irc, "Buddy `%s' (nick %s) removed from contact list", s, cmd[1] );
     746        irc_rootmsg( irc, "Buddy `%s' (nick %s) removed from contact list", s, cmd[1] );
    747747        g_free( s );
    748748       
     
    760760                if( !iu || !iu->bu )
    761761                {
    762                         irc_usermsg( irc, "Nick `%s' does not exist", cmd[1] );
     762                        irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] );
    763763                        return;
    764764                }
     
    768768        else if( !( a = account_get( irc->b, cmd[1] ) ) )
    769769        {
    770                 irc_usermsg( irc, "Invalid account" );
     770                irc_rootmsg( irc, "Invalid account" );
    771771                return;
    772772        }
    773773        else if( !( ( ic = a->ic ) && ( a->ic->flags & OPT_LOGGED_IN ) ) )
    774774        {
    775                 irc_usermsg( irc, "That account is not on-line" );
     775                irc_rootmsg( irc, "That account is not on-line" );
    776776                return;
    777777        }
     
    779779        if( !ic->acc->prpl->get_info )
    780780        {
    781                 irc_usermsg( irc, "Command `%s' not supported by this protocol", cmd[0] );
     781                irc_rootmsg( irc, "Command `%s' not supported by this protocol", cmd[0] );
    782782        }
    783783        else
     
    796796        if( iu == NULL )
    797797        {
    798                 irc_usermsg( irc, "Nick `%s' does not exist", cmd[1] );
     798                irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] );
    799799        }
    800800        else if( del )
     
    802802                if( iu->bu )
    803803                        bee_irc_user_nick_reset( iu );
    804                 irc_usermsg( irc, "Nickname reset to `%s'", iu->nick );
     804                irc_rootmsg( irc, "Nickname reset to `%s'", iu->nick );
    805805        }
    806806        else if( iu == irc->user )
    807807        {
    808                 irc_usermsg( irc, "Use /nick to change your own nickname" );
     808                irc_rootmsg( irc, "Use /nick to change your own nickname" );
    809809        }
    810810        else if( !nick_ok( cmd[2] ) )
    811811        {
    812                 irc_usermsg( irc, "Nick `%s' is invalid", cmd[2] );
     812                irc_rootmsg( irc, "Nick `%s' is invalid", cmd[2] );
    813813        }
    814814        else if( ( old = irc_user_by_name( irc, cmd[2] ) ) && old != iu )
    815815        {
    816                 irc_usermsg( irc, "Nick `%s' already exists", cmd[2] );
     816                irc_rootmsg( irc, "Nick `%s' already exists", cmd[2] );
    817817        }
    818818        else
     
    820820                if( !irc_user_set_nick( iu, cmd[2] ) )
    821821                {
    822                         irc_usermsg( irc, "Error while changing nick" );
     822                        irc_rootmsg( irc, "Error while changing nick" );
    823823                        return;
    824824                }
     
    836836                }
    837837               
    838                 irc_usermsg( irc, "Nick successfully changed" );
     838                irc_rootmsg( irc, "Nick successfully changed" );
    839839        }
    840840}
     
    869869                        format = "%-32.32s  %-16.16s";
    870870               
    871                 irc_usermsg( irc, format, "Handle", "Nickname" );
     871                irc_rootmsg( irc, format, "Handle", "Nickname" );
    872872                for( l = a->ic->deny; l; l = l->next )
    873873                {
    874874                        bee_user_t *bu = bee_user_by_handle( irc->b, a->ic, l->data );
    875875                        irc_user_t *iu = bu ? bu->ui_data : NULL;
    876                         irc_usermsg( irc, format, l->data, iu ? iu->nick : "(none)" );
    877                 }
    878                 irc_usermsg( irc, "End of list." );
     876                        irc_rootmsg( irc, format, l->data, iu ? iu->nick : "(none)" );
     877                }
     878                irc_rootmsg( irc, "End of list." );
    879879               
    880880                return;
     
    885885                if( !iu || !iu->bu )
    886886                {
    887                         irc_usermsg( irc, "Nick `%s' does not exist", cmd[1] );
     887                        irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] );
    888888                        return;
    889889                }
     
    893893        else if( !( a = account_get( irc->b, cmd[1] ) ) )
    894894        {
    895                 irc_usermsg( irc, "Invalid account" );
     895                irc_rootmsg( irc, "Invalid account" );
    896896                return;
    897897        }
    898898        else if( !( ( ic = a->ic ) && ( a->ic->flags & OPT_LOGGED_IN ) ) )
    899899        {
    900                 irc_usermsg( irc, "That account is not on-line" );
     900                irc_rootmsg( irc, "That account is not on-line" );
    901901                return;
    902902        }
     
    904904        if( !ic->acc->prpl->add_deny || !ic->acc->prpl->rem_permit )
    905905        {
    906                 irc_usermsg( irc, "Command `%s' not supported by this protocol", cmd[0] );
     906                irc_rootmsg( irc, "Command `%s' not supported by this protocol", cmd[0] );
    907907        }
    908908        else
     
    910910                imc_rem_allow( ic, cmd[2] );
    911911                imc_add_block( ic, cmd[2] );
    912                 irc_usermsg( irc, "Buddy `%s' moved from allow- to block-list", cmd[2] );
     912                irc_rootmsg( irc, "Buddy `%s' moved from allow- to block-list", cmd[2] );
    913913        }
    914914}
     
    929929                        format = "%-32.32s  %-16.16s";
    930930               
    931                 irc_usermsg( irc, format, "Handle", "Nickname" );
     931                irc_rootmsg( irc, format, "Handle", "Nickname" );
    932932                for( l = a->ic->permit; l; l = l->next )
    933933                {
    934934                        bee_user_t *bu = bee_user_by_handle( irc->b, a->ic, l->data );
    935935                        irc_user_t *iu = bu ? bu->ui_data : NULL;
    936                         irc_usermsg( irc, format, l->data, iu ? iu->nick : "(none)" );
    937                 }
    938                 irc_usermsg( irc, "End of list." );
     936                        irc_rootmsg( irc, format, l->data, iu ? iu->nick : "(none)" );
     937                }
     938                irc_rootmsg( irc, "End of list." );
    939939               
    940940                return;
     
    945945                if( !iu || !iu->bu )
    946946                {
    947                         irc_usermsg( irc, "Nick `%s' does not exist", cmd[1] );
     947                        irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] );
    948948                        return;
    949949                }
     
    953953        else if( !( a = account_get( irc->b, cmd[1] ) ) )
    954954        {
    955                 irc_usermsg( irc, "Invalid account" );
     955                irc_rootmsg( irc, "Invalid account" );
    956956                return;
    957957        }
    958958        else if( !( ( ic = a->ic ) && ( a->ic->flags & OPT_LOGGED_IN ) ) )
    959959        {
    960                 irc_usermsg( irc, "That account is not on-line" );
     960                irc_rootmsg( irc, "That account is not on-line" );
    961961                return;
    962962        }
     
    964964        if( !ic->acc->prpl->rem_deny || !ic->acc->prpl->add_permit )
    965965        {
    966                 irc_usermsg( irc, "Command `%s' not supported by this protocol", cmd[0] );
     966                irc_rootmsg( irc, "Command `%s' not supported by this protocol", cmd[0] );
    967967        }
    968968        else
     
    971971                imc_add_allow( ic, cmd[2] );
    972972               
    973                 irc_usermsg( irc, "Buddy `%s' moved from block- to allow-list", cmd[2] );
     973                irc_rootmsg( irc, "Buddy `%s' moved from block- to allow-list", cmd[2] );
    974974        }
    975975}
     
    998998                        if( ( ++times >= 3 ) )
    999999                        {
    1000                                 irc_usermsg( irc, "%s", msg[rand()%(sizeof(msg)/sizeof(char*))] );
     1000                                irc_rootmsg( irc, "%s", msg[rand()%(sizeof(msg)/sizeof(char*))] );
    10011001                                last_irc = NULL;
    10021002                                times = 0;
     
    10111011                }
    10121012               
    1013                 irc_usermsg( irc, "Did I ask you something?" );
     1013                irc_rootmsg( irc, "Did I ask you something?" );
    10141014                return;
    10151015        }
     
    10211021                if( sscanf( cmd[1], "%d", &numq ) != 1 )
    10221022                {
    1023                         irc_usermsg( irc, "Invalid query number" );
     1023                        irc_rootmsg( irc, "Invalid query number" );
    10241024                        return;
    10251025                }
     
    10311031                if( !q )
    10321032                {
    1033                         irc_usermsg( irc, "Uhm, I never asked you something like that..." );
     1033                        irc_rootmsg( irc, "Uhm, I never asked you something like that..." );
    10341034                        return;
    10351035                }
     
    10711071                format = "%-16.16s  %-40.40s  %s";
    10721072       
    1073         irc_usermsg( irc, format, "Nick", "Handle/Account", "Status" );
     1073        irc_rootmsg( irc, format, "Nick", "Handle/Account", "Status" );
    10741074       
    10751075        if( irc->root->last_channel &&
     
    10941094                       
    10951095                        g_snprintf( s, sizeof( s ) - 1, "%s %s(%s)", bu->handle, bu->ic->acc->prpl->name, bu->ic->acc->user );
    1096                         irc_usermsg( irc, format, iu->nick, s, st );
     1096                        irc_rootmsg( irc, format, iu->nick, s, st );
    10971097                }
    10981098               
     
    11121112                {
    11131113                        g_snprintf( s, sizeof( s ) - 1, "%s %s(%s)", bu->handle, bu->ic->acc->prpl->name, bu->ic->acc->user );
    1114                         irc_usermsg( irc, format, iu->nick, s, irc_user_get_away( iu ) );
     1114                        irc_rootmsg( irc, format, iu->nick, s, irc_user_get_away( iu ) );
    11151115                }
    11161116                n_away ++;
     
    11291129                {
    11301130                        g_snprintf( s, sizeof( s ) - 1, "%s %s(%s)", bu->handle, bu->ic->acc->prpl->name, bu->ic->acc->user );
    1131                         irc_usermsg( irc, format, iu->nick, s, "Offline" );
     1131                        irc_rootmsg( irc, format, iu->nick, s, "Offline" );
    11321132                }
    11331133                n_offline ++;
    11341134        }
    11351135       
    1136         irc_usermsg( irc, "%d buddies (%d available, %d away, %d offline)", n_online + n_away + n_offline, n_online, n_away, n_offline );
     1136        irc_rootmsg( irc, "%d buddies (%d available, %d away, %d offline)", n_online + n_away + n_offline, n_online, n_away, n_offline );
    11371137}
    11381138
     
    11441144        if( !q )
    11451145        {
    1146                 irc_usermsg( irc, "There are no pending questions." );
    1147                 return;
    1148         }
    1149        
    1150         irc_usermsg( irc, "Pending queries:" );
     1146                irc_rootmsg( irc, "There are no pending questions." );
     1147                return;
     1148        }
     1149       
     1150        irc_rootmsg( irc, "Pending queries:" );
    11511151       
    11521152        for( num = 0; q; q = q->next, num ++ )
    11531153                if( q->ic ) /* Not necessary yet, but it might come later */
    1154                         irc_usermsg( irc, "%d, %s(%s): %s", num, q->ic->acc->prpl->name, q->ic->acc->user, q->question );
    1155                 else
    1156                         irc_usermsg( irc, "%d, BitlBee: %s", num, q->question );
     1154                        irc_rootmsg( irc, "%d, %s(%s): %s", num, q->ic->acc->prpl->name, q->ic->acc->user, q->question );
     1155                else
     1156                        irc_rootmsg( irc, "%d, BitlBee: %s", num, q->question );
    11571157}
    11581158
     
    11701170                if( !( acc = account_get( irc->b, cmd[2] ) ) )
    11711171                {
    1172                         irc_usermsg( irc, "Invalid account" );
     1172                        irc_rootmsg( irc, "Invalid account" );
    11731173                        return;
    11741174                }
    11751175                else if( !acc->prpl->chat_join )
    11761176                {
    1177                         irc_usermsg( irc, "Named chatrooms not supported on that account." );
     1177                        irc_rootmsg( irc, "Named chatrooms not supported on that account." );
    11781178                        return;
    11791179                }
     
    12051205                    set_setstr( &ic->set, "room", cmd[3] ) )
    12061206                {
    1207                         irc_usermsg( irc, "Chatroom successfully added." );
     1207                        irc_rootmsg( irc, "Chatroom successfully added." );
    12081208                }
    12091209                else
     
    12121212                                irc_channel_free( ic );
    12131213                       
    1214                         irc_usermsg( irc, "Could not add chatroom." );
     1214                        irc_rootmsg( irc, "Could not add chatroom." );
    12151215                }
    12161216                g_free( channel );
     
    12271227                        if( !iu->bu->ic->acc->prpl->chat_with( iu->bu->ic, iu->bu->handle ) )
    12281228                        {
    1229                                 irc_usermsg( irc, "(Possible) failure while trying to open "
     1229                                irc_rootmsg( irc, "(Possible) failure while trying to open "
    12301230                                                  "a groupchat with %s.", iu->nick );
    12311231                        }
     
    12331233                else
    12341234                {
    1235                         irc_usermsg( irc, "Can't open a groupchat with %s.", cmd[2] );
     1235                        irc_rootmsg( irc, "Can't open a groupchat with %s.", cmd[2] );
    12361236                }
    12371237        }
     
    12401240                 g_strcasecmp( cmd[1], "del" ) == 0 )
    12411241        {
    1242                 irc_usermsg( irc, "Warning: The \002chat\002 command was mostly replaced with the \002channel\002 command." );
     1242                irc_rootmsg( irc, "Warning: The \002chat\002 command was mostly replaced with the \002channel\002 command." );
    12431243                cmd_channel( irc, cmd );
    12441244        }
    12451245        else
    12461246        {
    1247                 irc_usermsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "chat", cmd[1] );
     1247                irc_rootmsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "chat", cmd[1] );
    12481248        }
    12491249}
     
    12601260               
    12611261                if( strchr( irc->umode, 'b' ) )
    1262                         irc_usermsg( irc, "Group list:" );
     1262                        irc_rootmsg( irc, "Group list:" );
    12631263               
    12641264                for( l = irc->b->groups; l; l = l->next )
    12651265                {
    12661266                        bee_group_t *bg = l->data;
    1267                         irc_usermsg( irc, "%d. %s", n ++, bg->name );
    1268                 }
    1269                 irc_usermsg( irc, "End of group list" );
    1270         }
    1271         else
    1272         {
    1273                 irc_usermsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "group", cmd[1] );
     1267                        irc_rootmsg( irc, "%d. %s", n ++, bg->name );
     1268                }
     1269                irc_rootmsg( irc, "End of group list" );
     1270        }
     1271        else
     1272        {
     1273                irc_rootmsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "group", cmd[1] );
    12741274        }
    12751275}
     
    12841284        if( !files )
    12851285        {
    1286                 irc_usermsg( irc, "No pending transfers" );
     1286                irc_rootmsg( irc, "No pending transfers" );
    12871287                return;
    12881288        }
     
    13051305                case LIST:
    13061306                        if ( file->status == FT_STATUS_LISTENING )
    1307                                 irc_usermsg( irc,
     1307                                irc_rootmsg( irc,
    13081308                                        "Pending file(id %d): %s (Listening...)", file->local_id, file->file_name);
    13091309                        else
     
    13141314                                        kb_per_s = file->bytes_transferred / 1024 / diff;
    13151315                                       
    1316                                 irc_usermsg( irc,
     1316                                irc_rootmsg( irc,
    13171317                                        "Pending file(id %d): %s (%10zd/%zd kb, %d kb/s)", file->local_id, file->file_name,
    13181318                                        file->bytes_transferred/1024, file->file_size/1024, kb_per_s);
     
    13221322                        if( file->status == FT_STATUS_LISTENING )
    13231323                        {
    1324                                 irc_usermsg( irc, "Rejecting file transfer for %s", file->file_name );
     1324                                irc_rootmsg( irc, "Rejecting file transfer for %s", file->file_name );
    13251325                                imcb_file_canceled( file->ic, file, "Denied by user" );
    13261326                        }
     
    13291329                        if( file->local_id == fid )
    13301330                        {
    1331                                 irc_usermsg( irc, "Canceling file transfer for %s", file->file_name );
     1331                                irc_rootmsg( irc, "Canceling file transfer for %s", file->file_name );
    13321332                                imcb_file_canceled( file->ic, file, "Canceled by user" );
    13331333                        }
     
    13391339static void cmd_nick( irc_t *irc, char **cmd )
    13401340{
    1341         irc_usermsg( irc, "This command is deprecated. Try: account %s set display_name", cmd[1] );
     1341        irc_rootmsg( irc, "This command is deprecated. Try: account %s set display_name", cmd[1] );
    13421342}
    13431343
     
    13541354       
    13551355        if( msg )
    1356                 irc_usermsg( irc, "%s: This seems to be your first time using this "
     1356                irc_rootmsg( irc, "%s: This seems to be your first time using this "
    13571357                                  "this version of BitlBee. Here's a list of new "
    13581358                                  "features you may like to know about:\n\n%s\n",
  • storage_xml.c

    r6a45181 r3864c08  
    269269        {
    270270                xd->unknown_tag ++;
    271                 irc_usermsg( irc, "Warning: Unknown XML tag found in configuration file (%s). "
     271                irc_rootmsg( irc, "Warning: Unknown XML tag found in configuration file (%s). "
    272272                                  "This may happen when downgrading BitlBee versions. "
    273273                                  "This tag will be skipped and the information will be lost "
     
    397397                        {
    398398                                if( gerr && irc )
    399                                         irc_usermsg( irc, "Error from XML-parser: %s", gerr->message );
     399                                        irc_rootmsg( irc, "Error from XML-parser: %s", gerr->message );
    400400                               
    401401                                g_clear_error( &gerr );
     
    473473        if( ( fd = mkstemp( path ) ) < 0 )
    474474        {
    475                 irc_usermsg( irc, "Error while opening configuration file." );
     475                irc_rootmsg( irc, "Error while opening configuration file." );
    476476                return STORAGE_OTHER_ERROR;
    477477        }
     
    570570        if( rename( path, path2 ) != 0 )
    571571        {
    572                 irc_usermsg( irc, "Error while renaming temporary configuration file." );
     572                irc_rootmsg( irc, "Error while renaming temporary configuration file." );
    573573               
    574574                g_free( path2 );
     
    585585        g_free( pass_buf );
    586586       
    587         irc_usermsg( irc, "Write error. Disk full?" );
     587        irc_rootmsg( irc, "Write error. Disk full?" );
    588588        close( fd );
    589589       
Note: See TracChangeset for help on using the changeset viewer.