Skip to content

Commit

Permalink
Move NS_GUID_string and NS_GUID_from_string to dsdb-common.
Browse files Browse the repository at this point in the history
  • Loading branch information
jelmer committed Mar 20, 2012
1 parent 0b6dea9 commit d875327
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 55 deletions.
2 changes: 0 additions & 2 deletions librpc/ndr/libndr.h
Original file line number Diff line number Diff line change
Expand Up @@ -608,14 +608,12 @@ NTSTATUS GUID_to_ndr_blob(const struct GUID *guid, TALLOC_CTX *mem_ctx, DATA_BLO
NTSTATUS GUID_from_ndr_blob(const DATA_BLOB *b, struct GUID *guid);
NTSTATUS GUID_from_data_blob(const DATA_BLOB *s, struct GUID *guid);
NTSTATUS GUID_from_string(const char *s, struct GUID *guid);
NTSTATUS NS_GUID_from_string(const char *s, struct GUID *guid);
struct GUID GUID_zero(void);
bool GUID_all_zero(const struct GUID *u);
int GUID_compare(const struct GUID *u1, const struct GUID *u2);
char *GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid);
char *GUID_string2(TALLOC_CTX *mem_ctx, const struct GUID *guid);
char *GUID_hexstring(TALLOC_CTX *mem_ctx, const struct GUID *guid);
char *NS_GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid);
struct GUID GUID_random(void);

_PUBLIC_ enum ndr_err_code ndr_pull_enum_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *v);
Expand Down
52 changes: 0 additions & 52 deletions librpc/ndr/uuid.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,45 +156,6 @@ _PUBLIC_ NTSTATUS GUID_from_string(const char *s, struct GUID *guid)
return GUID_from_data_blob(&blob, guid);
}

/**
build a GUID from a string
*/
_PUBLIC_ NTSTATUS NS_GUID_from_string(const char *s, struct GUID *guid)
{
NTSTATUS status = NT_STATUS_INVALID_PARAMETER;
uint32_t time_low;
uint32_t time_mid, time_hi_and_version;
uint32_t clock_seq[2];
uint32_t node[6];
int i;

if (s == NULL) {
return NT_STATUS_INVALID_PARAMETER;
}

if (11 == sscanf(s, "%08x-%04x%04x-%02x%02x%02x%02x-%02x%02x%02x%02x",
&time_low, &time_mid, &time_hi_and_version,
&clock_seq[0], &clock_seq[1],
&node[0], &node[1], &node[2], &node[3], &node[4], &node[5])) {
status = NT_STATUS_OK;
}

if (!NT_STATUS_IS_OK(status)) {
return status;
}

guid->time_low = time_low;
guid->time_mid = time_mid;
guid->time_hi_and_version = time_hi_and_version;
guid->clock_seq[0] = clock_seq[0];
guid->clock_seq[1] = clock_seq[1];
for (i=0;i<6;i++) {
guid->node[i] = node[i];
}

return NT_STATUS_OK;
}

/**
* generate a random GUID
*/
Expand Down Expand Up @@ -318,19 +279,6 @@ _PUBLIC_ char *GUID_hexstring(TALLOC_CTX *mem_ctx, const struct GUID *guid)
return ret;
}

_PUBLIC_ char *NS_GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid)
{
return talloc_asprintf(mem_ctx,
"%08x-%04x%04x-%02x%02x%02x%02x-%02x%02x%02x%02x",
guid->time_low, guid->time_mid,
guid->time_hi_and_version,
guid->clock_seq[0],
guid->clock_seq[1],
guid->node[0], guid->node[1],
guid->node[2], guid->node[3],
guid->node[4], guid->node[5]);
}

_PUBLIC_ bool ndr_policy_handle_empty(const struct policy_handle *h)
{
return (h->handle_type == 0 && GUID_all_zero(&h->uuid));
Expand Down
52 changes: 52 additions & 0 deletions source4/dsdb/common/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -4470,3 +4470,55 @@ int dsdb_create_partial_replica_NC(struct ldb_context *ldb, struct ldb_dn *dn)
talloc_free(tmp_ctx);
return LDB_SUCCESS;
}

/**
build a GUID from a string
*/
_PUBLIC_ NTSTATUS NS_GUID_from_string(const char *s, struct GUID *guid)
{
NTSTATUS status = NT_STATUS_INVALID_PARAMETER;
uint32_t time_low;
uint32_t time_mid, time_hi_and_version;
uint32_t clock_seq[2];
uint32_t node[6];
int i;

if (s == NULL) {
return NT_STATUS_INVALID_PARAMETER;
}

if (11 == sscanf(s, "%08x-%04x%04x-%02x%02x%02x%02x-%02x%02x%02x%02x",
&time_low, &time_mid, &time_hi_and_version,
&clock_seq[0], &clock_seq[1],
&node[0], &node[1], &node[2], &node[3], &node[4], &node[5])) {
status = NT_STATUS_OK;
}

if (!NT_STATUS_IS_OK(status)) {
return status;
}

guid->time_low = time_low;
guid->time_mid = time_mid;
guid->time_hi_and_version = time_hi_and_version;
guid->clock_seq[0] = clock_seq[0];
guid->clock_seq[1] = clock_seq[1];
for (i=0;i<6;i++) {
guid->node[i] = node[i];
}

return NT_STATUS_OK;
}

_PUBLIC_ char *NS_GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid)
{
return talloc_asprintf(mem_ctx,
"%08x-%04x%04x-%02x%02x%02x%02x-%02x%02x%02x%02x",
guid->time_low, guid->time_mid,
guid->time_hi_and_version,
guid->clock_seq[0],
guid->clock_seq[1],
guid->node[0], guid->node[1],
guid->node[2], guid->node[3],
guid->node[4], guid->node[5]);
}
10 changes: 10 additions & 0 deletions source4/dsdb/common/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef __DSDB_COMMON_UTIL_H__
#define __DSDB_COMMON_UTIL_H__

/*
flags for dsdb_request_add_controls(). For the module functions,
the upper 16 bits are in dsdb/samdb/ldb_modules/util.h
Expand Down Expand Up @@ -57,3 +60,10 @@ bool is_attr_in_list(const char * const * attrs, const char *attr);

#define DSDB_SECRET_ATTRIBUTES_COMMA ,
#define DSDB_SECRET_ATTRIBUTES DSDB_SECRET_ATTRIBUTES_EX(DSDB_SECRET_ATTRIBUTES_COMMA)

struct GUID;

char *NS_GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid);
NTSTATUS NS_GUID_from_string(const char *s, struct GUID *guid);

#endif /* __DSDB_COMMON_UTIL_H__ */
1 change: 1 addition & 0 deletions source4/dsdb/samdb/ldb_modules/simple_ldap_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "librpc/gen_ndr/ndr_misc.h"
#include "librpc/ndr/libndr.h"
#include "dsdb/samdb/samdb.h"
#include "dsdb/common/util.h"
#include <ldb_handlers.h>

struct entryuuid_private {
Expand Down
2 changes: 1 addition & 1 deletion source4/dsdb/samdb/ldb_modules/wscript_build
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ bld.SAMBA_MODULE('ldb_simple_ldap_map',
init_function='ldb_simple_ldap_map_module_init',
module_init_name='ldb_init_module',
internal_module=False,
deps='talloc ldb ndr ldbsamba'
deps='talloc ldb ndr ldbsamba samdb-common'
)


Expand Down

0 comments on commit d875327

Please sign in to comment.