static void
stats_process_read(TSCont contp, TSEvent event, stats_state *my_state) {
	TSDebug(PLUGIN_TAG, "stats_process_read(%d)", event);

	if (event == TS_EVENT_VCONN_READ_READY) {
		my_state->output_bytes = stats_add_data_to_resp_buffer(RESP_HEADER, my_state);
		TSVConnShutdown(my_state->net_vc, 1, 0);
		my_state->write_vio = TSVConnWrite(my_state->net_vc, contp, my_state->resp_reader, INT64_MAX);
	}
	else if (event == TS_EVENT_ERROR)
		TSError("stats_process_read: Received TS_EVENT_ERROR\n");
	else if (event == TS_EVENT_VCONN_EOS)
		/* client may end the connection, simply return */
		return;
	else if (event == TS_EVENT_NET_ACCEPT_FAILED)
		TSError("stats_process_read: Received TS_EVENT_NET_ACCEPT_FAILED\n");
	else {
		printf("Unexpected Event %d\n", event);
		TSReleaseAssert(!"Unexpected Event");
	}
}
Example #2
0
static int
stats_add_resp_header(stats_state * my_state)
{
  return stats_add_data_to_resp_buffer(RESP_HEADER, my_state);
}