Пример #1
0
/**
 * destroy function
 */
static void destroy(void)
{
	sql_destroy();
}
Пример #2
0
void sql_deinit()
{
	sql_destroy(&sql_account);
}
Пример #3
0
int sql_routine(int fd, sqlite3 *db, sockfd_buf_t *rwbuf)
{
    if (fd < 0 || db == NULL || rwbuf == NULL || rwbuf->rbuf.data == NULL || 
        rwbuf->rbuf.len == 0 || rwbuf->wbuf.data == NULL) {
        E("parameter error.");
        DD(fd);
        DP(db);
        DP(rwbuf);
        DP(rwbuf->rbuf.data);
        DD(rwbuf->rbuf.len);
        DP(rwbuf->wbuf.data);
        DD(rwbuf->wbuf.len);
        return -1;
    }

    char *regex = "^:[0-9]{1,2}:[A-Za-z0-9_]*:[A-Za-z0-9_]*:"
                    "[A-Za-z0-9_]*:.*:[0-9]{0,14}$";
    if (cs_regex(rwbuf->rbuf.data, regex) != 0) {
        E("request type undefined.");

        strncpy(rwbuf->wbuf.data, "regex_err", 9);
        rwbuf->wbuf.len = 9;
        return -1;
    }

    cs_request_t req = cs_parse_request(rwbuf->rbuf.data);
    request_dump(&req);

    int ret = -1;
    switch (req.req_type) {
        case 0:
            ret = sql_register(&req, db, &rwbuf->wbuf);
            break;
        case 1:
            ret = sql_destroy(&req, db, &rwbuf->wbuf);
            break;
        case 2:
            ret = sql_login(fd, &req, db, &rwbuf->wbuf);
            break;
        case 3:
            ret = sql_logout(&req, db, &rwbuf->wbuf);
            break;
        case 4:
            ret = sql_view_user(&req, db, &rwbuf->wbuf);
            break;
        case 5:
            ret = sql_add_buddy(&req, db, &rwbuf->wbuf);
            break;
        case 6:
            ret = sql_del_buddy(&req, db, &rwbuf->wbuf);
            break;
        case 7:
            ret = sql_sendto(fd, &req, db, &rwbuf->wbuf);
            break;
        case 8:
            ret = sql_view_log(&req, db, &rwbuf->wbuf);
            break;
        case 9:
            ret = sql_del_log(&req, db, &rwbuf->wbuf);
            break;
        case 10:
            ret = sql_change_passwd(&req, db, &rwbuf->wbuf);
            break;
        case 11:
            ret = sql_submit_info(&req, db, &rwbuf->wbuf);
            break;
        case 12:
            ret = sql_view_info(&req, db, &rwbuf->wbuf);
            break;
        default:
            DD(req.req_type);
            break;
    }

    request_free(&req);
    return ret; 
}