void rsp_recv_done(struct context *ctx, struct conn *conn, struct msg *msg, struct msg *nmsg) { struct server *server; ASSERT(!conn->client && !conn->proxy); ASSERT(msg != NULL && conn->rmsg == msg); ASSERT(!msg->request); ASSERT(msg->owner == conn); ASSERT(nmsg == NULL || !nmsg->request); /* enqueue next message (response), if any */ conn->rmsg = nmsg; server = conn->owner; /* if server's status is not onlie, we know it's a health check rsp */ if (server->status != SERVER_STATUS_ONLINE) { server_proc_replication_info(ctx, conn, msg); return; } if (rsp_filter(ctx, conn, msg)) { return; } rsp_forward(ctx, conn, msg); }
//接受完成 void rsp_recv_done(struct context *ctx, struct conn *conn, struct msg *msg, struct msg *nmsg) { ASSERT(!conn->client && !conn->proxy); ASSERT(msg != NULL && conn->rmsg == msg); ASSERT(!msg->request); ASSERT(msg->owner == conn); ASSERT(nmsg == NULL || !nmsg->request); /* enqueue next message (response), if any */ conn->rmsg = nmsg; if (rsp_filter(ctx, conn, msg)) { return; } rsp_forward(ctx, conn, msg); }
void rsp_recv_done(struct context *ctx, struct conn *conn, struct msg *msg, struct msg *nmsg) { ASSERT(!conn->client && !conn->proxy); ASSERT(msg != NULL && conn->rmsg == msg); ASSERT(!msg->request); ASSERT(msg->owner == conn); ASSERT(nmsg == NULL || !nmsg->request); /* enqueue next message (response), if any */ conn->rmsg = nmsg; #if 1 //shenzheng 2015-8-10 for debug msg_print(msg, LOG_DEBUG); #endif //shenzheng 2015-8-10 for debug if (rsp_filter(ctx, conn, msg)) { return; } rsp_forward(ctx, conn, msg); }