o2on svn commit
o2on-****@lists*****
2009年 2月 9日 (月) 22:16:32 JST
Revision: 137 http://svn.sourceforge.jp/view?root=o2on&view=rev&rev=137 Author: electrolysis Date: 2009-02-09 22:16:31 +0900 (Mon, 09 Feb 2009) Log Message: ----------- é©åã«CDATAã»ã¯ã·ã§ã³ãä½ãé¢æ°ãè¨ãã Modified Paths: -------------- trunk/o2on/src.o2on/O2DatIO.cpp trunk/o2on/src.o2on/O2IMDB.cpp trunk/o2on/src.o2on/O2KeyDB.cpp trunk/o2on/src.o2on/O2Logger.cpp trunk/o2on/src.o2on/O2NodeDB.cpp trunk/o2on/src.o2on/O2Profile.cpp trunk/o2on/src.o2on/O2ReportMaker.cpp trunk/o2on/src.o2on/O2Server_HTTP_Admin.h trunk/o2on/src.o2on/dataconv.cpp trunk/o2on/src.o2on/dataconv.h Modified: trunk/o2on/src.o2on/O2DatIO.cpp =================================================================== --- trunk/o2on/src.o2on/O2DatIO.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2DatIO.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -679,9 +679,10 @@ xml += L"<url>"; xml += it->url; xml += L"</url>"EOL; - xml += L"<title><![CDATA["; - xml += it->title; - xml += L"]]></title>"EOL; + makeCDATA(it->title, tmpstr); + xml += L"<title>"; + xml += tmpstr; + xml += L"</title>"EOL; swprintf_s(tmp, 32, L"%I64u", it->size); xml += L"<size>"; xml += tmp; Modified: trunk/o2on/src.o2on/O2IMDB.cpp =================================================================== --- trunk/o2on/src.o2on/O2IMDB.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2IMDB.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -276,9 +276,10 @@ xml += profile->GetNodeNameW(); xml += L"</name>"EOL; - xml += L" <msg><![CDATA["; - xml += msg; - xml += L"]]></msg>"EOL; + makeCDATA(msg, tmpstr); + xml += L" <msg>"; + xml += tmpstr; + xml += L"</msg>"EOL; xml += L"</message>"EOL; xml += L"</messages>"EOL; @@ -329,9 +330,10 @@ xml += im.name; xml += L"</name>"EOL; - xml += L" <msg><![CDATA["; - xml += im.msg; - xml += L"]]></msg>"EOL; + makeCDATA(im.msg, tmpstr); + xml += L" <msg>"; + xml += tmpstr; + xml += L"</msg>"EOL; im.key.to_string(tmpstr); xml += L" <key>"; @@ -565,9 +567,10 @@ } if (cond.mask & IM_XMLELM_MSG) { - xml += L" <msg><![CDATA["; - xml += im.msg; - xml += L"]]></msg>"EOL; + makeCDATA(im.msg, tmpstr); + xml += L" <msg>"; + xml += tmpstr; + xml += L"</msg>"EOL; } if (cond.mask & IM_XMLELM_KEY) { Modified: trunk/o2on/src.o2on/O2KeyDB.cpp =================================================================== --- trunk/o2on/src.o2on/O2KeyDB.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2KeyDB.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -634,15 +634,17 @@ } if (cond.mask & KEY_XMLELM_TITLE) { - xml += L" <title><![CDATA["; - xml += key.title; - xml += L"]]></title>"EOL; + makeCDATA(key.title, tmpstr); + xml += L" <title>"; + xml += tmpstr; + xml += L"</title>"EOL; } if (cond.mask & KEY_XMLELM_NOTE) { - xml += L" <note><![CDATA["; - xml += key.note; - xml += L"]]></note>"EOL; + makeCDATA(key.note, tmpstr); + xml += L" <note>"; + xml += tmpstr; + xml += L"</note>"EOL; } if (cond.mask & KEY_XMLELM_IDKEYHASH) { Modified: trunk/o2on/src.o2on/O2Logger.cpp =================================================================== --- trunk/o2on/src.o2on/O2Logger.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2Logger.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -365,9 +365,10 @@ } if (cond.mask & LOG_XMLELM_MODULE) { - xml += L" <module><![CDATA["; - xml += rec.module; - xml += L"]]></module>"EOL; + makeCDATA(rec.module, tmpstr); + xml += L" <module>"; + xml += tmpstr; + xml += L"</module>"EOL; } if (cond.mask & LOG_XMLELM_IP) { @@ -395,9 +396,10 @@ } if (cond.mask & LOG_XMLELM_MSG) { - xml += L" <msg><![CDATA["; - xml += rec.msg; - xml += L"]]></msg>"EOL; + makeCDATA(rec.msg, tmpstr); + xml += L" <msg>"; + xml += tmpstr; + xml += L"</msg>"EOL; } xml += L"</log>"EOL; Modified: trunk/o2on/src.o2on/O2NodeDB.cpp =================================================================== --- trunk/o2on/src.o2on/O2NodeDB.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2NodeDB.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -351,9 +351,10 @@ xml += L"</port>"EOL; } if (cond.mask & NODE_XMLELM_NAME) { - xml += L" <name><![CDATA["; - xml += node.name; - xml += L"]]></name>"EOL; + makeCDATA(node.name, tmpstr); + xml += L" <name>"; + xml += tmpstr; + xml += L"</name>"EOL; } if (cond.mask & NODE_XMLELM_PUBKEY) { node.pubkey.to_string(tmpstr); Modified: trunk/o2on/src.o2on/O2Profile.cpp =================================================================== --- trunk/o2on/src.o2on/O2Profile.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2Profile.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -1186,18 +1186,18 @@ //NodeName if (cond.mask & PROF_XMLELM_NAME) { - //convertGTLT(NodeName, tmpstr); - xml += L" <nodename><![CDATA["; - xml += NodeNameW; - xml += L"]]></nodename>"EOL; + makeCDATA(NodeNameW, tmpstr); + xml += L" <nodename>"; + xml += tmpstr; + xml += L"</nodename>"EOL; } //Comment if (cond.mask & PROF_XMLELM_COMMENT) { - //convertGTLT(Comment, tmpstr); - xml += L" <comment><![CDATA["; - xml += Comment; - xml += L"]]></comment>"EOL; + makeCDATA(Comment, tmpstr); + xml += L" <comment>"; + xml += tmpstr; + xml += L"</comment>"EOL; } //P2PPort @@ -1242,23 +1242,26 @@ //DBDir if (cond.mask & PROF_XMLELM_DBDIR) { - xml += L" <DBDir><![CDATA["; - xml += DBDirW; - xml += L"]]></DBDir>"EOL; + makeCDATA(DBDirW, tmpstr); + xml += L" <DBDir>"; + xml += tmpstr; + xml += L"</DBDir>"EOL; } //CacheRoot if (cond.mask & PROF_XMLELM_CACHEROOT) { - xml += L" <CacheRoot><![CDATA["; - xml += CacheRootW; - xml += L"]]></CacheRoot>"EOL; + makeCDATA(CacheRootW, tmpstr); + xml += L" <CacheRoot>"; + xml += tmpstr; + xml += L"</CacheRoot>"EOL; } //AdminRoot if (cond.mask & PROF_XMLELM_ADMINROOT) { - xml += L" <AdminRoot><![CDATA["; - xml += AdminRootW; - xml += L"]]></AdminRoot>"EOL; + makeCDATA(AdminRootW, tmpstr); + xml += L" <AdminRoot>"; + xml += tmpstr; + xml += L"</AdminRoot>"EOL; } //AdminBrowserType @@ -1270,33 +1273,37 @@ //AdminBrowserPath if (cond.mask & PROF_XMLELM_ADMIN_BROWSER_PATH) { - xml += L" <AdminBrowserPath><![CDATA["; - xml += AdminBrowserPath; - xml += L"]]></AdminBrowserPath>"EOL; + makeCDATA(AdminBrowserPath, tmpstr); + xml += L" <AdminBrowserPath>"; + xml += tmpstr; + xml += L"</AdminBrowserPath>"EOL; } //UPnPAdapterName if (cond.mask & PROF_XMLELM_UPNP_ADAPTERNAME) { ascii2unicode(UPnPAdapterName, tmpstr); - xml += L" <UPnPAdapterName><![CDATA["; + makeCDATA(tmpstr, tmpstr); + xml += L" <UPnPAdapterName>"; xml += tmpstr; - xml += L"]]></UPnPAdapterName>"EOL; + xml += L"</UPnPAdapterName>"EOL; } //UPnPLocation if (cond.mask & PROF_XMLELM_UPNP_LOCATION) { ascii2unicode(UPnPLocation, tmpstr); - xml += L" <UPnPLocation><![CDATA["; + makeCDATA(tmpstr, tmpstr); + xml += L" <UPnPLocation>"; xml += tmpstr; - xml += L"]]></UPnPLocation>"EOL; + xml += L"</UPnPLocation>"EOL; } //UPnPServiceId if (cond.mask & PROF_XMLELM_UPNP_SERVICEID) { ascii2unicode(UPnPServiceId, tmpstr); - xml += L" <UPnPServiceId><![CDATA["; + makeCDATA(tmpstr, tmpstr); + xml += L" <UPnPServiceId>"; xml += tmpstr; - xml += L"]]></UPnPServiceId>"EOL; + xml += L"</UPnPServiceId>"EOL; } //limits Modified: trunk/o2on/src.o2on/O2ReportMaker.cpp =================================================================== --- trunk/o2on/src.o2on/O2ReportMaker.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2ReportMaker.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -189,6 +189,7 @@ swprintf(publishper, 32, L"%.1f%% (%I64u)", (double)pubnum/datnum*100.0, pubnum); } + wstring tmpstr; wstring xml; xml += L"<?xml version=\"1.0\" encoding=\""; xml += _T(DEFAULT_XML_CHARSET); @@ -201,9 +202,10 @@ // if (pub) { - xml += L"<name><![CDATA["; - xml += Profile->GetNodeNameW(); - xml += L"]]></name>"EOL; + makeCDATA(Profile->GetNodeNameW(), tmpstr); + xml += L"<name>"; + xml += tmpstr; + xml += L"</name>"EOL; xml += L"<category>"EOL; xml += L"<table>"EOL; // @@ -218,30 +220,34 @@ // xml += L"<tr>"EOL; xml_AddElement(xml, L"td", L"type=\"h\"", L"Rg"); - xml += L" <pre><![CDATA["; - xml += Profile->GetComment(); - xml += L"]]></pre>"EOL; + makeCDATA(Profile->GetComment(), tmpstr); + xml += L" <pre>"; + xml += tmpstr; + xml += L"</pre>"EOL; xml += L"</tr>"EOL; // if (Profile->IsPublicRecentDat()) { xml += L"<tr>"EOL; xml_AddElement(xml, L"td", L"type=\"h\"", L"{ð"); - xml += L"<pre><![CDATA["; + xml += L"<pre>"; O2KeyList recent; Server_Proxy->GetRecentDatList(recent); + tmpstr.erase(); for (O2KeyListIt it = recent.begin(); it != recent.end(); it++) { wchar_t timestr[TIMESTR_BUFF_SIZE]; struct tm tm; localtime_s(&tm, &it->date); wcsftime(timestr, TIMESTR_BUFF_SIZE, L"%Y/%m/%d %H:%M:%S", &tm); - xml += timestr; - xml += L" [ "; - xml += it->url; - xml += L" ] "; - xml += it->title; - xml += L"\r\n"; + tmpstr += timestr; + tmpstr += L" [ "; + tmpstr += it->url; + tmpstr += L" ] "; + tmpstr += it->title; + tmpstr += L"\r\n"; } - xml += L"]]></pre>"EOL; + makeCDATA(tmpstr, tmpstr); + xml += tmpstr; + xml += L"</pre>"EOL; xml += L"</tr>"EOL; } xml += L"</table>"EOL; Modified: trunk/o2on/src.o2on/O2Server_HTTP_Admin.h =================================================================== --- trunk/o2on/src.o2on/O2Server_HTTP_Admin.h 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/O2Server_HTTP_Admin.h 2009-02-09 13:16:31 UTC (rev 137) @@ -1654,13 +1654,15 @@ void GET_xml_sql(O2SocketSession *ss) { wstring str; - wstring escaped; + wstring tmpstr; str += L"<?str version=\"1.0\" encoding=\""; str += _T(DEFAULT_XML_CHARSET); str += L"\"?>"; str += L"<result>"; - escapeCDATA(sql, escaped); - str += L"<sql><![CDATA["+ escaped +L"]]></sql>"; + makeCDATA(sql, tmpstr); + str += L"<sql>"; + str += tmpstr; + str += L"</sql>"; if (!sqlresult.empty()) { wchar_t tmp[16]; swprintf_s(tmp, 16, L"%u", sqlresult.size()-1); @@ -1671,11 +1673,17 @@ for (size_t i = 0; i < sqlresult.size(); i++) { str += L"<row>"; for (size_t j = 0; j < sqlresult[i].size(); j++) { - escapeCDATA(sqlresult[i][j], escaped); - if (i == 0) - str += L"<name><![CDATA[" + escaped + L"]]></name>"; - else - str += L"<col><![CDATA[" + escaped + L"]]></col>"; + makeCDATA(sqlresult[i][j], tmpstr); + if (i == 0) { + str += L"<name>"; + str += tmpstr; + str += L"</name>"; + } + else { + str += L"<col>"; + str += tmpstr; + str += L"</col>"; + } } str += L"</row>"; } Modified: trunk/o2on/src.o2on/dataconv.cpp =================================================================== --- trunk/o2on/src.o2on/dataconv.cpp 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/dataconv.cpp 2009-02-09 13:16:31 UTC (rev 137) @@ -810,7 +810,7 @@ // --------------------------------------------------------------------------- // convertGTLT -// escapeCDATA +// makeCDATA // --------------------------------------------------------------------------- void convertGTLT(const string &in, string &out) { @@ -838,25 +838,33 @@ out = t.str(); } -void escapeCDATA(const string &in, string &out) +void makeCDATA(const string &in, string &out) { - out = string(in); + string tmp = in; string from = "]]>"; string to = "]]]]><![CDATA[>"; - for (size_t pos = 0; (pos = out.find(from, pos)) != string::npos; pos += to.size()) - out.replace(pos, from.size(), to); + for (size_t pos = 0; (pos = tmp.find(from, pos)) != string::npos; pos += to.size()) + tmp.replace(pos, from.size(), to); + + out = "<![CDATA["; + out += tmp; + out += "]]>"; } -void escapeCDATA(const wstring &in, wstring &out) +void makeCDATA(const wstring &in, wstring &out) { - out = wstring(in); + wstring tmp = in; wstring from = L"]]>"; wstring to = L"]]]]><![CDATA[>"; - for (size_t pos = 0; (pos = out.find(from, pos)) != string::npos; pos += to.size()) - out.replace(pos, from.size(), to); + for (size_t pos = 0; (pos = tmp.find(from, pos)) != string::npos; pos += to.size()) + tmp.replace(pos, from.size(), to); + + out = L"<![CDATA["; + out += tmp; + out += L"]]>"; } @@ -869,6 +877,8 @@ void xml_AddElement(wstring &xml, const wchar_t *tag, const wchar_t *attr, const wchar_t *val, bool escape) { + wstring tmp; + xml += L'<'; xml += tag; if (attr) { @@ -876,9 +886,12 @@ xml += attr; } xml += L'>'; - if (escape) xml += L"<![CDATA["; - xml += val; - if (escape) xml += L"]]>"; + if (escape) { + makeCDATA(val, tmp); + xml += tmp; + } + else + xml += val; xml += L"</"; xml += tag; xml += L">\r\n"; Modified: trunk/o2on/src.o2on/dataconv.h =================================================================== --- trunk/o2on/src.o2on/dataconv.h 2009-02-03 16:54:13 UTC (rev 136) +++ trunk/o2on/src.o2on/dataconv.h 2009-02-09 13:16:31 UTC (rev 137) @@ -78,8 +78,8 @@ void convertGTLT(const string &in, string &out); void convertGTLT(const wstring &in, wstring &out); -extern void escapeCDATA(const string &in, string &out); -extern void escapeCDATA(const wstring &in, wstring &out); +extern void makeCDATA(const string &in, string &out); +extern void makeCDATA(const wstring &in, wstring &out); extern void xml_AddElement(wstring &xml, const wchar_t *tag, const wchar_t *attr, const wchar_t *val, bool escape = false); extern void xml_AddElement(wstring &xml, const wchar_t *tag, const wchar_t *attr, int val);