From 2ae1796b090b793397f4082a996b8e430172d365 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 31 Mar 2010 13:04:30 +0200 Subject: s3-spoolss: Migrated spoolss_EnumForms to the winreg function. Signed-off-by: Jim McDonough --- source3/rpc_server/srv_spoolss_nt.c | 85 ++++--------------------------------- 1 file changed, 8 insertions(+), 77 deletions(-) (limited to 'source3/rpc_server/srv_spoolss_nt.c') diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index ff315dae70..fa712cd12e 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -6595,58 +6595,6 @@ static WERROR fill_form_info_1(TALLOC_CTX *mem_ctx, return WERR_OK; } -/**************************************************************** - spoolss_enumforms_level1 -****************************************************************/ - -static WERROR spoolss_enumforms_level1(TALLOC_CTX *mem_ctx, - const nt_forms_struct *builtin_forms, - uint32_t num_builtin_forms, - const nt_forms_struct *user_forms, - uint32_t num_user_forms, - union spoolss_FormInfo **info_p, - uint32_t *count) -{ - union spoolss_FormInfo *info; - WERROR result = WERR_OK; - int i; - - *count = num_builtin_forms + num_user_forms; - - info = TALLOC_ARRAY(mem_ctx, union spoolss_FormInfo, *count); - W_ERROR_HAVE_NO_MEMORY(info); - - /* construct the list of form structures */ - for (i=0; iout.count = 0; *r->out.needed = 0; @@ -6674,39 +6618,26 @@ WERROR _spoolss_EnumForms(pipes_struct *p, DEBUGADD(5,("Offered buffer size [%d]\n", r->in.offered)); DEBUGADD(5,("Info level [%d]\n", r->in.level)); - num_builtin_forms = get_builtin_ntforms(&builtin_forms); - DEBUGADD(5,("Number of builtin forms [%d]\n", num_builtin_forms)); - num_user_forms = get_ntforms(&user_forms); - DEBUGADD(5,("Number of user forms [%d]\n", num_user_forms)); - - if (num_user_forms + num_builtin_forms == 0) { - SAFE_FREE(builtin_forms); - SAFE_FREE(user_forms); - return WERR_NO_MORE_ITEMS; - } - switch (r->in.level) { case 1: - result = spoolss_enumforms_level1(p->mem_ctx, - builtin_forms, - num_builtin_forms, - user_forms, - num_user_forms, - r->out.info, - r->out.count); + result = winreg_printer_enumforms1(p->mem_ctx, + p->server_info, + r->out.count, + r->out.info); break; default: result = WERR_UNKNOWN_LEVEL; break; } - SAFE_FREE(user_forms); - SAFE_FREE(builtin_forms); - if (!W_ERROR_IS_OK(result)) { return result; } + if (*r->out.count == 0) { + return WERR_NO_MORE_ITEMS; + } + *r->out.needed = SPOOLSS_BUFFER_UNION_ARRAY(p->mem_ctx, spoolss_EnumForms, *r->out.info, r->in.level, -- cgit