LCOV - code coverage report
Current view: top level - src/utils - uuid.c (source / functions) Hit Total Coverage
Test: wpa_supplicant/hostapd combined for hwsim test run 1443382998 Lines: 35 36 97.2 %
Date: 2015-09-27 Functions: 3 3 100.0 %

          Line data    Source code
       1             : /*
       2             :  * Universally Unique IDentifier (UUID)
       3             :  * Copyright (c) 2008, Jouni Malinen <j@w1.fi>
       4             :  *
       5             :  * This software may be distributed under the terms of the BSD license.
       6             :  * See README for more details.
       7             :  */
       8             : 
       9             : #include "includes.h"
      10             : 
      11             : #include "common.h"
      12             : #include "uuid.h"
      13             : 
      14         466 : int uuid_str2bin(const char *str, u8 *bin)
      15             : {
      16             :         const char *pos;
      17             :         u8 *opos;
      18             : 
      19         466 :         pos = str;
      20         466 :         opos = bin;
      21             : 
      22         466 :         if (hexstr2bin(pos, opos, 4))
      23          20 :                 return -1;
      24         446 :         pos += 8;
      25         446 :         opos += 4;
      26             : 
      27         446 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 2))
      28           3 :                 return -1;
      29         443 :         pos += 4;
      30         443 :         opos += 2;
      31             : 
      32         443 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 2))
      33           2 :                 return -1;
      34         441 :         pos += 4;
      35         441 :         opos += 2;
      36             : 
      37         441 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 2))
      38           2 :                 return -1;
      39         439 :         pos += 4;
      40         439 :         opos += 2;
      41             : 
      42         439 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 6))
      43           2 :                 return -1;
      44             : 
      45         437 :         return 0;
      46             : }
      47             : 
      48             : 
      49        8415 : int uuid_bin2str(const u8 *bin, char *str, size_t max_len)
      50             : {
      51             :         int len;
      52      134640 :         len = os_snprintf(str, max_len, "%02x%02x%02x%02x-%02x%02x-%02x%02x-"
      53             :                           "%02x%02x-%02x%02x%02x%02x%02x%02x",
      54       33660 :                           bin[0], bin[1], bin[2], bin[3],
      55       33660 :                           bin[4], bin[5], bin[6], bin[7],
      56       33660 :                           bin[8], bin[9], bin[10], bin[11],
      57       33660 :                           bin[12], bin[13], bin[14], bin[15]);
      58        8415 :         if (os_snprintf_error(max_len, len))
      59           0 :                 return -1;
      60        8415 :         return 0;
      61             : }
      62             : 
      63             : 
      64        1524 : int is_nil_uuid(const u8 *uuid)
      65             : {
      66             :         int i;
      67       19652 :         for (i = 0; i < UUID_LEN; i++)
      68       18519 :                 if (uuid[i])
      69         391 :                         return 0;
      70        1133 :         return 1;
      71             : }

Generated by: LCOV version 1.10