Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4757)

Unified Diff: chrome/service/cloud_print/print_system_cups.cc

Issue 10399050: Adding functionality to specify TLS encryption CUPS print servers for cloudprint connector. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | printing/backend/cups_helper.h » ('j') | printing/backend/print_backend_cups.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/service/cloud_print/print_system_cups.cc
===================================================================
--- chrome/service/cloud_print/print_system_cups.cc (revision 137176)
+++ chrome/service/cloud_print/print_system_cups.cc (working copy)
@@ -133,9 +133,11 @@
// <functions>2() are called when print server is specified, and plain
// version in another case. There is an issue specifing CUPS_HTTP_DEFAULT
// in the <functions>2(), it does not work in CUPS prior to 1.4.
- int GetJobs(cups_job_t** jobs, const GURL& url, const char* name,
+ int GetJobs(cups_job_t** jobs, const GURL& url,
+ http_encryption_t encryption, const char* name,
int myjobs, int whichjobs);
- int PrintFile(const GURL& url, const char* name, const char* filename,
+ int PrintFile(const GURL& url, http_encryption_t encryption,
+ const char* name, const char* filename,
const char* title, int num_options, cups_option_t* options);
Ryan Sleevi 2012/05/17 00:35:27 nit: these too
void InitPrintBackends(const DictionaryValue* print_system_settings);
@@ -166,6 +168,7 @@
bool initialized_;
bool printer_enum_succeeded_;
bool notify_delete_;
+ http_encryption_t cups_encryption_;
};
class PrintServerWatcherCUPS
@@ -406,12 +409,18 @@
kCheckForPrinterUpdatesMinutes)),
initialized_(false),
printer_enum_succeeded_(false),
- notify_delete_(true) {
+ notify_delete_(true),
+ cups_encryption_(HTTP_ENCRYPT_NEVER) {
if (print_system_settings) {
int timeout;
if (print_system_settings->GetInteger(kCUPSUpdateTimeoutMs, &timeout))
update_timeout_ = base::TimeDelta::FromMilliseconds(timeout);
+ int encryption;
+ if (print_system_settings->GetInteger(kCUPSEncryption, &encryption))
+ cups_encryption_ =
+ static_cast<http_encryption_t>(encryption);
+
bool notify_delete = true;
if (print_system_settings->GetBoolean(kCUPSNotifyDelete, &notify_delete))
notify_delete_ = notify_delete;
@@ -448,6 +457,9 @@
// Make CUPS requests non-blocking.
backend_settings.SetString(kCUPSBlocking, kValueFalse);
+ // Set encryption for backend.
+ backend_settings.SetInteger(kCUPSEncryption, cups_encryption_);
+
PrintServerInfoCUPS print_server;
print_server.backend =
printing::PrintBackend::CreateInstance(&backend_settings);
@@ -590,7 +602,7 @@
child_process_logging::ScopedPrinterInfoSetter prn_info(
server_info->backend->GetPrinterDriverInfo(short_printer_name));
cups_job_t* jobs = NULL;
- int num_jobs = GetJobs(&jobs, server_info->url,
+ int num_jobs = GetJobs(&jobs, server_info->url, cups_encryption_,
short_printer_name.c_str(), 1, -1);
bool error = (num_jobs == 0) && (cupsLastError() > IPP_OK_EVENTS_COMPLETE);
if (error) {
@@ -713,13 +725,14 @@
return new PrintSystemCUPS(print_system_settings);
}
-int PrintSystemCUPS::PrintFile(const GURL& url, const char* name,
- const char* filename, const char* title,
- int num_options, cups_option_t* options) {
+int PrintSystemCUPS::PrintFile(const GURL& url, http_encryption_t encryption,
+ const char* name, const char* filename,
+ const char* title, int num_options,
+ cups_option_t* options) {
if (url.is_empty()) { // Use default (local) print server.
return cupsPrintFile(name, filename, title, num_options, options);
} else {
- printing::HttpConnectionCUPS http(url);
+ printing::HttpConnectionCUPS http(url, encryption);
http.SetBlocking(false);
return cupsPrintFile2(http.http(), name, filename,
title, num_options, options);
@@ -727,11 +740,12 @@
}
int PrintSystemCUPS::GetJobs(cups_job_t** jobs, const GURL& url,
+ http_encryption_t encryption,
const char* name, int myjobs, int whichjobs) {
if (url.is_empty()) { // Use default (local) print server.
return cupsGetJobs(jobs, name, myjobs, whichjobs);
} else {
- printing::HttpConnectionCUPS http(url);
+ printing::HttpConnectionCUPS http(url, encryption);
http.SetBlocking(false);
return cupsGetJobs2(http.http(), jobs, name, myjobs, whichjobs);
}
@@ -782,6 +796,7 @@
}
int job_id = PrintFile(server_info->url,
+ cups_encryption_,
short_printer_name.c_str(),
print_data_file_path.value().c_str(),
job_title.c_str(),
« no previous file with comments | « no previous file | printing/backend/cups_helper.h » ('j') | printing/backend/print_backend_cups.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698