1/* 2 * Unix SMB/CIFS implementation. 3 * RPC Pipe client / server routines 4 * Copyright (C) Guenther Deschner 2009. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, see <http://www.gnu.org/licenses/>. 18 */ 19 20#include "includes.h" 21 22/******************************************************************* 23********************************************************************/ 24 25bool init_systemtime(struct spoolss_Time *r, 26 struct tm *unixtime) 27{ 28 if (!r || !unixtime) { 29 return false; 30 } 31 32 r->year = unixtime->tm_year+1900; 33 r->month = unixtime->tm_mon+1; 34 r->day_of_week = unixtime->tm_wday; 35 r->day = unixtime->tm_mday; 36 r->hour = unixtime->tm_hour; 37 r->minute = unixtime->tm_min; 38 r->second = unixtime->tm_sec; 39 r->millisecond = 0; 40 41 return true; 42} 43 44/******************************************************************* 45 ********************************************************************/ 46 47WERROR pull_spoolss_PrinterData(TALLOC_CTX *mem_ctx, 48 const DATA_BLOB *blob, 49 union spoolss_PrinterData *data, 50 enum winreg_Type type) 51{ 52 enum ndr_err_code ndr_err; 53 ndr_err = ndr_pull_union_blob(blob, mem_ctx, NULL, data, type, 54 (ndr_pull_flags_fn_t)ndr_pull_spoolss_PrinterData); 55 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { 56 return WERR_GENERAL_FAILURE; 57 } 58 return WERR_OK; 59} 60 61/******************************************************************* 62 ********************************************************************/ 63 64WERROR push_spoolss_PrinterData(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, 65 enum winreg_Type type, 66 union spoolss_PrinterData *data) 67{ 68 enum ndr_err_code ndr_err; 69 ndr_err = ndr_push_union_blob(blob, mem_ctx, NULL, data, type, 70 (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData); 71 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { 72 return WERR_GENERAL_FAILURE; 73 } 74 return WERR_OK; 75} 76 77/******************************************************************* 78 ********************************************************************/ 79 80void spoolss_printerinfo2_to_setprinterinfo2(const struct spoolss_PrinterInfo2 *i, 81 struct spoolss_SetPrinterInfo2 *s) 82{ 83 s->servername = i->servername; 84 s->printername = i->printername; 85 s->sharename = i->sharename; 86 s->portname = i->portname; 87 s->drivername = i->drivername; 88 s->comment = i->comment; 89 s->location = i->location; 90 s->devmode_ptr = 0; 91 s->sepfile = i->sepfile; 92 s->printprocessor = i->printprocessor; 93 s->datatype = i->datatype; 94 s->parameters = i->parameters; 95 s->secdesc_ptr = 0; 96 s->attributes = i->attributes; 97 s->priority = i->priority; 98 s->defaultpriority = i->defaultpriority; 99 s->starttime = i->starttime; 100 s->untiltime = i->untiltime; 101 s->status = i->status; 102 s->cjobs = i->cjobs; 103 s->averageppm = i->averageppm; 104} 105