LCOV - code coverage report
Current view: top level - librpc/ndr - ndr_ODJ.c (source / functions) Hit Total Coverage
Test: coverage report for master 2b515b7d Lines: 12 13 92.3 %
Date: 2024-02-28 12:06:22 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /*
       2             :    Unix SMB/CIFS implementation.
       3             : 
       4             :    routines for marshalling/unmarshalling special ODJ structures
       5             : 
       6             :    Copyright (C) Guenther Deschner 2021
       7             : 
       8             :    This program is free software; you can redistribute it and/or modify
       9             :    it under the terms of the GNU General Public License as published by
      10             :    the Free Software Foundation; either version 3 of the License, or
      11             :    (at your option) any later version.
      12             : 
      13             :    This program is distributed in the hope that it will be useful,
      14             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      15             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      16             :    GNU General Public License for more details.
      17             : 
      18             :    You should have received a copy of the GNU General Public License
      19             :    along with this program.  If not, see <http://www.gnu.org/licenses/>.
      20             : */
      21             : 
      22             : #include "includes.h"
      23             : #include "../librpc/gen_ndr/ndr_ODJ.h"
      24             : #include "../librpc/ndr/ndr_ODJ.h"
      25             : 
      26        3176 : uint32_t odj_switch_level_from_guid(const struct GUID *r)
      27             : {
      28           8 :         struct {
      29             :                 uint16_t level;
      30             :                 const char *guid;
      31        3176 :         } levels[] = {
      32             :                 {
      33             :                         .level  = 1,
      34             :                         .guid   = ODJ_GUID_JOIN_PROVIDER
      35             :                 },{
      36             :                         .level  = 2,
      37             :                         .guid   = ODJ_GUID_JOIN_PROVIDER2
      38             :                 },{
      39             :                         .level  = 3,
      40             :                         .guid   = ODJ_GUID_JOIN_PROVIDER3
      41             :                 },{
      42             :                         .level  = 4,
      43             :                         .guid   = ODJ_GUID_CERT_PROVIDER
      44             :                 },{
      45             :                         .level  = 5,
      46             :                         .guid   = ODJ_GUID_POLICY_PROVIDER
      47             :                 }
      48             :         };
      49           8 :         int i;
      50             : 
      51        6352 :         for (i = 0; i < ARRAY_SIZE(levels); i++) {
      52          16 :                 struct GUID guid;
      53          16 :                 NTSTATUS status;
      54             : 
      55        6352 :                 status = GUID_from_string(levels[i].guid, &guid);
      56        6352 :                 if (!NT_STATUS_IS_OK(status)) {
      57        3176 :                         return 0;
      58             :                 }
      59        6352 :                 if (GUID_equal(&guid, r)) {
      60        3176 :                         return levels[i].level;
      61             :                 }
      62             :         }
      63             : 
      64           0 :         return 0;
      65             : }

Generated by: LCOV version 1.14