[Commits] r630 - trunk/daemon/src
new-commit at lists.openvcp.org
new-commit at lists.openvcp.org
Sun Sep 14 20:54:39 UTC 2008
Author: cryptronic
Date: 2008-09-14 20:54:38 +0000 (Sun, 14 Sep 2008)
New Revision: 630
Modified:
trunk/daemon/src/get.c
Log:
missed the get function to the last daemon commit
Modified: trunk/daemon/src/get.c
===================================================================
--- trunk/daemon/src/get.c 2008-09-14 20:38:27 UTC (rev 629)
+++ trunk/daemon/src/get.c 2008-09-14 20:54:38 UTC (rev 630)
@@ -50,12 +50,12 @@
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
xidfile = concat(global_settings.config_dir, "/", name, "/context", NULL);
@@ -79,31 +79,31 @@
struct ovcp_data_st *arg0;
char rlimitfile[BUF_SIZE], *name, *rlimit;
int i = 0;
-
+
char *rlimit_params[] = {"cpu", "fsize", "data", "stack",
"core", "rss", "nproc", "nofile",
"memlock", "as", "locks", NULL };
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
- response = ovcp_response_new();
+ response = ovcp_response_new();
while(rlimit_params[i] != NULL)
{
ovcp_response_struct_new(response);
ovcp_response_struct_add_string(response, "name", rlimit_params[i]);
-
+
sconcat(rlimitfile, BUF_SIZE, global_settings.config_dir, "/", name, "/rlimits/", rlimit_params[i], ".hard", NULL);
rlimit = file_read(rlimitfile);
-
+
if(rlimit != NULL)
{
trim_string(rlimit);
@@ -113,7 +113,7 @@
sconcat(rlimitfile, BUF_SIZE, global_settings.config_dir, "/", name, "/rlimits/", rlimit_params[i], ".soft", NULL);
rlimit = file_read(rlimitfile);
-
+
if(rlimit != NULL)
{
trim_string(rlimit);
@@ -123,21 +123,21 @@
sconcat(rlimitfile, BUF_SIZE, global_settings.config_dir, "/", name, "/rlimits/", rlimit_params[i], ".min", NULL);
rlimit = file_read(rlimitfile);
-
+
if(rlimit != NULL)
{
trim_string(rlimit);
ovcp_response_struct_add_string(response, "min", rlimit);
free(rlimit);
- }
-
+ }
+
ovcp_response_struct_end(response);
-
+
i++;
}
-
-
+
+
return response;
}
@@ -146,30 +146,30 @@
struct ovcp_response_st *response;
struct ovcp_data_st *arg0;
char *name, *runfile, *rescuefile;
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
-
+
+
response = ovcp_response_new();
-
+
runfile = concat(global_settings.run_dir, "/", name, NULL);
if(file_exist(runfile))
ovcp_response_add_string(response, "Online");
else
ovcp_response_add_string(response, "Offline");
free(runfile);
-
+
rescuefile = concat(global_settings.config_dir, "/", name, "/rescue", NULL);
if(file_exist(rescuefile))
ovcp_response_add_string(response, "rescue");
free(rescuefile);
-
+
return response;
}
@@ -183,22 +183,22 @@
char *name, *value;
DIR *dirst;
int i;
-
+
char *iface_params[] = { "bcast", "dev", "disabled", "ip",
"mask", "name", "nodev", "novlandev",
"prefix", "scope", "vlandev", NULL };
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
-
-
+
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/interfaces", NULL);
dirst = opendir(path);
@@ -208,27 +208,27 @@
while ((dir_info = readdir(dirst)) != NULL)
{
-
+
if(dir_info->d_name[0] != '.')
{
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/interfaces/", dir_info->d_name, NULL);
-
+
if(dir_exist(path))
{
i = 0;
-
+
ovcp_response_struct_new(response);
ovcp_response_struct_add_string(response, "id", dir_info->d_name);
-
+
while(iface_params[i] != NULL)
{
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/interfaces/", dir_info->d_name, "/", iface_params[i], NULL);
-
+
if(file_exist(path))
{
value = file_read(path);
-
+
if(value != NULL)
{
trim_string(value);
@@ -240,13 +240,13 @@
ovcp_response_struct_add_boolean(response, iface_params[i], TRUE);
}
}
-
+
i++;
}
-
+
ovcp_response_struct_end(response);
-
+
}
}
@@ -255,10 +255,10 @@
}
closedir(dirst);
-
+
}
-
+
return response;
}
@@ -268,44 +268,44 @@
struct ovcp_data_st *arg0;
char *name, *flagfile;
char *flags, *flag;
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
-
+
flagfile = concat(global_settings.config_dir, "/", name, "/flags", NULL);
ovcp_response_array_new(response);
-
+
if(file_exist(flagfile))
{
-
+
flags = file_read(flagfile);
flag = strtok(flags, "\n");
if(flag != NULL)
{
ovcp_response_array_add_string(response, flag);
-
+
while((flag = strtok(NULL, "\n")) != NULL)
ovcp_response_array_add_string(response, flag);
-
+
}
-
+
free(flags);
}
ovcp_response_array_end(response);
-
+
free(flagfile);
-
+
return response;
}
@@ -318,17 +318,17 @@
char sql_query[BUF_SIZE];
int i, ret, nrow, ncolumn;
char **sql_result;
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
-
+
+
snprintf(sql_query, BUF_SIZE, "SELECT * FROM iptable_rules where name='%s'", name);
@@ -345,38 +345,38 @@
response = ovcp_response_new();
-
+
while(i != nrow+1)
{
ovcp_response_struct_new(response);
-
+
ovcp_response_struct_add_string(response, "id", sql_result[i*(ncolumn)+10]);
ovcp_response_struct_add_string(response, "direction", sql_result[i*(ncolumn)+0]);
ovcp_response_struct_add_string(response, "proto", sql_result[i*(ncolumn)+1]);
-
+
if(strcmp(sql_result[i*(ncolumn)+2], "(null)") != 0)
ovcp_response_struct_add_string(response, "srcip", sql_result[i*(ncolumn)+2]);
if(atoi(sql_result[i*(ncolumn)+3]) != -1)
ovcp_response_struct_add_string(response, "srcport", sql_result[i*(ncolumn)+3]);
-
+
if(strcmp(sql_result[i*(ncolumn)+4], "(null)") != 0)
ovcp_response_struct_add_string(response, "destip", sql_result[i*(ncolumn)+4]);
if(atoi(sql_result[i*(ncolumn)+5]) != -1)
ovcp_response_struct_add_string(response, "destport", sql_result[i*(ncolumn)+5]);
-
+
ovcp_response_struct_add_string(response, "target", sql_result[i*(ncolumn)+6]);
-
+
if(strcmp(sql_result[i*(ncolumn)+7], "") != 0) {
ovcp_response_struct_add_string(response, "match", sql_result[i*(ncolumn)+7]);
ovcp_response_struct_add_string(response, "match-value", sql_result[i*(ncolumn)+8]);
}
-
+
ovcp_response_struct_end(response);
-
+
i++;
}
-
+
sqlite3_free_table(sql_result);
return response;
@@ -389,25 +389,25 @@
char *value, *name;
char path[BUF_SIZE];
int i = 0;
-
+
char *sched_params[] = {"fill-rate", "fill-rate2",
"interval", "interval2",
"priority-bias", "tokens",
"tokens-max", "tokens-min",
- NULL};
+ "idle-time", NULL};
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
ovcp_response_struct_new(response);
-
+
while(sched_params[i] != NULL)
{
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/sched/", sched_params[i], NULL);
@@ -415,20 +415,20 @@
if(file_exist(path))
{
value = file_read(path);
-
+
if(value != NULL)
{
trim_string(value);
ovcp_response_struct_add_string(response, sched_params[i], value);
- free(value);
+ free(value);
}
}
-
+
i++;
}
-
+
ovcp_response_struct_end(response);
-
+
return response;
}
@@ -444,38 +444,38 @@
int i, xid;
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
-
+
+
xid = vserver_xid(name);
-
+
snprintf(path, BUF_SIZE, "/proc/virtual/%d/limit", xid);
limitfile = file_read(path);
-
+
if(limitfile == NULL)
return ovcp_response_error(OVCP_ERROR_VSNRUNING, OVCP_ERROR_VSNRUNING_DESC);
-
-
+
+
response = ovcp_response_new();
ovcp_response_struct_new(response);
-
+
lines = split_string(limitfile, '\n', &lcount);
i = 0;
-
+
while(i < lcount)
{
word = strtok(lines[i], " ");
trim_string(word);
-
-
+
+
if(strcmp(word, "PROC:") == 0)
{
word = strtok(NULL, " ");
@@ -551,17 +551,17 @@
trim_string(word);
ovcp_response_struct_add_string(response, "shm", word);
}
-
-
+
+
i++;
}
ovcp_response_struct_end(response);
-
+
free_strings(lines, lcount);
free(limitfile);
-
+
return response;
}
@@ -573,23 +573,23 @@
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name,"/apps/init/mark", NULL);
-
- response = ovcp_response_new();
+ response = ovcp_response_new();
+
if(file_exist(path))
ovcp_response_add_boolean(response, TRUE);
else
ovcp_response_add_boolean(response, FALSE);
-
+
return response;
}
@@ -601,15 +601,15 @@
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
-
-
+
+
hostfile = concat(global_settings.config_dir, "/", name, "/uts/nodename", NULL);
if(file_exist(hostfile))
@@ -617,15 +617,15 @@
host = file_read(hostfile);
trim_string(host);
ovcp_response_add_string(response, host);
- free(host);
+ free(host);
}
else
{
- ovcp_response_add_string(response, "");
+ ovcp_response_add_string(response, "");
}
free(hostfile);
-
+
return response;
}
@@ -635,31 +635,31 @@
struct ovcp_response_st *response;
struct ovcp_data_st *arg0;
char path[BUF_SIZE+1], *image, *name;
-
-
+
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
-
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/image_name", NULL);
if(file_exist(path))
{
image = file_read(path);
trim_string(image);
- ovcp_response_add_string(response, image);
+ ovcp_response_add_string(response, image);
free(image);
}
else
{
- ovcp_response_add_string(response, "");
+ ovcp_response_add_string(response, "");
}
return response;
@@ -670,26 +670,26 @@
{
struct ovcp_response_st *response;
struct ovcp_data_st *arg0;
-
+
char path[BUF_SIZE];
char *dlimit_file, *pathoflimit, *name;
-
+
int space_total, space_used, space_reserved, space_inodes_total, space_inodes_used;
struct vc_ctx_dlimit limits;
xid_t xid;
-
+
DIR *dlimitdir;
struct dirent *dlimitentry;
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
@@ -708,16 +708,16 @@
space_used = 0;
space_reserved = 0;
space_inodes_total = 0;
- space_inodes_used = 0;
-
-
+ space_inodes_used = 0;
+
+
if(dlimitentry->d_name[0] == '.')
continue;
-
- sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/", "dlimits/", dlimitentry->d_name, "/directory", NULL);
+
+ sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/", "dlimits/", dlimitentry->d_name, "/directory", NULL);
pathoflimit = file_read(path);
trim_string(pathoflimit);
-
+
if(vc_get_dlimit(pathoflimit, xid, 1, &limits) != -1)
{
space_total = limits.space_total;
@@ -725,53 +725,53 @@
space_reserved = limits.reserved;
space_inodes_total = limits.inodes_total;
space_inodes_used = limits.inodes_used;
-
+
}
else
{
-
+
space_total = -1;
space_inodes_total = -1;
space_reserved = -1;
-
- space_inodes_used = -1;
+
+ space_inodes_used = -1;
space_used = -1;
-
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/", "dlimits/", dlimitentry->d_name, "/space_total", NULL);
dlimit_file = file_read(path);
-
+
if(dlimit_file != NULL)
{
trim_string(dlimit_file);
space_total = atoi(dlimit_file);
free(dlimit_file);
}
-
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/", "dlimits/", dlimitentry->d_name, "/inodes_total", NULL);
dlimit_file = file_read(path);
-
+
if(dlimit_file != NULL)
{
trim_string(dlimit_file);
space_inodes_total = atoi(dlimit_file);
free(dlimit_file);
}
-
-
+
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/", "dlimits/", dlimitentry->d_name, "/reserved", NULL);
dlimit_file = file_read(path);
-
+
if(dlimit_file != NULL)
{
trim_string(dlimit_file);
space_reserved = atoi(dlimit_file);
free(dlimit_file);
}
-
+
}
-
+
ovcp_response_struct_new(response);
-
+
if( (strncmp(pathoflimit, global_settings.root_dir, strlen(global_settings.root_dir)) == 0)
&& ( strncmp(pathoflimit+strlen(global_settings.root_dir)+1, name, strlen(name)) == 0))
{
@@ -782,30 +782,30 @@
ovcp_response_struct_add_string(response, "path", pathoflimit);
ovcp_response_struct_add_boolean(response, "extern", 1);
}
-
+
ovcp_response_struct_add_int(response, "total", space_total);
ovcp_response_struct_add_int(response, "used", space_used);
ovcp_response_struct_add_int(response, "inodes_total", space_inodes_total);
ovcp_response_struct_add_int(response, "inodes_used", space_inodes_used);
ovcp_response_struct_add_int(response, "reserved", space_reserved);
-
- ovcp_response_struct_end(response);
-
-
+
+ ovcp_response_struct_end(response);
+
+
free(pathoflimit);
-
+
}
-
+
closedir(dlimitdir);
}
else
{
-
+
space_total = -1;
space_used = -1;
space_reserved = -1;
space_inodes_total = -1;
- space_inodes_used = -1;
+ space_inodes_used = -1;
sconcat(path, BUF_SIZE, global_settings.root_dir, "/", name, "/", NULL);
@@ -816,20 +816,20 @@
space_reserved = limits.reserved;
space_inodes_total = limits.inodes_total;
space_inodes_used = limits.inodes_used;
-
- }
-
+
+ }
+
ovcp_response_struct_add_string(response, "path", "/");
-
+
ovcp_response_struct_add_int(response, "total", space_total);
ovcp_response_struct_add_int(response, "used", space_used);
ovcp_response_struct_add_int(response, "inodes_total", space_inodes_total);
ovcp_response_struct_add_int(response, "inodes_used", space_inodes_used);
ovcp_response_struct_add_int(response, "reserved", space_reserved);
-
-
- }
-
+
+
+ }
+
return response;
}
@@ -839,23 +839,23 @@
{
struct ovcp_response_st *response;
struct ovcp_data_st *arg0;
-
+
char *cvirt_file, *context, *name;
char path[BUF_SIZE+1];
int i = 0;
char *p;
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
-
-
+
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/context", NULL);
context = file_read(path);
@@ -870,32 +870,32 @@
if(cvirt_file != NULL)
{
p = cvirt_file;
-
+
while(*p != 0 && *p != ':') p++;
p++;
while(*p != 0 && (*p == ' ' || *p == '\t')) p++;
-
+
while(p[i] != 0 && p[i] != '\n')
i++;
-
+
p[i] = 0;
-
+
ovcp_response_add_string(response, p);
-
+
free(cvirt_file);
}
else
{
ovcp_response_add_string(response, "");
}
-
+
free(context);
}
else
{
ovcp_response_add_string(response, "");
}
-
+
return response;
}
@@ -905,23 +905,23 @@
{
struct ovcp_response_st *response;
struct ovcp_data_st *arg0;
-
+
char *cvirt_file, *context, *name;
char path[BUF_SIZE+1];
int i = 0, line_num = 0;
char *p;
-
+
arg0 = ovcp_request_get_arg(request, 0);
name = (char *)ovcp_data_get(arg0);
-
+
if(!ovcp_data_is_string(arg0) || name == NULL)
return ovcp_response_error(OVCP_ERROR_ARGMISS, OVCP_ERROR_ARGMISS_DESC);
if(!vserver_exist(name))
return ovcp_response_error(OVCP_ERROR_VSNOTEXIST, OVCP_ERROR_VSNOTEXIST_DESC);
-
+
response = ovcp_response_new();
-
-
+
+
sconcat(path, BUF_SIZE, global_settings.config_dir, "/", name, "/context", NULL);
context = file_read(path);
@@ -936,51 +936,51 @@
if(cvirt_file != NULL)
{
p = cvirt_file;
-
+
while(*p != 0)
{
if(kernel_vci_version >= 0x20200 && line_num == 6)
break;
if(kernel_vci_version < 0x20200 && line_num == 12)
break;
-
+
while(*p != 0 && *p != '\n')
p++;
-
+
if(*p != 0)
{
line_num++;
p++;
}
}
-
-
+
+
while(*p != 0 && *p != ':') p++;
-
+
p++;
-
+
while(*p != 0 && (*p == ' ' || *p == '\t')) p++;
-
+
while(p[i] != 0 && p[i] != '\n')
i++;
-
+
p[i] = 0;
-
+
ovcp_response_add_string(response, p);
-
+
free(cvirt_file);
}
else
{
- ovcp_response_add_string(response, "");
+ ovcp_response_add_string(response, "");
}
-
+
free(context);
}
else
{
- ovcp_response_add_string(response, "");
+ ovcp_response_add_string(response, "");
}
-
+
return response;
}
More information about the Commits
mailing list