00001
00002
00003
00004 #include "reGlobalsExtern.h"
00005 #include "reVariables.h"
00006 #include "rcMisc.h"
00007
00008 #define RE_INT 1
00009 #define RE_STR 2
00010 #define RE_STRDUP 3
00011 #define RE_LONG 4
00012 #define RE_PTR 5
00013
00014 #ifdef ADDR_64BITS
00015 #define CAST_INT_VOIDPTR (long int)
00016 #else
00017 #define CAST_INT_VOIDPTR
00018 #endif
00019
00020 int
00021 getSetLeafValue(char **varValue, void *leafPtr, void **leafPtrVal, char *newVarValue, int setType)
00022 {
00023 int *i;
00024 char *s;
00025 long int *l;
00026
00027
00028
00029
00030
00031
00032 if (setType == RE_INT) {
00033 i = (int*)leafPtr;
00034 *varValue = (char*)malloc(sizeof(int) * 2);
00035 sprintf(*varValue, "%d",*i);
00036 if (newVarValue != NULL) {
00037 *i = atoi(newVarValue);
00038
00039 }
00040 }
00041 else if (setType == RE_STR) {
00042 s= (char*)leafPtr;
00043 *varValue = strdup(s);
00044 if (newVarValue != NULL)
00045 strcpy(s,(char *) newVarValue);
00046 }
00047 else if (setType == RE_STRDUP) {
00048 s= (char*)leafPtr;
00049 *varValue = strdup(s);
00050 if (newVarValue != NULL) {
00051 if (s != NULL) free(s);
00052 s = strdup((char *) newVarValue);
00053 }
00054 }
00055 else if (setType == RE_LONG) {
00056 l = (long*)leafPtr;
00057
00058 *varValue = (char*)malloc(34);
00059
00060 sprintf(*varValue, "%ld",*l);
00061 if (newVarValue != NULL) {
00062 *l = atol(newVarValue);
00063 }
00064 }
00065 else if (setType == RE_PTR) {
00066 *varValue = (char*)malloc(34);
00067 #ifdef ADDR_64BITS
00068 sprintf(*varValue, "%lld", (long long int) (void *) *leafPtrVal);
00069 #else
00070
00071 sprintf(*varValue, "%ld",(long) *leafPtrVal);
00072 #endif
00073 if (newVarValue != NULL) {
00074 #ifdef ADDR_64BITS
00075 *leafPtrVal = (void *) strtoll(newVarValue, (char **)NULL, 0);
00076 #else
00077 *leafPtrVal = (void *) strtol(newVarValue, (char **)NULL, 0);
00078 #endif
00079
00080 }
00081 }
00082 else
00083 return(INVALID_OBJECT_TYPE);
00084
00085
00086
00087
00088
00089
00090 return(0);
00091
00092 }
00093 int
00094 mapExternalFuncToInternalProc( char *funcName)
00095 {
00096 int i;
00097
00098 for (i = 0; i < appRuleFuncMapDef.MaxNumOfFMaps; i++) {
00099 if (strstr(appRuleFuncMapDef.funcName[i],funcName ) != NULL) {
00100 strcpy(funcName, appRuleFuncMapDef.func2CMap[i]);
00101 return(1);
00102 }
00103 }
00104 for (i = 0; i < coreRuleFuncMapDef.MaxNumOfFMaps; i++) {
00105 if (strstr(coreRuleFuncMapDef.funcName[i],funcName ) != NULL) {
00106 strcpy(funcName, coreRuleFuncMapDef.func2CMap[i]);
00107 return(1);
00108 }
00109 }
00110 return(0);
00111 }
00112
00113 int
00114 getVarMap(char *action, char *inVarName, char **varMap, int index)
00115 {
00116 int i;
00117 char *varName;
00118
00119 if (inVarName[0] == '$')
00120 varName = inVarName + 1;
00121 else
00122 varName = inVarName;
00123 if (index < 1000) {
00124 for (i = index; i < appRuleVarDef.MaxNumOfDVars; i++) {
00125 if (!strcmp(appRuleVarDef.varName[i],varName )) {
00126 if (strlen(appRuleVarDef.action[i]) == 0 ||
00127 strstr(appRuleVarDef.action[i],action) != NULL ) {
00128 *varMap = strdup(appRuleVarDef.var2CMap[i]);
00129 return(i);
00130 }
00131 }
00132 }
00133 index = 1000;
00134 }
00135 i = index - 1000;
00136 for ( ; i < coreRuleVarDef.MaxNumOfDVars; i++) {
00137 if (!strcmp(coreRuleVarDef.varName[i],varName )) {
00138 if (strlen(coreRuleVarDef.action[i]) == 0 ||
00139 strstr(coreRuleVarDef.action[i],action) != NULL ) {
00140 *varMap = strdup(coreRuleVarDef.var2CMap[i]);
00141 return(i + 1000);
00142 }
00143 }
00144 }
00145 return(UNKNOWN_VARIABLE_MAP_ERR);
00146 }
00147
00148
00149
00150 int
00151 getVarNameFromVarMap(char *varMap, char *varName, char **varMapCPtr)
00152 {
00153
00154 char *p;
00155
00156 if ((p = strstr(varMap,"->")) == NULL) {
00157 rstrcpy(varName,varMap,NAME_LEN);
00158 *varMapCPtr=NULL;
00159 }
00160 else {
00161 *p = '\0';
00162 rstrcpy(varName,varMap,NAME_LEN);
00163 *p = '-';
00164 p++;
00165 p++;
00166 *varMapCPtr = p;
00167 }
00168
00169 trimWS(varName);
00170 return(0);
00171
00172 }
00173
00174 int
00175 getVarValue(char *varMap, ruleExecInfo_t *rei, char **varValue)
00176 {
00177
00178 char varName[NAME_LEN];
00179 char *varMapCPtr;
00180 int i;
00181
00182 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00183 if (i != 0)
00184 return(i);
00185 if (!strcmp(varName,"rei")) {
00186
00187 i = getSetValFromRuleExecInfo(varMapCPtr, &rei, varValue,NULL);
00188 return(i);
00189 }
00190 else {
00191 return(UNDEFINED_VARIABLE_MAP_ERR);
00192 }
00193 }
00194
00195 int
00196 setVarValue(char *varMap, ruleExecInfo_t *rei, void *newVarValue)
00197 {
00198 char varName[NAME_LEN];
00199 char *varMapCPtr;
00200 char *varValue = NULL;
00201 int i;
00202
00203 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00204 if (i != 0)
00205 return(i);
00206 if (!strcmp(varName,"rei")) {
00207 i = getSetValFromRuleExecInfo(varMapCPtr, &rei, &varValue,newVarValue);
00208 if (varValue != NULL) free (varValue);
00209 return(i);
00210 }
00211 else
00212 return(UNDEFINED_VARIABLE_MAP_ERR);
00213 }
00214
00215 int
00216 getSetValFromRuleExecInfo(char *varMap, ruleExecInfo_t **inrei,
00217 char **varValue, void *newVarValue)
00218 {
00219 char varName[NAME_LEN];
00220 char *varMapCPtr;
00221 int i;
00222 ruleExecInfo_t *rei;
00223
00224 rei = *inrei;
00225
00226
00227
00228 if (varMap == NULL) {
00229 i = getSetLeafValue(varValue, (void**)inrei, (void **) inrei, (char*)newVarValue, RE_PTR);
00230 return(i);
00231 }
00232 if (rei == NULL)
00233 return(NULL_VALUE_ERR);
00234
00235 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00236 if (i != 0)
00237 return(i);
00238
00239 if( !strcmp( varName, "pluginInstanceName" ) ) {
00240 i = getSetLeafValue( varValue, (rei->pluginInstanceName),
00241 (void**) rei->pluginInstanceName, (char*)newVarValue, RE_STR );
00242 }
00243 else if (!strcmp(varName, "status") )
00244 i = getSetLeafValue(varValue,&(rei->status), (void **) CAST_INT_VOIDPTR rei->status, (char*)newVarValue, RE_INT);
00245 else if (!strcmp(varName, "statusStr") )
00246 i = getSetLeafValue(varValue,&(rei->statusStr), (void **) rei->statusStr, (char*)newVarValue,RE_STR);
00247 else if (!strcmp(varName, "rsComm") )
00248 i = getSetValFromRsComm(varMapCPtr, &(rei->rsComm), varValue, newVarValue);
00249 else if (!strcmp(varName, "l1descInx") )
00250 i = getSetLeafValue(varValue,&(rei->l1descInx), (void **) CAST_INT_VOIDPTR rei->l1descInx, (char*)newVarValue, RE_INT);
00251
00252 else if (!strcmp(varName, "doinp") )
00253 i = getSetValFromDataObjInp(varMapCPtr, &(rei->doinp), varValue, newVarValue);
00254 #if 0
00255 else if (!strcmp(varName, "dinp") )
00256 i = getSetValFromDataOprInp(varMapCPtr, &(rei->dinp), varValue, newVarValue);
00257 else if (!strcmp(varName, "finp") )
00258 i = getSetValFromFileOpenInp(varMapCPtr, &(rei->finp), varValue, newVarValue);
00259 #endif
00260 else if (!strcmp(varName, "doi") )
00261 i = getSetValFromDataObjInfo(varMapCPtr, &(rei->doi), varValue, newVarValue);
00262 else if (!strcmp(varName, "rgi") )
00263 i = getSetValFromRescGrpInfo(varMapCPtr, &(rei->rgi), varValue, newVarValue);
00264 else if (!strcmp(varName, "uoic") )
00265 i = getSetValFromUserInfo(varMapCPtr, &(rei->uoic), varValue, newVarValue);
00266 else if (!strcmp(varName, "uoip") )
00267 i = getSetValFromUserInfo(varMapCPtr, &(rei->uoip), varValue, newVarValue);
00268 else if (!strcmp(varName, "coi") )
00269 i = getSetValFromCollInfo(varMapCPtr, &(rei->coi), varValue, newVarValue);
00270 #if 0
00271 else if (!strcmp(varName, "doinpo") )
00272 i = getSetValFromDataObjInp(varMapCPtr, &(rei->doinpo), varValue, newVarValue);
00273 else if (!strcmp(varName, "dinpo") )
00274 i = getSetValFromDataOprInp(varMapCPtr, &(rei->dinpo), varValue, newVarValue);
00275 else if (!strcmp(varName, "finpo") )
00276 i = getSetValFromFileOpenInp(varMapCPtr, &(rei->finpo), varValue, newVarValue);
00277 else if (!strcmp(varName, "rgio") )
00278 i = getSetValFromRescGrpInfo(varMapCPtr, &(rei->rgio), varValue, newVarValue);
00279 #endif
00280 else if (!strcmp(varName, "uoio") )
00281 i = getSetValFromUserInfo(varMapCPtr, &(rei->uoio), varValue, newVarValue);
00282 else if (!strcmp(varName, "condInputData") )
00283 i = getSetValFromKeyValPair(varMapCPtr, &(rei->condInputData), varValue, newVarValue);
00284 else if (!strcmp(varName, "ruleSet") )
00285 i = getSetLeafValue(varValue,&(rei->ruleSet), (void **) rei->ruleSet , (char*)newVarValue,RE_STR);
00286
00287 else if (!strcmp(varName, "next") )
00288 i = getSetValFromRuleExecInfo(varMapCPtr, &(rei->next), varValue,newVarValue);
00289 else {
00290 return(UNDEFINED_VARIABLE_MAP_ERR);
00291 }
00292
00293 return(i);
00294
00295 }
00296
00297 int
00298 getSetValFromRsComm(char *varMap, rsComm_t **inptr, char **varValue, void *newVarValue)
00299 {
00300 char varName[NAME_LEN];
00301 char *varMapCPtr;
00302 int i;
00303 rsComm_t *ptr;
00304 userInfo_t *userInfo;
00305
00306 ptr = *inptr;
00307
00308 if (varMap == NULL) {
00309 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00310 return(i);
00311 }
00312
00313 if (ptr == NULL)
00314 return(NULL_VALUE_ERR);
00315 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00316 if (i != 0)
00317 return(i);
00318 if (!strcmp(varName, "sock") )
00319 i = getSetLeafValue(varValue,&(ptr->sock), (void **) CAST_INT_VOIDPTR ptr->sock, (char*)newVarValue, RE_INT);
00320
00321 else if (!strcmp(varName, "connectCnt") )
00322 i = getSetLeafValue(varValue,&(ptr->connectCnt),(void **) CAST_INT_VOIDPTR ptr->connectCnt, (char*)newVarValue, RE_INT);
00323
00324 else if (!strcmp(varName, "proxyUser") )
00325 {
00326 userInfo = &(ptr->proxyUser);
00327 i = getSetValFromUserInfo(varMapCPtr, (userInfo_t**) &userInfo, varValue, newVarValue);
00328 }
00329 else if (!strcmp(varName, "clientUser") )
00330 {
00331 userInfo = &(ptr->clientUser);
00332 i = getSetValFromUserInfo(varMapCPtr, &userInfo, varValue, newVarValue);
00333 }
00334 else if (!strcmp(varName, "cliVersion") )
00335 i = getSetValFromVersion(varMapCPtr, (version_t**)&(ptr->cliVersion), varValue, newVarValue);
00336 else if (!strcmp(varName, "option") )
00337 i = getSetLeafValue(varValue,&(ptr->option), (void **) ptr->option, (char*)newVarValue,RE_STR);
00338
00339 else if (!strcmp(varName, "status") )
00340 i = getSetLeafValue(varValue,&(ptr->status), (void **) CAST_INT_VOIDPTR ptr->status, (char*)newVarValue, RE_INT);
00341
00342 else if (!strcmp(varName, "apiInx") )
00343 i = getSetLeafValue(varValue,&(ptr->apiInx), (void **) CAST_INT_VOIDPTR ptr->apiInx, (char*)newVarValue, RE_INT);
00344 else if (!strcmp(varName, "windowSize") )
00345 i = getSetLeafValue(varValue,&(ptr->windowSize), (void **) CAST_INT_VOIDPTR ptr->windowSize , (char*)newVarValue, RE_INT);
00346 else if (!strcmp(varName, "reconnFlag") )
00347 i = getSetLeafValue(varValue,&(ptr->reconnFlag), (void **) CAST_INT_VOIDPTR ptr->reconnFlag , (char*)newVarValue, RE_INT);
00348 else if (!strcmp(varName, "reconnSock") )
00349 i = getSetLeafValue(varValue,&(ptr->reconnSock), (void **) CAST_INT_VOIDPTR ptr->reconnSock , (char*)newVarValue, RE_INT);
00350 else if (!strcmp(varName, "reconnPort") )
00351 i = getSetLeafValue(varValue,&(ptr->reconnPort), (void **) CAST_INT_VOIDPTR ptr->reconnPort , (char*)newVarValue, RE_INT);
00352 else if (!strcmp(varName, "reconnAddr") )
00353 i = getSetLeafValue(varValue,&(ptr->reconnAddr),(void **) ptr->reconnAddr, (char*)newVarValue, RE_STRDUP);
00354 else if (!strcmp(varName, "cookie") )
00355 i = getSetLeafValue(varValue,&(ptr->cookie), (void **) CAST_INT_VOIDPTR ptr->cookie, (char*)newVarValue, RE_INT);
00356 else if (!strcmp(varName, "clientAddr") )
00357 i = getSetLeafValue(varValue,&(ptr->clientAddr), (void **) ptr->clientAddr, (char*)newVarValue, RE_STR);
00358 else
00359 return(UNDEFINED_VARIABLE_MAP_ERR);
00360 return(i);
00361
00362 }
00363
00364
00365 int
00366 getSetValFromDataObjInfo(char *varMap, dataObjInfo_t **inptr, char **varValue, void *newVarValue)
00367 {
00368 char varName[NAME_LEN];
00369 char *varMapCPtr;
00370 int i;
00371 dataObjInfo_t *ptr;
00372
00373 ptr = *inptr;
00374
00375 if (varMap == NULL) {
00376 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00377 return(i);
00378 }
00379
00380 if (ptr == NULL)
00381 return(NULL_VALUE_ERR);
00382 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00383 if (i != 0)
00384 return(i);
00385 if (!strcmp(varName, "objPath") )
00386 i = getSetLeafValue(varValue,&(ptr->objPath), (void **) ptr->objPath, (char*)newVarValue,RE_STR);
00387
00388 else if (!strcmp(varName, "rescName") )
00389 i = getSetLeafValue(varValue,&(ptr->rescName), (void **) ptr->rescName , (char*)newVarValue,RE_STR);
00390
00391 else if (!strcmp(varName, "rescGroupName") )
00392 i = getSetLeafValue(varValue,&(ptr->rescGroupName), (void **) ptr->rescGroupName , (char*)newVarValue,RE_STR);
00393
00394 else if (!strcmp(varName, "dataType") )
00395 i = getSetLeafValue(varValue,&(ptr->dataType), (void **)ptr->dataType , (char*)newVarValue,RE_STR);
00396
00397 else if (!strcmp(varName, "dataSize") )
00398 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **) (long) ptr->dataSize, (char*)newVarValue, RE_LONG);
00399
00400 else if (!strcmp(varName, "chksum") )
00401 i = getSetLeafValue(varValue,&(ptr->chksum), (void **)ptr->chksum , (char*)newVarValue,RE_STR);
00402
00403 else if (!strcmp(varName, "version") )
00404 i = getSetLeafValue(varValue,&(ptr->version), (void **) ptr->version , (char*)newVarValue,RE_STR);
00405
00406 else if (!strcmp(varName, "filePath") )
00407 i = getSetLeafValue(varValue,&(ptr->filePath), (void **) ptr->filePath , (char*)newVarValue,RE_STR);
00408
00409 else if (!strcmp(varName, "rescInfo") )
00410 i = getSetValFromRescInfo(varMapCPtr, &(ptr->rescInfo), varValue, newVarValue);
00411 else if (!strcmp(varName, "dataOwnerName") )
00412 i = getSetLeafValue(varValue,&(ptr->dataOwnerName), (void **) ptr->dataOwnerName , (char*)newVarValue,RE_STR);
00413
00414 else if (!strcmp(varName, "dataOwnerZone") )
00415 i = getSetLeafValue(varValue,&(ptr->dataOwnerZone), (void **) ptr->dataOwnerZone , (char*)newVarValue,RE_STR);
00416
00417 else if (!strcmp(varName, "replNum") )
00418 i = getSetLeafValue(varValue,&(ptr->replNum), (void **) CAST_INT_VOIDPTR ptr->replNum, (char*)newVarValue, RE_INT);
00419
00420 else if (!strcmp(varName, "replStatus") )
00421 i = getSetLeafValue(varValue,&(ptr->replStatus), (void **) CAST_INT_VOIDPTR ptr->replStatus, (char*)newVarValue, RE_INT);
00422
00423 else if (!strcmp(varName, "writeFlag") )
00424 i = getSetLeafValue(varValue,&(ptr->writeFlag), (void **) CAST_INT_VOIDPTR ptr->writeFlag, (char*)newVarValue, RE_INT);
00425 else if (!strcmp(varName, "statusString") )
00426 i = getSetLeafValue(varValue,&(ptr->statusString), (void **) ptr->statusString , (char*)newVarValue,RE_STR);
00427
00428 else if (!strcmp(varName, "dataId") )
00429 i = getSetLeafValue(varValue,&(ptr->dataId), (void **) (long) ptr->dataId, (char*)newVarValue, RE_LONG);
00430
00431 else if (!strcmp(varName, "collId") )
00432 i = getSetLeafValue(varValue,&(ptr->collId), (void **) (long) ptr->collId, (char*)newVarValue, RE_LONG);
00433
00434 else if (!strcmp(varName, "dataMapId") )
00435 i = getSetLeafValue(varValue,&(ptr->dataMapId), (void **) CAST_INT_VOIDPTR ptr->dataMapId, (char*)newVarValue, RE_INT);
00436
00437 else if (!strcmp(varName, "dataComments") )
00438 i = getSetLeafValue(varValue,&(ptr->dataComments), (void **) ptr->dataComments , (char*)newVarValue,RE_STR);
00439
00440 else if (!strcmp(varName, "dataExpiry") )
00441 i = getSetLeafValue(varValue,&( ptr->dataExpiry), (void **) ptr->dataExpiry , (char*)newVarValue,RE_STR);
00442
00443 else if (!strcmp(varName, "dataCreate") )
00444 i = getSetLeafValue(varValue,&(ptr->dataCreate), (void **) ptr->dataCreate , (char*)newVarValue,RE_STR);
00445
00446 else if (!strcmp(varName, "dataModify") )
00447 i = getSetLeafValue(varValue,&(ptr->dataModify), (void **) ptr->dataModify , (char*)newVarValue,RE_STR);
00448
00449 else if (!strcmp(varName, "dataAccess") )
00450 i = getSetLeafValue(varValue,&(ptr->dataAccess), (void **)ptr->dataAccess , (char*)newVarValue,RE_STR);
00451
00452 else if (!strcmp(varName, "dataAccessInx") )
00453 i = getSetLeafValue(varValue,&(ptr->dataAccessInx), (void **) CAST_INT_VOIDPTR ptr->dataAccessInx , (char*)newVarValue, RE_INT);
00454
00455 else if (!strcmp(varName, "destRescName") )
00456 i = getSetLeafValue(varValue,&(ptr->destRescName), (void **) ptr->destRescName , (char*)newVarValue,RE_STR);
00457
00458 else if (!strcmp(varName, "backupRescName") )
00459 i = getSetLeafValue(varValue,&(ptr->backupRescName), (void **) ptr->backupRescName , (char*)newVarValue,RE_STR);
00460
00461 else if (!strcmp(varName, "next") )
00462 i = getSetValFromDataObjInfo(varMapCPtr, &(ptr->next), varValue, newVarValue);
00463 else
00464 return(UNDEFINED_VARIABLE_MAP_ERR);
00465 return(i);
00466
00467 }
00468
00469 int
00470 getSetValFromDataObjInp(char *varMap, dataObjInp_t **inptr, char **varValue, void *newVarValue)
00471 {
00472 char varName[NAME_LEN];
00473 char *varMapCPtr;
00474 int i;
00475 dataObjInp_t *ptr;
00476
00477 ptr = *inptr;
00478
00479 if (varMap == NULL) {
00480 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00481 return(i);
00482 }
00483
00484 if (ptr == NULL)
00485 return(NULL_VALUE_ERR);
00486 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00487 if (i != 0)
00488 return(i);
00489 if (!strcmp(varName, "objPath") )
00490 i = getSetLeafValue(varValue,&(ptr->objPath), (void **) ptr->objPath , (char*)newVarValue,RE_STR);
00491
00492 else if (!strcmp(varName, "createMode") )
00493 i = getSetLeafValue(varValue,&(ptr->createMode), (void **) CAST_INT_VOIDPTR ptr->createMode , (char*)newVarValue, RE_INT);
00494
00495 else if (!strcmp(varName, "openFlags") )
00496 i = getSetLeafValue(varValue,&(ptr->openFlags), (void **) CAST_INT_VOIDPTR ptr->openFlags, (char*)newVarValue, RE_INT);
00497
00498 else if (!strcmp(varName, "offset") )
00499 i = getSetLeafValue(varValue,&(ptr->offset), (void **)(long) ptr->offset , (char*)newVarValue, RE_LONG);
00500
00501 else if (!strcmp(varName, "dataSize") )
00502 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **) (long) ptr->dataSize, (char*)newVarValue, RE_LONG);
00503
00504 else if (!strcmp(varName, "numThreads") )
00505 i = getSetLeafValue(varValue,&(ptr->numThreads), (void **) CAST_INT_VOIDPTR ptr->numThreads , (char*)newVarValue, RE_INT);
00506
00507 else if (!strcmp(varName, "oprType") )
00508 i = getSetLeafValue(varValue,&(ptr->oprType), (void **) CAST_INT_VOIDPTR ptr->oprType , (char*)newVarValue, RE_INT);
00509
00510 else if (!strcmp(varName, "condInput") )
00511 i = getSetValFromKeyValPair(varMapCPtr, (keyValPair_t **) &(ptr->condInput),varValue, (char*)newVarValue);
00512 else
00513 return(UNDEFINED_VARIABLE_MAP_ERR);
00514 return(i);
00515
00516 }
00517
00518 int
00519 getSetValFromDataOprInp(char *varMap, dataOprInp_t **inptr, char **varValue, void *newVarValue)
00520 {
00521 char varName[NAME_LEN];
00522 char *varMapCPtr;
00523 int i;
00524 dataOprInp_t *ptr;
00525
00526 ptr = *inptr;
00527
00528 if (varMap == NULL) {
00529 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00530 return(i);
00531 }
00532
00533 if (ptr == NULL)
00534 return(NULL_VALUE_ERR);
00535 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00536 if (i != 0)
00537 return(i);
00538 if (!strcmp(varName, "oprType") )
00539 i = getSetLeafValue(varValue,&(ptr->oprType), (void **) CAST_INT_VOIDPTR ptr->oprType , (char*)newVarValue, RE_INT);
00540
00541 else if (!strcmp(varName, "offset") )
00542 i = getSetLeafValue(varValue,&(ptr->offset), (void **)(long) ptr->offset, (char*)newVarValue, RE_LONG);
00543
00544 else if (!strcmp(varName, "dataSize") )
00545 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **)(long) ptr->dataSize , (char*)newVarValue, RE_LONG);
00546
00547 else if (!strcmp(varName, "numThreads") )
00548 i = getSetLeafValue(varValue,&(ptr->numThreads), (void **) CAST_INT_VOIDPTR ptr->numThreads, (char*)newVarValue, RE_INT);
00549
00550 else if (!strcmp(varName, "srcL3descInx") )
00551 i = getSetLeafValue(varValue,&(ptr->srcL3descInx), (void **) CAST_INT_VOIDPTR ptr->srcL3descInx , (char*)newVarValue, RE_INT);
00552
00553 else if (!strcmp(varName, "destL3descInx") )
00554 i = getSetLeafValue(varValue,&(ptr->destL3descInx), (void **) CAST_INT_VOIDPTR ptr->destL3descInx , (char*)newVarValue, RE_INT);
00555
00556 else if (!strcmp(varName, "srcRescTypeInx") )
00557 i = getSetLeafValue(varValue,&(ptr->srcRescTypeInx), (void **) CAST_INT_VOIDPTR ptr->srcRescTypeInx , (char*)newVarValue, RE_INT);
00558
00559 else if (!strcmp(varName, "destRescTypeInx") )
00560 i = getSetLeafValue(varValue,&(ptr->destRescTypeInx), (void **) CAST_INT_VOIDPTR ptr->destRescTypeInx , (char*)newVarValue, RE_INT);
00561
00562 else if (!strcmp(varName, "condInput") )
00563 i = getSetValFromKeyValPair(varMapCPtr, (keyValPair_t**)&(ptr->condInput),varValue, (char*)newVarValue);
00564 else
00565 return(UNDEFINED_VARIABLE_MAP_ERR);
00566 return(i);
00567
00568 }
00569
00570
00571
00572 int
00573 getSetValFromRescInfo(char *varMap, rescInfo_t **inptr, char **varValue, void *newVarValue)
00574 {
00575 char varName[NAME_LEN];
00576 char *varMapCPtr;
00577 int i;
00578 rescInfo_t *ptr;
00579
00580 ptr = *inptr;
00581
00582 if (varMap == NULL) {
00583 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00584 return(i);
00585 }
00586
00587 if (ptr == NULL)
00588 return(NULL_VALUE_ERR);
00589 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00590 if (i != 0)
00591 return(i);
00592 if (!strcmp(varName, "rescName") )
00593 i = getSetLeafValue(varValue,&(ptr->rescName), (void **) ptr->rescName , (char*)newVarValue,RE_STR);
00594
00595 else if (!strcmp(varName, "rescId") )
00596 i = getSetLeafValue(varValue,&(ptr->rescId), (void **)(long) ptr->rescId, (char*)newVarValue, RE_LONG);
00597
00598 else if (!strcmp(varName, "zoneName") )
00599 i = getSetLeafValue(varValue,&(ptr->zoneName), (void **) ptr->zoneName , (char*)newVarValue,RE_STR);
00600
00601 else if (!strcmp(varName, "rescLoc") )
00602 i = getSetLeafValue(varValue,&(ptr->rescLoc), (void **)ptr->rescLoc , (char*)newVarValue,RE_STR);
00603
00604 else if (!strcmp(varName, "rescType") )
00605 i = getSetLeafValue(varValue,&(ptr->rescType), (void **) ptr->rescType , (char*)newVarValue,RE_STR);
00606
00607 else if (!strcmp(varName, "rescTypeInx") )
00608 i = getSetLeafValue(varValue,&(ptr->rescTypeInx), (void **) CAST_INT_VOIDPTR ptr->rescTypeInx , (char*)newVarValue, RE_INT);
00609
00610 else if (!strcmp(varName, "rescClass") )
00611 i = getSetLeafValue(varValue,&(ptr->rescClass), (void **) ptr->rescClass , (char*)newVarValue,RE_STR);
00612
00613 else if (!strcmp(varName, "rescClassInx") )
00614 i = getSetLeafValue(varValue,&(ptr->rescClassInx), (void **) CAST_INT_VOIDPTR ptr->rescClassInx, (char*)newVarValue, RE_INT);
00615
00616 else if (!strcmp(varName, "rescVaultPath") )
00617 i = getSetLeafValue(varValue,&(ptr->rescVaultPath), (void **)ptr->rescVaultPath , (char*)newVarValue,RE_STR);
00618
00619 else if (!strcmp(varName, RESC_STATUS_KW) )
00620 i = getSetLeafValue(varValue,&(ptr->rescStatus), (void **) CAST_INT_VOIDPTR ptr->rescStatus , (char*)newVarValue, RE_INT);
00621
00622 else if (!strcmp(varName, "paraOpr") )
00623 i = getSetLeafValue(varValue,&(ptr->paraOpr), (void **) CAST_INT_VOIDPTR ptr->paraOpr , (char*)newVarValue, RE_INT);
00624
00625 else if (!strcmp(varName, "rescInfo") )
00626 i = getSetLeafValue(varValue,&(ptr->rescInfo), (void **) ptr->rescInfo , (char*)newVarValue,RE_STR);
00627
00628 else if (!strcmp(varName, "rescComments") )
00629 i = getSetLeafValue(varValue,&(ptr->rescComments), (void **) ptr->rescComments , (char*)newVarValue,RE_STR);
00630
00631 else if (!strcmp(varName, "gateWayAddr") )
00632 i = getSetLeafValue(varValue,&(ptr->gateWayAddr), (void **) ptr->gateWayAddr , (char*)newVarValue,RE_STR);
00633
00634 else if (!strcmp(varName, "rescMaxObjSize") )
00635 i = getSetLeafValue(varValue,&(ptr->rescMaxObjSize), (void **)(long) ptr->rescMaxObjSize, (char*)newVarValue, RE_LONG);
00636
00637 else if (!strcmp(varName, "freeSpace") )
00638 i = getSetLeafValue(varValue,&(ptr->freeSpace), (void **)(long) ptr->freeSpace , (char*)newVarValue, RE_LONG);
00639
00640 else if (!strcmp(varName, "freeSpaceTimeStamp") )
00641 i = getSetLeafValue(varValue,&(ptr->freeSpaceTimeStamp), (void **) ptr->freeSpaceTimeStamp , (char*)newVarValue,RE_STR);
00642
00643 else if (!strcmp(varName, "rescCreate") )
00644 i = getSetLeafValue(varValue,&(ptr->rescCreate), (void **) ptr->rescCreate , (char*)newVarValue,RE_STR);
00645
00646 else if (!strcmp(varName, "rescModify") )
00647 i = getSetLeafValue(varValue,&(ptr->rescModify), (void **) ptr->rescModify , (char*)newVarValue,RE_STR);
00648
00649 else
00650 return(UNDEFINED_VARIABLE_MAP_ERR);
00651 return(i);
00652
00653 }
00654
00655 int
00656 getSetValFromRescGrpInfo(char *varMap, rescGrpInfo_t **inptr, char **varValue, void *newVarValue)
00657 {
00658 char varName[NAME_LEN];
00659 char *varMapCPtr;
00660 int i;
00661 rescGrpInfo_t *ptr;
00662
00663 ptr = *inptr;
00664 if (varMap == NULL) {
00665 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00666 return(i);
00667 }
00668
00669
00670 if (ptr == NULL)
00671 return(NULL_VALUE_ERR);
00672 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00673 if (i != 0)
00674 return(i);
00675 if (!strcmp(varName, "rescGroupName") )
00676 i = getSetLeafValue(varValue,&(ptr->rescGroupName), (void **) ptr->rescGroupName , (char*)newVarValue,RE_STR);
00677
00678 else if (!strcmp(varName, "rescInfo") )
00679 i = getSetValFromRescInfo(varMapCPtr, &(ptr->rescInfo), varValue, newVarValue);
00680 else if (!strcmp(varName, "cacheNext") )
00681 i = getSetValFromRescGrpInfo(varMapCPtr, &( ptr->cacheNext), varValue, newVarValue);
00682 else if (!strcmp(varName, "next") )
00683 i = getSetValFromRescGrpInfo(varMapCPtr, &( ptr->next), varValue, newVarValue);
00684 else
00685 return(UNDEFINED_VARIABLE_MAP_ERR);
00686 return(i);
00687
00688 }
00689
00690
00691 int
00692 getSetValFromUserInfo(char *varMap, userInfo_t **inptr, char **varValue, void *newVarValue)
00693 {
00694 char varName[NAME_LEN];
00695 char *varMapCPtr;
00696 int i;
00697 userInfo_t *ptr;
00698 authInfo_t *authInfo;
00699
00700 ptr = *inptr;
00701
00702 if (varMap == NULL) {
00703
00704 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00705
00706 return(i);
00707
00708
00709
00710
00711
00712
00713 }
00714
00715 if (ptr == NULL)
00716 return(NULL_VALUE_ERR);
00717 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00718 if (i != 0)
00719 return(i);
00720 if (!strcmp(varName, "userName") )
00721 i = getSetLeafValue(varValue,&(ptr->userName), (void **) ptr->userName, (char*)newVarValue, RE_STR);
00722
00723 else if (!strcmp(varName, "rodsZone") )
00724 i = getSetLeafValue(varValue,&(ptr->rodsZone), (void **) ptr->rodsZone, (char*)newVarValue, RE_STR);
00725
00726 else if (!strcmp(varName, "userType") )
00727 i = getSetLeafValue(varValue,&(ptr->userType),(void **) ptr->userType, (char*)newVarValue, RE_STR);
00728
00729 else if (!strcmp(varName, "sysUid") )
00730 i = getSetLeafValue(varValue,&(ptr->sysUid), (void **) CAST_INT_VOIDPTR ptr->sysUid, (char*)newVarValue, RE_INT);
00731
00732 else if (!strcmp(varName, "authInfo") )
00733 {
00734 authInfo = &(ptr->authInfo);
00735 i = getSetValFromAuthInfo(varMapCPtr, &authInfo, varValue,
00736 newVarValue);
00737 }
00738 else if (!strcmp(varName, "userOtherInfo") )
00739 i = getSetValFromUserOtherInfo(varMapCPtr, (userOtherInfo_t **) &(ptr->userOtherInfo), varValue, (char*)newVarValue);
00740 else
00741 return(UNDEFINED_VARIABLE_MAP_ERR);
00742 return(i);
00743
00744 }
00745
00746
00747 int
00748 getSetValFromCollInfo(char *varMap, collInfo_t **inptr, char **varValue, void *newVarValue)
00749 {
00750 char varName[NAME_LEN];
00751 char *varMapCPtr;
00752 int i;
00753 collInfo_t *ptr;
00754
00755 ptr = *inptr;
00756
00757 if (varMap == NULL) {
00758 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00759 return(i);
00760 }
00761
00762 if (ptr == NULL)
00763 return(NULL_VALUE_ERR);
00764 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00765 if (i != 0)
00766 return(i);
00767 if (!strcmp(varName, "collId") )
00768 i = getSetLeafValue(varValue,&(ptr->collId), (void **)(long) ptr->collId , (char*)newVarValue, RE_LONG);
00769
00770 else if (!strcmp(varName, "collName") )
00771 i = getSetLeafValue(varValue,&(ptr->collName), (void **)ptr->collName , (char*)newVarValue,RE_STR);
00772
00773 else if (!strcmp(varName, "collParentName") )
00774 i = getSetLeafValue(varValue,&(ptr->collParentName), (void **) ptr->collParentName , (char*)newVarValue,RE_STR);
00775
00776 else if (!strcmp(varName, "collOwnerName") )
00777 i = getSetLeafValue(varValue,&(ptr->collOwnerName), (void **)ptr->collOwnerName , (char*)newVarValue,RE_STR);
00778
00779 else if (!strcmp(varName, "collOwnerZone") )
00780 i = getSetLeafValue(varValue,&(ptr->collOwnerZone), (void **) ptr->collOwnerZone, (char*)newVarValue,RE_STR);
00781
00782 else if (!strcmp(varName, "collMapId") )
00783 i = getSetLeafValue(varValue,&(ptr->collMapId), (void **) CAST_INT_VOIDPTR ptr->collMapId, (char*)newVarValue, RE_INT);
00784
00785 else if (!strcmp(varName, "collComments") )
00786 i = getSetLeafValue(varValue,&(ptr->collComments), (void **) ptr->collComments , (char*)newVarValue,RE_STR);
00787
00788 else if (!strcmp(varName, "collInheritance") )
00789 i = getSetLeafValue(varValue,&(ptr->collInheritance), (void **) ptr->collInheritance , (char*)newVarValue,RE_STR);
00790
00791 else if (!strcmp(varName, "collExpiry") )
00792 i = getSetLeafValue(varValue,&(ptr->collExpiry), (void **) ptr->collExpiry , (char*)newVarValue,RE_STR);
00793
00794 else if (!strcmp(varName, "collCreate") )
00795 i = getSetLeafValue(varValue,&(ptr->collCreate), (void **) ptr->collCreate , (char*)newVarValue,RE_STR);
00796
00797 else if (!strcmp(varName, "collModify") )
00798 i = getSetLeafValue(varValue,&(ptr->collModify), (void **) ptr->collModify , (char*)newVarValue,RE_STR);
00799
00800 else if (!strcmp(varName, "collAccess") )
00801 i = getSetLeafValue(varValue,&(ptr->collAccess), (void **) ptr->collAccess , (char*)newVarValue,RE_STR);
00802
00803 else if (!strcmp(varName, "collAccessInx") )
00804 i = getSetLeafValue(varValue,&(ptr->collAccessInx), (void **) CAST_INT_VOIDPTR ptr->collAccessInx, (char*)newVarValue, RE_INT);
00805
00806 else if (!strcmp(varName, "next") )
00807 i = getSetValFromCollInfo(varMapCPtr, &(ptr->next), varValue, (char*)newVarValue);
00808 else
00809 return(UNDEFINED_VARIABLE_MAP_ERR);
00810 return(i);
00811
00812 }
00813
00814
00815 int
00816 getSetValFromKeyValPair(char *varMap, keyValPair_t **inptr, char **varValue, void *newVarValue)
00817 {
00818 char varName[NAME_LEN];
00819 char *varMapCPtr;
00820 char *Cptr;
00821 int i;
00822 keyValPair_t *ptr;
00823
00824 ptr = *inptr;
00825
00826 if (varMap == NULL) {
00827 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00828 return(i);
00829 }
00830
00831 if (ptr == NULL)
00832 return(NULL_VALUE_ERR);
00833 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00834 if (i != 0)
00835 return(i);
00836 Cptr = (char *) getValByKey(ptr,varName);
00837
00838 if (Cptr == NULL)
00839 return(UNMATCHED_KEY_OR_INDEX);
00840 *varValue = Cptr;
00841 return(0);
00842 }
00843
00844
00845 int
00846 getSetValFromVersion(char *varMap, version_t **inptr, char **varValue, void *newVarValue)
00847 {
00848 char varName[NAME_LEN];
00849 char *varMapCPtr;
00850 int i;
00851 version_t *ptr;
00852
00853 ptr = *inptr;
00854
00855 if (varMap == NULL) {
00856 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00857 return(i);
00858 }
00859
00860 if (ptr == NULL)
00861 return(NULL_VALUE_ERR);
00862 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00863 if (i != 0)
00864 return(i);
00865 if (!strcmp(varName, "status") )
00866 i = getSetLeafValue(varValue,&(ptr->status), (void **) CAST_INT_VOIDPTR ptr->status , (char*)newVarValue, RE_INT);
00867
00868 else if (!strcmp(varName, "relVersion") )
00869 i = getSetLeafValue(varValue,&(ptr->relVersion), (void **) ptr->relVersion , (char*)newVarValue,RE_STR);
00870
00871 else if (!strcmp(varName, "apiVersion") )
00872 i = getSetLeafValue(varValue,&(ptr->apiVersion), (void **) ptr->apiVersion , (char*)newVarValue,RE_STR);
00873
00874 else if (!strcmp(varName, "apiVersion") )
00875 i = getSetLeafValue(varValue,&(ptr->reconnAddr), (void **) ptr->reconnAddr , (char*)newVarValue,RE_STR);
00876 else if (!strcmp(varName, "apiVersion") )
00877 i = getSetLeafValue(varValue,&(ptr->reconnPort), (void **) CAST_INT_VOIDPTR ptr->reconnPort , (char*)newVarValue,RE_INT);
00878 else
00879 return(UNDEFINED_VARIABLE_MAP_ERR);
00880 return(i);
00881
00882 }
00883
00884
00885 int
00886 getSetValFromAuthInfo(char *varMap, authInfo_t **inptr, char **varValue, void *newVarValue)
00887 {
00888 char varName[NAME_LEN];
00889 char *varMapCPtr;
00890 int i;
00891 authInfo_t *ptr;
00892
00893 ptr = *inptr;
00894
00895 if (varMap == NULL) {
00896 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00897 return(i);
00898 }
00899
00900 if (ptr == NULL)
00901 return(NULL_VALUE_ERR);
00902 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00903 if (i != 0)
00904 return(i);
00905
00906 if (!strcmp(varName, "authScheme") )
00907 i = getSetLeafValue(varValue,&(ptr->authScheme), (void **)ptr->authScheme , (char*)newVarValue,RE_STR);
00908
00909 else if (!strcmp(varName, "authFlag") )
00910 i = getSetLeafValue(varValue,&(ptr->authFlag), (void **) CAST_INT_VOIDPTR ptr->authFlag , (char*)newVarValue, RE_INT);
00911
00912 else if (!strcmp(varName, "flag") )
00913 i = getSetLeafValue(varValue,&(ptr->flag), (void **) CAST_INT_VOIDPTR ptr->flag , (char*)newVarValue, RE_INT);
00914
00915 else if (!strcmp(varName, "ppid") )
00916 i = getSetLeafValue(varValue,&(ptr->ppid), (void **) CAST_INT_VOIDPTR ptr->ppid , (char*)newVarValue, RE_INT);
00917
00918 else if (!strcmp(varName, "host") )
00919 i = getSetLeafValue(varValue,&(ptr->host), (void **)ptr->host , (char*)newVarValue,RE_STR);
00920
00921 else if (!strcmp(varName, "authStr") )
00922 i = getSetLeafValue(varValue,&(ptr->authStr), (void **) ptr->authStr , (char*)newVarValue,RE_STR);
00923
00924 else
00925 return(UNDEFINED_VARIABLE_MAP_ERR);
00926 return(i);
00927
00928 }
00929
00930
00931 int
00932 getSetValFromUserOtherInfo(char *varMap, userOtherInfo_t **inptr, char **varValue, void *newVarValue)
00933 {
00934 char varName[NAME_LEN];
00935 char *varMapCPtr;
00936 int i;
00937 userOtherInfo_t *ptr;
00938
00939 ptr = *inptr;
00940
00941 if (varMap == NULL) {
00942 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00943 return(i);
00944 }
00945
00946 if (ptr == NULL)
00947 return(NULL_VALUE_ERR);
00948 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00949 if (i != 0)
00950 return(i);
00951
00952 if (!strcmp(varName, "userInfo") )
00953 i = getSetLeafValue(varValue,&(ptr->userInfo), (void **) ptr->userInfo , (char*)newVarValue,RE_STR);
00954
00955 else if (!strcmp(varName, "userComments") )
00956 i = getSetLeafValue(varValue,&(ptr->userComments), (void **)ptr->userComments , (char*)newVarValue,RE_STR);
00957
00958 else if (!strcmp(varName, " userCreate") )
00959 i = getSetLeafValue(varValue,&(ptr-> userCreate), (void **) ptr-> userCreate , (char*)newVarValue,RE_STR);
00960
00961 else if (!strcmp(varName, "userModify") )
00962 i = getSetLeafValue(varValue,&(ptr->userModify), (void **) ptr->userModify , (char*)newVarValue,RE_STR);
00963
00964 else
00965 return(UNDEFINED_VARIABLE_MAP_ERR);
00966 return(i);
00967
00968 }
00969
00970
00971 int
00972 getSetValFromFileOpenInp(char *varMap, fileOpenInp_t **inptr, char **varValue, void *newVarValue)
00973 {
00974 char varName[NAME_LEN];
00975 char *varMapCPtr;
00976 int i;
00977 fileOpenInp_t *ptr;
00978
00979 ptr = *inptr;
00980
00981 if (varMap == NULL) {
00982 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00983 return(i);
00984 }
00985
00986 if (ptr == NULL)
00987 return(NULL_VALUE_ERR);
00988 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00989 if (i != 0)
00990 return(i);
00991 if (!strcmp(varName, "fileType") )
00992 i = getSetLeafValue(varValue,&(ptr->fileType), (void **) ptr->fileType, (char*)newVarValue, RE_INT);
00993
00994 else if (!strcmp(varName, "addr") )
00995 i = getSetValFromRodsHostAddr(varMapCPtr, (rodsHostAddr_t **)&(ptr->addr), varValue, (char*)newVarValue);
00996 else if (!strcmp(varName, "fileName") )
00997 i = getSetLeafValue(varValue,&(ptr->fileName), (void **) ptr->fileName , (char*)newVarValue,RE_STR);
00998
00999 else if (!strcmp(varName, "flags") )
01000 i = getSetLeafValue(varValue,&(ptr->flags), (void **) CAST_INT_VOIDPTR ptr->flags , (char*)newVarValue, RE_INT);
01001
01002 else if (!strcmp(varName, "mode") )
01003 i = getSetLeafValue(varValue,&(ptr->mode), (void **) CAST_INT_VOIDPTR ptr->mode , (char*)newVarValue, RE_INT);
01004
01005 else if (!strcmp(varName, "dataSize") )
01006 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **)(long) ptr->dataSize, (char*)newVarValue, RE_LONG);
01007
01008 else if (!strcmp(varName, "otherFlags") )
01009 i = getSetLeafValue(varValue,&(ptr->otherFlags), (void **) CAST_INT_VOIDPTR ptr->otherFlags, (char*)newVarValue, RE_INT);
01010
01011 else
01012 return(UNDEFINED_VARIABLE_MAP_ERR);
01013 return(i);
01014
01015 }
01016
01017
01018 int
01019 getSetValFromRodsHostAddr(char *varMap, rodsHostAddr_t **inptr, char **varValue, void *newVarValue)
01020 {
01021 char varName[NAME_LEN];
01022 char *varMapCPtr;
01023 int i;
01024 rodsHostAddr_t *ptr;
01025
01026 ptr = *inptr;
01027
01028 if (varMap == NULL) {
01029 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
01030 return(i);
01031 }
01032
01033 if (ptr == NULL)
01034 return(NULL_VALUE_ERR);
01035 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
01036 if (i != 0)
01037 return(i);
01038
01039 if (!strcmp(varName, "hostAddr") )
01040 i = getSetLeafValue(varValue,&(ptr->hostAddr), (void **) ptr->hostAddr , (char*)newVarValue,RE_STR);
01041
01042 else if (!strcmp(varName, "rodsZone") )
01043 i = getSetLeafValue(varValue,&(ptr->zoneName), (void **) ptr->zoneName , (char*)newVarValue,RE_STR);
01044
01045 else if (!strcmp(varName, "portNum") )
01046 i = getSetLeafValue(varValue,&(ptr->portNum), (void **) CAST_INT_VOIDPTR ptr->portNum, (char*)newVarValue, RE_INT);
01047
01048 else
01049 return(UNDEFINED_VARIABLE_MAP_ERR);
01050 return(i);
01051
01052 }
01053
01054
01055
01056
01057
01058
01059
01060
01061
01062
01063
01064
01065
01066
01067
01068
01069
01070
01071
01072
01073
01074
01075
01076
01077
01078
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088
01089
01090
01091
01092
01093
01094
01095
01096
01097
01098
01099
01100
01101
01102
01103
01104
01105
01106
01107
01108
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120
01121
01122
01123
01124
01125
01126
01127
01128
01129
01130
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142
01143
01144
01145
01146
01147
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158
01159
01160
01161
01162
01163
01164
01165
01166
01167
01168
01169
01170
01171
01172
01173
01174
01175
01176
01177
01178
01179
01180
01181
01182
01183
01184
01185
01186
01187
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199
01200
01201
01202
01203
01204
01205
01206
01207
01208
01209
01210
01211
01212
01213
01214
01215
01216
01217
01218
01219
01220
01221
01222
01223
01224
01225
01226
01227
01228
01229
01230
01231
01232
01233
01234
01235
01236
01237
01238
01239
01240 int
01241 getAllSessionVarValue (char *action, ruleExecInfo_t *rei,
01242 keyValPair_t *varKeyVal)
01243 {
01244 int i, status;
01245 char *varValue;
01246 char *lastVar = NULL;
01247
01248 if (varKeyVal == NULL || rei == NULL) {
01249 rodsLog (LOG_ERROR,
01250 "getAllSessionVarValue: input rei or varKeyVal is NULL");
01251 return SYS_INTERNAL_NULL_INPUT_ERR;
01252 }
01253
01254 for (i = 0; i < coreRuleVarDef.MaxNumOfDVars; i++) {
01255 if (lastVar == NULL || strcmp (lastVar, coreRuleVarDef.varName[i]) != 0) {
01256 status = getSessionVarValue ("", coreRuleVarDef.varName[i], rei,
01257 &varValue);
01258 if (status >= 0 && varValue != NULL) {
01259 lastVar = coreRuleVarDef.varName[i];
01260 addKeyVal (varKeyVal, lastVar, varValue);
01261 free (varValue);
01262 }
01263 }
01264 }
01265 return 0;
01266 }
01267
01268 int
01269 getSessionVarValue (char *action, char *varName, ruleExecInfo_t *rei,
01270 char **varValue)
01271 {
01272 char *varMap;
01273 int i, vinx;
01274
01275 vinx = getVarMap (action,varName, &varMap, 0);
01276 while (vinx >= 0) {
01277 i = getVarValue (varMap, rei, varValue);
01278 if (i >= 0) {
01279 free(varMap);
01280 return(i);
01281 } else if (i == NULL_VALUE_ERR) {
01282 free(varMap);
01283 vinx = getVarMap (action,varName, &varMap, vinx+1);
01284 } else {
01285 free(varMap);
01286 return(i);
01287 }
01288 }
01289 if (vinx < 0) {
01290 return(vinx);
01291 }
01292 return(i);
01293 }
01294
01295