diff --git a/oam/oamcpp/liboamcpp.cpp b/oam/oamcpp/liboamcpp.cpp index 02c985b6a..6a5038872 100644 --- a/oam/oamcpp/liboamcpp.cpp +++ b/oam/oamcpp/liboamcpp.cpp @@ -8336,7 +8336,7 @@ namespace oam /****************************************************************************************** * @brief changeMyCnf * - * purpose: change my.cnf + * purpose: change my.cnf and add if value is not present * ******************************************************************************************/ bool Oam::changeMyCnf( std::string paramater, std::string value ) @@ -8351,24 +8351,39 @@ namespace oam vector lines; char line[200]; string buf; + bool foundIt = false; while (file.getline(line, 200)) { buf = line; - // change port - if ( paramater == "port" ) - { - string::size_type pos = buf.find(paramater,0); - if ( pos == 0 ) { - string::size_type pos = buf.find("=",0); - if ( pos != string::npos ) - buf = "port = " + value; - } + string::size_type pos = buf.find(paramater,0); + if ( pos == 0 ) { + string::size_type pos = buf.find("=",0); + if ( pos != string::npos ) + buf = paramater + " = " + value; + foundIt = true; } - + //output to temp file lines.push_back(buf); } - + if (!foundIt) + { + // Back to beginning of file + file.clear(); + file.seekg(0, ios::beg); + lines.clear(); + while (file.getline(line, 200)) + { + buf = line; + string::size_type pos = buf.find("[mysqld]",0); + if ( pos != string::npos ) { + lines.push_back(buf); + buf = paramater + " = " + value; + } + //output to temp file + lines.push_back(buf); + } + } file.close(); unlink (mycnfFile.c_str()); ofstream newFile (mycnfFile.c_str()); diff --git a/oamapps/postConfigure/postConfigure.cpp b/oamapps/postConfigure/postConfigure.cpp index 2d2115ce0..863378d2e 100644 --- a/oamapps/postConfigure/postConfigure.cpp +++ b/oamapps/postConfigure/postConfigure.cpp @@ -4858,6 +4858,7 @@ bool storageSetup(bool amazonInstall) void setSystemName() { + Oam oam; //setup System Name try { systemName = sysConfig->getConfig(SystemSection, "SystemName"); @@ -4880,6 +4881,7 @@ void setSystemName() try { sysConfig->setConfig(SystemSection, "SystemName", systemName); + oam.changeMyCnf( "server_audit_syslog_info", systemName ); } catch(...) { diff --git a/tools/setConfig/main.cpp b/tools/setConfig/main.cpp index e463f0783..f389492b9 100644 --- a/tools/setConfig/main.cpp +++ b/tools/setConfig/main.cpp @@ -129,7 +129,13 @@ int main(int argc, char** argv) if (xflg) cf->delConfig(argv[optind + 0], argv[optind + 1]); else + { cf->setConfig(argv[optind + 0], argv[optind + 1], argv[optind + 2]); + if (strcmp(argv[optind + 1],"SystemName") == 0) + { + oam.changeMyCnf( "server_audit_syslog_info", argv[optind + 2] ); + } + } cf->write(); if (dflg || serverInstallType == oam::INSTALL_COMBINE_DM_UM_PM)