webig.patch
| b/code/ryzom/client/src/client_cfg.cpp | ||
|---|---|---|
| 426 | 426 |
PatchUrl = ""; |
| 427 | 427 |
PatchVersion = ""; |
| 428 | 428 |
PatchServer = ""; |
| 429 |
RingReleaseNotePath = "http://atys.ryzom.com/releasenotes_ring/index.php"; |
|
| 430 |
ReleaseNotePath = "http://atys.ryzom.com/releasenotes/index.php"; |
|
| 429 | ||
| 430 |
WebIgMainDomain = "atys.ryzom.com"; |
|
| 431 |
WebIgTrustedDomains.push_back(WebIgMainDomain); |
|
| 432 | ||
| 433 |
RingReleaseNotePath = "http://"+WebIgMainDomain+"/releasenotes_ring/index.php"; |
|
| 434 |
ReleaseNotePath = "http://"+WebIgMainDomain+"/releasenotes/index.php"; |
|
| 435 | ||
| 431 | 436 | |
| 432 | 437 |
/////////////// |
| 433 | 438 |
// ANIMATION // |
| ... | ... | |
| 1040 | 1045 |
READ_STRING_DEV(ReleaseNotePath) |
| 1041 | 1046 |
READ_STRING_FV(PatchServer) |
| 1042 | 1047 | |
| 1048 |
//////////////////////// |
|
| 1049 |
// WEBIG // |
|
| 1050 |
READ_STRING_DEV(WebIgMainDomain); |
|
| 1051 |
READ_STRINGVECTOR_FV(WebIgTrustedDomains); |
|
| 1052 | ||
| 1043 | 1053 |
/////////////// |
| 1044 | 1054 |
// ANIMATION // |
| 1045 | 1055 |
// AnimatedAngleThreshold |
| b/code/ryzom/client/src/client_cfg.h | ||
|---|---|---|
| 292 | 292 |
std::string RingReleaseNotePath; |
| 293 | 293 |
std::string ReleaseNotePath; |
| 294 | 294 | |
| 295 |
std::string WebIgMainDomain; |
|
| 296 |
std::vector<string> WebIgTrustedDomains; |
|
| 297 | ||
| 295 | 298 | |
| 296 | 299 |
/////////////// |
| 297 | 300 |
// ANIMATION // |
| b/code/ryzom/client/src/interface_v3/action_handler_ui.cpp | ||
|---|---|---|
| 416 | 416 |
nlwarning("%s is not a group html", window.c_str());
|
| 417 | 417 |
return; |
| 418 | 418 |
} |
| 419 |
pGH->setURL("http://atys.ryzom.com/start/index.php?app="+webapp);
|
|
| 419 |
pGH->setURL("http://"+ClientCfg.WebIgMainDomain+"/start/index.php?app="+webapp);
|
|
| 420 | 420 |
} |
| 421 | 421 |
} |
| 422 | 422 |
else |
| b/code/ryzom/client/src/interface_v3/group_html.cpp | ||
|---|---|---|
| 62 | 62 | |
| 63 | 63 |
CGroupHTML *CGroupHTML::_ConnectingLock = NULL; |
| 64 | 64 |
extern CActionsContext ActionsContext; |
| 65 | 65 | |
| 66 |
// Check if domain is on TrustedDomain |
|
| 67 |
bool CGroupHTML::isTrustedDomain(const string &domain) {
|
|
| 68 |
vector<string>::iterator it; |
|
| 69 |
it = find (ClientCfg.WebIgTrustedDomains.begin(), ClientCfg.WebIgTrustedDomains.end(), domain); |
|
| 70 |
return it != ClientCfg.WebIgTrustedDomains.end(); |
|
| 71 |
} |
|
| 72 | ||
| 66 | 73 |
// Get an url and return the local filename with the path where the url image should be |
| 67 | 74 |
string CGroupHTML::localImageName(const string &url) |
| 68 | 75 |
{
|
| ... | ... | |
| 215 | 222 | |
| 216 | 223 |
void CGroupHTML::initBnpDownload() |
| 217 | 224 |
{
|
| 225 |
if (!_TrustedDomain) |
|
| 226 |
return; |
|
| 227 |
|
|
| 218 | 228 |
#ifdef LOG_DL |
| 219 | 229 |
nlwarning("Init Bnp Download");
|
| 220 | 230 |
#endif |
| ... | ... | |
| 452 | 496 |
// for (i=0; i<(uint)len; i++) |
| 453 | 497 |
// inputString[i] = buf[i]; |
| 454 | 498 | |
| 455 |
if (_ParsingLua) |
|
| 499 |
if (_ParsingLua && _TrustedDomain)
|
|
| 456 | 500 |
{
|
| 457 | 501 |
// we are parsing a lua script |
| 458 | 502 |
_LuaScript += inputString; |
| ... | ... | |
| 515 | 559 |
// *************************************************************************** |
| 516 | 560 | |
| 517 | 561 |
void CGroupHTML::addLink (uint element_number, uint /* attribute_number */, HTChildAnchor *anchor, const BOOL *present, const char **value) |
| 518 |
{
|
|
| 562 |
{
|
|
| 519 | 563 |
if (_Browsing) |
| 520 | 564 |
{
|
| 521 | 565 |
if (element_number == HTML_A) |
| ... | ... | |
| 523 | 567 |
if (present[MY_HTML_A_HREF] && value[MY_HTML_A_HREF]) |
| 524 | 568 |
{
|
| 525 | 569 |
string suri = value[MY_HTML_A_HREF]; |
| 526 |
if(suri.find("ah:") == 0)
|
|
| 570 |
if(_TrustedDomain && suri.find("ah:") == 0)
|
|
| 527 | 571 |
{
|
| 528 | 572 |
// in ah: command we don't respect the uri standard so the HTAnchor_address doesn't work correctly |
| 529 | 573 |
_Link.push_back (suri); |
| 530 | 574 |
} |
| ... | ... | |
| 527 | 571 |
{
|
| 528 | 572 |
// in ah: command we don't respect the uri standard so the HTAnchor_address doesn't work correctly |
| 529 | 573 |
_Link.push_back (suri); |
| 530 | 574 |
} |
| 531 |
else if (suri[0] == '#') |
|
| 575 |
else if (_TrustedDomain && suri[0] == '#')
|
|
| 532 | 576 |
{
|
| 533 | 577 |
// Direct url (hack for lua beginElement) |
| 534 | 578 |
_Link.push_back (suri.substr(1)); |
| ... | ... | |
| 820 | 884 |
_TextColor.push_back(LinkColor); |
| 821 | 885 |
_GlobalColor.push_back(LinkColorGlobalColor); |
| 822 | 886 |
_A.push_back(true); |
| 823 | 887 | |
| 824 | 888 |
// Quick help |
| 825 |
if (present[MY_HTML_A_Z_ACTION_SHORTCUT] && value[MY_HTML_A_Z_ACTION_SHORTCUT]) |
|
| 889 |
if (_TrustedDomain && present[MY_HTML_A_Z_ACTION_SHORTCUT] && value[MY_HTML_A_Z_ACTION_SHORTCUT])
|
|
| 826 | 890 |
{
|
| 827 | 891 |
// Get the action category |
| 828 | 892 |
string category; |
| ... | ... | |
| 833 | 897 |
string params; |
| 834 | 898 |
if (present[MY_HTML_A_Z_ACTION_PARAMS] && value[MY_HTML_A_Z_ACTION_PARAMS]) |
| 835 | 899 |
params = value[MY_HTML_A_Z_ACTION_PARAMS]; |
| 836 | ||
| 900 |
|
|
| 837 | 901 |
// Get the action descriptor |
| 838 | 902 |
CActionsManager *actionManager = ActionsContext.getActionsManager (category); |
| 839 | 903 |
if (actionManager) |
| ... | ... | |
| 1532 | 1686 |
_IgnoreText = false; |
| 1533 | 1687 |
break; |
| 1534 | 1688 |
case HTML_OBJECT: |
| 1535 |
if (_ObjectType=="application/ryzom-data") |
|
| 1536 |
{
|
|
| 1537 |
if (!_ObjectData.empty()) |
|
| 1689 |
if (_TrustedDomain) {
|
|
| 1690 |
if (_ObjectType=="application/ryzom-data") |
|
| 1538 | 1691 |
{
|
| ... | ... | |
| 1538 | 1691 |
{
|
| 1539 |
if (addBnpDownload(_ObjectData, _ObjectAction, _ObjectScript, _ObjectMD5Sum))
|
|
| 1692 |
if (!_ObjectData.empty())
|
|
| 1540 | 1693 |
{
|
| ... | ... | |
| 1540 | 1693 |
{
|
| 1541 |
CInterfaceManager *pIM = CInterfaceManager::getInstance(); |
|
| 1542 |
pIM->executeLuaScript(_ObjectScript, true); |
|
| 1694 |
if (addBnpDownload(_ObjectData, _ObjectAction, _ObjectScript, _ObjectMD5Sum)) |
|
| 1695 |
{
|
|
| 1696 |
CInterfaceManager *pIM = CInterfaceManager::getInstance(); |
|
| 1697 |
pIM->executeLuaScript(_ObjectScript, true); |
|
| 1698 |
} |
|
| 1699 |
_ObjectScript = ""; |
|
| 1543 | 1700 |
} |
| ... | ... | |
| 1543 | 1700 |
} |
| 1544 |
_ObjectScript = ""; |
|
| 1545 | 1701 |
} |
| ... | ... | |
| 1545 | 1701 |
} |
| 1702 |
_Object = false; |
|
| 1546 | 1703 |
} |
| ... | ... | |
| 1546 | 1703 |
} |
| 1547 |
_Object = false;
|
|
| 1704 |
break;
|
|
| 1548 | 1705 |
} |
| 1549 | 1706 |
} |
| 1550 | 1707 |
} |
| ... | ... | |
| 1556 | 1713 |
if (stricmp(str.c_str(), "lua") == 0) |
| 1557 | 1714 |
{
|
| 1558 | 1715 |
// we receive an embeded lua script |
| 1559 |
_ParsingLua = true;
|
|
| 1716 |
_ParsingLua = _TrustedDomain; // Only parse lua if TrustedDomain
|
|
| 1560 | 1717 |
_LuaScript = ""; |
| 1561 | 1718 |
} |
| 1562 | 1719 |
} |
| ... | ... | |
| 1567 | 1724 |
string str(buffer, buffer+length); |
| 1568 | 1725 |
if (stricmp(str.c_str(), "lua") == 0) |
| 1569 | 1726 |
{
|
| 1570 |
if (_ParsingLua) |
|
| 1727 |
if (_ParsingLua && _TrustedDomain)
|
|
| 1571 | 1728 |
{
|
| 1572 | 1729 |
_ParsingLua = false; |
| 1573 | 1730 |
// execute the embeded lua script |
| ... | ... | |
| 2894 | 3077 | |
| 2895 | 3078 |
// Init LibWWW |
| 2896 | 3079 |
initLibWWW(); |
| 2897 |
setCurrentDomain(finalUrl);
|
|
| 3080 |
_TrustedDomain = isTrustedDomain(setCurrentDomain(finalUrl));
|
|
| 2898 | 3081 | |
| 2899 | 3082 |
// Get the final URL |
| 2900 | 3083 |
C3WSmartPtr uri = HTParse(finalUrl.c_str(), NULL, PARSE_ALL); |
| ... | ... | |
| 3045 | 3228 | |
| 3046 | 3229 |
// Init LibWWW |
| 3047 | 3230 |
initLibWWW(); |
| 3048 |
setCurrentDomain(_URL);
|
|
| 3231 |
_TrustedDomain = isTrustedDomain(setCurrentDomain(_URL));
|
|
| 3049 | 3232 | |
| 3050 | 3233 |
// Get the final URL |
| 3051 | 3234 |
C3WSmartPtr uri = HTParse(_URL.c_str(), NULL, PARSE_ALL); |
| b/code/ryzom/client/src/interface_v3/group_html.h | ||
|---|---|---|
| 281 | 290 |
// Current URL |
| 282 | 291 |
std::string _URL; |
| 283 | 292 | |
| 293 |
// Current DOMAIN |
|
| 294 |
bool _TrustedDomain; |
|
| 295 | ||
| 284 | 296 |
// Title prefix |
| 285 | 297 |
ucstring _TitlePrefix; |
| 286 | 298 | |
| ... | ... | |
| 579 | 600 |
void checkImageDownload(); |
| 580 | 601 |
void addImageDownload(const std::string &url, CViewBase *img); |
| 581 | 602 |
std::string localImageName(const std::string &url); |
| 603 |
|
|
| 604 |
bool isTrustedDomain(const std::string &domain); |
|
| 582 | 605 | |
| 583 | 606 | |
| 584 | 607 | |
| b/code/ryzom/client/src/interface_v3/group_html_webig.cpp | ||
|---|---|---|
| 203 | 203 |
nlSleep(1*60*1000); |
| 204 | 204 |
while (true) |
| 205 | 205 |
{
|
| 206 |
string url = "http://atys.ryzom.com/start/index.php?app=notif&rnd="+randomString(); |
|
| 207 |
//string url = "http://ryapp.bmsite.net/app_mail.php?page=ajax/inbox/unread&rnd="+randomString(); |
|
| 206 |
string url = "http://"+ClientCfg.WebIgMainDomain+"/start/index.php?app=notif&rnd="+randomString(); |
|
| 208 | 207 |
addWebIGParams(url); |
| 209 | 208 |
get(url); |
| 210 | 209 |
nlSleep(10*60*1000); |
| b/code/ryzom/client/src/libwww.cpp | ||
|---|---|---|
| 520 | 520 | |
| 521 | 521 |
// *************************************************************************** |
| 522 | 522 | |
| 523 |
void setCurrentDomain(const std::string &url)
|
|
| 523 |
const std::string &setCurrentDomain(const std::string &url)
|
|
| 524 | 524 |
{
|
| 525 | 525 |
if(url.find("http://") == 0)
|
| 526 | 526 |
{
|
| ... | ... | |
| 532 | 532 |
HTTPCurrentDomain.clear(); |
| 533 | 533 |
// nlinfo("****cd: clear the domain");
|
| 534 | 534 |
} |
| 535 |
return HTTPCurrentDomain; |
|
| 535 | 536 |
} |
| 536 | 537 | |
| 537 | 538 |
void initLibWWW() |
| b/code/ryzom/client/src/libwww.h | ||
|---|---|---|
| 35 | 35 |
void initLibWWW(); |
| 36 | 36 | |
| 37 | 37 |
// Get an url and setup a local domain |
| 38 |
void setCurrentDomain(const std::string &url);
|
|
| 38 |
const std::string &setCurrentDomain(const std::string &url);
|
|
| 39 | 39 | |
| 40 | 40 |
extern std::string CurrentCookie; |
| 41 | 41 | |
| b/code/ryzom/client/src/net_manager.cpp | ||
|---|---|---|
| 3253 | 3253 |
if(i != digitMaxEnd) |
| 3254 | 3254 |
{
|
| 3255 | 3255 |
ucstring web_app = contentStr.substr(digitStart, i-digitStart); |
| 3256 |
contentStr = ucstring("http://atys.ryzom.com/start/")+web_app+ucstring(".php?")+contentStr.substr(i+1);
|
|
| 3256 |
contentStr = ucstring("http://"+ClientCfg.WebIgMainDomain+"/start/")+web_app+ucstring(".php?")+contentStr.substr(i+1);
|
|
| 3257 | 3257 |
} |
| 3258 | 3258 |
else |
| 3259 | 3259 |
{
|