You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by pr...@apache.org on 2006/03/20 17:48:51 UTC
svn commit: r387243 - /webservices/axis/trunk/c/src/configuration/
Author: prestonf
Date: Mon Mar 20 08:48:48 2006
New Revision: 387243
URL: http://svn.apache.org/viewcvs?rev=387243&view=rev
Log:
Refactoring and changes for AxisConfiguration to work with AIX.
Added:
webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.cpp
webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.hpp
webservices/axis/trunk/c/src/configuration/FileFunctions.cpp
webservices/axis/trunk/c/src/configuration/FileFunctions.hpp
webservices/axis/trunk/c/src/configuration/ListMethods.cpp
webservices/axis/trunk/c/src/configuration/ListMethods.hpp
webservices/axis/trunk/c/src/configuration/MissingCFunctions.cpp
webservices/axis/trunk/c/src/configuration/MissingCFunctions.hpp
Modified:
webservices/axis/trunk/c/src/configuration/AxisConfiguration.cpp
webservices/axis/trunk/c/src/configuration/AxisConfiguration.hpp
Modified: webservices/axis/trunk/c/src/configuration/AxisConfiguration.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/AxisConfiguration.cpp?rev=387243&r1=387242&r2=387243&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/configuration/AxisConfiguration.cpp (original)
+++ webservices/axis/trunk/c/src/configuration/AxisConfiguration.cpp Mon Mar 20 08:48:48 2006
@@ -1,8 +1,13 @@
+#include "FileFunctions.hpp"
#include "AxisConfiguration.hpp"
+#include "MissingCFunctions.hpp"
+#include "AxisConfigurationLibraries.hpp"
+
+// Client -a c:\wscc -o obj\bin -th transport.dll -c channel.dll -cs sslChannel.dll -x xerces.dll -cl client.log
int main( int argc, char * argv[])
{
- DLLNAMES sDLLNames;
+ LIST sDLLNames;
int iConfigInfoArray[eConfigMax];
CHOICELIST sChoiceList[] = { {PLATFORM_TRANSPORTHTTP_PATH, "HTTP Transport library", AXCONF_TRANSPORTHTTP_TAGNAME, eHTTPTransport, eClientAndServer},
{PLATFORM_CHANNEL_PATH, "HTTP Channel library", AXCONF_CHANNEL_HTTP_TAGNAME, eHTTPChannel, eClientAndServer},
@@ -19,7 +24,7 @@
{"", "Root directory", 0, eUnknown, eEmpty},
{"", "library offset directory", 0, eUnknown, eEmpty}};
bool bSuccess = false;
- FILENAMELIST sFileNameList;
+ LIST sFileNameList;
char * psDefaultParamList[eConfigMax];
Initialise( &sDLLNames, iConfigInfoArray, &sFileNameList, (char **) psDefaultParamList);
@@ -36,7 +41,7 @@
cout << "Client" << endl;
cout << "-a root directory of Axis download (AXISCPP_HOME)" << endl;
cout << "-o offset from AXISCPP_HOME to object files" << endl;
- cout << "-t transport library name" << endl;
+ cout << "-th transport library name" << endl;
cout << "-c channel library name" << endl;
cout << "-cs ssl channel library name" << endl;
cout << "-x xerces library name" << endl;
@@ -69,38 +74,43 @@
if( sChoiceList[iChoiceCount].eConfigType == eClientLog ||
sChoiceList[iChoiceCount].eConfigType == eServerLog)
{
- if(sChoiceList[iChoiceCount].eConfigType == eClientLog)
+ char szLog[256];
+
+ szLog[0] = '\0';
+
+ if( sChoiceList[iChoiceCount].eConfigType == eClientLog)
{
- cout << "Enter name of client trace/log file: ";
+ if( psDefaultParamList[eClientLog] == NULL)
+ {
+ cout << "Enter name of client trace/log file: ";
+ }
+ else
+ {
+ strcpy( szLog, psDefaultParamList[eClientLog]);
+ }
}
else
{
- cout << "Enter name of server trace/log file: ";
+ if( psDefaultParamList[eServerLog] == NULL)
+ {
+ cout << "Enter name of server trace/log file: ";
+ }
+ else
+ {
+ strcpy( szLog, psDefaultParamList[eServerLog]);
+ }
}
- CreateNewDLLNamesElement( &sDLLNames, &sFileNameList);
-
- char szLog[256];
- char szFilename[512];
+ char szFilename[512];
- cin >> szLog;
-
- sDLLNames.ppsDLLName[sDLLNames.iIndex]->pszDLLName = (char *) malloc( strlen( szLog) + 1);
-
- strcpy( sDLLNames.ppsDLLName[sDLLNames.iIndex]->pszDLLName, szLog);
+ if( szLog[0] == '\0')
+ {
+ cin >> szLog;
+ }
sprintf( szFilename, "%s\\%s", szAxisCpp_Deploy, szLog);
- sDLLNames.ppsDLLName[sDLLNames.iIndex]->pszDLLFilename = (char *) malloc( strlen( szFilename) + 1);
-
- strcpy( sDLLNames.ppsDLLName[sDLLNames.iIndex]->pszDLLFilename, szFilename);
-
- iConfigInfoArray[sChoiceList[iChoiceCount].eConfigType] = sDLLNames.iIndex;
-
- sDLLNames.ppsDLLName[iChoiceCount]->bAddToClientConfig = true;
-
- sDLLNames.iIndex++;
-
+ iConfigInfoArray[sChoiceList[iChoiceCount].eConfigType] = PopulateNewDLLNameInfo( &sDLLNames, szLog, szFilename, true);
}
else
{
@@ -154,17 +164,17 @@
ECONFIG ReadConfigOptions( int iParamCount, char * pParamArray[], char ** ppsDefaultParamList)
{
ECONFIG eConfig = eEmpty;
- OPTIONLIST sOptions[] = {{eHTTPTransport, "TH"},
- {eHTTPChannel, "C"},
- {eHTTPSSLChannel, "CS"},
- {eXMLParser, "X"},
- {eSMTPTransport, "TS"},
- {eClientLog, "CL"},
- {eClientWSDD, "CW"},
- {eServerLog, "SL"},
- {eRootDirectory, "A"},
- {eOffsetToLibs, "O"},
- {eServerWSDD, "SW"}};
+ OPTIONLIST sOptions[] = {{eHTTPTransport, "TH"},
+ {eHTTPChannel, "C"},
+ {eHTTPSSLChannel, "CS"},
+ {eXMLParser, "X"},
+ {eSMTPTransport, "TS"},
+ {eClientLog, "CL"},
+ {eClientWSDD, "CW"},
+ {eServerLog, "SL"},
+ {eRootDirectory, "A"},
+ {eOffsetToLibs, "O"},
+ {eServerWSDD, "SW"}};
for( int iCount = 0; iCount < iParamCount; iCount++)
{
@@ -205,9 +215,27 @@
if( iCount < iParamCount)
{
- ppsDefaultParamList[sOptions[iIndex].eConfType] = (char *) malloc( strlen( pParamArray[iCount]) + 1);
+ if( ppsDefaultParamList[eOffsetToLibs] != NULL &&
+ ppsDefaultParamList[eRootDirectory] != NULL)
+ {
+ char szLocation[512];
+ char cSlash = '/';
- strcpy( ppsDefaultParamList[sOptions[iIndex].eConfType], pParamArray[iCount]);
+#if WIN32
+ cSlash = '\\';
+#endif
+ sprintf( szLocation, "%s%c%s%c%s", ppsDefaultParamList[eRootDirectory], cSlash, ppsDefaultParamList[eOffsetToLibs], cSlash, pParamArray[iCount]);
+
+ ppsDefaultParamList[sOptions[iIndex].eConfType] = (char *) malloc( strlen( szLocation) + 1);
+
+ strcpy( ppsDefaultParamList[sOptions[iIndex].eConfType], szLocation);
+ }
+ else
+ {
+ ppsDefaultParamList[sOptions[iIndex].eConfType] = (char *) malloc( strlen( pParamArray[iCount]) + 1);
+
+ strcpy( ppsDefaultParamList[sOptions[iIndex].eConfType], pParamArray[iCount]);
+ }
}
}
else
@@ -219,134 +247,20 @@
return eConfig;
}
-bool CheckAxisBinDirectoryExists( char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, DLLNAMES * psDLLNames, FILENAMELIST * psFileNameList)
-{
- bool bFound = false;
-
- if( strlen( pszAxis_Bin) < 2)
- {
- strcpy( pszAxis_Bin, pszAxis_Bin_Default);
- }
-
- char szFilename[512];
- char szFileDirAndName[512];
-
- sprintf( szFilename, "%s\\%s\\*.*", pszAxisCpp_Deploy, pszAxis_Bin);
-
- bFound = ReadFilenamesInaDirectory( szFilename, psFileNameList);
- int iIndex = 0;
-
- do
- {
- char * pExtn = psFileNameList->ppszListArray[iIndex];
- do
- {
- if( (pExtn = strchr( pExtn, '.')) != NULL)
- {
- pExtn++;
-
-#if WIN32
- if( StringCompare( pExtn, "DLL"))
-#else
- if( StringCompare( pExtn, "SO"))
-#endif
- {
- CreateNewDLLNamesElement( psDLLNames, psFileNameList);
-
- psDLLNames->ppsDLLName[psDLLNames->iIndex]->pszDLLName = (char *) malloc( strlen( psFileNameList->ppszListArray[iIndex]) + 1);
-
- strcpy( psDLLNames->ppsDLLName[psDLLNames->iIndex]->pszDLLName, psFileNameList->ppszListArray[iIndex]);
-
- StringToUpper( psDLLNames->ppsDLLName[psDLLNames->iIndex]->pszDLLName);
-
- sprintf( szFileDirAndName, "%s\\%s\\%s", pszAxisCpp_Deploy, pszAxis_Bin, psFileNameList->ppszListArray[iIndex]);
-
- psDLLNames->ppsDLLName[psDLLNames->iIndex]->pszDLLFilename = (char *) malloc( strlen( szFileDirAndName) + 1);
-
- strcpy( psDLLNames->ppsDLLName[psDLLNames->iIndex]->pszDLLFilename, szFileDirAndName);
-
- psDLLNames->iIndex++;
-
- break;
- }
- }
- } while( pExtn != NULL);
-
- iIndex++;
- } while( iIndex < psFileNameList->iListCount);
-
- if( !bFound)
- {
- cout << "The directory " << pszAxis_Bin << " was not found." << endl;
- }
-
- return bFound;
-}
-
-const char * CreateConfigElement( DLLNAMES * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList, ECONFIGTYPE eConfigType)
-{
- int iIndex = 0;
- bool bFound = false;
- char * pszConfigName = "<unknown name>";
- static std::string sReturn;
-
- while( iIndex < eConfigMax && !bFound)
- {
- if( psChoiceList[iIndex].eConfigType == eConfigType)
- {
- bFound = true;
-
- pszConfigName = psChoiceList[iIndex].pszConfigName;
- }
- else
- {
- iIndex++;
- }
- }
-
- if( bFound)
- {
- sReturn = "#Path to ";
- sReturn += psChoiceList[iIndex].pszElementDescription;
- sReturn += "\n";
- }
- else
- {
- sReturn = "#Path to an unknown element\n";
- }
-
- char szReturn[256];
-
- if( piConfigInfoArray[eConfigType] != -1)
- {
- sprintf( szReturn, "%s:%s\n", pszConfigName, psDLLNames->ppsDLLName[piConfigInfoArray[eConfigType]]->pszDLLFilename);
- }
- else
- {
- sprintf( szReturn, "#%s:<not set>\n", pszConfigName);
- }
-
- sReturn += szReturn;
-
- return sReturn.c_str();
-}
-
-void GetHomeAndLibrary( DLLNAMES * psDLLNames, char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, FILENAMELIST * psFileNameList, char ** ppsDefaultParamList)
+void GetHomeAndLibrary( LIST * psDLLNames, char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, LIST * psFileNameList, char ** ppsDefaultParamList)
{
if( ppsDefaultParamList[eRootDirectory] == NULL)
{
#if WIN32
- cout << "Type in full qualified directory path into which you downloaded Axis." << endl
- << "(e.g. C:\\Axis). Where C:\\Axis\\axis-c-1.6-Win32-trace-bin is the" << endl
- << "directory created when Axis was unzipped (this directory must also" << endl
- << "contain the axiscpp.conf file)." << endl;
+ cout << "Type in the Axis fully qualified directory path (e.g. C:\\Axis)" << endl
+ << "used when Axis was unzipped (NB: this directory must also contain the" << endl
+ << "axiscpp.conf file)." << endl;
#else
- cout << "Type in full qualified directory path into which you downloaded Axis." << endl
- << "(e.g. /home/Axis). Where /home/Axis/axis-c-1.6-Linux-trace-bin is the" << endl
- << "directory created when Axis was untared (this directory must also" << endl
- << "contain the etc/axiscpp.conf file)." << endl;
+ cout << "Type in the Axis fully qualified directory path (e.g. /home/Axis)" << endl
+ << "used when Axis was unzipped (NB: this directory must also contain the" << endl
+ << "etc/axiscpp.conf file)." << endl;
#endif
cout << "AXISCPP_DEPLOY = ";
cin >> pszAxisCpp_Deploy;
@@ -370,10 +284,12 @@
}
}
+ strcpy( pszAxis_Bin_Default, pszAxisCpp_Deploy);
+
#if WIN32
- strcpy( pszAxis_Bin_Default, "\\axis-c-1.6-Win32-trace-bin\\bin");
+ strcat( pszAxis_Bin_Default, "\\axis-c-1.6-Win32-trace-bin\\bin");
#else
- strcpy( pszAxis_Bin_Default, "/axis-c-1.6-Linux-trace-bin/bin");
+ strcat( pszAxis_Bin_Default, "/axis-c-1.6-Linux-trace-bin/bin");
#endif
if( ppsDefaultParamList[eOffsetToLibs] == NULL)
@@ -388,19 +304,22 @@
<< "EXPORT AXISCPP_DEPLOY=" << pszAxisCpp_Deploy << endl << endl;
#endif
- strcpy( pszAxis_Bin_Default, pszAxisCpp_Deploy);
-
do
{
#if WIN32
cout << "Type in the directory where the Axis libraries (e.g. axis_client.dll) can be" << endl
- << "found. (The default directory is " << pszAxisCpp_Deploy << "\\axis-c-1.6-Win32-trace-bin\\bin)." << endl;
+ << "found. (If you type '*', it will use the default '" << pszAxis_Bin_Default << "')." << endl;
#else
cout << "Type in the directory where the Axis libraries (e.g. axis_client.so) can be" << endl
- << "found. (The default directory is " << pszAxisCpp_Deploy << "/axis-c-1.6-Linux-trace-bin/bin)." << endl;
+ << "found. (If you type '*', it will use the default '" << pszAxis_Bin_Default << "')." << endl;
#endif
cout << "Axis binaries directory = ";
cin >> pszAxis_Bin;
+
+ if( !strcmp( pszAxis_Bin, "*"))
+ {
+ strcpy( pszAxis_Bin, pszAxis_Bin_Default);
+ }
}
while( !CheckAxisBinDirectoryExists( pszAxisCpp_Deploy, pszAxis_Bin, pszAxis_Bin_Default, psDLLNames, psFileNameList));
}
@@ -408,27 +327,16 @@
cout << endl << "Begin to configure the AXISCPP.CONF file." << endl;
}
-void Initialise( DLLNAMES * psDLLNames, int * piConfigInfoArray, FILENAMELIST * psFileNameList, char ** ppsDefaultParamList)
-{
- memset( psDLLNames, 0, sizeof( DLLNAMES));
- memset( psFileNameList, 0, sizeof( FILENAMELIST));
-
- for( int iCount = 0; iCount < eConfigMax; iCount++)
- {
- piConfigInfoArray[iCount] = -1;
- ppsDefaultParamList[iCount] = NULL;
- }
-}
-
-void SelectFileFromList( CHOICELIST * psChoiceList, int iChoiceCount, DLLNAMES * psDLLNames, int * piConfigInfoArray, char ** ppsDefaultParamList, FILENAMELIST * psFileNameList, char * pszAxisCpp_Deploy)
+void SelectFileFromList( CHOICELIST * psChoiceList, int iChoiceCount, LIST * psDLLNames, int * piConfigInfoArray, char ** ppsDefaultParamList, LIST * psFileNameList, char * pszAxisCpp_Deploy)
{
cout << endl << "Select the filename for the " << psChoiceList[iChoiceCount].pszElementDescription << "." << endl;
int iDLLCount = 0;
- int iDLLListCount = 0;
- int iDLLOffsetList[8];
+ LIST sDLLOffsetList;
bool bHTTPTransportFound = false;
+ memset( &sDLLOffsetList, 0, sizeof( LIST));
+
do
{
char * pszUpper = new char[strlen( psChoiceList[iChoiceCount].pszElement) + 1];
@@ -437,14 +345,16 @@
StringToUpper( pszUpper);
- while( iDLLCount < psDLLNames->iIndex)
+ while( iDLLCount < psDLLNames->iCount)
{
- if( psDLLNames->ppsDLLName[iDLLCount]->pszDLLName != NULL && strstr( psDLLNames->ppsDLLName[iDLLCount]->pszDLLName, pszUpper) != NULL)
+ if( ((DLLNAMEINFO *) psDLLNames->ppArray[iDLLCount])->pszDLLName != NULL && strstr( ((DLLNAMEINFO *) psDLLNames->ppArray[iDLLCount])->pszDLLName, pszUpper) != NULL)
{
- iDLLOffsetList[iDLLListCount] = iDLLCount;
+ int * piDLLOffset = (int *) GetNextListElement( &sDLLOffsetList, sizeof( int));
- cout << ++iDLLListCount << ".\t" << psDLLNames->ppsDLLName[iDLLCount]->pszDLLFilename << endl;
+ *piDLLOffset = iDLLCount;
+
+ cout << sDLLOffsetList.iCount << ".\t" << ((DLLNAMEINFO *) psDLLNames->ppArray[iDLLCount])->pszDLLFilename << endl;
}
iDLLCount++;
@@ -452,16 +362,10 @@
free( pszUpper);
- if( ppsDefaultParamList[psChoiceList[iChoiceCount].eConfigType] != NULL)
+ if( ppsDefaultParamList[psChoiceList[iChoiceCount].eConfigType] != NULL &&
+ FileExists( ppsDefaultParamList[psChoiceList[iChoiceCount].eConfigType]))
{
- CreateNewDLLNamesElement( psDLLNames, psFileNameList);
- psDLLNames->ppsDLLName[psDLLNames->iIndex]->bAddToClientConfig = true;
- piConfigInfoArray[psChoiceList[iChoiceCount].eConfigType] = psDLLNames->iIndex;
- psDLLNames->ppsDLLName[psDLLNames->iIndex]->pszDLLFilename = (char *) malloc( strlen( ppsDefaultParamList[psChoiceList[iChoiceCount].eConfigType]) + 1);
-
- strcpy( psDLLNames->ppsDLLName[psDLLNames->iIndex]->pszDLLFilename, ppsDefaultParamList[psChoiceList[iChoiceCount].eConfigType]);
-
- psDLLNames->iIndex++;
+ piConfigInfoArray[psChoiceList[iChoiceCount].eConfigType] = PopulateNewDLLNameInfo( psDLLNames, NULL, ppsDefaultParamList[psChoiceList[iChoiceCount].eConfigType], true);
bHTTPTransportFound = true;
@@ -469,33 +373,33 @@
}
else
{
- if( iDLLListCount > 0)
+ if( sDLLOffsetList.iCount > 0)
{
- if( iDLLListCount > 1)
+ if( sDLLOffsetList.iCount > 1)
{
- cout << "Select an index between 1 and " << iDLLListCount << " : ";
+ cout << "Select an index between 1 and " << sDLLOffsetList.iCount << " : ";
int iChoice;
cin >> iChoice;
- if( iChoice < 1 || iChoice > iDLLListCount)
+ if( iChoice < 1 || iChoice > sDLLOffsetList.iCount)
{
cout << "Number was out of range." << endl;
}
else
{
- psDLLNames->ppsDLLName[iDLLOffsetList[iChoice - 1]]->bAddToClientConfig = true;
- piConfigInfoArray[psChoiceList[iChoiceCount].eConfigType] = iDLLOffsetList[iChoice - 1];
+ ((DLLNAMEINFO *) psDLLNames->ppArray[*((int *) sDLLOffsetList.ppArray[iChoice - 1])])->bAddToClientConfig = true;
+ piConfigInfoArray[psChoiceList[iChoiceCount].eConfigType] = *((int *) sDLLOffsetList.ppArray[iChoice - 1]);
bHTTPTransportFound = true;
}
}
else
{
- cout << "Automatically selected " << psDLLNames->ppsDLLName[iDLLOffsetList[0]]->pszDLLFilename << endl;
+ cout << "Automatically selected " << ((DLLNAMEINFO *) psDLLNames->ppArray[*((int *) sDLLOffsetList.ppArray[0])])->pszDLLFilename << endl;
- psDLLNames->ppsDLLName[iDLLOffsetList[0]]->bAddToClientConfig = true;
- piConfigInfoArray[psChoiceList[iChoiceCount].eConfigType] = iDLLOffsetList[0];
+ ((DLLNAMEINFO *) psDLLNames->ppArray[*((int *) sDLLOffsetList.ppArray[0])])->bAddToClientConfig = true;
+ piConfigInfoArray[psChoiceList[iChoiceCount].eConfigType] = *((int *) sDLLOffsetList.ppArray[0]);
bHTTPTransportFound = true;
}
}
@@ -507,206 +411,31 @@
}
}
} while( !bHTTPTransportFound);
-}
-
-void WriteAxisConfigFile( DLLNAMES * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList)
-{
- cout << "DLL selection complete" << endl << endl;
-
- cout << "AxisCPP.conf file now has the following information:-" << endl;
-
- cout << "# The comment character is '#'" << endl;
- cout << "#Available directives are as follows" << endl;
- cout << "#(Some of these directives may not be implemented yet)" << endl;
- cout << "#" << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eServerLog) << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eServerWSDD) << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eClientLog) << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eClientWSDD) << endl;
- cout << "#Node name." << endl;
- cout << "#NodeName: <not set>" << endl << endl;
- cout << "#Listening port." << endl;
- cout << "#ListenPort: <not set>" << endl << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eHTTPTransport) << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eSMTPTransport) << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eXMLParser) << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eHTTPChannel) << endl;
- cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eHTTPSSLChannel) << endl;
- cout << endl;
-}
-
-bool ReadFilenamesInaDirectory( char * pszDirName, FILENAMELIST * psFileNameList)
-{
- bool bSuccess = false;
-
-#if WIN32
- intptr_t lFindFile;
- struct _finddata_t sFindData;
-
- if( (lFindFile = _findfirst( pszDirName, &sFindData)) != -1)
- {
- if( sFindData.name[0] == '.' && sFindData.attrib & _A_SUBDIR)
- {
- bSuccess = true;
- }
-
- do
- {
- if( !(sFindData.attrib & _A_SUBDIR))
- {
- AddFilenameToList( psFileNameList, sFindData.name);
- }
- } while( _findnext( lFindFile, &sFindData) == 0);
-
- _findclose( lFindFile);
- }
-#else
- DIR * psDIR;
- struct dirent* pDirEnt;
- int iFilenameCount = 0;
-
- if( (psDIR = opendir( pszDirName)) == NULL)
- {
- return bSuccess;
- }
-
- while( (pDirEnt = readdir( psDIR)) != NULL)
- {
- AddFilenameToList( psFileNameList, pDirEnt->d_name);
- }
-
- if( closedir( psDIR) == -1)
- {
- return bSuccess;
- }
- else
- {
- bSuccess = true;
- }
-#endif
-
- return bSuccess;
-}
-
-void AddFilenameToList( FILENAMELIST * psFileNameList, char * pszFilename)
-{
- if( psFileNameList->iListMax == 0)
- {
- psFileNameList->iListMax = 1;
-
- psFileNameList->ppszListArray = (char **) malloc( sizeof( char *));
- }
- else if( psFileNameList->iListCount >= psFileNameList->iListMax)
- {
- psFileNameList->iListMax *= 2;
-
- psFileNameList->ppszListArray = (char **) realloc( psFileNameList->ppszListArray, sizeof( char *) * psFileNameList->iListMax);
- }
-
- psFileNameList->ppszListArray[psFileNameList->iListCount] = (char *) malloc( strlen( pszFilename) + 1);
- strcpy( psFileNameList->ppszListArray[psFileNameList->iListCount], pszFilename);
-
- psFileNameList->iListCount++;
-}
-
-void Destroy( DLLNAMES * psDLLNames, FILENAMELIST * psFileNameList, char ** ppsDefaultParamList)
-{
- int iCount;
-
- for( iCount = 0; iCount < psDLLNames->iIndex; iCount++)
+ for( int iCount = 0; iCount < sDLLOffsetList.iCount; iCount++)
{
- free( psDLLNames->ppsDLLName[iCount]->pszDLLFilename);
- free( psDLLNames->ppsDLLName[iCount]->pszDLLName);
- free( psDLLNames->ppsDLLName[iCount]);
- }
-
- for( iCount = 0; iCount < psFileNameList->iListCount; iCount++)
- {
- free( psFileNameList->ppszListArray[iCount]);
- }
-
- free( psDLLNames->ppsDLLName);
- free( psFileNameList->ppszListArray);
-
- for( iCount = 0; iCount < eConfigMax; iCount++)
- {
- if( ppsDefaultParamList[iCount] != NULL)
- {
- free( (void *) ppsDefaultParamList[iCount]);
- }
+ free( sDLLOffsetList.ppArray[iCount]);
}
}
-bool StringCompare( char * pszString1, char * pszString2)
+void AddFilenameToList( LIST * psFileNameList, char * pszFilename)
{
- bool bSame = false;
-
- if( pszString1 == NULL || pszString2 == NULL)
- {
- return bSame;
- }
-
- if( strlen( pszString1) != strlen( pszString2))
- {
- return bSame;
- }
-
- if( strlen( pszString1) == 0)
- {
- bSame = true;
- }
- else
- {
- char * psString1 = pszString1;
- char * psString2 = pszString2;
+ char * psList = (char *) GetNextListElement( psFileNameList, (int) strlen( pszFilename) + 1);
- do
- {
- bSame = (toupper( *psString1++) == toupper( *psString2++));
- } while( bSame && *psString1 != '\0');
- }
-
- return bSame;
+ strcpy( psList, pszFilename);
}
-void StringToUpper( char * pszString)
+bool FileExists( char * pszFilename)
{
- if( pszString != NULL)
- {
- char * pc = pszString;
-
- while( *pc != '\0')
- {
- *pc = toupper( *pc);
-
- pc++;
- }
- }
-}
+ FILE * fp = fopen( pszFilename, "r");
+ bool bSuccess = false;
-void CreateNewDLLNamesElement( DLLNAMES * psDLLNames, FILENAMELIST * psFileNameList)
-{
- if( psDLLNames->iIndex >= psDLLNames->iMaxCount)
+ if( fp != NULL)
{
- psDLLNames->iMaxCount = psDLLNames->iMaxCount * 2 + 1;
+ fclose( fp);
- if( psDLLNames->ppsDLLName == NULL)
- {
- psDLLNames->ppsDLLName = (DLLNAMEINFO **) malloc( sizeof( void *) * psDLLNames->iMaxCount);
- }
- else
- {
- psDLLNames->ppsDLLName = (DLLNAMEINFO **) realloc( psDLLNames->ppsDLLName, sizeof( void *) * psDLLNames->iMaxCount);
- }
-
- for( int iNewIndex = psDLLNames->iIndex; iNewIndex < psDLLNames->iMaxCount; iNewIndex++)
- {
- psDLLNames->ppsDLLName[iNewIndex] = NULL;
- }
+ bSuccess = true;
}
-
- psDLLNames->ppsDLLName[psDLLNames->iIndex] = (DLLNAMEINFO *) malloc( sizeof( DLLNAMEINFO));
-
- memset( psDLLNames->ppsDLLName[psDLLNames->iIndex], 0, sizeof( DLLNAMEINFO));
+
+ return bSuccess;
}
Modified: webservices/axis/trunk/c/src/configuration/AxisConfiguration.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/AxisConfiguration.hpp?rev=387243&r1=387242&r2=387243&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/configuration/AxisConfiguration.hpp (original)
+++ webservices/axis/trunk/c/src/configuration/AxisConfiguration.hpp Mon Mar 20 08:48:48 2006
@@ -1,14 +1,11 @@
-#if WIN32
-#include <io.h>
-#else
-#include <stdio.h>
-#include <sys/types.h>
-#include <dirent.h>
-#endif
+#if !defined(__AXIS_CONFIG__)
+
+#define __AXIS_CONFIG__
#include <iostream>
#include "platforms/PlatformAutoSense.hpp"
#include "common/AxisConfig.h"
+#include "ListMethods.hpp"
#undef _DEBUG
@@ -48,13 +45,6 @@
typedef struct
{
- int iIndex;
- int iMaxCount;
- DLLNAMEINFO ** ppsDLLName;
-} DLLNAMES;
-
-typedef struct
-{
char * pszElement;
char * pszElementDescription;
char * pszConfigName;
@@ -64,28 +54,15 @@
typedef struct
{
- int iListCount;
- int iListMax;
- char ** ppszListArray;
-} FILENAMELIST;
-
-typedef struct
-{
ECONFIGTYPE eConfType;
char * pszOption;
} OPTIONLIST;
ECONFIG ReadConfigOptions( int iParamCount, char * pszParamArray[], char ** ppsDefaultParamList);
-bool CheckAxisBinDirectoryExists( char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, DLLNAMES * psDLLNames, FILENAMELIST * psFileNameList);
-const char * CreateConfigElement( DLLNAMES * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList, ECONFIGTYPE eConfigType);
-void GetHomeAndLibrary( DLLNAMES * psDLLNames, char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, FILENAMELIST * psFileNameList, char ** ppsDefaultParamList);
-void Initialise( DLLNAMES * psDLLNames, int * piConfigInfoArray, FILENAMELIST * psFileNameList, char ** ppsDefaultParamList);
-void SelectFileFromList( CHOICELIST * psChoiceList, int iChoiceCount, DLLNAMES * psDLLNames, int * piConfigInfoArray, char ** ppsDefaultParamList, FILENAMELIST * psFileNameList, char * pszAxisCpp_Deploy);
-void WriteAxisConfigFile( DLLNAMES * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList);
-bool ReadFilenamesInaDirectory( char * pszDirName, FILENAMELIST * psFileNameList);
-void AddFilenameToList( FILENAMELIST * psFileNameList, char * pszFilename);
-void Destroy( DLLNAMES * psDLLNames, FILENAMELIST * psFileNameList, char ** psDefaultParamList);
-bool StringCompare( char * pszString1, char * pszString2);
-void StringToUpper( char * pszString);
-void CreateNewDLLNamesElement( DLLNAMES * psDLLNames, FILENAMELIST * psFileNameList);
+bool CheckAxisBinDirectoryExists( char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, LIST * psLIST, LIST * psFileNameList);
+void GetHomeAndLibrary( LIST * psLIST, char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, LIST * psFileNameList, char ** ppsDefaultParamList);
+void SelectFileFromList( CHOICELIST * psChoiceList, int iChoiceCount, LIST * psLIST, int * piConfigInfoArray, char ** ppsDefaultParamList, LIST * psFileNameList, char * pszAxisCpp_Deploy);
+void AddFilenameToList( LIST * psFileNameList, char * pszFilename);
+bool FileExists( char * pszFilename);
+#endif
\ No newline at end of file
Added: webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.cpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.cpp (added)
+++ webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.cpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,112 @@
+#include "AxisConfigurationLibraries.hpp"
+
+const char * CreateConfigElement( LIST * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList, ECONFIGTYPE eConfigType)
+{
+ int iIndex = 0;
+ bool bFound = false;
+ char * pszConfigName = "<unknown name>";
+ static std::string sReturn;
+
+ while( iIndex < eConfigMax && !bFound)
+ {
+ if( psChoiceList[iIndex].eConfigType == eConfigType)
+ {
+ bFound = true;
+
+ pszConfigName = psChoiceList[iIndex].pszConfigName;
+ }
+ else
+ {
+ iIndex++;
+ }
+ }
+
+ if( bFound)
+ {
+ sReturn = "#Path to ";
+ sReturn += psChoiceList[iIndex].pszElementDescription;
+ sReturn += "\n";
+ }
+ else
+ {
+ sReturn = "#Path to an unknown element\n";
+ }
+
+ char szReturn[256];
+
+ if( piConfigInfoArray[eConfigType] != -1)
+ {
+ sprintf( szReturn, "%s:%s\n", pszConfigName, ((DLLNAMEINFO *)(psDLLNames->ppArray[piConfigInfoArray[eConfigType]]))->pszDLLFilename);
+ }
+ else
+ {
+ sprintf( szReturn, "#%s:<not set>\n", pszConfigName);
+ }
+
+ sReturn += szReturn;
+
+ return sReturn.c_str();
+}
+
+void Initialise( LIST * psDLLNames, int * piConfigInfoArray, LIST * psFileNameList, char ** ppsDefaultParamList)
+{
+ memset( psDLLNames, 0, sizeof( LIST));
+ memset( psFileNameList, 0, sizeof( LIST));
+
+ for( int iCount = 0; iCount < eConfigMax; iCount++)
+ {
+ piConfigInfoArray[iCount] = -1;
+ ppsDefaultParamList[iCount] = NULL;
+ }
+}
+
+void Destroy( LIST * psDLLNames, LIST * psFileNameList, char ** ppsDefaultParamList)
+{
+ int iCount;
+
+ for( iCount = 0; iCount < psDLLNames->iCount; iCount++)
+ {
+ free( ((DLLNAMEINFO *) psDLLNames->ppArray[iCount])->pszDLLFilename);
+ free( ((DLLNAMEINFO *) psDLLNames->ppArray[iCount])->pszDLLName);
+ free( psDLLNames->ppArray[iCount]);
+ }
+
+ for( iCount = 0; iCount < psFileNameList->iCount; iCount++)
+ {
+ free( psFileNameList->ppArray[iCount]);
+ }
+
+ free( psDLLNames->ppArray);
+ free( psFileNameList->ppArray);
+
+ for( iCount = 0; iCount < eConfigMax; iCount++)
+ {
+ if( ppsDefaultParamList[iCount] != NULL)
+ {
+ free( (void *) ppsDefaultParamList[iCount]);
+ }
+ }
+}
+
+int PopulateNewDLLNameInfo( LIST * psDLLNames, char * pszName, char * pszFilename, bool bAddToClientConfig)
+{
+ DLLNAMEINFO * psDLLNameInfo = (DLLNAMEINFO *) GetNextListElement( psDLLNames, sizeof( DLLNAMEINFO));
+
+ if( pszName != NULL)
+ {
+ psDLLNameInfo->pszDLLName = (char *) malloc( strlen( pszName) + 1);
+
+ strcpy( psDLLNameInfo->pszDLLName, pszName);
+ }
+
+ if( pszFilename != NULL)
+ {
+ psDLLNameInfo->pszDLLFilename = (char *) malloc( strlen( pszFilename) + 1);
+
+ strcpy( psDLLNameInfo->pszDLLFilename, pszFilename);
+ }
+
+ psDLLNameInfo->bAddToClientConfig = bAddToClientConfig;
+
+ return psDLLNames->iCount - 1;
+}
\ No newline at end of file
Added: webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.hpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.hpp (added)
+++ webservices/axis/trunk/c/src/configuration/AxisConfigurationLibraries.hpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,6 @@
+#include "AxisConfiguration.hpp"
+
+const char * CreateConfigElement( LIST * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList, ECONFIGTYPE eConfigType);
+void Initialise( LIST * psDLLNames, int * piConfigInfoArray, LIST * psFileNameList, char ** ppsDefaultParamList);
+void Destroy( LIST * psDLLNames, LIST * psFileNameList, char ** psDefaultParamList);
+int PopulateNewDLLNameInfo( LIST * psDLLNames, char * pszName, char * pszFilename, bool bAddToClientConfig);
Added: webservices/axis/trunk/c/src/configuration/FileFunctions.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/FileFunctions.cpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/FileFunctions.cpp (added)
+++ webservices/axis/trunk/c/src/configuration/FileFunctions.cpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,157 @@
+#include "FileFunctions.hpp"
+#include "MissingCFunctions.hpp"
+#include "AxisConfigurationLibraries.hpp"
+
+bool ReadFilenamesInaDirectory( char * pszDirName, LIST * psFileNameList)
+{
+ bool bSuccess = false;
+
+#if WIN32 // Start WINDOWS code
+#if defined(_MSC_VER) && _MSC_VER >= 1300 // Start MSVC verison number > 7.0
+ intptr_t lFindFile;
+#else // Else !(MSVC verison number > 7.0)
+ long lFindFile;
+#endif // End MSVC verison number
+ struct _finddata_t sFindData;
+
+ if( (lFindFile = _findfirst( pszDirName, &sFindData)) != -1)
+ {
+ if( sFindData.name[0] == '.' && sFindData.attrib & _A_SUBDIR)
+ {
+ bSuccess = true;
+ }
+
+ do
+ {
+ if( !(sFindData.attrib & _A_SUBDIR))
+ {
+ AddFilenameToList( psFileNameList, sFindData.name);
+ }
+ } while( _findnext( lFindFile, &sFindData) == 0);
+
+ _findclose( lFindFile);
+ }
+#else // Else !(WINDOWS code)
+ DIR * psDIR;
+ struct dirent* pDirEnt;
+ int iFilenameCount = 0;
+
+ cout << "pszDirName=" << pszDirName << endl;
+
+ if( (psDIR = opendir( pszDirName)) == NULL)
+ {
+ return bSuccess;
+ }
+
+ cout << "2" << endl;
+
+ while( (pDirEnt = readdir( psDIR)) != NULL)
+ {
+ cout << "pDirEnt->d_name=" << pDirEnt->d_name << endl;
+
+ AddFilenameToList( psFileNameList, pDirEnt->d_name);
+ }
+
+ if( closedir( psDIR) == -1)
+ {
+ return bSuccess;
+ }
+ else
+ {
+ bSuccess = true;
+ }
+#endif // End WINDOWS code
+
+ return bSuccess;
+}
+
+bool CheckAxisBinDirectoryExists( char * pszAxisCpp_Deploy, char * pszAxis_Bin, char * pszAxis_Bin_Default, LIST * psDLLNames, LIST * psFileNameList)
+{
+ bool bFound = false;
+
+ if( strlen( pszAxis_Bin) < 2)
+ {
+ strcpy( pszAxis_Bin, pszAxis_Bin_Default);
+ }
+
+ char szFilename[512];
+ char szFileDirAndName[512];
+
+ sprintf( szFilename, "%s\\%s\\*.*", pszAxisCpp_Deploy, pszAxis_Bin);
+
+ if( (bFound = ReadFilenamesInaDirectory( szFilename, psFileNameList)) == true)
+ {
+ int iIndex = 0;
+
+ do
+ {
+ char * pExtn = (char *) psFileNameList->ppArray[iIndex];
+
+ do
+ {
+ if( (pExtn = strchr( pExtn, '.')) != NULL)
+ {
+ pExtn++;
+
+#if WIN32
+ if( StringCompare( pExtn, "DLL"))
+#else
+ if( StringCompare( pExtn, "SO"))
+#endif
+ {
+ DLLNAMEINFO * psDLLNameInfo = (DLLNAMEINFO *) GetNextListElement( psDLLNames, sizeof( DLLNAMEINFO));
+
+ psDLLNameInfo->pszDLLName = (char *) malloc( strlen( (char *) psFileNameList->ppArray[iIndex]) + 1);
+
+ strcpy( psDLLNameInfo->pszDLLName, (char *) psFileNameList->ppArray[iIndex]);
+
+ StringToUpper( psDLLNameInfo->pszDLLName);
+
+ sprintf( szFileDirAndName, "%s\\%s\\%s", pszAxisCpp_Deploy, pszAxis_Bin, (char *) psFileNameList->ppArray[iIndex]);
+
+ psDLLNameInfo->pszDLLFilename = (char *) malloc( strlen( szFileDirAndName) + 1);
+
+ strcpy( psDLLNameInfo->pszDLLFilename, szFileDirAndName);
+
+ break;
+ }
+ }
+ } while( pExtn != NULL);
+
+ iIndex++;
+ } while( iIndex < psFileNameList->iCount);
+ }
+
+ if( !bFound)
+ {
+ cout << endl << "The directory " << pszAxis_Bin << " was not found." << endl << endl;
+ }
+
+ return bFound;
+}
+
+void WriteAxisConfigFile( LIST * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList)
+{
+ cout << "DLL selection complete" << endl << endl;
+
+ cout << "AxisCPP.conf file now has the following information:-" << endl;
+
+ cout << "# The comment character is '#'" << endl;
+ cout << "#Available directives are as follows" << endl;
+ cout << "#(Some of these directives may not be implemented yet)" << endl;
+ cout << "#" << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eServerLog) << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eServerWSDD) << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eClientLog) << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eClientWSDD) << endl;
+ cout << "#Node name." << endl;
+ cout << "#NodeName: <not set>" << endl << endl;
+ cout << "#Listening port." << endl;
+ cout << "#ListenPort: <not set>" << endl << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eHTTPTransport) << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eSMTPTransport) << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eXMLParser) << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eHTTPChannel) << endl;
+ cout << CreateConfigElement( psDLLNames, piConfigInfoArray, psChoiceList, eHTTPSSLChannel) << endl;
+ cout << endl;
+}
Added: webservices/axis/trunk/c/src/configuration/FileFunctions.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/FileFunctions.hpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/FileFunctions.hpp (added)
+++ webservices/axis/trunk/c/src/configuration/FileFunctions.hpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,12 @@
+#if WIN32
+#include <io.h>
+#else
+#include <stdio.h>
+#include <sys/types.h>
+#include <dirent.h>
+#endif
+
+#include "AxisConfiguration.hpp"
+
+bool ReadFilenamesInaDirectory( char * pszDirName, LIST * psFileNameList);
+void WriteAxisConfigFile( LIST * psDLLNames, int * piConfigInfoArray, CHOICELIST * psChoiceList);
Added: webservices/axis/trunk/c/src/configuration/ListMethods.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/ListMethods.cpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/ListMethods.cpp (added)
+++ webservices/axis/trunk/c/src/configuration/ListMethods.cpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,32 @@
+#include "ListMethods.hpp"
+#include "AxisConfiguration.hpp"
+
+void * GetNextListElement( LIST * psList, int iElementLength)
+{
+ if( psList->ppArray == NULL)
+ {
+ psList->iMaxCount = 1;
+
+ psList->ppArray = (void **) malloc( sizeof( void *));
+ }
+
+ if( psList->iCount >= psList->iMaxCount)
+ {
+ psList->iMaxCount = psList->iMaxCount * 2;
+
+ psList->ppArray = (void **) realloc( psList->ppArray, sizeof( void *) * psList->iMaxCount);
+
+ for( int iNewIndex = psList->iCount; iNewIndex < psList->iMaxCount; iNewIndex++)
+ {
+ psList->ppArray[iNewIndex] = NULL;
+ }
+ }
+
+ psList->ppArray[psList->iCount] = malloc( iElementLength);
+
+ memset( psList->ppArray[psList->iCount], 0, iElementLength);
+
+ psList->iCount++;
+
+ return psList->ppArray[psList->iCount - 1];
+}
\ No newline at end of file
Added: webservices/axis/trunk/c/src/configuration/ListMethods.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/ListMethods.hpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/ListMethods.hpp (added)
+++ webservices/axis/trunk/c/src/configuration/ListMethods.hpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,14 @@
+#if !defined(__AXIS_CONFIG_LIST__)
+
+#define __AXIS_CONFIG_LIST__
+
+typedef struct
+{
+ int iCount;
+ int iMaxCount;
+ void ** ppArray;
+} LIST;
+
+void * GetNextListElement( LIST * psList, int iElementLength);
+
+#endif
Added: webservices/axis/trunk/c/src/configuration/MissingCFunctions.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/MissingCFunctions.cpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/MissingCFunctions.cpp (added)
+++ webservices/axis/trunk/c/src/configuration/MissingCFunctions.cpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,49 @@
+#include "MissingCFunctions.hpp"
+
+bool StringCompare( char * pszString1, char * pszString2)
+{
+ bool bSame = false;
+
+ if( pszString1 == NULL || pszString2 == NULL)
+ {
+ return bSame;
+ }
+
+ if( strlen( pszString1) != strlen( pszString2))
+ {
+ return bSame;
+ }
+
+ if( strlen( pszString1) == 0)
+ {
+ bSame = true;
+ }
+ else
+ {
+ char * psString1 = pszString1;
+ char * psString2 = pszString2;
+
+ do
+ {
+ bSame = (toupper( *psString1++) == toupper( *psString2++));
+ } while( bSame && *psString1 != '\0');
+ }
+
+ return bSame;
+}
+
+void StringToUpper( char * pszString)
+{
+ if( pszString != NULL)
+ {
+ char * pc = pszString;
+
+ while( *pc != '\0')
+ {
+ *pc = toupper( *pc);
+
+ pc++;
+ }
+ }
+}
+
Added: webservices/axis/trunk/c/src/configuration/MissingCFunctions.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/configuration/MissingCFunctions.hpp?rev=387243&view=auto
==============================================================================
--- webservices/axis/trunk/c/src/configuration/MissingCFunctions.hpp (added)
+++ webservices/axis/trunk/c/src/configuration/MissingCFunctions.hpp Mon Mar 20 08:48:48 2006
@@ -0,0 +1,4 @@
+#include "AxisConfiguration.hpp"
+
+bool StringCompare( char * pszString1, char * pszString2);
+void StringToUpper( char * pszString);