Let afs callbacks return an error code.
[paraslash.git] / blob.c
diff --git a/blob.c b/blob.c
index 47253b5e08811c7fbb4a2c2aa12e6f368307454c..5eb125c8262f6b34aaff506f9c6cb1310fa5916d 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -130,7 +130,7 @@ static int print_blob(struct osl_table *table, struct osl_row *row,
        return 1;
 }
 
-static void com_lsblob_callback(struct osl_table *table,
+static int com_lsblob_callback(struct osl_table *table,
                int fd, const struct osl_object *query)
 {
        struct lsblob_action_data lbad = {
@@ -167,6 +167,7 @@ static void com_lsblob_callback(struct osl_table *table,
        else if (pmd.num_matches == 0 && pmd.patterns.size > 0)
                para_printf(&lbad.pb, "no matches\n");
        flush_and_free_pb(&lbad.pb);
+       return 0;
 }
 
 static int com_lsblob(callback_function *f, struct command_context *cc)
@@ -218,7 +219,7 @@ static int cat_blob(struct osl_table *table, struct osl_row *row,
        return (ret < 0)? ret : ret2;
 }
 
-static void com_catblob_callback(struct osl_table *table, int fd,
+static int com_catblob_callback(struct osl_table *table, int fd,
                const struct osl_object *query)
 {
        struct pattern_match_data pmd = {
@@ -235,6 +236,7 @@ static void com_catblob_callback(struct osl_table *table, int fd,
                char err_msg[] = "no matches\n";
                pass_buffer_as_shm(fd, SBD_OUTPUT, err_msg, sizeof(err_msg));
        }
+       return 0;
 }
 
 static int com_catblob(callback_function *f, struct command_context *cc)
@@ -263,7 +265,7 @@ static int remove_blob(struct osl_table *table, struct osl_row *row,
        return 1;
 }
 
-static void com_rmblob_callback(struct osl_table *table, int fd,
+static int com_rmblob_callback(struct osl_table *table, int fd,
                const struct osl_object *query)
 {
        int ret;
@@ -296,6 +298,7 @@ static void com_rmblob_callback(struct osl_table *table, int fd,
                afs_event(BLOB_RENAME, NULL, table);
        }
        flush_and_free_pb(&rmbd.pb);
+       return 0;
 }
 
 static int com_rmblob(callback_function *f, struct command_context *cc)
@@ -306,7 +309,7 @@ static int com_rmblob(callback_function *f, struct command_context *cc)
                afs_cb_result_handler, cc);
 }
 
-static void com_addblob_callback(struct osl_table *table, int fd,
+static int com_addblob_callback(struct osl_table *table, int fd,
                const struct osl_object *query)
 {
        struct osl_object objs[NUM_BLOB_COLUMNS];
@@ -382,6 +385,7 @@ out:
                msg_len = xasprintf(&msg, "added %s as id %u\n", name, id);
        pass_buffer_as_shm(fd, SBD_OUTPUT, msg, msg_len);
        free(msg);
+       return 0;
 }
 
 /* Write input from fd to dynamically allocated buffer, but maximal 10M. */
@@ -466,7 +470,7 @@ static int com_addblob(callback_function *f, struct command_context *cc)
        return stdin_command(cc, &arg_obj, f);
 }
 
-static void com_mvblob_callback(struct osl_table *table, int fd,
+static int com_mvblob_callback(struct osl_table *table, int fd,
                const struct osl_object *query)
 {
        char *src = (char *) query->data;
@@ -496,6 +500,7 @@ static void com_mvblob_callback(struct osl_table *table, int fd,
        afs_event(BLOB_RENAME, NULL, table);
 out:
        flush_and_free_pb(&pb);
+       return 0;
 }
 
 static int com_mvblob(callback_function *f, struct command_context *cc)
@@ -512,7 +517,7 @@ static int com_mvblob(callback_function *f, struct command_context *cc)
 }
 
 #define DEFINE_BLOB_COMMAND(cmd_name, table_name, cmd_prefix) \
-       static void com_ ## cmd_name ## cmd_prefix ## _callback(int fd, const struct osl_object *query) \
+       static int com_ ## cmd_name ## cmd_prefix ## _callback(int fd, const struct osl_object *query) \
        { \
                return com_ ## cmd_name ## blob_callback(table_name ## _table, fd, query); \
        } \