Index: CHANGELOG =================================================================== --- CHANGELOG (revision 3602) +++ CHANGELOG (revision 3603) @@ -61,6 +61,7 @@ to submit the job as the proxy user specified by b - Bugzilla bug 57. Check return value of malloc for tracejob for Linux (Chris Samuel - VPAC) + b - fix so "gres" config gets displayed by pbsnodes 2.4.8 e - Bugzilla bug 22. HIGH_PRECISION_FAIRSHARE for fifo scheduling. Index: src/resmom/mom_server.c =================================================================== --- src/resmom/mom_server.c (revision 3602) +++ src/resmom/mom_server.c (revision 3603) @@ -289,14 +289,12 @@ extern int verbositylevel; extern tree *okclients; /* accept connections from */ -extern char *skipwhite(char *str); -extern char *tokcpy(char *str, char *tok); - extern struct config *rm_search(struct config *where, char *what); extern struct rm_attribute *momgetattr(char *str); extern char *conf_res(char *resline, struct rm_attribute *attr); extern char *dependent(char *res, struct rm_attribute *attr); +extern char *reqgres(struct rm_attribute *); char TORQUE_JData[MMAX_LINE]; @@ -998,107 +996,18 @@ int *BSpace) { - struct config *ap; - struct rm_attribute *attr; char *value; - ap = rm_search(config_array,name); + value = reqgres(NULL); - if (ap != NULL) + if (value != NULL) { - attr = momgetattr(ap->c_u.c_value); - - if (attr) - { - value = dependent(name,attr); - - if (value == NULL) - { - /* value not set (attribute required) */ - - MUSNPrintF(BPtr,BSpace,"%s=? %d", - name, - rm_errno); - - (*BPtr)++; /* Need to start the next string after the null */ - (*BSpace)--; - } - else if (value[0] == '\0') - { - /* value not set (attribute optional) */ - } - else - { - if (strstr(value, ":!") != NULL) - { - /* value contains executable call-out, must process */ - - /* FORMAT: :[!][+:[!]]... */ - - char *ptr; - char *tail; - char gname[64]; - char src[1024]; - char result[1024]; - - strncpy(src, value, sizeof(src)); - result[0] = '\0'; - - ptr = strtok(src, "+"); - - while (ptr != NULL) - { - if ((tail = strchr(ptr, ':')) == NULL) - { - /* cannot parse value */ - - ptr = strtok(NULL, "+"); - - continue; - } - - strncpy(gname, ptr, tail - ptr); - - gname[tail - ptr] = '\0'; - - ptr = conf_res(tail + 1, attr); - - if ((ptr == NULL) || (ptr[0] == '\0')) - { - /* all static attributes are optional */ - - ptr = strtok(NULL, "+"); - - continue; - } - - if (result[0] != '\0') - strcat(result, "+"); - - if ((ptr != NULL) && (strncmp(ptr, gname, strlen(gname)))) - { - strcat(result, gname); - strcat(result, ":"); - } - - strcat(result, ptr); - - ptr = strtok(NULL, "+"); - } /* END while (ptr != NULL) */ - - if (result[0] != '\0') - { - MUSNPrintF(BPtr, BSpace, "%s=%s", - name, - result); - - (*BPtr)++; /* Need to start the next string after the null */ - (*BSpace)--; - } - } - } - } + MUSNPrintF(BPtr, BSpace, "%s=%s", + name, + value); + (*BPtr)++; /* Need to start the next string after the null */ + (*BSpace)--; } return; Index: src/resmom/mom_main.c =================================================================== --- src/resmom/mom_main.c (revision 3602) +++ src/resmom/mom_main.c (revision 3603) @@ -449,7 +449,7 @@ static char *requname(struct rm_attribute *); static char *validuser(struct rm_attribute *); static char *reqmsg(struct rm_attribute *); -static char *reqgres(struct rm_attribute *); +char *reqgres(struct rm_attribute *); static char *reqstate(struct rm_attribute *); static char *getjoblist(struct rm_attribute *); static char *reqvarattr(struct rm_attribute *); @@ -1073,7 +1073,7 @@ -static char *reqgres( +char *reqgres( struct rm_attribute *attrib) /* I (ignored) */