| Index: cloud_print/virtual_driver/posix/printer_driver_util_posix.cc
|
| diff --git a/cloud_print/virtual_driver/posix/printer_driver_util_posix.cc b/cloud_print/virtual_driver/posix/printer_driver_util_posix.cc
|
| deleted file mode 100644
|
| index d78f632f9162e92a7845ee440e485e778e232e97..0000000000000000000000000000000000000000
|
| --- a/cloud_print/virtual_driver/posix/printer_driver_util_posix.cc
|
| +++ /dev/null
|
| @@ -1,99 +0,0 @@
|
| -// Copyright (c) 2011 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 <pwd.h>
|
| -#include <stdio.h>
|
| -#include <sys/stat.h>
|
| -#include <sys/types.h>
|
| -#include <sys/wait.h>
|
| -
|
| -#include <cups/backend.h>
|
| -
|
| -#include "base/json/json_writer.h"
|
| -#include "base/logging.h"
|
| -#include "base/string_tokenizer.h"
|
| -#include "base/values.h"
|
| -
|
| -#include "cloud_print/virtual_driver/posix/printer_driver_util_posix.h"
|
| -
|
| -namespace printer_driver_util {
|
| -
|
| -void WriteToTemp(FILE* input_pdf, FilePath output_path) {
|
| - FILE* output_pdf;
|
| - char buffer[128];
|
| - output_pdf = fopen(output_path.value().c_str(), "w");
|
| - if (output_pdf == NULL) {
|
| - LOG(ERROR) << "Unable to open file handle for writing output file";
|
| - exit(CUPS_BACKEND_CANCEL);
|
| - }
|
| - // Read from input file or stdin and write to output file.
|
| - while (fgets(buffer, sizeof(buffer), input_pdf) != NULL) {
|
| - fputs(buffer, output_pdf);
|
| - }
|
| -
|
| - LOG(INFO) << "Successfully wrote output file";
|
| - // ensure everything is written, then close the files.
|
| - fflush(output_pdf);
|
| - fclose(input_pdf);
|
| - fclose(output_pdf);
|
| -}
|
| -
|
| -// Sets the UID of the process to that of the username.
|
| -void SetUser(const char* user) {
|
| - struct passwd* calling_user = NULL;
|
| - calling_user = getpwnam(user);
|
| - if (calling_user == NULL) {
|
| - LOG(ERROR) << "Unable to get calling user";
|
| - exit(CUPS_BACKEND_CANCEL);
|
| - }
|
| - if (!setuid(calling_user->pw_uid) == -1) {
|
| - LOG(ERROR) << "Unable to set UID";
|
| - exit(CUPS_BACKEND_CANCEL);
|
| - }
|
| -
|
| - LOG(INFO) << "Successfully set user and group ID";
|
| -}
|
| -
|
| -// Parses the options passed in on the command line to key value
|
| -// JSON pairs. Assumes that the input options string is of the
|
| -// format KEY=VALUE, with expressions being separated by spaces.
|
| -// Fails if print_ticket cannot be written to.
|
| -void GetOptions(const char* options, std::string* print_ticket) {
|
| - if (options == NULL) {
|
| - *(print_ticket) = "{}";
|
| - return;
|
| - }
|
| - CStringTokenizer t(options, options + strlen(options), " ");
|
| - DictionaryValue* json_options = new DictionaryValue;
|
| -
|
| - while (t.GetNext()) {
|
| - std::string token = t.token();
|
| - // If the token ends with a slash, that indicates
|
| - // that the next space is actually escaped
|
| - // So we append the next token onto this token
|
| - // if possible. We also replace the slash with a space
|
| - // since the JSON will expect an unescaped string.
|
| - while (token.at(token.length()-1) == '\\') {
|
| - if (t.GetNext()) {
|
| - token.replace(token.length()-1, 1, " ");
|
| - token.append(t.token());
|
| - } else {
|
| - break;
|
| - }
|
| - }
|
| - size_t pos = token.find("=");
|
| - if (pos == std::string::npos) {
|
| - continue;
|
| - }
|
| - std::string option_name = token.substr(0, pos);
|
| - std::string option_value = token.substr(pos+1);
|
| - base::StringValue* val= base::Value::CreateStringValue(option_value);
|
| - json_options->SetWithoutPathExpansion(option_name, val);
|
| - }
|
| - base::JSONWriter::Write(json_options, /*pretty_print=*/false, print_ticket);
|
| - delete json_options;
|
| -}
|
| -
|
| -} // namespace printer_driver_util
|
| -
|
|
|