Changeset 71074ac


Ignore:
Timestamp:
2015-04-21T03:47:57Z (4 years ago)
Author:
dequis <dx@…>
Branches:
master
Children:
1493c4b, 356e2dd
Parents:
2fe8297
git-author:
dequis <dx@…> (05-04-15 20:47:16)
git-committer:
dequis <dx@…> (21-04-15 03:47:57)
Message:

jabber: Register "hipchat" protocol (only minimal support for now)

Another take on the subprotocols idea that, IMO, was a failure.

Unlike the other implementation, this one doesn't touch gtalk/facebook
accounts, it just adds another copy of the "jabber" prpl called "hipchat".

And, based on the protocol name:

  • sets JFLAG_HIPCHAT to jabber_data
  • sets the default value of the "server" setting
  • only includes the oauth setting for jabber-type accounts

This is slightly more "hardcoded" but honestly facebook and gtalk are
just as hardcoded as this.

Copying the prpl is needed because the meaning of the usernames is
completely different (there's no srv lookup stuff either)

Location:
protocols/jabber
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/jabber.c

    r2fe8297 r71074ac  
    6161        s = set_add(&acc->set, "activity_timeout", "600", set_eval_int, acc);
    6262
    63         s = set_add(&acc->set, "oauth", "false", set_eval_oauth, acc);
    64 
    6563        s = set_add(&acc->set, "display_name", NULL, NULL, acc);
    6664
     
    8381        s = set_add(&acc->set, "server", NULL, set_eval_account, acc);
    8482        s->flags |= SET_NOSAVE | ACC_SET_OFFLINE_ONLY | SET_NULL_OK;
     83
     84        if (strcmp(acc->prpl->name, "hipchat") == 0) {
     85                set_setstr(&acc->set, "server", "chat.hipchat.com");
     86        } else {
     87                s = set_add(&acc->set, "oauth", "false", set_eval_oauth, acc);
     88        }
    8589
    8690        s = set_add(&acc->set, "ssl", "false", set_eval_bool, acc);
     
    121125
    122126        jd->fd = jd->r_inpa = jd->w_inpa = -1;
     127
     128        if (strcmp(acc->prpl->name, "hipchat") == 0) {
     129                jd->flags |= JFLAG_HIPCHAT;
     130        }
    123131
    124132        if (jd->server == NULL) {
     
    656664{
    657665        struct prpl *ret = g_new0(struct prpl, 1);
     666        struct prpl *hipchat = NULL;
    658667
    659668        ret->name = "jabber";
     
    686695
    687696        register_protocol(ret);
    688 }
     697
     698        /* Another one for hipchat, which has completely different logins */
     699        hipchat = g_memdup(ret, sizeof(struct prpl));
     700        hipchat->name = "hipchat";
     701        register_protocol(hipchat);
     702}
  • protocols/jabber/jabber.h

    r2fe8297 r71074ac  
    4848
    4949        JFLAG_GTALK =  0x100000,        /* Is Google Talk, as confirmed by iq discovery */
     50        JFLAG_HIPCHAT = 0x200000,       /* Is hipchat, because prpl->name says so */
    5051
    5152        JFLAG_SASL_FB = 0x10000,        /* Trying Facebook authentication. */
Note: See TracChangeset for help on using the changeset viewer.