Skip to content

Refactor stream-dump to C++. #2345

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions src/lib/rnp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ static bool rnp_password_cb_bounce(const pgp_password_ctx_t *ctx,
size_t password_size,
void * userdata_void);

static rnp_result_t rnp_dump_src_to_json(pgp_source_t *src, uint32_t flags, char **result);
static rnp_result_t rnp_dump_src_to_json(pgp_source_t &src, uint32_t flags, char **result);

static bool
call_key_callback(rnp_ffi_t ffi, const rnp::KeySearch &search, bool secret)
Expand Down Expand Up @@ -6974,7 +6974,7 @@ try {
sig->sig->sig.write(memdst.dst());
auto vec = memdst.to_vector();
rnp::MemorySource memsrc(vec);
return rnp_dump_src_to_json(&memsrc.src(), flags, json);
return rnp_dump_src_to_json(memsrc.src(), flags, json);
}
FFI_GUARD

Expand Down Expand Up @@ -8641,19 +8641,19 @@ try {
FFI_GUARD

static rnp_result_t
rnp_dump_src_to_json(pgp_source_t *src, uint32_t flags, char **result)
rnp_dump_src_to_json(pgp_source_t &src, uint32_t flags, char **result)
{
rnp_dump_ctx_t dumpctx = {};
json_object * jso = NULL;
rnp::DumpContextJson dumpctx(src, &jso);

dumpctx.dump_mpi = extract_flag(flags, RNP_JSON_DUMP_MPI);
dumpctx.dump_packets = extract_flag(flags, RNP_JSON_DUMP_RAW);
dumpctx.dump_grips = extract_flag(flags, RNP_JSON_DUMP_GRIP);
dumpctx.set_dump_mpi(extract_flag(flags, RNP_JSON_DUMP_MPI));
dumpctx.set_dump_packets(extract_flag(flags, RNP_JSON_DUMP_RAW));
dumpctx.set_dump_grips(extract_flag(flags, RNP_JSON_DUMP_GRIP));
if (flags) {
return RNP_ERROR_BAD_PARAMETERS;
}

json_object *jso = NULL;
rnp_result_t ret = stream_dump_packets_json(&dumpctx, src, &jso);
rnp_result_t ret = dumpctx.dump();
if (ret) {
json_object_put(jso);
return ret;
Expand All @@ -8677,7 +8677,7 @@ try {

auto vec = key->write_vec();
rnp::MemorySource mem(vec);
return rnp_dump_src_to_json(&mem.src(), flags, result);
return rnp_dump_src_to_json(mem.src(), flags, result);
}
FFI_GUARD

Expand All @@ -8687,7 +8687,7 @@ try {
if (!input || !result) {
return RNP_ERROR_NULL_POINTER;
}
return rnp_dump_src_to_json(&input->src, flags, result);
return rnp_dump_src_to_json(input->src, flags, result);
}
FFI_GUARD

Expand All @@ -8698,15 +8698,15 @@ try {
return RNP_ERROR_NULL_POINTER;
}

rnp_dump_ctx_t dumpctx = {};
dumpctx.dump_mpi = extract_flag(flags, RNP_DUMP_MPI);
dumpctx.dump_packets = extract_flag(flags, RNP_DUMP_RAW);
dumpctx.dump_grips = extract_flag(flags, RNP_DUMP_GRIP);
rnp::DumpContextDst dumpctx(input->src, output->dst);
dumpctx.set_dump_mpi(extract_flag(flags, RNP_JSON_DUMP_MPI));
dumpctx.set_dump_packets(extract_flag(flags, RNP_JSON_DUMP_RAW));
dumpctx.set_dump_grips(extract_flag(flags, RNP_JSON_DUMP_GRIP));
if (flags) {
return RNP_ERROR_BAD_PARAMETERS;
}

rnp_result_t ret = stream_dump_packets(&dumpctx, &input->src, &output->dst);
rnp_result_t ret = dumpctx.dump();
output->keep = true;
return ret;
}
Expand Down
4 changes: 2 additions & 2 deletions src/librepgp/stream-common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,7 @@ dst_write(pgp_dest_t &dst, const std::vector<uint8_t> &buf)
}

void
dst_printf(pgp_dest_t *dst, const char *format, ...)
dst_printf(pgp_dest_t &dst, const char *format, ...)
{
char buf[2048];
size_t len;
Expand All @@ -692,7 +692,7 @@ dst_printf(pgp_dest_t *dst, const char *format, ...)
RNP_LOG("too long dst_printf");
len = sizeof(buf) - 1;
}
dst_write(dst, buf, len);
dst_write(&dst, buf, len);
}

void
Expand Down
2 changes: 1 addition & 1 deletion src/librepgp/stream-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ void dst_write(pgp_dest_t &dst, const std::vector<uint8_t> &buf);
* @param format format string, which is the same as printf() uses
* @param ... additional arguments
*/
void dst_printf(pgp_dest_t *dst, const char *format, ...);
void dst_printf(pgp_dest_t &dst, const char *format, ...);

/** @brief do all finalization tasks after all writing is done, i.e. calculate and write
* mdc, signatures and so on. Do not misuse with dst_close. If was not called then will be
Expand Down
Loading
Loading