X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=afs.c;h=f0fa57fcb6087a5d812fc282712eb7fd1701cc8f;hb=a9bdbe2c8a73675be499fc95b935f3839e30c575;hp=57ec13385f6c2725be4b5bb7a3d17faa10d024d8;hpb=ba0a963f0a31848e7f622c45c56fa6ebf0b67057;p=paraslash.git diff --git a/afs.c b/afs.c index 57ec1338..f0fa57fc 100644 --- a/afs.c +++ b/afs.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "server.cmdline.h" #include "para.h" @@ -1071,23 +1072,24 @@ out: return ret; } -int com_init(struct command_context *cc) +static int com_init(struct command_context *cc, struct lls_parse_result *lpr) { int i, j, ret; uint32_t table_mask = (1 << (NUM_AFS_TABLES + 1)) - 1; struct osl_object query = {.data = &table_mask, .size = sizeof(table_mask)}; + unsigned num_inputs = lls_num_inputs(lpr); ret = make_database_dir(); if (ret < 0) return ret; - if (cc->argc != 1) { + if (num_inputs > 0) { table_mask = 0; - for (i = 1; i < cc->argc; i++) { + for (i = 0; i < num_inputs; i++) { for (j = 0; j < NUM_AFS_TABLES; j++) { struct afs_table *t = &afs_tables[j]; - if (strcmp(cc->argv[i], t->name)) + if (strcmp(lls_input(i, lpr), t->name)) continue; table_mask |= (1 << j); break; @@ -1099,6 +1101,7 @@ int com_init(struct command_context *cc) return send_callback_request(com_init_callback, &query, afs_cb_result_handler, cc); } +EXPORT_SERVER_CMD_HANDLER(init); /** * Flags for the check command.