X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/2dc2f4788add40c2fe7c8fdede76189b54259155..287ad384814351a195696f91e83388c12b265f90:/clients/disorder.c diff --git a/clients/disorder.c b/clients/disorder.c index 4afc568..5f725e8 100644 --- a/clients/disorder.c +++ b/clients/disorder.c @@ -32,6 +32,7 @@ #include #include #include +#include #include "configuration.h" #include "syscalls.h" @@ -577,6 +578,11 @@ static void cf_schedule_unset_global(char **argv) { exit(EXIT_FAILURE); } +static void cf_adopt(char **argv) { + if(disorder_adopt(getclient(), argv[0])) + exit(EXIT_FAILURE); +} + static const struct command { const char *name; int min, max; @@ -586,6 +592,8 @@ static const struct command { } commands[] = { { "adduser", 2, 3, cf_adduser, isarg_rights, "USERNAME PASSWORD [RIGHTS]", "Create a new user" }, + { "adopt", 1, 1, cf_adopt, 0, "ID", + "Adopt a randomly picked track" }, { "allfiles", 1, 2, cf_allfiles, isarg_regexp, "DIR [~REGEXP]", "List all files and directories in DIR" }, { "authorize", 1, 2, cf_authorize, isarg_rights, "USERNAME [RIGHTS]", @@ -757,6 +765,11 @@ int main(int argc, char **argv) { config->connect.n = 0; n = optind; optind = 1; /* for subsequent getopt calls */ + /* gcrypt initialization */ + if(!gcry_check_version(NULL)) + disorder_fatal(0, "gcry_check_version failed"); + gcry_control(GCRYCTL_INIT_SECMEM, 0); + gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); /* accumulate command args */ while(n < argc) { if((i = TABLE_FIND(commands, name, argv[n])) < 0)