2 Unix SMB/CIFS implementation.
4 UUID/GUID/policy_handle functions
6 Copyright (C) Andrew Tridgell 2003.
7 Copyright (C) Stefan (metze) Metzmacher 2004.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #include "system/network.h"
25 #include "librpc/ndr/libndr.h"
27 _PUBLIC_
void ndr_print_GUID(struct ndr_print
*ndr
, const char *name
, const struct GUID
*guid
)
29 ndr
->print(ndr
, "%-25s: %s", name
, GUID_string(ndr
, guid
));
32 bool ndr_syntax_id_equal(const struct ndr_syntax_id
*i1
,
33 const struct ndr_syntax_id
*i2
)
35 return GUID_equal(&i1
->uuid
, &i2
->uuid
)
36 && (i1
->if_version
== i2
->if_version
);
39 _PUBLIC_
char *ndr_syntax_id_to_string(TALLOC_CTX
*mem_ctx
, const struct ndr_syntax_id
*id
)
41 return talloc_asprintf(mem_ctx
,
42 "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x/0x%08x",
43 id
->uuid
.time_low
, id
->uuid
.time_mid
,
44 id
->uuid
.time_hi_and_version
,
45 id
->uuid
.clock_seq
[0],
46 id
->uuid
.clock_seq
[1],
47 id
->uuid
.node
[0], id
->uuid
.node
[1],
48 id
->uuid
.node
[2], id
->uuid
.node
[3],
49 id
->uuid
.node
[4], id
->uuid
.node
[5],
50 (unsigned)id
->if_version
);
53 _PUBLIC_
bool ndr_syntax_id_from_string(const char *s
, struct ndr_syntax_id
*id
)
58 uint32_t time_mid
, time_hi_and_version
;
59 uint32_t clock_seq
[2];
64 "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x/0x%08x",
65 &time_low
, &time_mid
, &time_hi_and_version
,
66 &clock_seq
[0], &clock_seq
[1],
67 &node
[0], &node
[1], &node
[2], &node
[3], &node
[4], &node
[5],
73 id
->uuid
.time_low
= time_low
;
74 id
->uuid
.time_mid
= time_mid
;
75 id
->uuid
.time_hi_and_version
= time_hi_and_version
;
76 id
->uuid
.clock_seq
[0] = clock_seq
[0];
77 id
->uuid
.clock_seq
[1] = clock_seq
[1];
79 id
->uuid
.node
[i
] = node
[i
];
81 id
->if_version
= if_version
;