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/>.
22 /*******************************************************************
23 ********************************************************************/
25 bool init_systemtime(struct spoolss_Time
*r
,
28 if (!r
|| !unixtime
) {
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
;
44 time_t spoolss_Time_to_time_t(const struct spoolss_Time
*r
)
48 unixtime
.tm_year
= r
->year
- 1900;
49 unixtime
.tm_mon
= r
->month
- 1;
50 unixtime
.tm_wday
= r
->day_of_week
;
51 unixtime
.tm_mday
= r
->day
;
52 unixtime
.tm_hour
= r
->hour
;
53 unixtime
.tm_min
= r
->minute
;
54 unixtime
.tm_sec
= r
->second
;
56 return mktime(&unixtime
);
59 /*******************************************************************
60 ********************************************************************/
62 WERROR
pull_spoolss_PrinterData(TALLOC_CTX
*mem_ctx
,
63 const DATA_BLOB
*blob
,
64 union spoolss_PrinterData
*data
,
65 enum winreg_Type type
)
67 enum ndr_err_code ndr_err
;
68 ndr_err
= ndr_pull_union_blob(blob
, mem_ctx
, NULL
, data
, type
,
69 (ndr_pull_flags_fn_t
)ndr_pull_spoolss_PrinterData
);
70 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
71 return WERR_GENERAL_FAILURE
;
76 /*******************************************************************
77 ********************************************************************/
79 WERROR
push_spoolss_PrinterData(TALLOC_CTX
*mem_ctx
, DATA_BLOB
*blob
,
80 enum winreg_Type type
,
81 union spoolss_PrinterData
*data
)
83 enum ndr_err_code ndr_err
;
84 ndr_err
= ndr_push_union_blob(blob
, mem_ctx
, NULL
, data
, type
,
85 (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
);
86 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
87 return WERR_GENERAL_FAILURE
;