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 1422976643 Lines: 32 36 88.9 %
Date: 2015-02-03 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         159 : int uuid_str2bin(const char *str, u8 *bin)
      15             : {
      16             :         const char *pos;
      17             :         u8 *opos;
      18             : 
      19         159 :         pos = str;
      20         159 :         opos = bin;
      21             : 
      22         159 :         if (hexstr2bin(pos, opos, 4))
      23          14 :                 return -1;
      24         145 :         pos += 8;
      25         145 :         opos += 4;
      26             : 
      27         145 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 2))
      28           1 :                 return -1;
      29         144 :         pos += 4;
      30         144 :         opos += 2;
      31             : 
      32         144 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 2))
      33           0 :                 return -1;
      34         144 :         pos += 4;
      35         144 :         opos += 2;
      36             : 
      37         144 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 2))
      38           0 :                 return -1;
      39         144 :         pos += 4;
      40         144 :         opos += 2;
      41             : 
      42         144 :         if (*pos++ != '-' || hexstr2bin(pos, opos, 6))
      43           0 :                 return -1;
      44             : 
      45         144 :         return 0;
      46             : }
      47             : 
      48             : 
      49        4531 : int uuid_bin2str(const u8 *bin, char *str, size_t max_len)
      50             : {
      51             :         int len;
      52       72496 :         len = os_snprintf(str, max_len, "%02x%02x%02x%02x-%02x%02x-%02x%02x-"
      53             :                           "%02x%02x-%02x%02x%02x%02x%02x%02x",
      54       18124 :                           bin[0], bin[1], bin[2], bin[3],
      55       18124 :                           bin[4], bin[5], bin[6], bin[7],
      56       18124 :                           bin[8], bin[9], bin[10], bin[11],
      57       18124 :                           bin[12], bin[13], bin[14], bin[15]);
      58        4531 :         if (os_snprintf_error(max_len, len))
      59           0 :                 return -1;
      60        4531 :         return 0;
      61             : }
      62             : 
      63             : 
      64         753 : int is_nil_uuid(const u8 *uuid)
      65             : {
      66             :         int i;
      67        8737 :         for (i = 0; i < UUID_LEN; i++)
      68        8238 :                 if (uuid[i])
      69         254 :                         return 0;
      70         499 :         return 1;
      71             : }

Generated by: LCOV version 1.10