LCOV - code coverage report
Current view: top level - librpc/ndr - ndr_misc.c (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 19 24 79.2 %
Date: 2024-04-21 15:09:00 Functions: 4 5 80.0 %

          Line data    Source code
       1             : /* 
       2             :    Unix SMB/CIFS implementation.
       3             : 
       4             :    UUID/GUID/policy_handle functions
       5             : 
       6             :    Copyright (C) Andrew Tridgell                   2003.
       7             :    Copyright (C) Stefan (metze) Metzmacher         2004.
       8             :    
       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.
      13             :    
      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.
      18             :    
      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/>.
      21             : */
      22             : 
      23             : #include "includes.h"
      24             : #include "system/network.h"
      25             : #include "librpc/ndr/libndr.h"
      26             : #include "libcli/util/ntstatus.h"
      27             : #include "lib/util/util_str_hex.h"
      28             : 
      29      247358 : _PUBLIC_ void ndr_print_GUID(struct ndr_print *ndr, const char *name, const struct GUID *guid)
      30             : {
      31         740 :         struct GUID_txt_buf buf;
      32      247358 :         ndr->print(ndr, "%-25s: %s", name, GUID_buf_string(guid, &buf));
      33      247358 : }
      34             : 
      35     6009374 : bool ndr_syntax_id_equal(const struct ndr_syntax_id *i1,
      36             :                          const struct ndr_syntax_id *i2)
      37             : {
      38     6009374 :         return GUID_equal(&i1->uuid, &i2->uuid)
      39     6009374 :                 && (i1->if_version == i2->if_version);
      40             : }
      41             : 
      42     3355505 : char *ndr_syntax_id_buf_string(
      43             :         const struct ndr_syntax_id *id, struct ndr_syntax_id_buf *dst)
      44             : {
      45        7777 :         struct GUID_txt_buf guid_buf;
      46             : 
      47     6711010 :         snprintf(dst->buf,
      48             :                  sizeof(dst->buf),
      49             :                  "%s/0x%08"PRIx32,
      50             :                  GUID_buf_string(&id->uuid, &guid_buf),
      51     3355505 :                  id->if_version);
      52             : 
      53     3355505 :         return dst->buf;
      54             : }
      55             : 
      56           0 : _PUBLIC_ char *ndr_syntax_id_to_string(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *id)
      57             : {
      58           0 :         struct ndr_syntax_id_buf buf;
      59           0 :         return talloc_strdup(mem_ctx, ndr_syntax_id_buf_string(id, &buf));
      60             : }
      61             : 
      62     3329910 : _PUBLIC_ bool ndr_syntax_id_from_string(const char *s, struct ndr_syntax_id *id)
      63             : {
      64        7129 :         bool ok;
      65             : 
      66     3329910 :         ok =  parse_guid_string(s, &id->uuid);
      67     3329910 :         if (!ok) {
      68           0 :                 return false;
      69             :         }
      70             : 
      71     3329910 :         if (strncmp(s + 36, "/0x", 3) != 0) {
      72           0 :                 return false;
      73             :         }
      74             : 
      75     3329910 :         ok = hex_uint32(s+39, &id->if_version);
      76     3329910 :         return ok;
      77             : }

Generated by: LCOV version 1.14