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 trimWS(varName);
00169 return(0);
00170
00171 }
00172
00173 int
00174 getVarValue(char *varMap, ruleExecInfo_t *rei, char **varValue)
00175 {
00176
00177 char varName[NAME_LEN];
00178 char *varMapCPtr;
00179 int i;
00180
00181 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00182 if (i != 0)
00183 return(i);
00184
00185 if (!strcmp(varName,"rei")) {
00186 i = getSetValFromRuleExecInfo(varMapCPtr, &rei, varValue,NULL);
00187 return(i);
00188 }
00189 else
00190 return(UNDEFINED_VARIABLE_MAP_ERR);
00191 }
00192
00193 int
00194 setVarValue(char *varMap, ruleExecInfo_t *rei, void *newVarValue)
00195 {
00196 char varName[NAME_LEN];
00197 char *varMapCPtr;
00198 char *varValue = NULL;
00199 int i;
00200
00201 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00202 if (i != 0)
00203 return(i);
00204 if (!strcmp(varName,"rei")) {
00205 i = getSetValFromRuleExecInfo(varMapCPtr, &rei, &varValue,newVarValue);
00206 if (varValue != NULL) free (varValue);
00207 return(i);
00208 }
00209 else
00210 return(UNDEFINED_VARIABLE_MAP_ERR);
00211 }
00212
00213 int
00214 getSetValFromRuleExecInfo(char *varMap, ruleExecInfo_t **inrei,
00215 char **varValue, void *newVarValue)
00216 {
00217 char varName[NAME_LEN];
00218 char *varMapCPtr;
00219 int i;
00220 ruleExecInfo_t *rei;
00221
00222 rei = *inrei;
00223
00224 if (varMap == NULL) {
00225 i = getSetLeafValue(varValue, (void**)inrei, (void **) inrei, (char*)newVarValue, RE_PTR);
00226 return(i);
00227 }
00228 if (rei == NULL)
00229 return(NULL_VALUE_ERR);
00230
00231 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00232 if (i != 0)
00233 return(i);
00234
00235 if (!strcmp(varName, "status") )
00236 i = getSetLeafValue(varValue,&(rei->status), (void **) CAST_INT_VOIDPTR rei->status, (char*)newVarValue, RE_INT);
00237 else if (!strcmp(varName, "statusStr") )
00238 i = getSetLeafValue(varValue,&(rei->statusStr), (void **) rei->statusStr, (char*)newVarValue,RE_STR);
00239 else if (!strcmp(varName, "rsComm") )
00240 i = getSetValFromRsComm(varMapCPtr, &(rei->rsComm), varValue, newVarValue);
00241 else if (!strcmp(varName, "l1descInx") )
00242 i = getSetLeafValue(varValue,&(rei->l1descInx), (void **) CAST_INT_VOIDPTR rei->l1descInx, (char*)newVarValue, RE_INT);
00243
00244 else if (!strcmp(varName, "doinp") )
00245 i = getSetValFromDataObjInp(varMapCPtr, &(rei->doinp), varValue, newVarValue);
00246 #if 0
00247 else if (!strcmp(varName, "dinp") )
00248 i = getSetValFromDataOprInp(varMapCPtr, &(rei->dinp), varValue, newVarValue);
00249 else if (!strcmp(varName, "finp") )
00250 i = getSetValFromFileOpenInp(varMapCPtr, &(rei->finp), varValue, newVarValue);
00251 #endif
00252 else if (!strcmp(varName, "doi") )
00253 i = getSetValFromDataObjInfo(varMapCPtr, &(rei->doi), varValue, newVarValue);
00254 else if (!strcmp(varName, "rgi") )
00255 i = getSetValFromRescGrpInfo(varMapCPtr, &(rei->rgi), varValue, newVarValue);
00256 else if (!strcmp(varName, "uoic") )
00257 i = getSetValFromUserInfo(varMapCPtr, &(rei->uoic), varValue, newVarValue);
00258 else if (!strcmp(varName, "uoip") )
00259 i = getSetValFromUserInfo(varMapCPtr, &(rei->uoip), varValue, newVarValue);
00260 else if (!strcmp(varName, "coi") )
00261 i = getSetValFromCollInfo(varMapCPtr, &(rei->coi), varValue, newVarValue);
00262 #if 0
00263 else if (!strcmp(varName, "doinpo") )
00264 i = getSetValFromDataObjInp(varMapCPtr, &(rei->doinpo), varValue, newVarValue);
00265 else if (!strcmp(varName, "dinpo") )
00266 i = getSetValFromDataOprInp(varMapCPtr, &(rei->dinpo), varValue, newVarValue);
00267 else if (!strcmp(varName, "finpo") )
00268 i = getSetValFromFileOpenInp(varMapCPtr, &(rei->finpo), varValue, newVarValue);
00269 else if (!strcmp(varName, "rgio") )
00270 i = getSetValFromRescGrpInfo(varMapCPtr, &(rei->rgio), varValue, newVarValue);
00271 #endif
00272 else if (!strcmp(varName, "uoio") )
00273 i = getSetValFromUserInfo(varMapCPtr, &(rei->uoio), varValue, newVarValue);
00274 else if (!strcmp(varName, "condInputData") )
00275 i = getSetValFromKeyValPair(varMapCPtr, &(rei->condInputData), varValue, newVarValue);
00276 else if (!strcmp(varName, "ruleSet") )
00277 i = getSetLeafValue(varValue,&(rei->ruleSet), (void **) rei->ruleSet , (char*)newVarValue,RE_STR);
00278
00279 else if (!strcmp(varName, "next") )
00280 i = getSetValFromRuleExecInfo(varMapCPtr, &(rei->next), varValue,newVarValue);
00281 else
00282 return(UNDEFINED_VARIABLE_MAP_ERR);
00283 return(i);
00284
00285 }
00286
00287 int
00288 getSetValFromRsComm(char *varMap, rsComm_t **inptr, char **varValue, void *newVarValue)
00289 {
00290 char varName[NAME_LEN];
00291 char *varMapCPtr;
00292 int i;
00293 rsComm_t *ptr;
00294 userInfo_t *userInfo;
00295
00296 ptr = *inptr;
00297
00298 if (varMap == NULL) {
00299 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00300 return(i);
00301 }
00302
00303 if (ptr == NULL)
00304 return(NULL_VALUE_ERR);
00305 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00306 if (i != 0)
00307 return(i);
00308 if (!strcmp(varName, "sock") )
00309 i = getSetLeafValue(varValue,&(ptr->sock), (void **) CAST_INT_VOIDPTR ptr->sock, (char*)newVarValue, RE_INT);
00310
00311 else if (!strcmp(varName, "connectCnt") )
00312 i = getSetLeafValue(varValue,&(ptr->connectCnt),(void **) CAST_INT_VOIDPTR ptr->connectCnt, (char*)newVarValue, RE_INT);
00313
00314 else if (!strcmp(varName, "proxyUser") )
00315 {
00316 userInfo = &(ptr->proxyUser);
00317 i = getSetValFromUserInfo(varMapCPtr, (userInfo_t**) &userInfo, varValue, newVarValue);
00318 }
00319 else if (!strcmp(varName, "clientUser") )
00320 {
00321 userInfo = &(ptr->clientUser);
00322 i = getSetValFromUserInfo(varMapCPtr, &userInfo, varValue, newVarValue);
00323 }
00324 else if (!strcmp(varName, "cliVersion") )
00325 i = getSetValFromVersion(varMapCPtr, (version_t**)&(ptr->cliVersion), varValue, newVarValue);
00326 else if (!strcmp(varName, "option") )
00327 i = getSetLeafValue(varValue,&(ptr->option), (void **) ptr->option, (char*)newVarValue,RE_STR);
00328
00329 else if (!strcmp(varName, "status") )
00330 i = getSetLeafValue(varValue,&(ptr->status), (void **) CAST_INT_VOIDPTR ptr->status, (char*)newVarValue, RE_INT);
00331
00332 else if (!strcmp(varName, "apiInx") )
00333 i = getSetLeafValue(varValue,&(ptr->apiInx), (void **) CAST_INT_VOIDPTR ptr->apiInx, (char*)newVarValue, RE_INT);
00334 else if (!strcmp(varName, "windowSize") )
00335 i = getSetLeafValue(varValue,&(ptr->windowSize), (void **) CAST_INT_VOIDPTR ptr->windowSize , (char*)newVarValue, RE_INT);
00336 else if (!strcmp(varName, "reconnFlag") )
00337 i = getSetLeafValue(varValue,&(ptr->reconnFlag), (void **) CAST_INT_VOIDPTR ptr->reconnFlag , (char*)newVarValue, RE_INT);
00338 else if (!strcmp(varName, "reconnSock") )
00339 i = getSetLeafValue(varValue,&(ptr->reconnSock), (void **) CAST_INT_VOIDPTR ptr->reconnSock , (char*)newVarValue, RE_INT);
00340 else if (!strcmp(varName, "reconnPort") )
00341 i = getSetLeafValue(varValue,&(ptr->reconnPort), (void **) CAST_INT_VOIDPTR ptr->reconnPort , (char*)newVarValue, RE_INT);
00342 else if (!strcmp(varName, "reconnAddr") )
00343 i = getSetLeafValue(varValue,&(ptr->reconnAddr),(void **) ptr->reconnAddr, (char*)newVarValue, RE_STRDUP);
00344 else if (!strcmp(varName, "cookie") )
00345 i = getSetLeafValue(varValue,&(ptr->cookie), (void **) CAST_INT_VOIDPTR ptr->cookie, (char*)newVarValue, RE_INT);
00346 else if (!strcmp(varName, "clientAddr") )
00347 i = getSetLeafValue(varValue,&(ptr->clientAddr), (void **) ptr->clientAddr, (char*)newVarValue, RE_STR);
00348 else
00349 return(UNDEFINED_VARIABLE_MAP_ERR);
00350 return(i);
00351
00352 }
00353
00354
00355 int
00356 getSetValFromDataObjInfo(char *varMap, dataObjInfo_t **inptr, char **varValue, void *newVarValue)
00357 {
00358 char varName[NAME_LEN];
00359 char *varMapCPtr;
00360 int i;
00361 dataObjInfo_t *ptr;
00362
00363 ptr = *inptr;
00364
00365 if (varMap == NULL) {
00366 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00367 return(i);
00368 }
00369
00370 if (ptr == NULL)
00371 return(NULL_VALUE_ERR);
00372 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00373 if (i != 0)
00374 return(i);
00375 if (!strcmp(varName, "objPath") )
00376 i = getSetLeafValue(varValue,&(ptr->objPath), (void **) ptr->objPath, (char*)newVarValue,RE_STR);
00377
00378 else if (!strcmp(varName, "rescName") )
00379 i = getSetLeafValue(varValue,&(ptr->rescName), (void **) ptr->rescName , (char*)newVarValue,RE_STR);
00380
00381 else if (!strcmp(varName, "rescGroupName") )
00382 i = getSetLeafValue(varValue,&(ptr->rescGroupName), (void **) ptr->rescGroupName , (char*)newVarValue,RE_STR);
00383
00384 else if (!strcmp(varName, "dataType") )
00385 i = getSetLeafValue(varValue,&(ptr->dataType), (void **)ptr->dataType , (char*)newVarValue,RE_STR);
00386
00387 else if (!strcmp(varName, "dataSize") )
00388 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **) (long) ptr->dataSize, (char*)newVarValue, RE_LONG);
00389
00390 else if (!strcmp(varName, "chksum") )
00391 i = getSetLeafValue(varValue,&(ptr->chksum), (void **)ptr->chksum , (char*)newVarValue,RE_STR);
00392
00393 else if (!strcmp(varName, "version") )
00394 i = getSetLeafValue(varValue,&(ptr->version), (void **) ptr->version , (char*)newVarValue,RE_STR);
00395
00396 else if (!strcmp(varName, "filePath") )
00397 i = getSetLeafValue(varValue,&(ptr->filePath), (void **) ptr->filePath , (char*)newVarValue,RE_STR);
00398
00399 else if (!strcmp(varName, "rescInfo") )
00400 i = getSetValFromRescInfo(varMapCPtr, &(ptr->rescInfo), varValue, newVarValue);
00401 else if (!strcmp(varName, "dataOwnerName") )
00402 i = getSetLeafValue(varValue,&(ptr->dataOwnerName), (void **) ptr->dataOwnerName , (char*)newVarValue,RE_STR);
00403
00404 else if (!strcmp(varName, "dataOwnerZone") )
00405 i = getSetLeafValue(varValue,&(ptr->dataOwnerZone), (void **) ptr->dataOwnerZone , (char*)newVarValue,RE_STR);
00406
00407 else if (!strcmp(varName, "replNum") )
00408 i = getSetLeafValue(varValue,&(ptr->replNum), (void **) CAST_INT_VOIDPTR ptr->replNum, (char*)newVarValue, RE_INT);
00409
00410 else if (!strcmp(varName, "replStatus") )
00411 i = getSetLeafValue(varValue,&(ptr->replStatus), (void **) CAST_INT_VOIDPTR ptr->replStatus, (char*)newVarValue, RE_INT);
00412
00413 else if (!strcmp(varName, "writeFlag") )
00414 i = getSetLeafValue(varValue,&(ptr->writeFlag), (void **) CAST_INT_VOIDPTR ptr->writeFlag, (char*)newVarValue, RE_INT);
00415 else if (!strcmp(varName, "statusString") )
00416 i = getSetLeafValue(varValue,&(ptr->statusString), (void **) ptr->statusString , (char*)newVarValue,RE_STR);
00417
00418 else if (!strcmp(varName, "dataId") )
00419 i = getSetLeafValue(varValue,&(ptr->dataId), (void **) (long) ptr->dataId, (char*)newVarValue, RE_LONG);
00420
00421 else if (!strcmp(varName, "collId") )
00422 i = getSetLeafValue(varValue,&(ptr->collId), (void **) (long) ptr->collId, (char*)newVarValue, RE_LONG);
00423
00424 else if (!strcmp(varName, "dataMapId") )
00425 i = getSetLeafValue(varValue,&(ptr->dataMapId), (void **) CAST_INT_VOIDPTR ptr->dataMapId, (char*)newVarValue, RE_INT);
00426
00427 else if (!strcmp(varName, "dataComments") )
00428 i = getSetLeafValue(varValue,&(ptr->dataComments), (void **) ptr->dataComments , (char*)newVarValue,RE_STR);
00429
00430 else if (!strcmp(varName, "dataExpiry") )
00431 i = getSetLeafValue(varValue,&( ptr->dataExpiry), (void **) ptr->dataExpiry , (char*)newVarValue,RE_STR);
00432
00433 else if (!strcmp(varName, "dataCreate") )
00434 i = getSetLeafValue(varValue,&(ptr->dataCreate), (void **) ptr->dataCreate , (char*)newVarValue,RE_STR);
00435
00436 else if (!strcmp(varName, "dataModify") )
00437 i = getSetLeafValue(varValue,&(ptr->dataModify), (void **) ptr->dataModify , (char*)newVarValue,RE_STR);
00438
00439 else if (!strcmp(varName, "dataAccess") )
00440 i = getSetLeafValue(varValue,&(ptr->dataAccess), (void **)ptr->dataAccess , (char*)newVarValue,RE_STR);
00441
00442 else if (!strcmp(varName, "dataAccessInx") )
00443 i = getSetLeafValue(varValue,&(ptr->dataAccessInx), (void **) CAST_INT_VOIDPTR ptr->dataAccessInx , (char*)newVarValue, RE_INT);
00444
00445 else if (!strcmp(varName, "destRescName") )
00446 i = getSetLeafValue(varValue,&(ptr->destRescName), (void **) ptr->destRescName , (char*)newVarValue,RE_STR);
00447
00448 else if (!strcmp(varName, "backupRescName") )
00449 i = getSetLeafValue(varValue,&(ptr->backupRescName), (void **) ptr->backupRescName , (char*)newVarValue,RE_STR);
00450
00451 else if (!strcmp(varName, "next") )
00452 i = getSetValFromDataObjInfo(varMapCPtr, &(ptr->next), varValue, newVarValue);
00453 else
00454 return(UNDEFINED_VARIABLE_MAP_ERR);
00455 return(i);
00456
00457 }
00458
00459 int
00460 getSetValFromDataObjInp(char *varMap, dataObjInp_t **inptr, char **varValue, void *newVarValue)
00461 {
00462 char varName[NAME_LEN];
00463 char *varMapCPtr;
00464 int i;
00465 dataObjInp_t *ptr;
00466
00467 ptr = *inptr;
00468
00469 if (varMap == NULL) {
00470 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00471 return(i);
00472 }
00473
00474 if (ptr == NULL)
00475 return(NULL_VALUE_ERR);
00476 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00477 if (i != 0)
00478 return(i);
00479 if (!strcmp(varName, "objPath") )
00480 i = getSetLeafValue(varValue,&(ptr->objPath), (void **) ptr->objPath , (char*)newVarValue,RE_STR);
00481
00482 else if (!strcmp(varName, "createMode") )
00483 i = getSetLeafValue(varValue,&(ptr->createMode), (void **) CAST_INT_VOIDPTR ptr->createMode , (char*)newVarValue, RE_INT);
00484
00485 else if (!strcmp(varName, "openFlags") )
00486 i = getSetLeafValue(varValue,&(ptr->openFlags), (void **) CAST_INT_VOIDPTR ptr->openFlags, (char*)newVarValue, RE_INT);
00487
00488 else if (!strcmp(varName, "offset") )
00489 i = getSetLeafValue(varValue,&(ptr->offset), (void **)(long) ptr->offset , (char*)newVarValue, RE_LONG);
00490
00491 else if (!strcmp(varName, "dataSize") )
00492 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **) (long) ptr->dataSize, (char*)newVarValue, RE_LONG);
00493
00494 else if (!strcmp(varName, "numThreads") )
00495 i = getSetLeafValue(varValue,&(ptr->numThreads), (void **) CAST_INT_VOIDPTR ptr->numThreads , (char*)newVarValue, RE_INT);
00496
00497 else if (!strcmp(varName, "oprType") )
00498 i = getSetLeafValue(varValue,&(ptr->oprType), (void **) CAST_INT_VOIDPTR ptr->oprType , (char*)newVarValue, RE_INT);
00499
00500 else if (!strcmp(varName, "condInput") )
00501 i = getSetValFromKeyValPair(varMapCPtr, (keyValPair_t **) &(ptr->condInput),varValue, (char*)newVarValue);
00502 else
00503 return(UNDEFINED_VARIABLE_MAP_ERR);
00504 return(i);
00505
00506 }
00507
00508 int
00509 getSetValFromDataOprInp(char *varMap, dataOprInp_t **inptr, char **varValue, void *newVarValue)
00510 {
00511 char varName[NAME_LEN];
00512 char *varMapCPtr;
00513 int i;
00514 dataOprInp_t *ptr;
00515
00516 ptr = *inptr;
00517
00518 if (varMap == NULL) {
00519 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00520 return(i);
00521 }
00522
00523 if (ptr == NULL)
00524 return(NULL_VALUE_ERR);
00525 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00526 if (i != 0)
00527 return(i);
00528 if (!strcmp(varName, "oprType") )
00529 i = getSetLeafValue(varValue,&(ptr->oprType), (void **) CAST_INT_VOIDPTR ptr->oprType , (char*)newVarValue, RE_INT);
00530
00531 else if (!strcmp(varName, "offset") )
00532 i = getSetLeafValue(varValue,&(ptr->offset), (void **)(long) ptr->offset, (char*)newVarValue, RE_LONG);
00533
00534 else if (!strcmp(varName, "dataSize") )
00535 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **)(long) ptr->dataSize , (char*)newVarValue, RE_LONG);
00536
00537 else if (!strcmp(varName, "numThreads") )
00538 i = getSetLeafValue(varValue,&(ptr->numThreads), (void **) CAST_INT_VOIDPTR ptr->numThreads, (char*)newVarValue, RE_INT);
00539
00540 else if (!strcmp(varName, "srcL3descInx") )
00541 i = getSetLeafValue(varValue,&(ptr->srcL3descInx), (void **) CAST_INT_VOIDPTR ptr->srcL3descInx , (char*)newVarValue, RE_INT);
00542
00543 else if (!strcmp(varName, "destL3descInx") )
00544 i = getSetLeafValue(varValue,&(ptr->destL3descInx), (void **) CAST_INT_VOIDPTR ptr->destL3descInx , (char*)newVarValue, RE_INT);
00545
00546 else if (!strcmp(varName, "srcRescTypeInx") )
00547 i = getSetLeafValue(varValue,&(ptr->srcRescTypeInx), (void **) CAST_INT_VOIDPTR ptr->srcRescTypeInx , (char*)newVarValue, RE_INT);
00548
00549 else if (!strcmp(varName, "destRescTypeInx") )
00550 i = getSetLeafValue(varValue,&(ptr->destRescTypeInx), (void **) CAST_INT_VOIDPTR ptr->destRescTypeInx , (char*)newVarValue, RE_INT);
00551
00552 else if (!strcmp(varName, "condInput") )
00553 i = getSetValFromKeyValPair(varMapCPtr, (keyValPair_t**)&(ptr->condInput),varValue, (char*)newVarValue);
00554 else
00555 return(UNDEFINED_VARIABLE_MAP_ERR);
00556 return(i);
00557
00558 }
00559
00560
00561
00562 int
00563 getSetValFromRescInfo(char *varMap, rescInfo_t **inptr, char **varValue, void *newVarValue)
00564 {
00565 char varName[NAME_LEN];
00566 char *varMapCPtr;
00567 int i;
00568 rescInfo_t *ptr;
00569
00570 ptr = *inptr;
00571
00572 if (varMap == NULL) {
00573 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00574 return(i);
00575 }
00576
00577 if (ptr == NULL)
00578 return(NULL_VALUE_ERR);
00579 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00580 if (i != 0)
00581 return(i);
00582 if (!strcmp(varName, "rescName") )
00583 i = getSetLeafValue(varValue,&(ptr->rescName), (void **) ptr->rescName , (char*)newVarValue,RE_STR);
00584
00585 else if (!strcmp(varName, "rescId") )
00586 i = getSetLeafValue(varValue,&(ptr->rescId), (void **)(long) ptr->rescId, (char*)newVarValue, RE_LONG);
00587
00588 else if (!strcmp(varName, "zoneName") )
00589 i = getSetLeafValue(varValue,&(ptr->zoneName), (void **) ptr->zoneName , (char*)newVarValue,RE_STR);
00590
00591 else if (!strcmp(varName, "rescLoc") )
00592 i = getSetLeafValue(varValue,&(ptr->rescLoc), (void **)ptr->rescLoc , (char*)newVarValue,RE_STR);
00593
00594 else if (!strcmp(varName, "rescType") )
00595 i = getSetLeafValue(varValue,&(ptr->rescType), (void **) ptr->rescType , (char*)newVarValue,RE_STR);
00596
00597 else if (!strcmp(varName, "rescTypeInx") )
00598 i = getSetLeafValue(varValue,&(ptr->rescTypeInx), (void **) CAST_INT_VOIDPTR ptr->rescTypeInx , (char*)newVarValue, RE_INT);
00599
00600 else if (!strcmp(varName, "rescClass") )
00601 i = getSetLeafValue(varValue,&(ptr->rescClass), (void **) ptr->rescClass , (char*)newVarValue,RE_STR);
00602
00603 else if (!strcmp(varName, "rescClassInx") )
00604 i = getSetLeafValue(varValue,&(ptr->rescClassInx), (void **) CAST_INT_VOIDPTR ptr->rescClassInx, (char*)newVarValue, RE_INT);
00605
00606 else if (!strcmp(varName, "rescVaultPath") )
00607 i = getSetLeafValue(varValue,&(ptr->rescVaultPath), (void **)ptr->rescVaultPath , (char*)newVarValue,RE_STR);
00608
00609 else if (!strcmp(varName, RESC_STATUS_KW) )
00610 i = getSetLeafValue(varValue,&(ptr->rescStatus), (void **) CAST_INT_VOIDPTR ptr->rescStatus , (char*)newVarValue, RE_INT);
00611
00612 else if (!strcmp(varName, "paraOpr") )
00613 i = getSetLeafValue(varValue,&(ptr->paraOpr), (void **) CAST_INT_VOIDPTR ptr->paraOpr , (char*)newVarValue, RE_INT);
00614
00615 else if (!strcmp(varName, "rescInfo") )
00616 i = getSetLeafValue(varValue,&(ptr->rescInfo), (void **) ptr->rescInfo , (char*)newVarValue,RE_STR);
00617
00618 else if (!strcmp(varName, "rescComments") )
00619 i = getSetLeafValue(varValue,&(ptr->rescComments), (void **) ptr->rescComments , (char*)newVarValue,RE_STR);
00620
00621 else if (!strcmp(varName, "gateWayAddr") )
00622 i = getSetLeafValue(varValue,&(ptr->gateWayAddr), (void **) ptr->gateWayAddr , (char*)newVarValue,RE_STR);
00623
00624 else if (!strcmp(varName, "rescMaxObjSize") )
00625 i = getSetLeafValue(varValue,&(ptr->rescMaxObjSize), (void **)(long) ptr->rescMaxObjSize, (char*)newVarValue, RE_LONG);
00626
00627 else if (!strcmp(varName, "freeSpace") )
00628 i = getSetLeafValue(varValue,&(ptr->freeSpace), (void **)(long) ptr->freeSpace , (char*)newVarValue, RE_LONG);
00629
00630 else if (!strcmp(varName, "freeSpaceTimeStamp") )
00631 i = getSetLeafValue(varValue,&(ptr->freeSpaceTimeStamp), (void **) ptr->freeSpaceTimeStamp , (char*)newVarValue,RE_STR);
00632
00633 else if (!strcmp(varName, "rescCreate") )
00634 i = getSetLeafValue(varValue,&(ptr->rescCreate), (void **) ptr->rescCreate , (char*)newVarValue,RE_STR);
00635
00636 else if (!strcmp(varName, "rescModify") )
00637 i = getSetLeafValue(varValue,&(ptr->rescModify), (void **) ptr->rescModify , (char*)newVarValue,RE_STR);
00638
00639 else
00640 return(UNDEFINED_VARIABLE_MAP_ERR);
00641 return(i);
00642
00643 }
00644
00645 int
00646 getSetValFromRescGrpInfo(char *varMap, rescGrpInfo_t **inptr, char **varValue, void *newVarValue)
00647 {
00648 char varName[NAME_LEN];
00649 char *varMapCPtr;
00650 int i;
00651 rescGrpInfo_t *ptr;
00652
00653 ptr = *inptr;
00654 if (varMap == NULL) {
00655 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00656 return(i);
00657 }
00658
00659
00660 if (ptr == NULL)
00661 return(NULL_VALUE_ERR);
00662 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00663 if (i != 0)
00664 return(i);
00665 if (!strcmp(varName, "rescGroupName") )
00666 i = getSetLeafValue(varValue,&(ptr->rescGroupName), (void **) ptr->rescGroupName , (char*)newVarValue,RE_STR);
00667
00668 else if (!strcmp(varName, "rescInfo") )
00669 i = getSetValFromRescInfo(varMapCPtr, &(ptr->rescInfo), varValue, newVarValue);
00670 else if (!strcmp(varName, "cacheNext") )
00671 i = getSetValFromRescGrpInfo(varMapCPtr, &( ptr->cacheNext), varValue, newVarValue);
00672 else if (!strcmp(varName, "next") )
00673 i = getSetValFromRescGrpInfo(varMapCPtr, &( ptr->next), varValue, newVarValue);
00674 else
00675 return(UNDEFINED_VARIABLE_MAP_ERR);
00676 return(i);
00677
00678 }
00679
00680
00681 int
00682 getSetValFromUserInfo(char *varMap, userInfo_t **inptr, char **varValue, void *newVarValue)
00683 {
00684 char varName[NAME_LEN];
00685 char *varMapCPtr;
00686 int i;
00687 userInfo_t *ptr;
00688 authInfo_t *authInfo;
00689
00690 ptr = *inptr;
00691
00692 if (varMap == NULL) {
00693
00694 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00695
00696 return(i);
00697
00698
00699
00700
00701
00702
00703 }
00704
00705 if (ptr == NULL)
00706 return(NULL_VALUE_ERR);
00707 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00708 if (i != 0)
00709 return(i);
00710 if (!strcmp(varName, "userName") )
00711 i = getSetLeafValue(varValue,&(ptr->userName), (void **) ptr->userName, (char*)newVarValue, RE_STR);
00712
00713 else if (!strcmp(varName, "rodsZone") )
00714 i = getSetLeafValue(varValue,&(ptr->rodsZone), (void **) ptr->rodsZone, (char*)newVarValue, RE_STR);
00715
00716 else if (!strcmp(varName, "userType") )
00717 i = getSetLeafValue(varValue,&(ptr->userType),(void **) ptr->userType, (char*)newVarValue, RE_STR);
00718
00719 else if (!strcmp(varName, "sysUid") )
00720 i = getSetLeafValue(varValue,&(ptr->sysUid), (void **) CAST_INT_VOIDPTR ptr->sysUid, (char*)newVarValue, RE_INT);
00721
00722 else if (!strcmp(varName, "authInfo") )
00723 {
00724 authInfo = &(ptr->authInfo);
00725 i = getSetValFromAuthInfo(varMapCPtr, &authInfo, varValue,
00726 newVarValue);
00727 }
00728 else if (!strcmp(varName, "userOtherInfo") )
00729 i = getSetValFromUserOtherInfo(varMapCPtr, (userOtherInfo_t **) &(ptr->userOtherInfo), varValue, (char*)newVarValue);
00730 else
00731 return(UNDEFINED_VARIABLE_MAP_ERR);
00732 return(i);
00733
00734 }
00735
00736
00737 int
00738 getSetValFromCollInfo(char *varMap, collInfo_t **inptr, char **varValue, void *newVarValue)
00739 {
00740 char varName[NAME_LEN];
00741 char *varMapCPtr;
00742 int i;
00743 collInfo_t *ptr;
00744
00745 ptr = *inptr;
00746
00747 if (varMap == NULL) {
00748 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00749 return(i);
00750 }
00751
00752 if (ptr == NULL)
00753 return(NULL_VALUE_ERR);
00754 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00755 if (i != 0)
00756 return(i);
00757 if (!strcmp(varName, "collId") )
00758 i = getSetLeafValue(varValue,&(ptr->collId), (void **)(long) ptr->collId , (char*)newVarValue, RE_LONG);
00759
00760 else if (!strcmp(varName, "collName") )
00761 i = getSetLeafValue(varValue,&(ptr->collName), (void **)ptr->collName , (char*)newVarValue,RE_STR);
00762
00763 else if (!strcmp(varName, "collParentName") )
00764 i = getSetLeafValue(varValue,&(ptr->collParentName), (void **) ptr->collParentName , (char*)newVarValue,RE_STR);
00765
00766 else if (!strcmp(varName, "collOwnerName") )
00767 i = getSetLeafValue(varValue,&(ptr->collOwnerName), (void **)ptr->collOwnerName , (char*)newVarValue,RE_STR);
00768
00769 else if (!strcmp(varName, "collOwnerZone") )
00770 i = getSetLeafValue(varValue,&(ptr->collOwnerZone), (void **) ptr->collOwnerZone, (char*)newVarValue,RE_STR);
00771
00772 else if (!strcmp(varName, "collMapId") )
00773 i = getSetLeafValue(varValue,&(ptr->collMapId), (void **) CAST_INT_VOIDPTR ptr->collMapId, (char*)newVarValue, RE_INT);
00774
00775 else if (!strcmp(varName, "collComments") )
00776 i = getSetLeafValue(varValue,&(ptr->collComments), (void **) ptr->collComments , (char*)newVarValue,RE_STR);
00777
00778 else if (!strcmp(varName, "collInheritance") )
00779 i = getSetLeafValue(varValue,&(ptr->collInheritance), (void **) ptr->collInheritance , (char*)newVarValue,RE_STR);
00780
00781 else if (!strcmp(varName, "collExpiry") )
00782 i = getSetLeafValue(varValue,&(ptr->collExpiry), (void **) ptr->collExpiry , (char*)newVarValue,RE_STR);
00783
00784 else if (!strcmp(varName, "collCreate") )
00785 i = getSetLeafValue(varValue,&(ptr->collCreate), (void **) ptr->collCreate , (char*)newVarValue,RE_STR);
00786
00787 else if (!strcmp(varName, "collModify") )
00788 i = getSetLeafValue(varValue,&(ptr->collModify), (void **) ptr->collModify , (char*)newVarValue,RE_STR);
00789
00790 else if (!strcmp(varName, "collAccess") )
00791 i = getSetLeafValue(varValue,&(ptr->collAccess), (void **) ptr->collAccess , (char*)newVarValue,RE_STR);
00792
00793 else if (!strcmp(varName, "collAccessInx") )
00794 i = getSetLeafValue(varValue,&(ptr->collAccessInx), (void **) CAST_INT_VOIDPTR ptr->collAccessInx, (char*)newVarValue, RE_INT);
00795
00796 else if (!strcmp(varName, "next") )
00797 i = getSetValFromCollInfo(varMapCPtr, &(ptr->next), varValue, (char*)newVarValue);
00798 else
00799 return(UNDEFINED_VARIABLE_MAP_ERR);
00800 return(i);
00801
00802 }
00803
00804
00805 int
00806 getSetValFromKeyValPair(char *varMap, keyValPair_t **inptr, char **varValue, void *newVarValue)
00807 {
00808 char varName[NAME_LEN];
00809 char *varMapCPtr;
00810 char *Cptr;
00811 int i;
00812 keyValPair_t *ptr;
00813
00814 ptr = *inptr;
00815
00816 if (varMap == NULL) {
00817 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00818 return(i);
00819 }
00820
00821 if (ptr == NULL)
00822 return(NULL_VALUE_ERR);
00823 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00824 if (i != 0)
00825 return(i);
00826 Cptr = (char *) getValByKey(ptr,varName);
00827
00828 if (Cptr == NULL)
00829 return(UNMATCHED_KEY_OR_INDEX);
00830 *varValue = Cptr;
00831 return(0);
00832 }
00833
00834
00835 int
00836 getSetValFromVersion(char *varMap, version_t **inptr, char **varValue, void *newVarValue)
00837 {
00838 char varName[NAME_LEN];
00839 char *varMapCPtr;
00840 int i;
00841 version_t *ptr;
00842
00843 ptr = *inptr;
00844
00845 if (varMap == NULL) {
00846 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00847 return(i);
00848 }
00849
00850 if (ptr == NULL)
00851 return(NULL_VALUE_ERR);
00852 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00853 if (i != 0)
00854 return(i);
00855 if (!strcmp(varName, "status") )
00856 i = getSetLeafValue(varValue,&(ptr->status), (void **) CAST_INT_VOIDPTR ptr->status , (char*)newVarValue, RE_INT);
00857
00858 else if (!strcmp(varName, "relVersion") )
00859 i = getSetLeafValue(varValue,&(ptr->relVersion), (void **) ptr->relVersion , (char*)newVarValue,RE_STR);
00860
00861 else if (!strcmp(varName, "apiVersion") )
00862 i = getSetLeafValue(varValue,&(ptr->apiVersion), (void **) ptr->apiVersion , (char*)newVarValue,RE_STR);
00863
00864 else if (!strcmp(varName, "apiVersion") )
00865 i = getSetLeafValue(varValue,&(ptr->reconnAddr), (void **) ptr->reconnAddr , (char*)newVarValue,RE_STR);
00866 else if (!strcmp(varName, "apiVersion") )
00867 i = getSetLeafValue(varValue,&(ptr->reconnPort), (void **) CAST_INT_VOIDPTR ptr->reconnPort , (char*)newVarValue,RE_INT);
00868 else
00869 return(UNDEFINED_VARIABLE_MAP_ERR);
00870 return(i);
00871
00872 }
00873
00874
00875 int
00876 getSetValFromAuthInfo(char *varMap, authInfo_t **inptr, char **varValue, void *newVarValue)
00877 {
00878 char varName[NAME_LEN];
00879 char *varMapCPtr;
00880 int i;
00881 authInfo_t *ptr;
00882
00883 ptr = *inptr;
00884
00885 if (varMap == NULL) {
00886 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00887 return(i);
00888 }
00889
00890 if (ptr == NULL)
00891 return(NULL_VALUE_ERR);
00892 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00893 if (i != 0)
00894 return(i);
00895
00896 if (!strcmp(varName, "authScheme") )
00897 i = getSetLeafValue(varValue,&(ptr->authScheme), (void **)ptr->authScheme , (char*)newVarValue,RE_STR);
00898
00899 else if (!strcmp(varName, "authFlag") )
00900 i = getSetLeafValue(varValue,&(ptr->authFlag), (void **) CAST_INT_VOIDPTR ptr->authFlag , (char*)newVarValue, RE_INT);
00901
00902 else if (!strcmp(varName, "flag") )
00903 i = getSetLeafValue(varValue,&(ptr->flag), (void **) CAST_INT_VOIDPTR ptr->flag , (char*)newVarValue, RE_INT);
00904
00905 else if (!strcmp(varName, "ppid") )
00906 i = getSetLeafValue(varValue,&(ptr->ppid), (void **) CAST_INT_VOIDPTR ptr->ppid , (char*)newVarValue, RE_INT);
00907
00908 else if (!strcmp(varName, "host") )
00909 i = getSetLeafValue(varValue,&(ptr->host), (void **)ptr->host , (char*)newVarValue,RE_STR);
00910
00911 else if (!strcmp(varName, "authStr") )
00912 i = getSetLeafValue(varValue,&(ptr->authStr), (void **) ptr->authStr , (char*)newVarValue,RE_STR);
00913
00914 else
00915 return(UNDEFINED_VARIABLE_MAP_ERR);
00916 return(i);
00917
00918 }
00919
00920
00921 int
00922 getSetValFromUserOtherInfo(char *varMap, userOtherInfo_t **inptr, char **varValue, void *newVarValue)
00923 {
00924 char varName[NAME_LEN];
00925 char *varMapCPtr;
00926 int i;
00927 userOtherInfo_t *ptr;
00928
00929 ptr = *inptr;
00930
00931 if (varMap == NULL) {
00932 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00933 return(i);
00934 }
00935
00936 if (ptr == NULL)
00937 return(NULL_VALUE_ERR);
00938 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00939 if (i != 0)
00940 return(i);
00941
00942 if (!strcmp(varName, "userInfo") )
00943 i = getSetLeafValue(varValue,&(ptr->userInfo), (void **) ptr->userInfo , (char*)newVarValue,RE_STR);
00944
00945 else if (!strcmp(varName, "userComments") )
00946 i = getSetLeafValue(varValue,&(ptr->userComments), (void **)ptr->userComments , (char*)newVarValue,RE_STR);
00947
00948 else if (!strcmp(varName, " userCreate") )
00949 i = getSetLeafValue(varValue,&(ptr-> userCreate), (void **) ptr-> userCreate , (char*)newVarValue,RE_STR);
00950
00951 else if (!strcmp(varName, "userModify") )
00952 i = getSetLeafValue(varValue,&(ptr->userModify), (void **) ptr->userModify , (char*)newVarValue,RE_STR);
00953
00954 else
00955 return(UNDEFINED_VARIABLE_MAP_ERR);
00956 return(i);
00957
00958 }
00959
00960
00961 int
00962 getSetValFromFileOpenInp(char *varMap, fileOpenInp_t **inptr, char **varValue, void *newVarValue)
00963 {
00964 char varName[NAME_LEN];
00965 char *varMapCPtr;
00966 int i;
00967 fileOpenInp_t *ptr;
00968
00969 ptr = *inptr;
00970
00971 if (varMap == NULL) {
00972 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
00973 return(i);
00974 }
00975
00976 if (ptr == NULL)
00977 return(NULL_VALUE_ERR);
00978 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
00979 if (i != 0)
00980 return(i);
00981 if (!strcmp(varName, "fileType") )
00982 i = getSetLeafValue(varValue,&(ptr->fileType), (void **) ptr->fileType, (char*)newVarValue, RE_INT);
00983
00984 else if (!strcmp(varName, "addr") )
00985 i = getSetValFromRodsHostAddr(varMapCPtr, (rodsHostAddr_t **)&(ptr->addr), varValue, (char*)newVarValue);
00986 else if (!strcmp(varName, "fileName") )
00987 i = getSetLeafValue(varValue,&(ptr->fileName), (void **) ptr->fileName , (char*)newVarValue,RE_STR);
00988
00989 else if (!strcmp(varName, "flags") )
00990 i = getSetLeafValue(varValue,&(ptr->flags), (void **) CAST_INT_VOIDPTR ptr->flags , (char*)newVarValue, RE_INT);
00991
00992 else if (!strcmp(varName, "mode") )
00993 i = getSetLeafValue(varValue,&(ptr->mode), (void **) CAST_INT_VOIDPTR ptr->mode , (char*)newVarValue, RE_INT);
00994
00995 else if (!strcmp(varName, "dataSize") )
00996 i = getSetLeafValue(varValue,&(ptr->dataSize), (void **)(long) ptr->dataSize, (char*)newVarValue, RE_LONG);
00997
00998 else if (!strcmp(varName, "otherFlags") )
00999 i = getSetLeafValue(varValue,&(ptr->otherFlags), (void **) CAST_INT_VOIDPTR ptr->otherFlags, (char*)newVarValue, RE_INT);
01000
01001 else
01002 return(UNDEFINED_VARIABLE_MAP_ERR);
01003 return(i);
01004
01005 }
01006
01007
01008 int
01009 getSetValFromRodsHostAddr(char *varMap, rodsHostAddr_t **inptr, char **varValue, void *newVarValue)
01010 {
01011 char varName[NAME_LEN];
01012 char *varMapCPtr;
01013 int i;
01014 rodsHostAddr_t *ptr;
01015
01016 ptr = *inptr;
01017
01018 if (varMap == NULL) {
01019 i = getSetLeafValue(varValue,inptr, (void **) inptr, (char*)newVarValue, RE_PTR);
01020 return(i);
01021 }
01022
01023 if (ptr == NULL)
01024 return(NULL_VALUE_ERR);
01025 i = getVarNameFromVarMap(varMap, varName, &varMapCPtr);
01026 if (i != 0)
01027 return(i);
01028
01029 if (!strcmp(varName, "hostAddr") )
01030 i = getSetLeafValue(varValue,&(ptr->hostAddr), (void **) ptr->hostAddr , (char*)newVarValue,RE_STR);
01031
01032 else if (!strcmp(varName, "rodsZone") )
01033 i = getSetLeafValue(varValue,&(ptr->zoneName), (void **) ptr->zoneName , (char*)newVarValue,RE_STR);
01034
01035 else if (!strcmp(varName, "portNum") )
01036 i = getSetLeafValue(varValue,&(ptr->portNum), (void **) CAST_INT_VOIDPTR ptr->portNum, (char*)newVarValue, RE_INT);
01037
01038 else
01039 return(UNDEFINED_VARIABLE_MAP_ERR);
01040 return(i);
01041
01042 }
01043
01044
01045
01046
01047
01048
01049
01050
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 int
01231 getAllSessionVarValue (char *action, ruleExecInfo_t *rei,
01232 keyValPair_t *varKeyVal)
01233 {
01234 int i, status;
01235 char *varValue;
01236 char *lastVar = NULL;
01237
01238 if (varKeyVal == NULL || rei == NULL) {
01239 rodsLog (LOG_ERROR,
01240 "getAllSessionVarValue: input rei or varKeyVal is NULL");
01241 return SYS_INTERNAL_NULL_INPUT_ERR;
01242 }
01243
01244 for (i = 0; i < coreRuleVarDef.MaxNumOfDVars; i++) {
01245 if (lastVar == NULL || strcmp (lastVar, coreRuleVarDef.varName[i]) != 0) {
01246 status = getSessionVarValue ("", coreRuleVarDef.varName[i], rei,
01247 &varValue);
01248 if (status >= 0 && varValue != NULL) {
01249 lastVar = coreRuleVarDef.varName[i];
01250 addKeyVal (varKeyVal, lastVar, varValue);
01251 free (varValue);
01252 }
01253 }
01254 }
01255 return 0;
01256 }
01257
01258 int
01259 getSessionVarValue (char *action, char *varName, ruleExecInfo_t *rei,
01260 char **varValue)
01261 {
01262 char *varMap;
01263 int i, vinx;
01264
01265 vinx = getVarMap (action,varName, &varMap, 0);
01266 while (vinx >= 0) {
01267 i = getVarValue (varMap, rei, varValue);
01268 if (i >= 0) {
01269 free(varMap);
01270 return(i);
01271 } else if (i == NULL_VALUE_ERR) {
01272 free(varMap);
01273 vinx = getVarMap (action,varName, &varMap, vinx+1);
01274 } else {
01275 free(varMap);
01276 return(i);
01277 }
01278 }
01279 if (vinx < 0) {
01280 return(vinx);
01281 }
01282 return(i);
01283 }
01284
01285