]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - blob.c
Do not check the return value of para_printf().
[paraslash.git] / blob.c
diff --git a/blob.c b/blob.c
index 3f7c48daa74251f15b798ec6f0fdefe39496f466..4f4a034ad2d60c2e67856050671713738459c828 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -66,7 +66,7 @@ static struct osl_column_description blob_cols[] = {
 
 /** Define an osl table description for a blob table. */
 #define DEFINE_BLOB_TABLE_DESC(table_name) \
-       struct osl_table_description table_name ## _table_desc = { \
+       static struct osl_table_description table_name ## _table_desc = { \
                .name = #table_name, \
                .num_columns = NUM_BLOB_COLUMNS, \
                .flags = OSL_LARGE_TABLE, \
@@ -116,15 +116,18 @@ static int print_blob(struct osl_table *table, struct osl_row *row,
        uint32_t id;
        int ret;
 
-       if (!(lbad->flags & BLOB_LS_FLAG_LONG))
-               return para_printf(&lbad->pb, "%s\n", name);
+       if (!(lbad->flags & BLOB_LS_FLAG_LONG)) {
+               para_printf(&lbad->pb, "%s\n", name);
+               return 0;
+       }
        ret = osl(osl_get_object(table, row, BLOBCOL_ID, &obj));
        if (ret < 0) {
                para_printf(&lbad->pb, "%s: %s\n", name, para_strerror(-ret));
                return ret;
        }
        id = *(uint32_t *)obj.data;
-       return para_printf(&lbad->pb, "%u\t%s\n", id, name);
+       para_printf(&lbad->pb, "%u\t%s\n", id, name);
+       return 1;
 }
 
 static void com_lsblob_callback(struct osl_table *table,
@@ -265,7 +268,7 @@ static int remove_blob(struct osl_table *table, struct osl_row *row,
 static void com_rmblob_callback(struct osl_table *table, int fd,
                const struct osl_object *query)
 {
-       int ret, ret2 = 0;
+       int ret;
        struct rmblob_data rmbd = {
                .pb = {
                        .max_size = shm_get_shmmax(),
@@ -286,19 +289,15 @@ static void com_rmblob_callback(struct osl_table *table, int fd,
                .action = remove_blob
        };
        ret = for_each_matching_row(&pmd);
-       if (ret < 0) {
-               ret2 = para_printf(&rmbd.pb, "%s\n", para_strerror(-ret));
-               if (ret2 < 0)
-                       goto out;
-       }
+       if (ret < 0)
+               para_printf(&rmbd.pb, "%s\n", para_strerror(-ret));
        if (pmd.num_matches == 0)
-               ret2 = para_printf(&rmbd.pb, "no matches, nothing removed\n");
+               para_printf(&rmbd.pb, "no matches, nothing removed\n");
        else {
-               ret2 = para_printf(&rmbd.pb, "removed %d blobs\n", pmd.num_matches);
+               para_printf(&rmbd.pb, "removed %d blobs\n", pmd.num_matches);
                afs_event(BLOB_RENAME, NULL, table);
        }
-out:
-       if (ret2 >= 0 && rmbd.pb.offset)
+       if (rmbd.pb.offset)
                pass_buffer_as_shm(fd, SBD_OUTPUT, rmbd.pb.buf, rmbd.pb.offset);
        free(rmbd.pb.buf);
 }
@@ -426,27 +425,16 @@ again:
 }
 
 /*
- * Read data from a file descriptor, and send it to the afs process.
- *
- * \param cc Contains the file descriptor to read data from.
- * \param arg_obj Pointer to the arguments to \a f.
- * \param f The callback function.
- * \param result_handler See \ref send_callback_request.
- * \param private_result_data See \ref send_callback_request.
- *
- * 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 cc. 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.
+ * Read blob from a file descriptor and send it to afs.
  *
- * \return Negative on errors, the return value of the underlying call to
- * send_callback_request() otherwise.
+ * This function is called from the addblob command handlers to instruct the
+ * afs process to store the input in a blob table. Input is read and decrypted
+ * from the file descriptor given by cc and appended to arg_obj, which contains
+ * the name of the blob to create. The combined buffer is made available to the
+ * afs process via the callback method.
  */
 static int stdin_command(struct command_context *cc, struct osl_object *arg_obj,
-               callback_function *f, callback_result_handler *result_handler,
-               void *private_result_data)
+               callback_function *f)
 {
        struct osl_object query, stdin_obj;
        int ret;
@@ -464,7 +452,7 @@ static int stdin_command(struct command_context *cc, struct osl_object *arg_obj,
                memcpy((char *)query.data + arg_obj->size, stdin_obj.data,
                        stdin_obj.size);
        free(stdin_obj.data);
-       ret = send_callback_request(f, &query, result_handler, private_result_data);
+       ret = send_callback_request(f, &query, afs_cb_result_handler, cc);
        free(query.data);
        return ret;
 }
@@ -479,7 +467,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, afs_cb_result_handler, cc);
+       return stdin_command(cc, &arg_obj, f);
 }
 
 static void com_mvblob_callback(struct osl_table *table, int fd,
@@ -645,7 +633,7 @@ static int blob_get_name_and_def_by_row(struct osl_table *table,
        static int table_name ## _create(const char *dir) \
        { \
                table_name ## _table_desc.dir = dir; \
-               return osl_create_table(&table_name ## _table_desc); \
+               return osl(osl_create_table(&table_name ## _table_desc)); \
        }
 
 static int blob_open(struct osl_table **table,