From fdb9d26edf7ef38c4213e23b6bf1ee89d287cb9e Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Tue, 24 Jul 2012 08:26:19 +0200 Subject: [PATCH] blob: Simplify fd2buf(). The max size of a blob for a stdin command has always been fixed. No need to pass this value around. --- blob.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/blob.c b/blob.c index cd571d74..1b02b378 100644 --- a/blob.c +++ b/blob.c @@ -382,11 +382,11 @@ out: /* * write input from fd to dynamically allocated buffer, - * but maximal max_size byte. + * but maximal 10M. */ -static int fd2buf(struct stream_cipher_context *scc, unsigned max_size, struct osl_object *obj) +static int fd2buf(struct stream_cipher_context *scc, struct osl_object *obj) { - const size_t chunk_size = 1024; + const size_t chunk_size = 1024, max_size = 10 * 1024 * 1024; size_t size = 2048, received = 0; int ret; char *buf = para_malloc(size); @@ -417,23 +417,21 @@ static int fd2buf(struct stream_cipher_context *scc, unsigned max_size, struct o * \param scc crypt context containing the file descriptor to read data from. * \param arg_obj Pointer to the arguments to \a f. * \param f The callback function. - * \param max_len Don't read more than that many bytes from stdin. * \param result_handler See \ref send_callback_request. * \param private_result_data See \ref send_callback_request. * - * This function is used by commands that wish to let para_server store - * arbitrary data specified by the user (for instance the add_blob family of - * commands). First, at most \a max_len bytes are read and decrypted from the - * file descriptor given by \a scc. The result is concatenated with the buffer - * given by \a arg_obj, and the combined buffer is made available to the afs - * process via the callback method. See \ref send_callback_request for details. + * This function is used by the addblob commands that instruct para_server to + * store arbitrary data in a blob table. Input data is read and decrypted from + * the file descriptor given by \a scc. This data is concatenated with the + * buffer given by \a arg_obj, and the combined buffer is made available to the + * afs process via the callback method. See \ref send_callback_request for + * details. * * \return Negative on errors, the return value of the underlying call to * send_callback_request() otherwise. */ static int stdin_command(struct command_context *cc, struct osl_object *arg_obj, - callback_function *f, unsigned max_len, - callback_result_handler *result_handler, + callback_function *f, callback_result_handler *result_handler, void *private_result_data) { struct osl_object query, stdin_obj; @@ -445,7 +443,7 @@ static int stdin_command(struct command_context *cc, struct osl_object *arg_obj, ret = sc_send_buffer(&cc->scc, AWAITING_DATA_MSG); if (ret < 0) return ret; - ret = fd2buf(&cc->scc, max_len, &stdin_obj); + ret = fd2buf(&cc->scc, &stdin_obj); if (ret < 0) return ret; query.size = arg_obj->size + stdin_obj.size; @@ -468,7 +466,7 @@ static int com_addblob(callback_function *f, struct command_context *cc) return -E_BLOB_SYNTAX; arg_obj.size = strlen(cc->argv[1]) + 1; arg_obj.data = (char *)cc->argv[1]; - return stdin_command(cc, &arg_obj, f, 10 * 1024 * 1024, NULL, NULL); + return stdin_command(cc, &arg_obj, f, NULL, NULL); } /* FIXME: Print output to client, not to log file */ -- 2.39.2