spoolss: pretty-print a struct spoolss_Time.
authorGünther Deschner <gd@samba.org>
Thu, 22 Apr 2010 09:42:45 +0000 (11:42 +0200)
committerGünther Deschner <gd@samba.org>
Thu, 22 Apr 2010 09:53:41 +0000 (11:53 +0200)
Guenther

librpc/gen_ndr/ndr_spoolss.c
librpc/gen_ndr/spoolss.h
librpc/idl/spoolss.idl
librpc/ndr/ndr_spoolss_buf.c
librpc/ndr/ndr_spoolss_buf.h

index 552f8949475203f5284ad2d3e37b92d5acb16df3..cd036cf1cb8078f69efaaf5c818c189c0e2513f4 100644 (file)
@@ -44,21 +44,6 @@ static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_fla
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
-{
-       ndr_print_struct(ndr, name, "spoolss_Time");
-       ndr->depth++;
-       ndr_print_uint16(ndr, "year", r->year);
-       ndr_print_uint16(ndr, "month", r->month);
-       ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
-       ndr_print_uint16(ndr, "day", r->day);
-       ndr_print_uint16(ndr, "hour", r->hour);
-       ndr_print_uint16(ndr, "minute", r->minute);
-       ndr_print_uint16(ndr, "second", r->second);
-       ndr_print_uint16(ndr, "millisecond", r->millisecond);
-       ndr->depth--;
-}
-
 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
 {
        return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
index 9d6fb6dd82afa6f5c0a6ae55343503debb83c011..20572e97c47055a9681bb52b10babb5343b4f737 100644 (file)
@@ -126,7 +126,7 @@ struct spoolss_Time {
        uint16_t minute;
        uint16_t second;
        uint16_t millisecond;
-}/* [gensize] */;
+}/* [noprint,gensize] */;
 
 struct spoolss_TimeCtr {
        uint32_t size;/* [value(ndr_size_spoolss_Time(time,ndr->iconv_convenience,ndr->flags))] */
index 4127ffb4d2e784c88b48f3ae0eec3a6de971daed..c7df80d7ce9e27c4c1531ad082cb9f469776c186 100644 (file)
@@ -17,7 +17,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
 ] interface spoolss
 {
        typedef [v1_enum] enum winreg_Type winreg_Type;
-       typedef [gensize] struct {
+       typedef [gensize,noprint] struct {
                uint16 year;
                uint16 month;
                uint16 day_of_week;
index f8a67063be55b79f0c0a59e4b6ecc32950b55e01..e15591633dcb4b5b845bcb1f0dc0183d8e81b017 100644 (file)
@@ -1414,3 +1414,30 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, i
        }
        return NDR_ERR_SUCCESS;
 }
+
+_PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
+{
+       struct tm tm;
+       time_t t;
+       char *str;
+
+       tm.tm_sec       = r->second;
+       tm.tm_min       = r->minute;
+       tm.tm_hour      = r->hour;
+       tm.tm_mday      = r->day;
+       tm.tm_mon       = r->month - 1;
+       tm.tm_year      = r->year - 1900;
+       tm.tm_wday      = r->day_of_week;
+       tm.tm_yday      = 0;
+       tm.tm_isdst     = -1;
+
+       t = mktime(&tm);
+
+       str = timestring(ndr, t);
+
+       ndr_print_struct(ndr, name, "spoolss_Time");
+       ndr->depth++;
+       ndr_print_string(ndr, "", str);
+       ndr->depth--;
+       talloc_free(str);
+}
index 2766abb1cd0ca5f85c331bd95815131c18b8b318..89dcb4617cbb38352aef56151a267c788753c6be 100644 (file)
@@ -51,6 +51,7 @@ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t
 void ndr_print_spoolss_security_descriptor(struct ndr_print *ndr, const char *name, const struct security_descriptor *r);
 enum ndr_err_code ndr_pull_spoolss_security_descriptor(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor *r);
 enum ndr_err_code ndr_push_spoolss_security_descriptor(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor *r);
+_PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r);
 
 #undef _PRINTF_ATTRIBUTE
 #define _PRINTF_ATTRIBUTE(a1, a2)