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

Generated by: LCOV version 1.10