WERROR delete_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const char *value );
WERROR add_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const char *value,
uint32 type, uint8 *data, int real_len );
-REGISTRY_VALUE* get_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const char *value );
+struct regval_blob* get_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const char *value );
WERROR mod_a_printer(NT_PRINTER_INFO_LEVEL *printer, uint32 level);
bool set_driver_init(NT_PRINTER_INFO_LEVEL *printer, uint32 level);
bool del_driver_init(const char *drivername);
int regsubkey_ctr_numkeys( struct regsubkey_ctr *ctr );
char* regsubkey_ctr_specific_key( struct regsubkey_ctr *ctr, uint32 key_index );
int regval_ctr_numvals(struct regval_ctr *ctr);
-REGISTRY_VALUE* dup_registry_value( REGISTRY_VALUE *val );
-void free_registry_value( REGISTRY_VALUE *val );
-uint8* regval_data_p( REGISTRY_VALUE *val );
-uint32 regval_size( REGISTRY_VALUE *val );
-char* regval_name( REGISTRY_VALUE *val );
-uint32 regval_type( REGISTRY_VALUE *val );
-REGISTRY_VALUE* regval_ctr_specific_value(struct regval_ctr *ctr, uint32 idx);
+struct regval_blob* dup_registry_value(struct regval_blob *val);
+void free_registry_value(struct regval_blob *val);
+uint8* regval_data_p(struct regval_blob *val);
+uint32 regval_size(struct regval_blob *val);
+char* regval_name(struct regval_blob *val);
+uint32 regval_type(struct regval_blob *val);
+struct regval_blob* regval_ctr_specific_value(struct regval_ctr *ctr,
+ uint32 idx);
bool regval_ctr_key_exists(struct regval_ctr *ctr, const char *value);
-REGISTRY_VALUE *regval_compose(TALLOC_CTX *ctx, const char *name, uint16 type,
- const char *data_p, size_t size);
+struct regval_blob *regval_compose(TALLOC_CTX *ctx, const char *name,
+ uint16 type,
+ const char *data_p, size_t size);
int regval_ctr_addvalue(struct regval_ctr *ctr, const char *name, uint16 type,
const char *data_p, size_t size);
-int regval_ctr_copyvalue(struct regval_ctr *ctr, REGISTRY_VALUE *val);
+int regval_ctr_copyvalue(struct regval_ctr *ctr, struct regval_blob *val);
int regval_ctr_delvalue(struct regval_ctr *ctr, const char *name);
-REGISTRY_VALUE* regval_ctr_getvalue(struct regval_ctr *ctr, const char *name);
-uint32 regval_dword( REGISTRY_VALUE *val );
-char *regval_sz(REGISTRY_VALUE *val);
+struct regval_blob* regval_ctr_getvalue(struct regval_ctr *ctr,
+ const char *name);
+uint32 regval_dword(struct regval_blob *val);
+char *regval_sz(struct regval_blob *val);
/* The following definitions come from registry/reg_perfcount.c */
/* structure to contain registry values */
-typedef struct {
+struct regval_blob {
fstring valuename;
uint16 type;
/* this should be encapsulated in an RPC_DATA_BLOB */
uint32 size; /* in bytes */
uint8 *data_p;
-} REGISTRY_VALUE;
+};
/*
* A REG_SZ string is not necessarily NULL terminated. When retrieving it from
struct regval_ctr {
uint32 num_values;
- REGISTRY_VALUE **values;
+ struct regval_blob **values;
int seqnum;
};
map a REG_SZ to an ldap mod
*/
static bool map_sz(TALLOC_CTX *ctx, ADS_MODLIST *mods,
- const REGISTRY_VALUE *value)
+ const struct regval_blob *value)
{
char *str_value = NULL;
size_t converted_size;
map a REG_DWORD to an ldap mod
*/
static bool map_dword(TALLOC_CTX *ctx, ADS_MODLIST *mods,
- const REGISTRY_VALUE *value)
+ const struct regval_blob *value)
{
char *str_value = NULL;
ADS_STATUS status;
map a boolean REG_BINARY to an ldap mod
*/
static bool map_bool(TALLOC_CTX *ctx, ADS_MODLIST *mods,
- const REGISTRY_VALUE *value)
+ const struct regval_blob *value)
{
char *str_value;
ADS_STATUS status;
map a REG_MULTI_SZ to an ldap mod
*/
static bool map_multi_sz(TALLOC_CTX *ctx, ADS_MODLIST *mods,
- const REGISTRY_VALUE *value)
+ const struct regval_blob *value)
{
char **str_values = NULL;
size_t converted_size;
struct valmap_to_ads {
const char *valname;
- bool (*fn)(TALLOC_CTX *, ADS_MODLIST *, const REGISTRY_VALUE *);
+ bool (*fn)(TALLOC_CTX *, ADS_MODLIST *, const struct regval_blob *);
};
/*
map a REG_SZ to an ldap mod
*/
static void map_regval_to_ads(TALLOC_CTX *ctx, ADS_MODLIST *mods,
- REGISTRY_VALUE *value)
+ struct regval_blob *value)
{
const struct valmap_to_ads map[] = {
{SPOOL_REG_ASSETNUMBER, map_sz},
} else {
/* Have the data we need now, so start building */
for (i=0; i < count; i++) {
- REGISTRY_VALUE v;
+ struct regval_blob v;
DATA_BLOB blob;
result = push_spoolss_PrinterData(mem_ctx, &blob,
printername, win_errstr(result)));
} else {
for (i=0; i < count; i++) {
- REGISTRY_VALUE v;
+ struct regval_blob v;
DATA_BLOB blob = data_blob_null;
result = push_spoolss_PrinterData(mem_ctx, &blob,
{
int len = 0;
int i, j;
- REGISTRY_VALUE *val;
+ struct regval_blob *val;
struct regval_ctr *val_ctr;
char *path = NULL;
int num_values;
{
NT_PRINTER_INFO_LEVEL *printer = NULL;
struct regval_ctr *ctr;
- REGISTRY_VALUE *guid_val;
+ struct regval_blob *guid_val;
WERROR win_rc;
int i;
bool ret = False;
/****************************************************************************
***************************************************************************/
-REGISTRY_VALUE* get_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const char *value )
+struct regval_blob* get_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const char *value )
{
int key_index;
char *str;
int size;
uint8 *data_p;
- REGISTRY_VALUE *regval_p;
+ struct regval_blob *regval_p;
int key_index;
/* add the "PrinterDriverData" key first for performance reasons */
{
int len = 0;
int i;
- REGISTRY_VALUE *val;
+ struct regval_blob *val;
int num_values;
if ( !values )
{
int num_values = regval_ctr_numvals( values );
uint32 value_index;
- REGISTRY_VALUE *val;
+ struct regval_blob *val;
int i;
for ( i=0; i<num_values; i++ ) {
else {
int num_values = regval_ctr_numvals( values );
int i;
- REGISTRY_VALUE *val;
+ struct regval_blob *val;
delete_printer_key( printer->info_2->data, keyname );
char *evtlogpath = NULL;
struct regsubkey_ctr *subkeys;
struct regval_ctr *values;
- REGISTRY_VALUE *rval;
+ struct regval_blob *rval;
UNISTR2 data;
uint16 *msz_wp;
int mbytes, ii;
}
/***********************************************************************
- allocate memory for and duplicate a REGISTRY_VALUE.
+ allocate memory for and duplicate a struct regval_blob.
This is malloc'd memory so the caller should free it when done
**********************************************************************/
-REGISTRY_VALUE* dup_registry_value( REGISTRY_VALUE *val )
+struct regval_blob* dup_registry_value(struct regval_blob *val)
{
- REGISTRY_VALUE *copy = NULL;
+ struct regval_blob *copy = NULL;
if ( !val )
return NULL;
- if ( !(copy = SMB_MALLOC_P( REGISTRY_VALUE)) ) {
+ if ( !(copy = SMB_MALLOC_P( struct regval_blob)) ) {
DEBUG(0,("dup_registry_value: malloc() failed!\n"));
return NULL;
}
/* copy all the non-pointer initial data */
- memcpy( copy, val, sizeof(REGISTRY_VALUE) );
+ memcpy( copy, val, sizeof(struct regval_blob) );
copy->size = 0;
copy->data_p = NULL;
}
/**********************************************************************
- free the memory allocated to a REGISTRY_VALUE
+ free the memory allocated to a struct regval_blob
*********************************************************************/
-void free_registry_value( REGISTRY_VALUE *val )
+void free_registry_value(struct regval_blob *val)
{
if ( !val )
return;
/**********************************************************************
*********************************************************************/
-uint8* regval_data_p( REGISTRY_VALUE *val )
+uint8* regval_data_p(struct regval_blob *val)
{
return val->data_p;
}
/**********************************************************************
*********************************************************************/
-uint32 regval_size( REGISTRY_VALUE *val )
+uint32 regval_size(struct regval_blob *val)
{
return val->size;
}
/**********************************************************************
*********************************************************************/
-char* regval_name( REGISTRY_VALUE *val )
+char* regval_name(struct regval_blob *val)
{
return val->valuename;
}
/**********************************************************************
*********************************************************************/
-uint32 regval_type( REGISTRY_VALUE *val )
+uint32 regval_type(struct regval_blob *val)
{
return val->type;
}
since this memory will go away when the ctr is free()'d
**********************************************************************/
-REGISTRY_VALUE* regval_ctr_specific_value(struct regval_ctr *ctr, uint32 idx)
+struct regval_blob *regval_ctr_specific_value(struct regval_ctr *ctr,
+ uint32 idx)
{
if ( !(idx < ctr->num_values) )
return NULL;
}
/***********************************************************************
- * compose a REGISTRY_VALUE from input data
+ * compose a struct regval_blob from input data
**********************************************************************/
-REGISTRY_VALUE *regval_compose(TALLOC_CTX *ctx, const char *name, uint16 type,
- const char *data_p, size_t size)
+struct regval_blob *regval_compose(TALLOC_CTX *ctx, const char *name,
+ uint16 type,
+ const char *data_p, size_t size)
{
- REGISTRY_VALUE *regval = TALLOC_P(ctx, REGISTRY_VALUE);
+ struct regval_blob *regval = TALLOC_P(ctx, struct regval_blob);
if (regval == NULL) {
return NULL;
/* allocate a slot in the array of pointers */
if ( ctr->num_values == 0 ) {
- ctr->values = TALLOC_P( ctr, REGISTRY_VALUE *);
+ ctr->values = TALLOC_P( ctr, struct regval_blob *);
} else {
ctr->values = TALLOC_REALLOC_ARRAY(ctr, ctr->values,
- REGISTRY_VALUE *,
+ struct regval_blob *,
ctr->num_values+1);
}
Add a new registry value to the array
**********************************************************************/
-int regval_ctr_copyvalue(struct regval_ctr *ctr, REGISTRY_VALUE *val)
+int regval_ctr_copyvalue(struct regval_ctr *ctr, struct regval_blob *val)
{
if ( val ) {
regval_ctr_addvalue(ctr, val->valuename, val->type,
ctr->num_values--;
if ( i < ctr->num_values )
memmove(&ctr->values[i], &ctr->values[i+1],
- sizeof(REGISTRY_VALUE*)*(ctr->num_values-i));
+ sizeof(struct regval_blob*)*(ctr->num_values-i));
return ctr->num_values;
}
No need to free memory since it is talloc'd.
**********************************************************************/
-REGISTRY_VALUE* regval_ctr_getvalue(struct regval_ctr *ctr, const char *name)
+struct regval_blob* regval_ctr_getvalue(struct regval_ctr *ctr,
+ const char *name)
{
int i;
return the data_p as a uint32
**********************************************************************/
-uint32 regval_dword( REGISTRY_VALUE *val )
+uint32 regval_dword(struct regval_blob *val)
{
uint32 data;
return the data_p as a character string
**********************************************************************/
-char *regval_sz(REGISTRY_VALUE *val)
+char *regval_sz(struct regval_blob *val)
{
char *data = NULL;
/*******************************************************************
*******************************************************************/
-static bool create_vk_record( REGF_FILE *file, REGF_VK_REC *vk, REGISTRY_VALUE *value )
+static bool create_vk_record(REGF_FILE *file, REGF_VK_REC *vk,
+ struct regval_blob *value)
{
char *name = regval_name(value);
REGF_HBIN *data_hbin;
for ( i=0; i<nk->num_values; i++ ) {
uint32 vk_size, namelen, datalen;
- REGISTRY_VALUE *r;
+ struct regval_blob *r;
r = regval_ctr_specific_value( values, i );
create_vk_record( file, &nk->values[i], r );
{
char *ptr;
struct regval_ctr *values;
- REGISTRY_VALUE *val;
+ struct regval_blob *val;
switch( r->in.property ) {
case DEV_REGPROP_DESC:
r->out.data->value = printer->info_2->changeid;
result = WERR_OK;
} else {
- REGISTRY_VALUE *v;
+ struct regval_blob *v;
DATA_BLOB blob;
v = get_printer_data(printer->info_2,
Printer_entry *Printer = find_printer_index_by_hnd(p, r->in.handle);
int snum;
WERROR result;
- REGISTRY_VALUE *val = NULL;
+ struct regval_blob *val = NULL;
NT_PRINTER_DATA *p_data;
int i, key_index, num_values;
int name_length;
{
Printer_entry *Printer = find_printer_index_by_hnd(p, r->in.handle);
- REGISTRY_VALUE *val = NULL;
+ struct regval_blob *val = NULL;
NT_PRINTER_INFO_LEVEL *printer = NULL;
int snum = 0;
WERROR result = WERR_OK;
****************************************************************/
static WERROR registry_value_to_printer_enum_value(TALLOC_CTX *mem_ctx,
- REGISTRY_VALUE *v,
+ struct regval_blob *v,
struct spoolss_PrinterEnumValues *r)
{
WERROR result;
for (i=0; i < count; i++) {
- REGISTRY_VALUE *val;
+ struct regval_blob *val;
/* lookup the registry value */
NT_USER_TOKEN *token )
{
struct regval_ctr *values;
- REGISTRY_VALUE *val;
+ struct regval_blob *val;
/* retrieve the registry values for this service */
/****************************************************************************
****************************************************************************/
-static void display_reg_value(REGISTRY_VALUE value)
+static void display_reg_value(struct regval_blob value)
{
char *text = NULL;
NTSTATUS status;
fstring printername;
const char *valuename, *keyname;
- REGISTRY_VALUE value;
+ struct regval_blob value;
enum winreg_Type type;
uint8_t *buffer = NULL;
&data_needed,
&result);
if (NT_STATUS_IS_OK(status) && W_ERROR_IS_OK(result)) {
- REGISTRY_VALUE v;
+ struct regval_blob v;
fstrcpy(v.valuename, value_name);
v.type = type;
v.size = data_offered;
{
REGISTRY_KEY *key = NULL;
struct regval_ctr *values = NULL;
- REGISTRY_VALUE *val = NULL;
+ struct regval_blob *val = NULL;
SEC_DESC *ret_sd = NULL;
char *path= NULL;
WERROR wresult;
char *display_name = NULL;
REGISTRY_KEY *key = NULL;
struct regval_ctr *values = NULL;
- REGISTRY_VALUE *val = NULL;
+ struct regval_blob *val = NULL;
char *path = NULL;
WERROR wresult;
char *description = NULL;
REGISTRY_KEY *key = NULL;
struct regval_ctr *values = NULL;
- REGISTRY_VALUE *val = NULL;
+ struct regval_blob *val = NULL;
char *path = NULL;
WERROR wresult;
printf("\tDefaultdatatype: [%s]\n\n", r->default_datatype);
}
-static void display_reg_value(const char *subkey, REGISTRY_VALUE value)
+static void display_reg_value(const char *subkey, struct regval_blob value)
{
char *text;
TALLOC_CTX *mem_ctx,
struct policy_handle *hnd,
const char *keyname,
- REGISTRY_VALUE *value)
+ struct regval_blob *value)
{
WERROR result;
NTSTATUS status;
/* loop for all reg_keys */
if (NT_STATUS_IS_OK(nt_status) && W_ERROR_IS_OK(result)) {
- REGISTRY_VALUE v;
+ struct regval_blob v;
DATA_BLOB blob;
union spoolss_PrinterData printer_data;
for (j=0; j < count; j++) {
- REGISTRY_VALUE value;
+ struct regval_blob value;
UNISTR2 data;
/* although samba replies with sane data in most cases we
} else {
- REGISTRY_VALUE v;
+ struct regval_blob v;
DATA_BLOB blob;
result = push_spoolss_PrinterData(mem_ctx, &blob,