Commit 488ebcda authored by Greg Williams's avatar Greg Williams
Browse files

Updated PDUs to contain message buffers, and added a custom allocator so that...

Updated PDUs to contain message buffers, and added a custom allocator so that protobuf-c serializes responses into them directly.
parent 5bb9a3a8
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -25,20 +25,20 @@
  :support:
    - test/support/**
  :source:
    - src/**/*.c
    - src/**
    - vendor/protobuf-c/protobuf-c/protobuf-c.c
    - vendor/socket99/socket99.c
  :include:
    - src/**
    - include/**
    - vendor/
    - vendor/protobuf-c/
    - vendor/protobuf-c/**
  # Refactor release build once the Kinetic-C library is built, and link to it sepearately
  :release_toolchain_include:
    - src/*
    - src/**
    - include/**
    - vendor/
    - vendor/protobuf-c/
    - vendor/protobuf-c/**

:defines:
  # in order to add common defines:
+0 −2
Original line number Diff line number Diff line
@@ -119,9 +119,7 @@ KineticOperation KineticClient_CreateOperation(

    op.connection = connection;
    op.request = request;
    // op.request->message = requestMsg;
    op.response = response;
    // op.response->message = NULL;

    return op;
}
+2 −1
Original line number Diff line number Diff line
@@ -92,6 +92,8 @@ bool KineticHMAC_Validate(const KineticProto* proto,
    return success;
}

#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

static void KineticHMAC_Compute(KineticHMAC* hmac,
    const KineticProto* proto,
    const ByteArray key)
@@ -104,7 +106,6 @@ static void KineticHMAC_Compute(KineticHMAC* hmac,
    uint32_t lenPacked = protobuf_c_message_pack((ProtobufCMessage*)proto->command, packed);
    assert(lenPacked == len);

#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
    HMAC_CTX ctx;
    HMAC_CTX_init(&ctx);
    HMAC_Init_ex(&ctx, key.data, key.len, EVP_sha1(), NULL);
+1 −1
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ void KineticLogger_LogProtobuf(const KineticProto* proto)
                            LOGF("%smetadataOnly: %s", _indent,
                                proto->command->body->keyValue->metadataOnly ? _str_true : _str_false);
                        }
                        if (proto->command->body->keyValue->has_Synchronization)
                        if (proto->command->body->keyValue->has_synchronization)
                        {
                            const ProtobufCEnumValue* eVal = protobuf_c_enum_descriptor_get_value(
                                &KineticProto_synchronization__descriptor,
+12 −8
Original line number Diff line number Diff line
@@ -21,12 +21,16 @@
#include "kinetic_operation.h"
#include "kinetic_connection.h"
#include "kinetic_message.h"
#include "kinetic_logger.h"

void KineticOperation_ValidateOperation(KineticOperation* operation)
{
    assert(operation != NULL);
    assert(operation->connection != NULL);
    assert(operation->request != NULL);
    assert(operation->request->proto != NULL);
    assert(operation->request->proto->command != NULL);
    assert(operation->request->proto->command->header != NULL);
    assert(operation->response != NULL);
}

@@ -35,8 +39,8 @@ void KineticOperation_BuildNoop(KineticOperation* operation)
    KineticOperation_ValidateOperation(operation);
    KineticConnection_IncrementSequence(operation->connection);

    operation->request->message->header.messageType = KINETIC_PROTO_MESSAGE_TYPE_NOOP;
    operation->request->message->header.has_messageType = true;
    operation->request->proto->command->header->messageType = KINETIC_PROTO_MESSAGE_TYPE_NOOP;
    operation->request->proto->command->header->has_messageType = true;
}

void KineticOperation_BuildPut(KineticOperation* operation,
@@ -46,10 +50,10 @@ void KineticOperation_BuildPut(KineticOperation* operation,
    KineticOperation_ValidateOperation(operation);
    KineticConnection_IncrementSequence(operation->connection);

    operation->request->message->header.messageType = KINETIC_PROTO_MESSAGE_TYPE_PUT;
    operation->request->message->header.has_messageType = true;
    operation->request->proto->command->header->messageType = KINETIC_PROTO_MESSAGE_TYPE_PUT;
    operation->request->proto->command->header->has_messageType = true;

    KineticMessage_ConfigureKeyValue(operation->request->message, metadata);
    KineticMessage_ConfigureKeyValue(&operation->request->message, metadata);

    operation->request->value = value;
}
@@ -61,8 +65,8 @@ void KineticOperation_BuildGet(KineticOperation* operation,
    KineticOperation_ValidateOperation(operation);
    KineticConnection_IncrementSequence(operation->connection);

    operation->request->message->header.messageType = KINETIC_PROTO_MESSAGE_TYPE_GET;
    operation->request->message->header.has_messageType = true;
    operation->request->proto->command->header->messageType = KINETIC_PROTO_MESSAGE_TYPE_GET;
    operation->request->proto->command->header->has_messageType = true;

    operation->request->value = BYTE_ARRAY_NONE;
    if (value.data != NULL)
@@ -74,5 +78,5 @@ void KineticOperation_BuildGet(KineticOperation* operation,
        operation->response->value.data = operation->response->valueBuffer;
    }

    KineticMessage_ConfigureKeyValue(operation->request->message, metadata);
    KineticMessage_ConfigureKeyValue(&operation->request->message, metadata);
}
Loading