/* Generated by the protocol buffer compiler. DO NOT EDIT! */ /* Generated from: intercept.proto */ #ifndef PROTOBUF_C_intercept_2eproto__INCLUDED #define PROTOBUF_C_intercept_2eproto__INCLUDED #include PROTOBUF_C__BEGIN_DECLS #if PROTOBUF_C_VERSION_NUMBER < 1003000 # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. #elif 1004000 < PROTOBUF_C_MIN_COMPILER_VERSION # error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. #endif typedef struct InterceptRequest InterceptRequest; typedef struct InterceptHello InterceptHello; typedef struct HelloResponse HelloResponse; typedef struct PolicyCheckRequest PolicyCheckRequest; typedef struct PolicyAcceptMessage PolicyAcceptMessage; typedef struct PolicyRejectMessage PolicyRejectMessage; typedef struct PolicyErrorMessage PolicyErrorMessage; typedef struct InterceptResponse InterceptResponse; /* --- enums --- */ /* --- messages --- */ typedef enum { INTERCEPT_REQUEST__TYPE__NOT_SET = 0, INTERCEPT_REQUEST__TYPE_POLICY_CHECK_REQ = 1, INTERCEPT_REQUEST__TYPE_HELLO = 2 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(INTERCEPT_REQUEST__TYPE__CASE) } InterceptRequest__TypeCase; /* * Intercept message from sudo_intercept.so. Messages on the * wire are prefixed with a 32-bit size in network byte order. */ struct InterceptRequest { ProtobufCMessage base; InterceptRequest__TypeCase type_case; union { PolicyCheckRequest *policy_check_req; InterceptHello *hello; } u; }; #define INTERCEPT_REQUEST__INIT \ { PROTOBUF_C_MESSAGE_INIT (&intercept_request__descriptor) \ , INTERCEPT_REQUEST__TYPE__NOT_SET, {0} } /* * Hello message from sudo_intercept.so to main sudo process. * Sudo sends back the token and localhost port number. */ struct InterceptHello { ProtobufCMessage base; int32_t pid; }; #define INTERCEPT_HELLO__INIT \ { PROTOBUF_C_MESSAGE_INIT (&intercept_hello__descriptor) \ , 0 } /* * Sudo response to an InterceptHello from sudo_intercept.so. * The client uses the port number and token to connect back to sudo. * If log_only is set there is no InterceptResponse to a PolicyCheckRequest. */ struct HelloResponse { ProtobufCMessage base; uint64_t token_lo; uint64_t token_hi; int32_t portno; protobuf_c_boolean log_only; }; #define HELLO_RESPONSE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&hello_response__descriptor) \ , 0, 0, 0, 0 } /* * Policy check request from sudo_intercept.so. * Note that the plugin API only currently supports passing * the new environment in to the open() function. */ struct PolicyCheckRequest { ProtobufCMessage base; char *command; char *cwd; size_t n_argv; char **argv; size_t n_envp; char **envp; int32_t intercept_fd; }; #define POLICY_CHECK_REQUEST__INIT \ { PROTOBUF_C_MESSAGE_INIT (&policy_check_request__descriptor) \ , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL, 0,NULL, 0 } struct PolicyAcceptMessage { ProtobufCMessage base; char *run_command; size_t n_run_argv; char **run_argv; size_t n_run_envp; char **run_envp; }; #define POLICY_ACCEPT_MESSAGE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&policy_accept_message__descriptor) \ , (char *)protobuf_c_empty_string, 0,NULL, 0,NULL } struct PolicyRejectMessage { ProtobufCMessage base; char *reject_message; }; #define POLICY_REJECT_MESSAGE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&policy_reject_message__descriptor) \ , (char *)protobuf_c_empty_string } struct PolicyErrorMessage { ProtobufCMessage base; char *error_message; }; #define POLICY_ERROR_MESSAGE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&policy_error_message__descriptor) \ , (char *)protobuf_c_empty_string } typedef enum { INTERCEPT_RESPONSE__TYPE__NOT_SET = 0, INTERCEPT_RESPONSE__TYPE_HELLO_RESP = 1, INTERCEPT_RESPONSE__TYPE_ACCEPT_MSG = 2, INTERCEPT_RESPONSE__TYPE_REJECT_MSG = 3, INTERCEPT_RESPONSE__TYPE_ERROR_MSG = 4 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(INTERCEPT_RESPONSE__TYPE__CASE) } InterceptResponse__TypeCase; /* * Response sent back to sudo_intercept.so. */ struct InterceptResponse { ProtobufCMessage base; InterceptResponse__TypeCase type_case; union { HelloResponse *hello_resp; PolicyAcceptMessage *accept_msg; PolicyRejectMessage *reject_msg; PolicyErrorMessage *error_msg; } u; }; #define INTERCEPT_RESPONSE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&intercept_response__descriptor) \ , INTERCEPT_RESPONSE__TYPE__NOT_SET, {0} } /* InterceptRequest methods */ void intercept_request__init (InterceptRequest *message); size_t intercept_request__get_packed_size (const InterceptRequest *message); size_t intercept_request__pack (const InterceptRequest *message, uint8_t *out); size_t intercept_request__pack_to_buffer (const InterceptRequest *message, ProtobufCBuffer *buffer); InterceptRequest * intercept_request__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void intercept_request__free_unpacked (InterceptRequest *message, ProtobufCAllocator *allocator); /* InterceptHello methods */ void intercept_hello__init (InterceptHello *message); size_t intercept_hello__get_packed_size (const InterceptHello *message); size_t intercept_hello__pack (const InterceptHello *message, uint8_t *out); size_t intercept_hello__pack_to_buffer (const InterceptHello *message, ProtobufCBuffer *buffer); InterceptHello * intercept_hello__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void intercept_hello__free_unpacked (InterceptHello *message, ProtobufCAllocator *allocator); /* HelloResponse methods */ void hello_response__init (HelloResponse *message); size_t hello_response__get_packed_size (const HelloResponse *message); size_t hello_response__pack (const HelloResponse *message, uint8_t *out); size_t hello_response__pack_to_buffer (const HelloResponse *message, ProtobufCBuffer *buffer); HelloResponse * hello_response__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void hello_response__free_unpacked (HelloResponse *message, ProtobufCAllocator *allocator); /* PolicyCheckRequest methods */ void policy_check_request__init (PolicyCheckRequest *message); size_t policy_check_request__get_packed_size (const PolicyCheckRequest *message); size_t policy_check_request__pack (const PolicyCheckRequest *message, uint8_t *out); size_t policy_check_request__pack_to_buffer (const PolicyCheckRequest *message, ProtobufCBuffer *buffer); PolicyCheckRequest * policy_check_request__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void policy_check_request__free_unpacked (PolicyCheckRequest *message, ProtobufCAllocator *allocator); /* PolicyAcceptMessage methods */ void policy_accept_message__init (PolicyAcceptMessage *message); size_t policy_accept_message__get_packed_size (const PolicyAcceptMessage *message); size_t policy_accept_message__pack (const PolicyAcceptMessage *message, uint8_t *out); size_t policy_accept_message__pack_to_buffer (const PolicyAcceptMessage *message, ProtobufCBuffer *buffer); PolicyAcceptMessage * policy_accept_message__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void policy_accept_message__free_unpacked (PolicyAcceptMessage *message, ProtobufCAllocator *allocator); /* PolicyRejectMessage methods */ void policy_reject_message__init (PolicyRejectMessage *message); size_t policy_reject_message__get_packed_size (const PolicyRejectMessage *message); size_t policy_reject_message__pack (const PolicyRejectMessage *message, uint8_t *out); size_t policy_reject_message__pack_to_buffer (const PolicyRejectMessage *message, ProtobufCBuffer *buffer); PolicyRejectMessage * policy_reject_message__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void policy_reject_message__free_unpacked (PolicyRejectMessage *message, ProtobufCAllocator *allocator); /* PolicyErrorMessage methods */ void policy_error_message__init (PolicyErrorMessage *message); size_t policy_error_message__get_packed_size (const PolicyErrorMessage *message); size_t policy_error_message__pack (const PolicyErrorMessage *message, uint8_t *out); size_t policy_error_message__pack_to_buffer (const PolicyErrorMessage *message, ProtobufCBuffer *buffer); PolicyErrorMessage * policy_error_message__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void policy_error_message__free_unpacked (PolicyErrorMessage *message, ProtobufCAllocator *allocator); /* InterceptResponse methods */ void intercept_response__init (InterceptResponse *message); size_t intercept_response__get_packed_size (const InterceptResponse *message); size_t intercept_response__pack (const InterceptResponse *message, uint8_t *out); size_t intercept_response__pack_to_buffer (const InterceptResponse *message, ProtobufCBuffer *buffer); InterceptResponse * intercept_response__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); void intercept_response__free_unpacked (InterceptResponse *message, ProtobufCAllocator *allocator); /* --- per-message closures --- */ typedef void (*InterceptRequest_Closure) (const InterceptRequest *message, void *closure_data); typedef void (*InterceptHello_Closure) (const InterceptHello *message, void *closure_data); typedef void (*HelloResponse_Closure) (const HelloResponse *message, void *closure_data); typedef void (*PolicyCheckRequest_Closure) (const PolicyCheckRequest *message, void *closure_data); typedef void (*PolicyAcceptMessage_Closure) (const PolicyAcceptMessage *message, void *closure_data); typedef void (*PolicyRejectMessage_Closure) (const PolicyRejectMessage *message, void *closure_data); typedef void (*PolicyErrorMessage_Closure) (const PolicyErrorMessage *message, void *closure_data); typedef void (*InterceptResponse_Closure) (const InterceptResponse *message, void *closure_data); /* --- services --- */ /* --- descriptors --- */ extern const ProtobufCMessageDescriptor intercept_request__descriptor; extern const ProtobufCMessageDescriptor intercept_hello__descriptor; extern const ProtobufCMessageDescriptor hello_response__descriptor; extern const ProtobufCMessageDescriptor policy_check_request__descriptor; extern const ProtobufCMessageDescriptor policy_accept_message__descriptor; extern const ProtobufCMessageDescriptor policy_reject_message__descriptor; extern const ProtobufCMessageDescriptor policy_error_message__descriptor; extern const ProtobufCMessageDescriptor intercept_response__descriptor; PROTOBUF_C__END_DECLS #endif /* PROTOBUF_C_intercept_2eproto__INCLUDED */