*pport = port; return (myhttp); } EVRPC_HEADER(Message, msg, kill) EVRPC_HEADER(NeverReply, msg, kill) EVRPC_GENERATE(Message, msg, kill) EVRPC_GENERATE(NeverReply, msg, kill) static int need_input_hook = 0; static int need_output_hook = 0; static void MessageCb(EVRPC_STRUCT(Message)* rpc, void *arg) { struct kill* kill_reply = rpc->reply; if (need_input_hook) { struct evhttp_request* req = EVRPC_REQUEST_HTTP(rpc); const char *header = evhttp_find_header( req->input_headers, "X-Hook"); assert(header); assert(strcmp(header, "input") == 0); } /* we just want to fill in some non-sense */ EVTAG_ASSIGN(kill_reply, weapon, "dagger"); EVTAG_ASSIGN(kill_reply, action, "wave around like an idiot");
{ switch (type) { case MACHINE_CMGR: return "MGR"; case MACHINE_MDS: return "MDS"; case MACHINE_OSD: return "OSD"; case MACHINE_CLIENT: return "client"; } return NULL; } //evrpc server side void ping_handler(EVRPC_STRUCT(rpc_ping) * rpc, void *arg) { DBG(); struct ping *ping = rpc->request; struct pong *pong = rpc->reply; int ping_version = ping->version; //char * self_ip = ping->self_ip; char *remote_ip; //= rpc->http_req->evcon->address; int remote_port; //= rpc->http_req->evcon->address; uint16_t tmp_port; evhttp_connection_get_peer(rpc->http_req->evcon, &remote_ip, &tmp_port); remote_port = ping->self_port; int type = ping->self_type; int mid = ping->mid;