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 |
{ |