Option::Instance()->Get("FCPHost",fcphost);\r
Option::Instance()->Get("FProxyPort",fproxyport);\r
\r
- if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="shutdown")\r
+ if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="shutdown" && ValidateFormPassword(queryvars))\r
{\r
m_log->trace("HomePage::GeneratePage requested shutdown");\r
((FMSApp *)&FMSApp::instance())->Terminate();\r
content+="</b><br>";\r
\r
bool showgenericupdate=true;\r
- SQLite3DB::Statement st=m_db->Prepare("SELECT Major, Minor, Release, PageKey FROM tblFMSVersion ORDER BY Major DESC, Minor DESC, Release DESC;");\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT Major, Minor, Release, PageKey FROM tblFMSVersion ORDER BY Major DESC, Minor DESC, Release DESC LIMIT 1;");\r
st.Step();\r
if(st.RowReturned())\r
{\r
- std::string currentmajor=VERSION_MAJOR;\r
- std::string currentminor=VERSION_MINOR;\r
- std::string currentrelease=VERSION_RELEASE;\r
- std::string major="";\r
- std::string minor="";\r
- std::string release="";\r
+ int major=0;\r
+ int minor=0;\r
+ int release=0;\r
+ int currentmajor=0;\r
+ int currentminor=0;\r
+ int currentrelease=0;\r
std::string freesite="";\r
- st.ResultText(0,major);\r
- st.ResultText(1,minor);\r
- st.ResultText(2,release);\r
+ std::string majorstr="";\r
+ std::string minorstr="";\r
+ std::string releasestr="";\r
+\r
+ StringFunctions::Convert(VERSION_MAJOR,currentmajor);\r
+ StringFunctions::Convert(VERSION_MINOR,currentminor);\r
+ StringFunctions::Convert(VERSION_RELEASE,currentrelease);\r
+\r
+ st.ResultInt(0,major);\r
+ st.ResultInt(1,minor);\r
+ st.ResultInt(2,release);\r
st.ResultText(3,freesite);\r
\r
+ StringFunctions::Convert(major,majorstr);\r
+ StringFunctions::Convert(minor,minorstr);\r
+ StringFunctions::Convert(release,releasestr);\r
+\r
if(currentmajor<major || (currentmajor==major && currentminor<minor) || (currentmajor==major && currentminor==minor && currentrelease<release))\r
{\r
- content+="<b>You are running an old version of FMS. Please update here: <a href=\"http://"+fcphost+":"+fproxyport+"/"+freesite+"\">FMS "+major+"."+minor+"."+release+"</a></b><br>";\r
+ content+="<b>You are running an old version of FMS. Please update here: <a href=\"http://"+fcphost+":"+fproxyport+"/"+freesite+"\">FMS "+majorstr+"."+minorstr+"."+releasestr+"</a></b><br>";\r
+ content+="You can see the release info <a href=\"versioninfo.htm?Major="+majorstr+"&Minor="+minorstr+"&Release="+releasestr+"\">here</a><br>";\r
showgenericupdate=false;\r
}\r
+ else\r
+ {\r
+ content+="<a href=\"versioninfo.htm\">Release info</a><br>";\r
+ }\r
\r
}\r
\r
if(showgenericupdate)\r
{\r
- content+="Check for new versions at the <a href=\"http://"+fcphost+":"+fproxyport+"/USK@0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/60/\">FMS Freesite</a><br>";\r
+ content+="Check for new versions at the <a href=\"http://"+fcphost+":"+fproxyport+"/"+FMS_FREESITE_USK+"\">FMS Freesite</a><br>";\r
}\r
\r
content+="Use these pages to administer your FMS installation.";\r
\r
content+="<p class=\"paragraph\">";\r
content+="<form name=\"frmshutdown\" method=\"POST\">";\r
+ content+=CreateFormPassword();\r
content+="<input type=\"hidden\" name=\"formaction\" value=\"shutdown\">";\r
content+="<input type=\"submit\" value=\"Shutdown FMS\">";\r
content+="</form>";\r