2 * Unix SMB/CIFS implementation.
3 * RPC Pipe client / server routines
4 * Copyright (C) Guenther Deschner 2009.
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.
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.
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/>.
21 #include "rpc_client/init_spoolss.h"
23 /*******************************************************************
24 ********************************************************************/
26 bool init_systemtime(struct spoolss_Time
*r
,
29 if (!r
|| !unixtime
) {
33 r
->year
= unixtime
->tm_year
+1900;
34 r
->month
= unixtime
->tm_mon
+1;
35 r
->day_of_week
= unixtime
->tm_wday
;
36 r
->day
= unixtime
->tm_mday
;
37 r
->hour
= unixtime
->tm_hour
;
38 r
->minute
= unixtime
->tm_min
;
39 r
->second
= unixtime
->tm_sec
;
45 time_t spoolss_Time_to_time_t(const struct spoolss_Time
*r
)
49 unixtime
.tm_year
= r
->year
- 1900;
50 unixtime
.tm_mon
= r
->month
- 1;
51 unixtime
.tm_wday
= r
->day_of_week
;
52 unixtime
.tm_mday
= r
->day
;
53 unixtime
.tm_hour
= r
->hour
;
54 unixtime
.tm_min
= r
->minute
;
55 unixtime
.tm_sec
= r
->second
;
57 return mktime(&unixtime
);
60 /*******************************************************************
61 ********************************************************************/
63 WERROR
pull_spoolss_PrinterData(TALLOC_CTX
*mem_ctx
,
64 const DATA_BLOB
*blob
,
65 union spoolss_PrinterData
*data
,
66 enum winreg_Type type
)
68 enum ndr_err_code ndr_err
;
69 ndr_err
= ndr_pull_union_blob(blob
, mem_ctx
, data
, type
,
70 (ndr_pull_flags_fn_t
)ndr_pull_spoolss_PrinterData
);
71 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
72 return WERR_GENERAL_FAILURE
;
77 /*******************************************************************
78 ********************************************************************/
80 WERROR
push_spoolss_PrinterData(TALLOC_CTX
*mem_ctx
, DATA_BLOB
*blob
,
81 enum winreg_Type type
,
82 union spoolss_PrinterData
*data
)
84 enum ndr_err_code ndr_err
;
85 ndr_err
= ndr_push_union_blob(blob
, mem_ctx
, data
, type
,
86 (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
);
87 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
88 return WERR_GENERAL_FAILURE
;