Esempio n. 1
0
int process_msg(struct rpc *r, struct iovec *buf)
{
    msg_handler_t msg_handler;

    int msg_id = rpc_packet_parse(r);
    if (find_msg_handler(msg_id, &msg_handler) == 0) {
        msg_handler.cb(r, buf->iov_base, buf->iov_len);
    } else {
        //loge("no callback for this MSG ID(0x%08x) in process_msg\n", msg_id);
    }
    return 0;
}
Esempio n. 2
0
int process_msg2(struct rpc *r, struct iobuf *buf)
{
    msg_handler_t msg_handler;

    int msg_id = rpc_packet_parse(r);
//    logi("msg_id = %x\n", msg_id);
    if (find_msg_handler(msg_id, &msg_handler) == 0 ) {
        msg_handler.cb(r, buf->addr, buf->len);
    } else {
        loge("no callback for this MSG ID in process_msg\n");
    }
    return 0;
}
Esempio n. 3
0
File: rpcd.c Progetto: gozfree/src
int process_msg(struct rpc *r, struct iobuf *buf)
{
    int ret;
    msg_handler_t msg_handler;
    struct rpc_header *h = &r->packet.header;
    int msg_id = rpc_packet_parse(r);

    if (find_msg_handler(msg_id, &msg_handler) == 0) {
        msg_handler.cb(r, buf->addr, buf->len);
    } else {
        loge("no callback for this MSG ID in process_msg\n");
        char *valfd = (char *)dict_get(_rpcd->dict_uuid2fd, h->uuid_dst, NULL);
        if (!valfd) {
            loge("dict_get failed: key=%s\n", h->uuid_dst);
            return -1;
        }
        int dst_fd = strtol(valfd, NULL, 16);
        r->fd = dst_fd;
        ret = rpc_send(r, buf->addr, buf->len);
    }
    return ret;
}