00001
00002
00003
00004 #include "reGlobalsExtern.h"
00005 #include "resource.h"
00006 #include "dataObjOpr.h"
00007
00008 extern char *rmemmove (void *dest, void *src, int strLen, int maxLen);
00009
00010 static int staticVarNumber = 1;
00011
00012
00013 int
00014 getNewVarName(char *v, msParamArray_t *msParamArray)
00015 {
00016
00017
00018 sprintf(v,"*RNDVAR%i",staticVarNumber);
00019 staticVarNumber++;
00020
00021 while (getMsParamByLabel (msParamArray, v) != NULL) {
00022 sprintf(v,"*RNDVAR%i",staticVarNumber);
00023 staticVarNumber++;
00024 }
00025
00026
00027 return(0);
00028 }
00029
00030 int
00031 removeTmpVarName(msParamArray_t *msParamArray)
00032 {
00033
00034 int i;
00035
00036 for (i = 0; i < msParamArray->len; i++) {
00037 if (strncmp(msParamArray->msParam[i]->label, "*RNDVAR",7) == 0)
00038 rmMsParamByLabel (msParamArray,msParamArray->msParam[i]->label, 1);
00039 }
00040 return(0);
00041
00042 }
00043
00044
00045 int
00046 carryOverMsParam(msParamArray_t *sourceMsParamArray,msParamArray_t *targetMsParamArray)
00047 {
00048
00049 int i;
00050 msParam_t *mP, *mPt;
00051 char *a, *b;
00052 if (sourceMsParamArray == NULL)
00053 return(0);
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075 for (i = 0; i < sourceMsParamArray->len ; i++) {
00076 mPt = sourceMsParamArray->msParam[i];
00077 if ((mP = getMsParamByLabel (targetMsParamArray, mPt->label)) != NULL) {
00078 a = mP->label;
00079 b = mP->type;
00080 mP->label = NULL;
00081 mP->type = NULL;
00082
00083 free(mP->inpOutBuf);
00084 replMsParam(mPt,mP);
00085 free(mP->label);
00086 mP->label = a;
00087 free(mP->type);
00088 mP->type = b;
00089 }
00090 else
00091 addMsParamToArray(targetMsParamArray,
00092 mPt->label, mPt->type, mPt->inOutStruct, mPt->inpOutBuf, 1);
00093 }
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142 return(0);
00143 }
00144
00145 #if 0
00146 int
00147 computeHostAddress(rsComm_t *rsComm, char *inStr, rodsHostAddr_t *addr)
00148 {
00149 int status;
00150 dataObjInp_t dataObjInp;
00151 dataObjInfo_t *dataObjInfoHead = NULL;
00152 char *path;
00153 rescGrpInfo_t *rescGrpInfo = NULL;
00154
00155 if (inStr[0] == '@')
00156 path = inStr + 1;
00157 else
00158 path = inStr;
00159 if (path[0] == '/') {
00160 memset (&dataObjInp, 0, sizeof (dataObjInp));
00161 rstrcpy (dataObjInp.objPath, path, MAX_NAME_LEN);
00162 status = getDataObjInfo (rsComm, &dataObjInp, &dataObjInfoHead,
00163 ACCESS_READ_OBJECT, 0);
00164 if (status < 0) {
00165 rodsLog (LOG_ERROR,
00166 "computeHostAddress: getDataObjInfo error for Path %s", path);
00167 return (status);
00168 }
00169
00170 status = sortObjInfoForOpen (rsComm, &dataObjInfoHead, NULL, 0);
00171 if (status < 0) {
00172 rodsLog (LOG_ERROR,
00173 "computeHostAddress: sortObjInfoForOpen error for Path %s", path);
00174 return status;
00175 }
00176 rstrcpy (addr->zoneName, dataObjInfoHead->rescInfo->zoneName, NAME_LEN);
00177 rstrcpy (addr->hostAddr, dataObjInfoHead->rescInfo->rescLoc, LONG_NAME_LEN);
00178 freeAllDataObjInfo (dataObjInfoHead);
00179 }
00180 else {
00181 status = getRescInfo (rsComm, path, NULL, &rescGrpInfo);
00182 if (status < 0) {
00183 rodsLog (LOG_ERROR,
00184 "computeHostAddress: getRescInfo error for Path %s", path);
00185 return (status);
00186 }
00187
00188 status = sortResc(rsComm, &rescGrpInfo, "random");
00189 if (status < 0) {
00190 rodsLog (LOG_ERROR,
00191 "computeHostAddress: sortResc error for Path %s", path);
00192 return status;
00193 }
00194 rstrcpy (addr->zoneName, rescGrpInfo->rescInfo->zoneName, NAME_LEN);
00195 rstrcpy (addr->hostAddr, rescGrpInfo->rescInfo->rescLoc, LONG_NAME_LEN);
00196 freeAllRescGrpInfo (rescGrpInfo);
00197 }
00198 return(0);
00199 }
00200 #endif