LCOV - code coverage report
Current view: top level - shared - vlan-util.c (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 0 42 0.0 %
Date: 2019-08-22 15:41:25 Functions: 0 4 0.0 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: LGPL-2.1+ */
       2             : 
       3             : #include "conf-parser.h"
       4             : #include "parse-util.h"
       5             : #include "string-util.h"
       6             : #include "vlan-util.h"
       7             : 
       8           0 : int parse_vlanid(const char *p, uint16_t *ret) {
       9             :         uint16_t id;
      10             :         int r;
      11             : 
      12           0 :         assert(p);
      13           0 :         assert(ret);
      14             : 
      15           0 :         r = safe_atou16(p, &id);
      16           0 :         if (r < 0)
      17           0 :                 return r;
      18           0 :         if (!vlanid_is_valid(id))
      19           0 :                 return -ERANGE;
      20             : 
      21           0 :         *ret = id;
      22           0 :         return 0;
      23             : }
      24             : 
      25           0 : int parse_vid_range(const char *p, uint16_t *vid, uint16_t *vid_end) {
      26             :         unsigned lower, upper;
      27             :         int r;
      28             : 
      29           0 :         r = parse_range(p, &lower, &upper);
      30           0 :         if (r < 0)
      31           0 :                 return r;
      32             : 
      33           0 :         if (lower > VLANID_MAX || upper > VLANID_MAX || lower > upper)
      34           0 :                 return -EINVAL;
      35             : 
      36           0 :         *vid = lower;
      37           0 :         *vid_end = upper;
      38           0 :         return 0;
      39             : }
      40             : 
      41           0 : int config_parse_default_port_vlanid(
      42             :                 const char *unit,
      43             :                 const char *filename,
      44             :                 unsigned line,
      45             :                 const char *section,
      46             :                 unsigned section_line,
      47             :                 const char *lvalue,
      48             :                 int ltype,
      49             :                 const char *rvalue,
      50             :                 void *data,
      51             :                 void *userdata) {
      52           0 :         uint16_t *id = data;
      53             : 
      54           0 :         assert(lvalue);
      55           0 :         assert(rvalue);
      56           0 :         assert(data);
      57             : 
      58           0 :         if (streq(rvalue, "none")) {
      59           0 :                 *id = 0;
      60           0 :                 return 0;
      61             :         }
      62             : 
      63           0 :         return config_parse_vlanid(unit, filename, line, section, section_line,
      64             :                                    lvalue, ltype, rvalue, data, userdata);
      65             : }
      66             : 
      67           0 : int config_parse_vlanid(
      68             :                 const char *unit,
      69             :                 const char *filename,
      70             :                 unsigned line,
      71             :                 const char *section,
      72             :                 unsigned section_line,
      73             :                 const char *lvalue,
      74             :                 int ltype,
      75             :                 const char *rvalue,
      76             :                 void *data,
      77             :                 void *userdata) {
      78             : 
      79           0 :         uint16_t *id = data;
      80             :         int r;
      81             : 
      82           0 :         assert(filename);
      83           0 :         assert(lvalue);
      84           0 :         assert(rvalue);
      85           0 :         assert(data);
      86             : 
      87           0 :         r = parse_vlanid(rvalue, id);
      88           0 :         if (r == -ERANGE) {
      89           0 :                 log_syntax(unit, LOG_ERR, filename, line, r, "VLAN identifier outside of valid range 0…4094, ignoring: %s", rvalue);
      90           0 :                 return 0;
      91             :         }
      92           0 :         if (r < 0) {
      93           0 :                 log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse VLAN identifier value, ignoring: %s", rvalue);
      94           0 :                 return 0;
      95             :         }
      96             : 
      97           0 :         return 0;
      98             : }

Generated by: LCOV version 1.14