/*
- * Copyright (C) 1997-2008 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2009 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
/** \file client.c the client program used to connect to para_server */
+#include <regex.h>
+#include <openssl/rc4.h>
+
#include "para.h"
#include "list.h"
#include "sched.h"
+#include "crypt.h"
#include "client.cmdline.h"
#include "string.h"
#include "stdin.h"
static struct stdin_task sit;
static struct stdout_task sot;
-static void supervisor_pre_select(struct sched *s, struct task *t)
+static void supervisor_post_select(__a_unused struct sched *s, struct task *t)
{
if (ct->task.error < 0) {
t->error = ct->task.error;
ct->in_loaded = &sit.loaded;
ct->in_error = &sit.task.error;
t->error = -E_TASK_STARTED;
- goto min_delay;
+ return;
}
if (ct->status == CL_RECEIVING) {
stdout_set_defaults(&sot);
- sot.buf = ct->buf;
+ sot.bufp = &ct->buf;
sot.loaded = &ct->loaded;
sot.input_error = &ct->task.error;
register_task(&sot.task);
t->error = -E_TASK_STARTED;
- goto min_delay;
+ return;
}
- return;
-min_delay:
- s->timeout.tv_sec = 0;
- s->timeout.tv_usec = 1;
}
static struct task svt = {
- .pre_select = supervisor_pre_select
+ .post_select = supervisor_post_select,
+ .status = "supervisor task"
};
-INIT_STDERR_LOGGING(ct->conf.loglevel_arg);
+static int client_loglevel; /* loglevel */
+INIT_STDERR_LOGGING(client_loglevel);
/**
{
int ret;
- struct sched s;
+ static struct sched s;
s.default_timeout.tv_sec = 1;
s.default_timeout.tv_usec = 0;
- ret = client_open(argc, argv, &ct);
- if (ret < 0) /* can not use PARA_LOG here */
+ ret = client_open(argc, argv, &ct, &client_loglevel);
+ if (ret < 0) /* can not use PARA_LOG here because ct is NULL */
exit(EXIT_FAILURE);
register_task(&svt);
ret = schedule(&s);