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; }
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; }
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; }