| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 Eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 | 127 |
| 128 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) | 128 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) |
| 129 { | 129 { |
| 130 int32_t count; | 130 int32_t count; |
| 131 message >> count; | 131 message >> count; |
| 132 | 132 |
| 133 std::vector<SubscriptionDescription> result; | 133 std::vector<SubscriptionDescription> result; |
| 134 for (int32_t i = 0; i < count; i++) | 134 for (int32_t i = 0; i < count; i++) |
| 135 { | 135 { |
| 136 SubscriptionDescription description; | 136 SubscriptionDescription description; |
| 137 std::string url; | 137 message >> description.url; |
| 138 message >> url; | 138 message >> description.title; |
| 139 description.url = ToUtf16String(url); | 139 message >> description.specialization; |
| 140 std::string title; | |
| 141 message >> title; | |
| 142 description.title = ToUtf16String(title); | |
| 143 std::string specialization; | |
| 144 message >> specialization; | |
| 145 description.specialization = ToUtf16String(specialization); | |
| 146 message >> description.listed; | 140 message >> description.listed; |
| 147 result.push_back(description); | 141 result.push_back(description); |
| 148 } | 142 } |
| 149 return result; | 143 return result; |
| 150 } | 144 } |
| 151 } | 145 } |
| 152 | 146 |
| 153 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; | 147 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; |
| 154 | 148 |
| 155 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() | 149 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); | 249 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); |
| 256 } | 250 } |
| 257 m_criticalSectionFilter.Unlock(); | 251 m_criticalSectionFilter.Unlock(); |
| 258 return isHidden; | 252 return isHidden; |
| 259 } | 253 } |
| 260 | 254 |
| 261 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) | 255 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) |
| 262 { | 256 { |
| 263 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); | 257 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); |
| 264 Communication::OutputBuffer request; | 258 Communication::OutputBuffer request; |
| 265 request << Communication::PROC_IS_WHITELISTED_URL << ToUtf8String(url); | 259 request << Communication::PROC_IS_WHITELISTED_URL << url; |
| 266 | 260 |
| 267 Communication::InputBuffer response; | 261 Communication::InputBuffer response; |
| 268 if (!CallEngine(request, response)) | 262 if (!CallEngine(request, response)) |
| 269 return false; | 263 return false; |
| 270 | 264 |
| 271 bool isWhitelisted; | 265 bool isWhitelisted; |
| 272 response >> isWhitelisted; | 266 response >> isWhitelisted; |
| 273 | 267 |
| 274 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); | 268 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); |
| 275 return isWhitelisted; | 269 return isWhitelisted; |
| 276 } | 270 } |
| 277 | 271 |
| 278 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) | 272 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) |
| 279 { | 273 { |
| 280 Communication::OutputBuffer request; | 274 Communication::OutputBuffer request; |
| 281 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << ToUtf8String(
url); | 275 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << url; |
| 282 | 276 |
| 283 Communication::InputBuffer response; | 277 Communication::InputBuffer response; |
| 284 if (!CallEngine(request, response)) | 278 if (!CallEngine(request, response)) |
| 285 return false; | 279 return false; |
| 286 | 280 |
| 287 bool isWhitelisted; | 281 bool isWhitelisted; |
| 288 response >> isWhitelisted; | 282 response >> isWhitelisted; |
| 289 return isWhitelisted; | 283 return isWhitelisted; |
| 290 } | 284 } |
| 291 | 285 |
| 292 bool CAdblockPlusClient::Matches(const std::wstring& url, AdblockPlus::FilterEng
ine::ContentType contentType, const std::wstring& domain) | 286 bool CAdblockPlusClient::Matches(const std::wstring& url, AdblockPlus::FilterEng
ine::ContentType contentType, const std::wstring& domain) |
| 293 { | 287 { |
| 294 Communication::OutputBuffer request; | 288 Communication::OutputBuffer request; |
| 295 request << Communication::PROC_MATCHES << ToUtf8String(url) << static_cast<int
32_t>(contentType) << ToUtf8String(domain); | 289 request << Communication::PROC_MATCHES << url << contentType << domain; |
| 296 | 290 |
| 297 Communication::InputBuffer response; | 291 Communication::InputBuffer response; |
| 298 if (!CallEngine(request, response)) | 292 if (!CallEngine(request, response)) |
| 299 return false; | 293 return false; |
| 300 | 294 |
| 301 bool match; | 295 bool match; |
| 302 response >> match; | 296 response >> match; |
| 303 return match; | 297 return match; |
| 304 } | 298 } |
| 305 | 299 |
| 306 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) | 300 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) |
| 307 { | 301 { |
| 308 Communication::OutputBuffer request; | 302 Communication::OutputBuffer request; |
| 309 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << ToUtf8String(domain); | 303 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << domain; |
| 310 | 304 |
| 311 Communication::InputBuffer response; | 305 Communication::InputBuffer response; |
| 312 if (!CallEngine(request, response)) | 306 if (!CallEngine(request, response)) |
| 313 return std::vector<std::wstring>(); | 307 return std::vector<std::wstring>(); |
| 314 | 308 |
| 315 std::vector<std::string> selectors; | 309 std::vector<std::wstring> selectors; |
| 316 response >> selectors; | 310 response >> selectors; |
| 317 return ToUtf16Strings(selectors); | 311 return selectors; |
| 318 } | 312 } |
| 319 | 313 |
| 320 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() | 314 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() |
| 321 { | 315 { |
| 322 Communication::InputBuffer response; | 316 Communication::InputBuffer response; |
| 323 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) | 317 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) |
| 324 return std::vector<SubscriptionDescription>(); | 318 return std::vector<SubscriptionDescription>(); |
| 325 return ReadSubscriptions(response); | 319 return ReadSubscriptions(response); |
| 326 } | 320 } |
| 327 | 321 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 344 { | 338 { |
| 345 return true; | 339 return true; |
| 346 } | 340 } |
| 347 } | 341 } |
| 348 return false; | 342 return false; |
| 349 } | 343 } |
| 350 | 344 |
| 351 void CAdblockPlusClient::SetSubscription(const std::wstring& url) | 345 void CAdblockPlusClient::SetSubscription(const std::wstring& url) |
| 352 { | 346 { |
| 353 Communication::OutputBuffer request; | 347 Communication::OutputBuffer request; |
| 354 request << Communication::PROC_SET_SUBSCRIPTION << ToUtf8String(url); | 348 request << Communication::PROC_SET_SUBSCRIPTION << url; |
| 355 CallEngine(request); | 349 CallEngine(request); |
| 356 } | 350 } |
| 357 | 351 |
| 358 void CAdblockPlusClient::AddSubscription(const std::wstring& url) | 352 void CAdblockPlusClient::AddSubscription(const std::wstring& url) |
| 359 { | 353 { |
| 360 Communication::OutputBuffer request; | 354 Communication::OutputBuffer request; |
| 361 request << Communication::PROC_ADD_SUBSCRIPTION << ToUtf8String(url); | 355 request << Communication::PROC_ADD_SUBSCRIPTION << url; |
| 362 CallEngine(request); | 356 CallEngine(request); |
| 363 } | 357 } |
| 364 | 358 |
| 365 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) | 359 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) |
| 366 { | 360 { |
| 367 Communication::OutputBuffer request; | 361 Communication::OutputBuffer request; |
| 368 request << Communication::PROC_REMOVE_SUBSCRIPTION << ToUtf8String(url); | 362 request << Communication::PROC_REMOVE_SUBSCRIPTION << url; |
| 369 CallEngine(request); | 363 CallEngine(request); |
| 370 } | 364 } |
| 371 | 365 |
| 372 | 366 |
| 373 void CAdblockPlusClient::UpdateAllSubscriptions() | 367 void CAdblockPlusClient::UpdateAllSubscriptions() |
| 374 { | 368 { |
| 375 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); | 369 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); |
| 376 } | 370 } |
| 377 | 371 |
| 378 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() | 372 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() |
| 379 { | 373 { |
| 380 Communication::InputBuffer response; | 374 Communication::InputBuffer response; |
| 381 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) | 375 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) |
| 382 return std::vector<std::wstring>(); | 376 return std::vector<std::wstring>(); |
| 383 | 377 |
| 384 std::vector<std::string> domains; | 378 std::vector<std::wstring> domains; |
| 385 response >> domains; | 379 response >> domains; |
| 386 return ToUtf16Strings(domains); | 380 return domains; |
| 387 } | 381 } |
| 388 | 382 |
| 389 bool CAdblockPlusClient::IsFirstRun() | 383 bool CAdblockPlusClient::IsFirstRun() |
| 390 { | 384 { |
| 391 DEBUG_GENERAL("IsFirstRun"); | 385 DEBUG_GENERAL("IsFirstRun"); |
| 392 Communication::InputBuffer response; | 386 Communication::InputBuffer response; |
| 393 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; | 387 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; |
| 394 bool res; | 388 bool res; |
| 395 response >> res; | 389 response >> res; |
| 396 return res; | 390 return res; |
| 397 } | 391 } |
| 398 | 392 |
| 399 void CAdblockPlusClient::AddFilter(const std::wstring& text) | 393 void CAdblockPlusClient::AddFilter(const std::wstring& text) |
| 400 { | 394 { |
| 401 Communication::OutputBuffer request; | 395 Communication::OutputBuffer request; |
| 402 request << Communication::PROC_ADD_FILTER << ToUtf8String(text); | 396 request << Communication::PROC_ADD_FILTER << text; |
| 403 CallEngine(request); | 397 CallEngine(request); |
| 404 } | 398 } |
| 405 | 399 |
| 406 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) | 400 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) |
| 407 { | 401 { |
| 408 Communication::OutputBuffer request; | 402 Communication::OutputBuffer request; |
| 409 request << Communication::PROC_REMOVE_FILTER << ToUtf8String(text); | 403 request << Communication::PROC_REMOVE_FILTER << text; |
| 410 CallEngine(request); | 404 CallEngine(request); |
| 411 } | 405 } |
| 412 | 406 |
| 413 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) | 407 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) |
| 414 { | 408 { |
| 415 Communication::OutputBuffer request; | 409 Communication::OutputBuffer request; |
| 416 request << Communication::PROC_SET_PREF << ToUtf8String(name) << ToUtf8String(
value); | 410 request << Communication::PROC_SET_PREF << name << value; |
| 417 CallEngine(request); | 411 CallEngine(request); |
| 418 } | 412 } |
| 419 | 413 |
| 420 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) | 414 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) |
| 421 { | 415 { |
| 422 Communication::OutputBuffer request; | 416 Communication::OutputBuffer request; |
| 423 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 417 request << Communication::PROC_SET_PREF << name << value; |
| 424 CallEngine(request); | 418 CallEngine(request); |
| 425 } | 419 } |
| 426 | 420 |
| 427 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) | 421 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) |
| 428 { | 422 { |
| 429 Communication::OutputBuffer request; | 423 Communication::OutputBuffer request; |
| 430 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 424 request << Communication::PROC_SET_PREF << name << value; |
| 431 CallEngine(request); | 425 CallEngine(request); |
| 432 } | 426 } |
| 433 | 427 |
| 434 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) | 428 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) |
| 435 { | 429 { |
| 436 return GetPref(name, std::wstring(defaultValue)); | 430 return GetPref(name, std::wstring(defaultValue)); |
| 437 } | 431 } |
| 438 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) | 432 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) |
| 439 { | 433 { |
| 440 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 434 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
| 441 Communication::OutputBuffer request; | 435 Communication::OutputBuffer request; |
| 442 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 436 request << Communication::PROC_GET_PREF << name; |
| 443 | 437 |
| 444 Communication::InputBuffer response; | 438 Communication::InputBuffer response; |
| 445 if (!CallEngine(request, response)) | 439 if (!CallEngine(request, response)) |
| 446 return defaultValue; | 440 return defaultValue; |
| 447 bool success; | 441 bool success; |
| 448 response >> success; | 442 response >> success; |
| 449 if (success) | 443 if (success) |
| 450 { | 444 { |
| 451 std::string value; | 445 std::wstring value; |
| 452 response >> value; | 446 response >> value; |
| 453 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 447 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 454 return ToUtf16String(value); | 448 return value; |
| 455 } | 449 } |
| 456 else | 450 else |
| 457 { | 451 { |
| 458 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 452 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 459 return defaultValue; | 453 return defaultValue; |
| 460 } | 454 } |
| 461 } | 455 } |
| 462 | 456 |
| 463 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) | 457 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) |
| 464 { | 458 { |
| 465 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 459 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
| 466 Communication::OutputBuffer request; | 460 Communication::OutputBuffer request; |
| 467 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 461 request << Communication::PROC_GET_PREF << name; |
| 468 | 462 |
| 469 Communication::InputBuffer response; | 463 Communication::InputBuffer response; |
| 470 if (!CallEngine(request, response)) | 464 if (!CallEngine(request, response)) |
| 471 return defaultValue; | 465 return defaultValue; |
| 472 bool success; | 466 bool success; |
| 473 response >> success; | 467 response >> success; |
| 474 if (success) | 468 if (success) |
| 475 { | 469 { |
| 476 bool value; | 470 bool value; |
| 477 response >> value; | 471 response >> value; |
| 478 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 472 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 479 return value; | 473 return value; |
| 480 } | 474 } |
| 481 else | 475 else |
| 482 { | 476 { |
| 483 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 477 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 484 return defaultValue; | 478 return defaultValue; |
| 485 } | 479 } |
| 486 } | 480 } |
| 487 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) | 481 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) |
| 488 { | 482 { |
| 489 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 483 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
| 490 Communication::OutputBuffer request; | 484 Communication::OutputBuffer request; |
| 491 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 485 request << Communication::PROC_GET_PREF << name; |
| 492 | 486 |
| 493 Communication::InputBuffer response; | 487 Communication::InputBuffer response; |
| 494 if (!CallEngine(request, response)) | 488 if (!CallEngine(request, response)) |
| 495 return defaultValue; | 489 return defaultValue; |
| 496 bool success; | 490 bool success; |
| 497 response >> success; | 491 response >> success; |
| 498 if (success) | 492 if (success) |
| 499 { | 493 { |
| 500 int64_t value; | 494 int64_t value; |
| 501 response >> value; | 495 response >> value; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 515 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); | 509 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); |
| 516 CallEngine(request); | 510 CallEngine(request); |
| 517 } | 511 } |
| 518 | 512 |
| 519 std::wstring CAdblockPlusClient::GetDocumentationLink() | 513 std::wstring CAdblockPlusClient::GetDocumentationLink() |
| 520 { | 514 { |
| 521 DEBUG_GENERAL("GetDocumentationLink"); | 515 DEBUG_GENERAL("GetDocumentationLink"); |
| 522 Communication::InputBuffer response; | 516 Communication::InputBuffer response; |
| 523 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) | 517 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) |
| 524 return L""; | 518 return L""; |
| 525 std::string docLink; | 519 std::wstring docLink; |
| 526 response >> docLink; | 520 response >> docLink; |
| 527 return ToUtf16String(docLink); | 521 return docLink; |
| 528 } | 522 } |
| 529 | 523 |
| 530 bool CAdblockPlusClient::TogglePluginEnabled() | 524 bool CAdblockPlusClient::TogglePluginEnabled() |
| 531 { | 525 { |
| 532 DEBUG_GENERAL("TogglePluginEnabled"); | 526 DEBUG_GENERAL("TogglePluginEnabled"); |
| 533 Communication::InputBuffer response; | 527 Communication::InputBuffer response; |
| 534 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) | 528 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) |
| 535 return false; | 529 return false; |
| 536 bool currentEnabledState; | 530 bool currentEnabledState; |
| 537 response >> currentEnabledState; | 531 response >> currentEnabledState; |
| 538 return currentEnabledState; | 532 return currentEnabledState; |
| 539 } | 533 } |
| 540 | 534 |
| 541 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) | 535 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) |
| 542 { | 536 { |
| 543 DEBUG_GENERAL("GetHostFromUrl"); | 537 DEBUG_GENERAL("GetHostFromUrl"); |
| 544 Communication::OutputBuffer request; | 538 Communication::OutputBuffer request; |
| 545 request << Communication::PROC_GET_HOST << ToUtf8String(url); | 539 request << Communication::PROC_GET_HOST << url; |
| 546 | 540 |
| 547 Communication::InputBuffer response; | 541 Communication::InputBuffer response; |
| 548 if (!CallEngine(request, response)) | 542 if (!CallEngine(request, response)) |
| 549 return L""; | 543 return L""; |
| 550 std::string host; | 544 std::wstring host; |
| 551 response >> host; | 545 response >> host; |
| 552 return ToUtf16String(host); | 546 return host; |
| 553 } | 547 } |
| 554 | 548 |
| 555 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) | 549 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) |
| 556 { | 550 { |
| 557 DEBUG_GENERAL("CompareVersions"); | 551 DEBUG_GENERAL("CompareVersions"); |
| 558 Communication::OutputBuffer request; | 552 Communication::OutputBuffer request; |
| 559 request << Communication::PROC_COMPARE_VERSIONS << ToUtf8String(v1) << ToUtf8S
tring(v2); | 553 request << Communication::PROC_COMPARE_VERSIONS << v1 << v2; |
| 560 Communication::InputBuffer response; | 554 Communication::InputBuffer response; |
| 561 if (!CallEngine(request, response)) | 555 if (!CallEngine(request, response)) |
| 562 return 0; | 556 return 0; |
| 563 int result; | 557 int result; |
| 564 response >> result; | 558 response >> result; |
| 565 return result; | 559 return result; |
| 566 } | 560 } |
| OLD | NEW |