diff options
author | Andreas Schneider <asn@samba.org> | 2013-03-12 11:39:08 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2013-03-15 12:11:03 +0100 |
commit | 90068bb460c5229f0e146d2118c48d5086c3eb9a (patch) | |
tree | 9bed52bc01d9ab6b944108e37fe12912206661d5 /source3/printing/nt_printing_migrate.c | |
parent | c8abc6f13879c6aad9dbde4f464f707e28083ff1 (diff) | |
download | samba-90068bb460c5229f0e146d2118c48d5086c3eb9a.tar.gz samba-90068bb460c5229f0e146d2118c48d5086c3eb9a.tar.bz2 samba-90068bb460c5229f0e146d2118c48d5086c3eb9a.zip |
s3-net: Add encoding=<CP> to 'net printing migrate'.
This allows you to convert printing tdb's which are in e.g. in latin1 to
convert to UTF-8 and import them into the registry.
Reviewed-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source3/printing/nt_printing_migrate.c')
-rw-r--r-- | source3/printing/nt_printing_migrate.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source3/printing/nt_printing_migrate.c b/source3/printing/nt_printing_migrate.c index 94dc3daa56..eacafa2a5f 100644 --- a/source3/printing/nt_printing_migrate.c +++ b/source3/printing/nt_printing_migrate.c @@ -88,7 +88,8 @@ NTSTATUS printing_tdb_migrate_driver(TALLOC_CTX *mem_ctx, struct rpc_pipe_client *winreg_pipe, const char *key_name, unsigned char *data, - size_t length) + size_t length, + bool do_string_conversion) { struct dcerpc_binding_handle *b = winreg_pipe->binding_handle; enum ndr_err_code ndr_err; @@ -105,6 +106,10 @@ NTSTATUS printing_tdb_migrate_driver(TALLOC_CTX *mem_ctx, ZERO_STRUCT(r); + if (do_string_conversion) { + r.string_flags = LIBNDR_FLAG_STR_ASCII; + } + ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r, (ndr_pull_flags_fn_t)ndr_pull_ntprinting_driver); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { @@ -150,7 +155,8 @@ NTSTATUS printing_tdb_migrate_printer(TALLOC_CTX *mem_ctx, struct rpc_pipe_client *winreg_pipe, const char *key_name, unsigned char *data, - size_t length) + size_t length, + bool do_string_conversion) { struct dcerpc_binding_handle *b = winreg_pipe->binding_handle; enum ndr_err_code ndr_err; @@ -173,6 +179,10 @@ NTSTATUS printing_tdb_migrate_printer(TALLOC_CTX *mem_ctx, ZERO_STRUCT(r); + if (do_string_conversion) { + r.info.string_flags = LIBNDR_FLAG_STR_ASCII; + } + ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r, (ndr_pull_flags_fn_t) ndr_pull_ntprinting_printer); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { |