struct obj_read_state st;
obj_read_start(&st, c->request);
st.error_callback = read_error_cb;
- byte line[1024];
+ char line[1024];
uns size = 0;
for (;;)
{
obj_set_attr(c->reply, '+', "OK");
if (trace_commands)
{
- byte *m;
+ char *m;
if (m = obj_find_aval(c->reply, '-'))
msg(L_DEBUG, ">> -%s", m);
else if (m = obj_find_aval(c->reply, '+'))
}
static void
-err(struct conn *c, byte *msg)
+err(struct conn *c, char *msg)
{
obj_set_attr(c->reply, '-', msg);
}
// This is less efficient than bbcopy(), but we want our own error handling.
struct fastbuf *fb = bopen_tmp(4096);
- byte buf[4096];
+ char buf[4096];
uns remains = size;
while (remains)
{
return;
}
- byte *tname = obj_find_aval(c->request, 'T');
+ char *tname = obj_find_aval(c->request, 'T');
if (!tname)
{
err(c, "No task specified");
return;
}
- byte *pname = obj_find_aval(c->request, 'P');
+ char *pname = obj_find_aval(c->request, 'P');
if (!pname)
{
simp_node *s = clist_head(&task->parts);
return;
}
- byte *ext = obj_find_aval(c->request, 'X');
+ char *ext = obj_find_aval(c->request, 'X');
if (!ext || !ext_exists_p(task, ext))
{
err(c, "Missing or invalid extension");
for (struct oattr *a = obj_find_attr(parto, 'V' + OBJ_ATTR_SON); a; a=a->same)
{
uns ver = obj_find_anum(a->son, 'V', 0);
- byte *ext = obj_find_aval(a->son, 'X');
+ char *ext = obj_find_aval(a->son, 'X');
ASSERT(ver && ext);
last_ver = MAX(last_ver, ver);
if (ver == current_ver)
static void
execute_command(struct conn *c)
{
- byte *cmd = obj_find_aval(c->request, '!');
+ char *cmd = obj_find_aval(c->request, '!');
if (!cmd)
{
err(c, "Missing command");
static void
execute_init(struct conn *c)
{
- byte *user = obj_find_aval(c->request, 'U');
+ char *user = obj_find_aval(c->request, 'U');
if (!user)
{
err(c, "Missing user");
/* XXX: Neither we check host name */
/* Check certificate purpose */
- byte purp[256];
+ char purp[256];
int purpi = 0;
do
{
die("Cannot connect: %m");
log(L_INFO, "Waiting for initial message");
- byte msg[256];
+ char msg[256];
int i = 0;
do
{
log(L_INFO, "Session established");
for (;;)
{
- byte buf[1024];
+ char buf[1024];
do
{
if (!fgets(buf, sizeof(buf), stdin))
return "Cannot import certificate";
/* XXX: We do not check expiration and activation since the keys are generated for a single contest only anyway. */
- byte dn[256];
+ char dn[256];
size_t dn_len = sizeof(dn);
err = gnutls_x509_crt_get_dn_by_oid(cert, GNUTLS_OID_X520_COMMON_NAME, 0, 0, dn, &dn_len);
if (err < 0)
c->cert_name = xstrdup(dn);
/* Check certificate purpose */
- byte purp[256];
+ char purp[256];
int purpi = 0;
do
{
static void
reap_child(pid_t pid, int status)
{
- byte buf[EXIT_STATUS_MSG_SIZE];
+ char buf[EXIT_STATUS_MSG_SIZE];
if (format_exit_status(buf, status))
msg(L_ERROR, "Child %d %s", (int)pid, buf);
die("accept: %m");
}
- byte ipbuf[INET_ADDRSTRLEN];
+ char ipbuf[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &sa.sin_addr, ipbuf, sizeof(ipbuf));
u32 addr = ntohl(sa.sin_addr.s_addr);
uns port = ntohs(sa.sin_port);
extern clist task_list;
extern struct cf_section tasks_conf;
-struct task *task_find(byte *name);
-int part_exists_p(struct task *t, byte *name);
-int user_exists_p(byte *user);
-int ext_exists_p(struct task *t, byte *ext);
+struct task *task_find(char *name);
+int part_exists_p(struct task *t, char *name);
+int user_exists_p(char *user);
+int ext_exists_p(struct task *t, char *ext);
void task_lock_status(struct conn *c);
void task_unlock_status(struct conn *c, uns write_back);
void task_load_status(struct conn *c);
struct odes *task_status_find_task(struct conn *c, struct task *t, uns create);
-struct odes *task_status_find_part(struct odes *t, byte *part, uns create);
+struct odes *task_status_find_part(struct odes *t, char *part, uns create);
-void task_submit_part(byte *user, byte *task, byte *part, byte *ext, uns version, struct fastbuf *fb);
-void task_delete_part(byte *user, byte *task, byte *part, byte *ext, uns version);
+void task_submit_part(char *user, char *task, char *part, char *ext, uns version, struct fastbuf *fb);
+void task_delete_part(char *user, char *task, char *part, char *ext, uns version);
#endif
static clist extensions;
static clist open_data_extensions;
-static byte *
+static char *
tasks_conf_commit(void *p UNUSED)
{
// We do not do any journaling here as we do not switch config files on the fly
};
struct task *
-task_find(byte *name)
+task_find(char *name)
{
CLIST_FOR_EACH(struct task *, t, task_list)
if (!strcasecmp(t->name, name))
}
int
-part_exists_p(struct task *t, byte *name)
+part_exists_p(struct task *t, char *name)
{
CLIST_FOR_EACH(simp_node *, p, t->parts)
if (!strcmp(p->s, name))
}
int
-ext_exists_p(struct task *t, byte *ext)
+ext_exists_p(struct task *t, char *ext)
{
CLIST_FOR_EACH(simp_node *, x, *t->extensions)
if (!strcmp(x->s, ext))
}
int
-user_exists_p(byte *user)
+user_exists_p(char *user)
{
- byte *fn = stk_printf("solutions/%s", user);
+ char *fn = stk_printf("solutions/%s", user);
struct stat st;
return !stat(fn, &st) && S_ISDIR(st.st_mode);
}
obj_write(fb, c->task_status, BUCKET_TYPE_PLAIN);
brewind(fb);
bconfig(fb, BCONFIG_IS_TEMP_FILE, 0);
- byte *name = stk_printf("solutions/%s/status", c->user);
+ char *name = stk_printf("solutions/%s/status", c->user);
if (rename(fb->name, name) < 0)
die("Unable to rename %s to %s: %m", fb->name, name);
bclose(fb);
for (struct oattr *a = obj_find_attr(c->task_status, 'T' + OBJ_ATTR_SON); a; a=a->same)
{
struct odes *o = a->son;
- byte *name = obj_find_aval(o, 'T');
+ char *name = obj_find_aval(o, 'T');
ASSERT(name);
if (!strcmp(name, t->name))
return o;
}
struct odes *
-task_status_find_part(struct odes *to, byte *part, uns create)
+task_status_find_part(struct odes *to, char *part, uns create)
{
for (struct oattr *a = obj_find_attr(to, 'P' + OBJ_ATTR_SON); a; a=a->same)
{
struct odes *o = a->son;
- byte *name = obj_find_aval(o, 'P');
+ char *name = obj_find_aval(o, 'P');
ASSERT(name);
if (!strcmp(name, part))
return o;
}
static void
-task_record_history(byte *user, byte *task, byte *part, byte *ext, uns version, byte *submitted_name)
+task_record_history(char *user, char *task, char *part, char *ext, uns version, char *submitted_name)
{
if (!history_format)
return;
time_t now = time(NULL);
struct tm *tm = localtime(&now);
- byte prefix[256];
+ char prefix[256];
if (strftime(prefix, sizeof(prefix), history_format, tm) <= 0)
{
msg(L_ERROR, "Error formatting history prefix: too long");
return;
}
- byte *name = stk_printf("%s%s:%s:%s:v%d.%s", prefix, user, task, (strcmp(task, part) ? part : (byte*)""), version, ext);
+ char *name = stk_printf("%s%s:%s:%s:v%d.%s", prefix, user, task, (strcmp(task, part) ? part : (char*)""), version, ext);
struct fastbuf *orig = bopen(submitted_name, O_RDONLY, 4096);
struct fastbuf *hist = bopen(name, O_WRONLY | O_CREAT | O_EXCL, 4096);
bbcopy_slow(orig, hist, ~0U);
}
void
-task_submit_part(byte *user, byte *task, byte *part, byte *ext, uns version, struct fastbuf *fb)
+task_submit_part(char *user, char *task, char *part, char *ext, uns version, struct fastbuf *fb)
{
- byte *dir = stk_printf("solutions/%s/%s", user, task);
- byte *name = stk_printf("%s/%s.%s", dir, part, ext);
+ char *dir = stk_printf("solutions/%s/%s", user, task);
+ char *name = stk_printf("%s/%s.%s", dir, part, ext);
struct stat st;
if (stat(dir, &st) < 0 && errno == ENOENT && mkdir(dir, 0777) < 0)
}
void
-task_delete_part(byte *user, byte *task, byte *part, byte *ext, uns version UNUSED)
+task_delete_part(char *user, char *task, char *part, char *ext, uns version UNUSED)
{
- byte *dir = stk_printf("solutions/%s/%s", user, task);
- byte *name = stk_printf("%s/%s.%s", dir, part, ext);
+ char *dir = stk_printf("solutions/%s/%s", user, task);
+ char *name = stk_printf("%s/%s.%s", dir, part, ext);
if (unlink(name) < 0)
msg(L_ERROR, "Cannot delete %s: %m", name);
}