Esempio n. 1
0
static void im_ssl_event(nx_module_t *module, nx_event_t *event)
{
    nx_module_input_t *input = NULL;

    ASSERT(event != NULL);

    switch ( event->type )
    {
	case NX_EVENT_READ:
	    im_ssl_read(module, event);
	    break;
	case NX_EVENT_WRITE:
	    im_ssl_write(module, event);
	    break;
	case NX_EVENT_DISCONNECT:
	    CHECKERR_MSG(apr_socket_data_get((void **) &input, "input",
					     (apr_socket_t *) event->data),
			 "couldn't get input data from socket");
	    im_ssl_disconnect(input);
	    break;
	case NX_EVENT_POLL:
	    if ( nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING )
	    {
		nx_module_pollset_poll(module, TRUE);
	    }
	    break;
	default:
	    nx_panic("invalid event type: %d", event->type);
    }
}
Esempio n. 2
0
static void im_tcp_resume(nx_module_t *module)
{
    if ( nx_module_get_status(module) != NX_MODULE_STATUS_STOPPED )
    {
	nx_module_pollset_poll(module, TRUE);
    }
}
Esempio n. 3
0
static void im_exec_event(nx_module_t *module, nx_event_t *event)
{
    nx_im_exec_conf_t *imconf;
    nx_exception_t e;

    ASSERT(event != NULL);

    imconf = (nx_im_exec_conf_t *) module->config;

    switch ( event->type )
    {
	case NX_EVENT_DISCONNECT:
	    // FIXME: restart if imconf->restart == TRUE
	    log_warn("im_exec process %s exited", imconf->cmd);
	    imconf->running = FALSE;
	    im_exec_add_restart_event(module);
	    break;
	case NX_EVENT_READ:
	    try
	    {
		im_exec_read(module);
	    }
	    catch(e)
	    {
		log_exception(e);
		im_exec_add_restart_event(module);
	    }
	    break;
	case NX_EVENT_POLL:
#ifdef WIN32
	    nx_panic("pollset based im_exec implementation doesn't work on windows");
#else
	    if ( nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING )
	    {
		nx_module_pollset_poll(module, TRUE);
	    }
	    break;
#endif
	default:
	    nx_panic("invalid event type: %d", event->type);
    }
}
Esempio n. 4
0
static void im_tcp_event(nx_module_t *module, nx_event_t *event)
{
    ASSERT(event != NULL);

    switch ( event->type )
    {
	case NX_EVENT_READ:
	    im_tcp_read(module, event);
	    break;
	case NX_EVENT_DISCONNECT:
	    im_tcp_got_disconnect(module, event);
	    break;
	case NX_EVENT_POLL:
	    if ( nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING )
	    {
		nx_module_pollset_poll(module, TRUE);
	    }
	    break;
	default:
	    nx_panic("invalid event type: %d", event->type);
    }
}
static void om_kafka_event(nx_module_t *module, nx_event_t *event) {
	log_debug("Kafka module event entrypoint");
	nx_exception_t e;
	ASSERT(module != NULL);
	ASSERT(event != NULL);

	nx_om_kafka_conf_t* modconf;
	modconf = (nx_om_kafka_conf_t*) module->config;
	switch (event->type) {
		case NX_EVENT_DATA_AVAILABLE:
			log_debug("Output buflen: %d, bufstart: %d", (int) module->output.buflen, (int) module->output.bufstart);
			try {
				om_kafka_write(module);
			} catch (e) {
				io_err_handler(module, &e);
			}
			break;
		case NX_EVENT_READ:
			break;
		case NX_EVENT_WRITE:
			break;
		case NX_EVENT_RECONNECT:
			break;
		case NX_EVENT_DISCONNECT:
			break;
		case NX_EVENT_TIMEOUT:
			break;
		case NX_EVENT_POLL:
			if (nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING) {
				nx_module_pollset_poll(module, FALSE);
			} 
			break;
		default:
		nx_panic("invalid event type: %d", event->type);
	}
}