| // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "printing/backend/cups_helper.h" |
| |
| #include "base/logging.h" |
| #include "googleurl/src/gurl.h" |
| |
| namespace printing { |
| |
| // Default port for IPP print servers. |
| static const int kDefaultIPPServerPort = 631; |
| |
| // Helper wrapper around http_t structure, with connection and cleanup |
| // functionality. |
| HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url) |
| : http_(NULL) { |
| // If we have an empty url, use default print server. |
| if (print_server_url.is_empty()) |
| return; |
| |
| int port = print_server_url.IntPort(); |
| if (port == url_parse::PORT_UNSPECIFIED) |
| port = kDefaultIPPServerPort; |
| |
| http_ = httpConnectEncrypt(print_server_url.host().c_str(), port, |
| HTTP_ENCRYPT_NEVER); |
| if (http_ == NULL) { |
| LOG(ERROR) << "CP_CUPS: Failed connecting to print server: " << |
| print_server_url; |
| } |
| } |
| |
| HttpConnectionCUPS::~HttpConnectionCUPS() { |
| if (http_ != NULL) |
| httpClose(http_); |
| } |
| |
| void HttpConnectionCUPS::SetBlocking(bool blocking) { |
| httpBlocking(http_, blocking ? 1 : 0); |
| } |
| |
| http_t* HttpConnectionCUPS::http() { |
| return http_; |
| } |
| |
| } // namespace printing |