diff options
author | Joseph Henry <josephjah@gmail.com> | 2016-01-11 10:12:59 -0800 |
---|---|---|
committer | Joseph Henry <josephjah@gmail.com> | 2016-01-11 10:12:59 -0800 |
commit | 3e65ecb93d62d628b99d68fec8b1ec94993f4f09 (patch) | |
tree | 763cf3956766a28f6c767c067eabec49e039ecff /netcon/RPC.h | |
parent | ff9317365a1d9498076b0971f0209fc2aec5c142 (diff) | |
download | infinitytier-3e65ecb93d62d628b99d68fec8b1ec94993f4f09.tar.gz infinitytier-3e65ecb93d62d628b99d68fec8b1ec94993f4f09.zip |
Stateless RPC rework
Diffstat (limited to 'netcon/RPC.h')
-rw-r--r-- | netcon/RPC.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/netcon/RPC.h b/netcon/RPC.h index ad8f54d9..ee8182e8 100644 --- a/netcon/RPC.h +++ b/netcon/RPC.h @@ -1,12 +1,25 @@ #ifndef __RPCLIB_H_ #define __RPCLIB_H_ -#define IDX_PID 0 -#define IDX_TID sizeof(pid_t) +#include <stdint.h> + +#define MAGIC_SIZE sizeof(uint64_t) +#define MAGIC_PADDING_SIZE 12 +#define TOKEN_SIZE MAGIC_SIZE+MAGIC_PADDING_SIZE + +// 1st section +#define IDX_SIGNAL_BYTE 0 +#define IDX_PID 1 +#define IDX_TID sizeof(pid_t) + 1 #define IDX_COUNT IDX_TID + sizeof(pid_t) #define IDX_TIME IDX_COUNT + sizeof(int) #define IDX_PAYLOAD IDX_TIME + 20 /* 20 being the length of the timestamp string */ +// 2nd section +#define CMD_ID_IDX 0 +#define MAGIC_IDX 1 +#define STRUCT_IDX MAGIC_IDX+MAGIC_SIZE + #define BUF_SZ 256 #define PAYLOAD_SZ 223 /* BUF_SZ-IDX_PAYLOAD */ @@ -37,18 +50,19 @@ extern "C" { #endif -void rpc_mutex_destroy(); -void rpc_mutex_init(); - int get_retval(int); -int get_new_fd(int); int rpc_join(const char * sockname); -int rpc_send_command(int cmd, int rpc_sock, void *data, int len); +int rpc_send_command(int cmd, int forfd, void *data, int len); +int get_new_fd(int sock); ssize_t sock_fd_write(int sock, int fd); ssize_t sock_fd_read(int sock, void *buf, ssize_t bufsize, int *fd); +void rpc_mutex_destroy(); +void rpc_mutex_init(); + + /* Structures used for sending commands via RPC mechanism */ struct bind_st { |