/*
- * Copyright (C) 2007-2012 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
static struct signal_task signal_task_struct;
static enum play_mode current_play_mode;
-static char *current_mop; /* mode or playlist specifier. NULL means dummy mooe */
+static char *current_mop; /* mode or playlist specifier. NULL means dummy mood */
/**
* A random number used to "authenticate" the connection.
* area is written to the command socket.
*
* The afs process accepts connections on the command socket and reads the
- * shared memory id, attaches the corresponing area, calls the given handler to
+ * shared memory id, attaches the corresponding area, calls the given handler to
* perform the desired action and to optionally compute a result.
*
* The result and a \p callback_result structure is then written to another
/**
* Structure embedded in the result of a callback.
*
- * If the callback produced a result, an instance of that structure is embeeded
+ * If the callback produced a result, an instance of that structure is embedded
* into the shared memory area holding the result, mainly to let the command
* handler know the size of the result.
*
{
struct command_context *cc = private;
+ assert(cc);
if (!result->size)
return 1;
if (cc->use_sideband)
}
PARA_EMERG_LOG("terminating on signal %d\n", signum);
shutdown:
- sched_shutdown(s);
+ task_notify_all(s, E_AFS_SIGNAL);
t->error = -E_AFS_SIGNAL;
}
struct afs_client *client, *tmp;
int fd, ret;
+ ret = task_get_notification(t);
+ if (ret < 0) {
+ t->error = ret;
+ return;
+ }
ret = execute_server_command(&s->rfds);
if (ret < 0) {
PARA_EMERG_LOG("%s\n", para_strerror(-ret));
- sched_shutdown(s);
+ task_notify_all(s, -ret);
+ t->error = ret;
return;
}
/* Check the list of connected clients. */