/*
- * Copyright (C) 1999-2006 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1999-2007 Andre Noll <maan@systemlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/** \endcond */
#include "server.cmdline.h"
#include "server.h"
-#include "afs.h"
+#include "vss.h"
#include "db.h"
#include <mysql/mysql.h>
#include <mysql/mysql_version.h>
#include "error.h"
#include "net.h"
#include "string.h"
+#include "user_list.h"
-extern struct gengetopt_args_info conf;
/** pointer to the shared memory area */
extern struct misc_meta_data *mmd;
{
.name = "cs",
.handler = com_cs,
-.perms = AFS_WRITE | DB_READ | DB_WRITE,
+.perms = VSS_WRITE | DB_READ | DB_WRITE,
.description = "change stream",
.synopsis = "cs [s]",
.help =
{
.name = "csp",
.handler = com_cs,
-.perms = AFS_WRITE | DB_READ,
+.perms = VSS_WRITE | DB_READ,
.description = "change stream and play",
.synopsis = "csp s",
.help =
{
.name = "ns",
.handler = com_ps,
-.perms = AFS_WRITE | DB_READ | DB_WRITE,
+.perms = VSS_WRITE | DB_READ | DB_WRITE,
.description = "change to next stream",
.synopsis = "ns",
.help =
{
.name = "ps",
.handler = com_ps,
-.perms = AFS_WRITE | DB_READ | DB_WRITE,
+.perms = VSS_WRITE | DB_READ | DB_WRITE,
.description = "change to previous stream",
.synopsis = "ps",
.help =
char *select_clause = NULL;
if (!streamname)
tmp = get_current_stream();
- else
+ else {
tmp = escape_str(streamname);
+ if (!tmp)
+ return NULL;
+ }
if (!strcmp(tmp, "(none)")) {
free(tmp);
if (filename) {
char *ret, *ebn = escaped_basename(filename);
+ if (!ebn)
+ return NULL;
ret = make_message("select to_days(now()) - "
"to_days(lastplayed) from data "
"where name = '%s'", ebn);
ret = -E_ESCAPE;
ebn1 = escaped_basename(argv[1]);
ebn2 = escaped_basename(argv[2]);
- if (!ebn1 || !ebn2 | !*ebn1 || !*ebn2)
+ if (!ebn1 || !ebn2 || !*ebn1 || !*ebn2)
goto out;
ret = -E_MYSQL_SYNTAX;
if (!strcmp(ebn1, ebn2))
- goto out;
+ goto update_dir;
remove_entry(argv[2]); /* no need to escape, ignore error */
q = make_message("update data set name = '%s' where name = '%s'",
ebn2, ebn1);
free(q);
if (ret < 0)
goto out;
+update_dir:
ret = 1;
dn = para_dirname(argv[2]);
if (!dn)
}
if (csp) {
mmd_lock();
- mmd->new_afs_status_flags |= AFS_PLAYING;
+ mmd->new_vss_status_flags |= VSS_PLAYING;
if (stream_change)
- mmd->new_afs_status_flags |= AFS_NEXT;
+ mmd->new_vss_status_flags |= VSS_NEXT;
mmd_unlock();
}
ret = 1;
num = atoi(argv[1]);
if (!num)
return -E_MYSQL_SYNTAX;
- stream = (argc == 2)? get_current_stream() : escape_str(argv[2]);
+ if (argc == 2) {
+ stream = get_current_stream();
+ if (!stream)
+ return -E_GET_STREAM;
+ } else {
+ stream = escape_str(argv[2]);
+ if (!stream)
+ return -E_ESCAPE;
+ }
tmp = get_query(stream, NULL, 0);
+ free(stream);
+ if (!tmp)
+ return -E_GET_QUERY;
query = make_message("%s limit %d", tmp, num);
free(tmp);
- ret = -E_GET_QUERY;
- free(stream);
- if (!query)
- goto out;
ret = -E_NORESULT;
result = get_result(query);
free(query);
goto out;
send_va_buffer(fd, "new entry: %s\n", row[0]);
erow = escape_str(row[0]);
+ if (!erow)
+ goto out;
query = make_message("insert into data (name, pic_id) values "
"('%s','%s')", erow, "1");
free(erow);
tmp = get_query(stream, NULL, 1);
free(stream);
+ if (!tmp)
+ goto err_out;
query = make_message("%s limit %d", tmp, num);
free(tmp);
result = get_result(query);
goto out;
if (argc < 2)
conf.mysql_database_arg = para_strdup("paraslash");
- else
+ else {
+ ret = -E_ESCAPE;
conf.mysql_database_arg = escape_str(argv[1]);
+ if (!conf.mysql_database_arg)
+ goto out;
+ }
query = make_message("create database %s", conf.mysql_database_arg);
ret = real_query(query);
free(query);