Ejemplo n.º 1
0
static dict_t
parse_database_int(RECDB *recdb)
{
    char *name;
    struct record_data *rd;
    dict_t db = alloc_database();
    dict_set_free_keys(db, free);
    while (!dbeof(recdb)) {
        parse_record_int(recdb, &name, &rd);
        if (name) dict_insert(db, name, rd);
    }
    return db;
}
Ejemplo n.º 2
0
dict_t
parse_object(RECDB *recdb)
{
    dict_t obj;
    char *name;
    struct record_data *rd;
    int c;
    if ((c = parse_skip_ws(recdb)) == EOF) return NULL;
    if (c != '{') ABORT(recdb, EXPECTED_OPEN_BRACE, c);
    obj = alloc_object();
    dict_set_free_keys(obj, free);
    while (!dbeof(recdb)) {
        if ((c = parse_skip_ws(recdb)) == '}') break;
        if (c == EOF) break;
        dbungetc(c, recdb);
        parse_record_int(recdb, &name, &rd);
        dict_insert(obj, name, rd);
    }
    return obj;
}
Ejemplo n.º 3
0
int
track_init(void) {
    track_db = dict_new();
    dict_set_free_keys(track_db, free);

    reg_exit_func(track_cleanup, NULL);
    conf_register_reload(track_conf_read);
    reg_nick_change_func(track_nick_change, NULL);
    reg_join_func(track_join, NULL);
    reg_part_func(track_part, NULL);
    reg_kick_func(track_kick, NULL);
    reg_new_user_func(track_new_user, NULL);
    reg_del_user_func(track_del_user, NULL);
    reg_auth_func(track_auth, NULL);
    reg_channel_mode_func(track_channel_mode, NULL);
    reg_user_mode_func(track_user_mode, NULL);
    reg_oper_func(track_oper, NULL);
    opserv_define_func("TRACK", cmd_track, 800, 0, 0);
    opserv_define_func("DELTRACK", cmd_deltrack, 800, 0, 0);
    opserv_define_func("ADDTRACK", cmd_addtrack, 800, 0, 0);
    opserv_define_func("LISTTRACK", cmd_listtrack, 800, 0, 0);
    return 1;
}