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"
22 #include "../librpc/gen_ndr/ndr_spoolss.h"
24 /*******************************************************************
25 ********************************************************************/
27 bool init_systemtime(struct spoolss_Time
*r
,
30 if (!r
|| !unixtime
) {
34 r
->year
= unixtime
->tm_year
+1900;
35 r
->month
= unixtime
->tm_mon
+1;
36 r
->day_of_week
= unixtime
->tm_wday
;
37 r
->day
= unixtime
->tm_mday
;
38 r
->hour
= unixtime
->tm_hour
;
39 r
->minute
= unixtime
->tm_min
;
40 r
->second
= unixtime
->tm_sec
;
46 time_t spoolss_Time_to_time_t(const struct spoolss_Time
*r
)
50 unixtime
.tm_year
= r
->year
- 1900;
51 unixtime
.tm_mon
= r
->month
- 1;
52 unixtime
.tm_wday
= r
->day_of_week
;
53 unixtime
.tm_mday
= r
->day
;
54 unixtime
.tm_hour
= r
->hour
;
55 unixtime
.tm_min
= r
->minute
;
56 unixtime
.tm_sec
= r
->second
;
58 return mktime(&unixtime
);
61 /*******************************************************************
62 ********************************************************************/
64 WERROR
pull_spoolss_PrinterData(TALLOC_CTX
*mem_ctx
,
65 const DATA_BLOB
*blob
,
66 union spoolss_PrinterData
*data
,
67 enum winreg_Type type
)
69 enum ndr_err_code ndr_err
;
70 ndr_err
= ndr_pull_union_blob(blob
, mem_ctx
, data
, type
,
71 (ndr_pull_flags_fn_t
)ndr_pull_spoolss_PrinterData
);
72 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
73 return WERR_GENERAL_FAILURE
;
78 /*******************************************************************
79 ********************************************************************/
81 WERROR
push_spoolss_PrinterData(TALLOC_CTX
*mem_ctx
, DATA_BLOB
*blob
,
82 enum winreg_Type type
,
83 union spoolss_PrinterData
*data
)
85 enum ndr_err_code ndr_err
;
86 ndr_err
= ndr_push_union_blob(blob
, mem_ctx
, data
, type
,
87 (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
);
88 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
89 return WERR_GENERAL_FAILURE
;