blob: 2c3b853c7411e1539b95e40ff5360fe70ab95ae5 [file] [log] [blame]
[email protected]8e553f492010-10-25 20:05:441// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "printing/backend/cups_helper.h"
6
7#include "base/logging.h"
8#include "googleurl/src/gurl.h"
9
10namespace printing {
11
12// Default port for IPP print servers.
13static const int kDefaultIPPServerPort = 631;
14
15// Helper wrapper around http_t structure, with connection and cleanup
16// functionality.
17HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url)
18 : http_(NULL) {
19 // If we have an empty url, use default print server.
20 if (print_server_url.is_empty())
21 return;
22
23 int port = print_server_url.IntPort();
24 if (port == url_parse::PORT_UNSPECIFIED)
25 port = kDefaultIPPServerPort;
26
27 http_ = httpConnectEncrypt(print_server_url.host().c_str(), port,
28 HTTP_ENCRYPT_NEVER);
29 if (http_ == NULL) {
30 LOG(ERROR) << "CP_CUPS: Failed connecting to print server: " <<
31 print_server_url;
32 }
33}
34
35HttpConnectionCUPS::~HttpConnectionCUPS() {
36 if (http_ != NULL)
37 httpClose(http_);
38}
39
40http_t* HttpConnectionCUPS::http() {
41 return http_;
42}
43
44} // namespace printing