Changeset 1a81c83 for protocols/rpc


Ignore:
Timestamp:
2015-05-06T15:48:16Z (10 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Children:
6f903c3
Parents:
f81d8b8
Message:

s/number/integer in a few places.

Also (since I forgot to commit), updating rpc module to not treat all plugin
calls as optional.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/rpc/rpc.c

    rf81d8b8 r1a81c83  
    5050                 * Not sure whether to use it. */
    5151                JSON_Value *error = json_value_init_object();
    52                 json_object_set_number(json_object(error), "code", code);
     52                json_object_set_integer(json_object(error), "code", code);
    5353                json_object_set_string(json_object(error), "message", msg);
    5454                json_object_set_value(json_object(ret), "error", error);
     
    7878        JSON_Value *rpc = json_value_init_object();
    7979        json_object_set_string(json_object(rpc), "method", method);
    80         json_object_set_number(json_object(rpc), "id", next_rpc_id++);
     80        json_object_set_integer(json_object(rpc), "id", next_rpc_id++);
    8181
    8282        JSON_Value *params = json_value_init_array();
     
    147147        json_object_set_string_or_null(o, "nick", bu->nick);
    148148        json_object_set_string_or_null(o, "group", bu->group ? bu->group->name : NULL);
    149         json_object_set_number(o, "flags", bu->flags);
     149        json_object_set_integer(o, "flags", bu->flags);
    150150        json_object_set_string_or_null(o, "status", bu->status);
    151151        json_object_set_string_or_null(o, "status_msg", bu->status_msg);
    152         json_object_set_number(o, "login_time", bu->login_time);
    153         json_object_set_number(o, "idle_time", bu->idle_time);
     152        json_object_set_integer(o, "login_time", bu->login_time);
     153        json_object_set_integer(o, "idle_time", bu->idle_time);
    154154        return v;
    155155}
     
    163163                JSON_Object *o = json_object(value);
    164164                set_t *set = set_add(&acc->set, name, json_object_get_string(o, "default"), NULL, acc);
    165                 /* JSON numbers are floats. The following line "might" be a
    166                  * terrible idea. As was JSON, but hey. */
    167                 set->flags |= (int) json_object_get_number(o, "flags");
     165                set->flags |= json_object_get_integer(o, "flags");
    168166                set->eval = rpc_set_evaluator;
    169167                set->eval_data = o;
     
    210208                        /* Evaluator already did validation so ignore retval. */
    211209                        sscanf(value, "%d", &num);
    212                         json_array_append_number(params, num);
     210                        json_array_append_integer(params, num);
    213211                } else if (type_eval == set_eval_bool) {
    214212                        json_array_append_boolean(params, bool2int(value));
     
    285283        json_array_append_string(params, to);
    286284        json_array_append_string(params, message);
    287         json_array_append_number(params, flags);
     285        json_array_append_integer(params, flags);
    288286        return rpc_send(ic, rpc);
    289287}
     
    299297        RPC_OUT_INIT("send_typing");
    300298        json_array_append_string(params, who);
    301         json_array_append_number(params, flags);
     299        json_array_append_integer(params, flags);
    302300        return rpc_send(ic, rpc);
    303301}
     
    350348        RPC_OUT_INIT("chat_invite");
    351349        struct rpc_groupchat *rc = gc->data;
    352         json_array_append_number(params, rc->id);
     350        json_array_append_integer(params, rc->id);
    353351        json_array_append_string(params, who);
    354352        json_array_append_string_or_null(params, message);
     
    359357        RPC_OUT_INIT("chat_kick");
    360358        struct rpc_groupchat *rc = gc->data;
    361         json_array_append_number(params, rc->id);
     359        json_array_append_integer(params, rc->id);
    362360        json_array_append_string(params, who);
    363361        json_array_append_string_or_null(params, message);
     
    368366        RPC_OUT_INIT("chat_leave");
    369367        struct rpc_groupchat *rc = gc->data;
    370         json_array_append_number(params, rc->id);
     368        json_array_append_integer(params, rc->id);
    371369        rpc_send(gc->ic, rpc);
    372370}
     
    375373        RPC_OUT_INIT("chat_msg");       
    376374        struct rpc_groupchat *rc = gc->data;
    377         json_array_append_number(params, rc->id);
     375        json_array_append_integer(params, rc->id);
    378376        json_array_append_string(params, msg);
    379         json_array_append_number(params, flags);
     377        json_array_append_integer(params, flags);
    380378        rpc_send(gc->ic, rpc);
    381379}
     
    402400#define SET_GROUPCHAT(rc) \
    403401        do { \
    404                 rc = rpc_groupchat_by_id(ic, json_array_get_number(params, 0)); \
     402                rc = rpc_groupchat_by_id(ic, json_array_get_integer(params, 0)); \
    405403                if (rc == NULL) \
    406404                        return jsonrpc_error(ENOENT, "No groupchat with that id."); \
     
    410408        RPC_OUT_INIT("chat_with");
    411409        struct rpc_groupchat *rc = rpc_groupchat_new(ic, who);
    412         json_array_append_number(params, rc->id);
     410        json_array_append_integer(params, rc->id);
    413411        json_array_append_string(params, who);
    414412        rpc_send(ic, rpc);
     
    421419        RPC_OUT_INIT("chat_join");
    422420        struct rpc_groupchat *rc = rpc_groupchat_new(ic, room);
    423         json_array_append_number(params, rc->id);
     421        json_array_append_integer(params, rc->id);
    424422        json_array_append_string(params, room);
    425423        json_array_append_string_or_null(params, nick);
     
    434432        RPC_OUT_INIT("chat_topic");
    435433        struct rpc_groupchat *rc = gc->data;
    436         json_array_append_number(params, rc->id);
     434        json_array_append_integer(params, rc->id);
    437435        json_array_append_string(params, topic);
    438436        rpc_send(gc->ic, rpc);
     
    551549static JSON_Value *rpc_imcb_buddy_status(struct im_connection *ic, void *func_, JSON_Array *params) {
    552550        void (*func)(struct im_connection*, const char*, int, const char*, const char*) = func_;
    553         func(ic, json_array_get_string(params, 0), json_array_get_number(params, 1),
     551        func(ic, json_array_get_string(params, 0), json_array_get_integer(params, 1),
    554552                 json_array_get_string(params, 2), json_array_get_string(params, 3));
    555553        return NULL;
     
    558556static JSON_Value *rpc_imcb_buddy_times(struct im_connection *ic, void *func_, JSON_Array *params) {
    559557        void (*func)(struct im_connection*, const char*, int, int) = func_;
    560         func(ic, json_array_get_string(params, 0), json_array_get_number(params, 1),
    561                  json_array_get_number(params, 2));
     558        func(ic, json_array_get_string(params, 0), json_array_get_integer(params, 1),
     559                 json_array_get_integer(params, 2));
    562560        return NULL;
    563561}
     
    566564        void (*func)(struct im_connection*, const char*, const char*, int, int) = func_;
    567565        func(ic, json_array_get_string(params, 0), json_array_get_string(params, 1),
    568                  json_array_get_number(params, 2), json_array_get_number(params, 3));
     566                 json_array_get_integer(params, 2), json_array_get_integer(params, 3));
    569567        return NULL;
    570568}
     
    572570static JSON_Value *rpc_imcb_buddy_typing(struct im_connection *ic, void *func_, JSON_Array *params) {
    573571        void (*func)(struct im_connection*, const char*, int) = func_;
    574         func(ic, (char*) json_array_get_string(params, 0), json_array_get_number(params, 1));
     572        func(ic, (char*) json_array_get_string(params, 0), json_array_get_integer(params, 1));
    575573        return NULL;
    576574}
     
    579577        struct rpc_groupchat *rc = rpc_groupchat_new(ic, json_array_get_string(params, 0));
    580578        JSON_Value *resp = json_value_init_object();
    581         json_object_set_number(json_object(resp), "result", rc->id);
     579        json_object_set_integer(json_object(resp), "result", rc->id);
    582580        return resp;
    583581}
     
    596594        SET_GROUPCHAT(rc);
    597595        func(rc->gc, json_array_get_string(params, 1), json_array_get_string(params, 2),
    598              json_array_get_number(params, 3), json_array_get_number(params, 4));
     596             json_array_get_integer(params, 3), json_array_get_integer(params, 4));
    599597        return NULL;
    600598}
     
    613611        SET_GROUPCHAT(rc);
    614612        func(rc->gc, json_array_get_string(params, 1), json_array_get_string(params, 2),
    615              json_array_get_number(params, 3));
     613             json_array_get_integer(params, 3));
    616614        return NULL;
    617615}
     
    687685        { "imcb_buddy_status", imcb_buddy_status, rpc_imcb_buddy_status, "snss" },
    688686        { "imcb_buddy_status_msg", imcb_buddy_status_msg, rpc_imcb_add_buddy, "ss" },
    689         { "imcb_buddy_times", imcb_buddy_times, rpc_imcb_buddy_times, "snn" },
    690         { "imcb_buddy_msg", imcb_buddy_msg, rpc_imcb_buddy_msg, "ssnn" },
    691         { "imcb_buddy_typing", imcb_buddy_typing, rpc_imcb_buddy_typing, "sn" },
     687        { "imcb_buddy_times", imcb_buddy_times, rpc_imcb_buddy_times, "sii" },
     688        { "imcb_buddy_msg", imcb_buddy_msg, rpc_imcb_buddy_msg, "ssii" },
     689        { "imcb_buddy_typing", imcb_buddy_typing, rpc_imcb_buddy_typing, "si" },
    692690        { "imcb_chat_new", NULL, rpc_imcb_chat_new, "s" },
    693691       
    694692        /* RPCs below are equivalent, but with the struct groupchat* replaced
    695693         * with the numeric id of the chat. */
    696         { "imcb_chat_name_hint", imcb_chat_name_hint, rpc_imcb_chat_name_hint, "ns" },
    697         { "imcb_chat_msg", imcb_chat_msg, rpc_imcb_chat_msg, "nssnn" },
    698         { "imcb_chat_log", imcb_chat_log, rpc_imcb_chat_log, "ns" },
    699         { "imcb_chat_topic", imcb_chat_topic, rpc_imcb_chat_topic, "nssn" },
    700         { "imcb_chat_add_buddy", imcb_chat_add_buddy, rpc_imcb_chat_name_hint, "ns" },
    701         { "imcb_chat_remove_buddy", imcb_chat_remove_buddy, rpc_imcb_chat_remove_buddy, "nss" },
    702         { "imcb_chat_invite", imcb_chat_invite, rpc_imcb_chat_invite, "nsss" },
     694        { "imcb_chat_name_hint", imcb_chat_name_hint, rpc_imcb_chat_name_hint, "is" },
     695        { "imcb_chat_msg", imcb_chat_msg, rpc_imcb_chat_msg, "issii" },
     696        { "imcb_chat_log", imcb_chat_log, rpc_imcb_chat_log, "is" },
     697        { "imcb_chat_topic", imcb_chat_topic, rpc_imcb_chat_topic, "issi" },
     698        { "imcb_chat_add_buddy", imcb_chat_add_buddy, rpc_imcb_chat_name_hint, "is" },
     699        { "imcb_chat_remove_buddy", imcb_chat_remove_buddy, rpc_imcb_chat_remove_buddy, "iss" },
     700        { "imcb_chat_invite", imcb_chat_invite, rpc_imcb_chat_invite, "isss" },
    703701
    704702        /* These are not imcb* functions but should still be exported. */
     
    722720                        if (json_array_get_count(params) != strlen(methods[i].args)) {
    723721                                imcb_error(ic, "Invalid argument count to method %s: %d, wanted %zd", cmd, (int) json_array_get_count(params), strlen(methods[i].args));
    724                                 return jsonrpc_error(E2BIG, "Invalid number of arguments");
     722                                return jsonrpc_error(E2BIG, "Invalid integer of arguments");
    725723                        }
    726724                        int j;
     
    732730                                        ok = type == JSONString || type == JSONNull;
    733731                                        break;
    734                                 case 'n':
    735                                         ok = type == JSONNumber;
     732                                case 'i':
     733                                        ok = type == JSONInteger;
    736734                                        break;
    737735                                case 'o':
     
    758756
    759757#define RPC_ADD_FUNC(func) \
     758        ret->func = rpc_ ## func
     759#define RPC_ADD_OPT_FUNC(func) \
    760760        if (g_hash_table_contains(methods, #func)) \
    761                 ret->func = rpc_ ## func
     761                RPC_ADD_FUNC(func)
    762762
    763763static JSON_Value *rpc_init_isup() {
     
    767767        JSON_Value *d = json_value_init_object();
    768768        json_object_set_string(json_object(d), "version_str", BITLBEE_VERSION);
    769         json_object_set_number(json_object(d), "version", BITLBEE_VERSION_CODE);
     769        json_object_set_integer(json_object(d), "version", BITLBEE_VERSION_CODE);
    770770       
    771771        JSON_Value *ml = json_value_init_array();
     
    854854        ret->data = proto_data;
    855855
    856         proto_data->account_flags = json_object_get_number(isup, "account_flags");
     856        proto_data->account_flags = json_object_get_integer(isup, "account_flags");
    857857
    858858        /* Keep a full copy of the settings list, we can only use it when we
     
    878878        ret->init = rpc_init;
    879879        RPC_ADD_FUNC(login);
    880         RPC_ADD_FUNC(keepalive);
     880        RPC_ADD_OPT_FUNC(keepalive);
    881881        RPC_ADD_FUNC(logout);
    882882        RPC_ADD_FUNC(buddy_msg);
    883         RPC_ADD_FUNC(set_away);
    884         RPC_ADD_FUNC(send_typing);
    885         RPC_ADD_FUNC(add_buddy);
     883        RPC_ADD_OPT_FUNC(set_away);
     884        RPC_ADD_OPT_FUNC(send_typing);
     885        RPC_ADD_FUNC(add_buddy);     /* Consider making these two optional? */
    886886        RPC_ADD_FUNC(remove_buddy);
    887         RPC_ADD_FUNC(add_permit);
    888         RPC_ADD_FUNC(add_deny);
    889         RPC_ADD_FUNC(rem_permit);
    890         RPC_ADD_FUNC(rem_deny);
    891         RPC_ADD_FUNC(get_info);
    892         RPC_ADD_FUNC(chat_invite);
    893         RPC_ADD_FUNC(chat_kick);
    894         RPC_ADD_FUNC(chat_leave);
    895         RPC_ADD_FUNC(chat_msg);
    896         RPC_ADD_FUNC(chat_with);
    897         RPC_ADD_FUNC(chat_join);
    898         RPC_ADD_FUNC(chat_topic);
     887        RPC_ADD_OPT_FUNC(add_permit);
     888        RPC_ADD_OPT_FUNC(add_deny);
     889        RPC_ADD_OPT_FUNC(rem_permit);
     890        RPC_ADD_OPT_FUNC(rem_deny);
     891        RPC_ADD_OPT_FUNC(get_info);
     892        RPC_ADD_OPT_FUNC(chat_invite);
     893        RPC_ADD_OPT_FUNC(chat_kick);
     894        RPC_ADD_OPT_FUNC(chat_leave);
     895        RPC_ADD_OPT_FUNC(chat_msg);
     896        RPC_ADD_OPT_FUNC(chat_with);
     897        RPC_ADD_OPT_FUNC(chat_join);
     898        RPC_ADD_OPT_FUNC(chat_topic);
    899899        if (proto_data->away_states)
    900900                ret->away_states = rpc_away_states;
Note: See TracChangeset for help on using the changeset viewer.