s3-rpc_client: Added a winreg set binary helper.
authorAndreas Schneider <asn@samba.org>
Mon, 31 Jan 2011 17:35:06 +0000 (18:35 +0100)
committerGünther Deschner <gd@samba.org>
Mon, 7 Feb 2011 11:32:00 +0000 (12:32 +0100)
Signed-off-by: Günther Deschner <gd@samba.org>
source3/rpc_client/cli_winreg.c
source3/rpc_client/cli_winreg.h

index be58c1f1f46ffe97786ab30a3b748eab48b2bc64..a96a2a6cc22e2da04e6be83851edbe1137ec19ad 100644 (file)
@@ -478,6 +478,37 @@ NTSTATUS dcerpc_winreg_set_multi_sz(TALLOC_CTX *mem_ctx,
        return status;
 }
 
+NTSTATUS dcerpc_winreg_set_binary(TALLOC_CTX *mem_ctx,
+                                 struct dcerpc_binding_handle *h,
+                                 struct policy_handle *key_handle,
+                                 const char *value,
+                                 DATA_BLOB *data,
+                                 WERROR *pwerr)
+{
+       struct winreg_String wvalue;
+       WERROR result = WERR_OK;
+       NTSTATUS status;
+
+       wvalue.name = value;
+
+       status = dcerpc_winreg_SetValue(h,
+                                       mem_ctx,
+                                       key_handle,
+                                       wvalue,
+                                       REG_BINARY,
+                                       data->data,
+                                       data->length,
+                                       &result);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+       if (!W_ERROR_IS_OK(result)) {
+               *pwerr = result;
+       }
+
+       return status;
+}
+
 NTSTATUS dcerpc_winreg_add_multi_sz(TALLOC_CTX *mem_ctx,
                                    struct dcerpc_binding_handle *h,
                                    struct policy_handle *key_handle,
index 7a6e814831b9e2a4dcd55bef1735369a0204c6f6..0c97a7779d36ec5ad2babbaa6c50dfac24ee62af 100644 (file)
@@ -243,6 +243,32 @@ NTSTATUS dcerpc_winreg_set_multi_sz(TALLOC_CTX *mem_ctx,
                                    const char **data,
                                    WERROR *pwerr);
 
+/**
+ * @brief Set a value with the specified binary data.
+ *
+ * @param[in]  mem_ctx  The memory context to use.
+ *
+ * @param[in]  h        The binding handle for the rpc connection.
+ *
+ * @param[in]  key_handle A handle to a key that MUST have been opened
+ *                        previously.
+ *
+ * @param[in]  value    The name of the value to set.
+ *
+ * @param[in]  data     The data to store in the value.
+ *
+ * @param[out] pwerr    A pointer to a WERROR to store result of the query.
+ *
+ * @return              NT_STATUS_OK on success or a corresponding error if
+ *                      there was a problem on the connection.
+ */
+NTSTATUS dcerpc_winreg_set_binary(TALLOC_CTX *mem_ctx,
+                                 struct dcerpc_binding_handle *h,
+                                 struct policy_handle *key_handle,
+                                 const char *value,
+                                 DATA_BLOB *data,
+                                 WERROR *pwerr);
+
 /**
  * @brief Add a value to the multi sz data.
  *