int test_parse(const char *test, int target_count)
{
    HandlerParser *parser = HandlerParser_create(128);

    bstring T1 = bfromcstr(test);

    int rc = HandlerParser_execute(parser, bdata(T1), blength(T1));

    bdestroy(T1);

    return rc == 1 && target_count == (int)parser->target_count;
}
int test_parse(const char *test, int target_count)
{
    HandlerParser *parser = HandlerParser_create(128);

    bstring T1 = bfromcstr(test);

    int rc = HandlerParser_execute(parser, bdata(T1), blength(T1));
    debug("BODY %d long at %s with rc: %d, uuid: %s, target_count: %d",
            (int)parser->body_length, parser->body_start, rc, 
            bdata(parser->uuid), (int)parser->target_count);

    bdestroy(T1);

    return rc == 1 && target_count == parser->target_count;
}
Example #3
0
static inline int handler_recv_parse(Handler *handler, HandlerParser *parser)
{
	log_info("handler_recv_parse");
	
    zmq_msg_t *inmsg = NULL;
    check(handler->running, "Called while handler wasn't running, that's not good.");

    inmsg = calloc(sizeof(zmq_msg_t), 1);
    int rc = 0;

    check_mem(inmsg);

    rc = zmq_msg_init(inmsg);
    check(rc == 0, "Failed to initialize message.");

    taskstate("recv");

    rc = mqrecv(handler->recv_socket, inmsg, 0);
    check(rc == 0, "Receive on handler socket failed.");
    check(handler->running, "Handler marked as not running.");

    rc = HandlerParser_execute(parser, zmq_msg_data(inmsg), zmq_msg_size(inmsg));
	log_info("handler_recv_parse - HandlerParser_execute %d", rc);
    check(rc == 1, "Failed to parse message from handler.");

    check(parser->target_count > 0, "Message sent had 0 targets: %.*s",
            (int)zmq_msg_size(inmsg), (char *)zmq_msg_data(inmsg));

    zmq_msg_close(inmsg);
    free(inmsg);
    return 0;

error:
    if(inmsg) {
        zmq_msg_close(inmsg);
        free(inmsg);
    }
    return -1;
}
Example #4
0
static inline int handler_recv_parse(Handler *handler, HandlerParser *parser)
{
    check(handler->running, "Called while handler wasn't running, that's not good.");

    zmq_msg_t *inmsg = calloc(sizeof(zmq_msg_t), 1);
    int rc = 0;

    check_mem(inmsg);

    rc = zmq_msg_init(inmsg);
    check(rc == 0, "Failed to initialize message.");

    taskstate("recv");

    rc = mqrecv(handler->recv_socket, inmsg, ZMQ_NOBLOCK);
    check(rc == 0, "Receive on handler socket failed.");
    check(handler->running, "Received shutdown notification, goodbye.");

    rc = HandlerParser_execute(parser, zmq_msg_data(inmsg), zmq_msg_size(inmsg));
    check(rc == 1, "Failed to parse message from handler.");

    check(parser->target_count > 0, "Message sent had 0 targets: %.*s",
            (int)zmq_msg_size(inmsg), (char *)zmq_msg_data(inmsg));

    debug("Parsed message with %d targets, first: %d, uuid: %s, and body: %d",
            (int)parser->target_count, parser->targets[0],
            bdata(parser->uuid), blength(parser->body));

    zmq_msg_close(inmsg);
    free(inmsg);
    return 0;

error:
    if(inmsg) {
        zmq_msg_close(inmsg);
        free(inmsg);
    }
    return -1;
}