diff --git a/src/sf_buffered_writer.h b/src/sf_buffered_writer.h index ef32de7..32f6d54 100644 --- a/src/sf_buffered_writer.h +++ b/src/sf_buffered_writer.h @@ -30,8 +30,8 @@ typedef struct { #define sf_buffered_writer_init(writer, filename) \ sf_buffered_writer_init_ex(writer, filename, 1024 * 1024) -#define SF_BUFFERED_WRITER_LENGTH(bw) ((bw).buffer.current - (bw).buffer.buff) -#define SF_BUFFERED_WRITER_REMAIN(bw) ((bw).buffer.end - (bw).buffer.current) +#define SF_BUFFERED_WRITER_LENGTH(bw) SF_BINLOG_BUFFER_LENGTH((bw).buffer) +#define SF_BUFFERED_WRITER_REMAIN(bw) SF_BINLOG_BUFFER_REMAIN((bw).buffer) #ifdef __cplusplus extern "C" { diff --git a/src/sf_file_writer.h b/src/sf_file_writer.h index 6a13f4d..b9b9d09 100644 --- a/src/sf_file_writer.h +++ b/src/sf_file_writer.h @@ -30,9 +30,6 @@ #define SF_BINLOG_FILE_PREFIX "binlog" #define SF_BINLOG_FILE_EXT_FMT ".%06d" -#define SF_BINLOG_BUFFER_LENGTH(buffer) ((buffer).end - (buffer).buff) -#define SF_BINLOG_BUFFER_REMAIN(buffer) ((buffer).end - (buffer).current) - typedef struct sf_file_writer_info { struct { const char *data_path; diff --git a/src/sf_proto.c b/src/sf_proto.c index b2ab5cf..99a2a68 100644 --- a/src/sf_proto.c +++ b/src/sf_proto.c @@ -674,6 +674,7 @@ int sf_proto_deal_task_done(struct fast_task_info *task, status = sf_unify_errno(FC_ABS(ctx->response.header.status)); short2buff(status, proto_header->status); + short2buff(ctx->response.header.flags, proto_header->flags); proto_header->cmd = ctx->response.header.cmd; int2buff(ctx->response.header.body_len, proto_header->body_len); task->send.ptr->length = sizeof(SFCommonProtoHeader) + diff --git a/src/sf_proto.h b/src/sf_proto.h index bea8a49..3a5a7b8 100644 --- a/src/sf_proto.h +++ b/src/sf_proto.h @@ -307,6 +307,7 @@ static inline void sf_proto_init_task_context(struct fast_task_info *task, ctx->response.header.cmd = SF_PROTO_ACK; ctx->response.header.body_len = 0; ctx->response.header.status = 0; + ctx->response.header.flags = 0; ctx->response.error.length = 0; ctx->response.error.message[0] = '\0'; ctx->log_level = LOG_ERR; diff --git a/src/sf_types.h b/src/sf_types.h index d27d9a5..5a05595 100644 --- a/src/sf_types.h +++ b/src/sf_types.h @@ -42,6 +42,9 @@ #define SF_SOCKET_NETWORK_HANDLER_INDEX 0 #define SF_RDMACM_NETWORK_HANDLER_INDEX 1 +#define SF_BINLOG_BUFFER_LENGTH(buffer) ((buffer).end - (buffer).buff) +#define SF_BINLOG_BUFFER_REMAIN(buffer) ((buffer).end - (buffer).current) + typedef int (*sf_accept_done_callback)(struct fast_task_info *task, const in_addr_64_t client_addr, const bool bInnerPort); typedef int (*sf_set_body_length_callback)(struct fast_task_info *task); @@ -351,6 +354,7 @@ typedef struct sf_synchronize_context { int result; union { bool finished; + bool ready; int waiting_count; }; } SFSynchronizeContext;