save works
This commit is contained in:
parent
47fc32b02c
commit
43dc12a36c
19 changed files with 80 additions and 72 deletions
|
|
@ -305,10 +305,10 @@ int match_limit(xce_limit_t* limit, int global, ...)
|
|||
int build_vres_name(char** vname, xce_limit_t* limit, char* user, char* queue,
|
||||
char* project)
|
||||
{
|
||||
char resname[2 * XCE_MAXNAME_LEN + 1];
|
||||
xce_consumer_t* c = NULL;
|
||||
char* p = NULL;
|
||||
int rc = 0;
|
||||
size_t bufsize = 0;
|
||||
FILE* fp = NULL;
|
||||
xce_consumer_t* c = NULL;
|
||||
int rc = 0;
|
||||
|
||||
*vname = NULL;
|
||||
if ((vname == NULL) || (limit == NULL) || (user == NULL) || (queue == NULL)
|
||||
|
|
@ -316,50 +316,33 @@ int build_vres_name(char** vname, xce_limit_t* limit, char* user, char* queue,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
memset(resname, 0x0, sizeof(resname));
|
||||
|
||||
p = &resname[0];
|
||||
|
||||
rc = sprintf(p, "limit=%s", limit->name);
|
||||
if (rc < 0) {
|
||||
return rc;
|
||||
fp = open_memstream(vname, &bufsize);
|
||||
if (fp == NULL) {
|
||||
return -errno;
|
||||
}
|
||||
|
||||
p += rc;
|
||||
fprintf(fp, "limit=%s", limit->name);
|
||||
|
||||
c = limit->consumers[CONSUMER_USER];
|
||||
|
||||
if ((c != NULL) && (c->per_consumer == 1)) {
|
||||
rc = sprintf(p, "/u=%s", user);
|
||||
if (rc < 0) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
p += rc;
|
||||
fprintf(fp, "/u=%s", user);
|
||||
}
|
||||
|
||||
c = limit->consumers[CONSUMER_QUEUE];
|
||||
if ((c != NULL) && (c->per_consumer == 1)) {
|
||||
rc = sprintf(p, "/q=%s", queue);
|
||||
if (rc < 0) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
p += rc;
|
||||
fprintf(fp, "/q=%s", queue);
|
||||
}
|
||||
|
||||
c = limit->consumers[CONSUMER_PROJECT];
|
||||
if ((c != NULL) && (c->per_consumer == 1)) {
|
||||
rc = sprintf(p, "/p=%s", project);
|
||||
if (rc < 0) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
p += rc;
|
||||
fprintf(fp, "/p=%s", project);
|
||||
}
|
||||
|
||||
*vname = strdup(resname);
|
||||
|
||||
fflush(fp);
|
||||
|
||||
fclose(fp);
|
||||
|
||||
if ((*vname) != NULL) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue