dahdi: Fix placement of '/' in output of /proc/dahdi/x

Fixes strings that look like:
  Span 1: TE2/0/1 "T2XXP (PCI) Card 0 Span 1" CCSHDB3//CRC4 RED

To look like:
  Span 1: TE2/0/1 "T2XXP (PCI) Card 0 Span 1" CCS/HDB3/CRC4 RED

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
This commit is contained in:
Shaun Ruffell 2013-09-21 12:03:57 -05:00
parent 496f817773
commit 7405dd6038

View File

@ -787,6 +787,7 @@ ssize_t lineconfig_str(int lineconfig, char buf[], size_t size)
int crc4_bit = 0; int crc4_bit = 0;
int len = 0; int len = 0;
int bit; int bit;
bool written = false;
for (bit = 4; bit <= 12; bit++) { for (bit = 4; bit <= 12; bit++) {
int mask = (1 << bit); int mask = (1 << bit);
@ -798,8 +799,10 @@ ssize_t lineconfig_str(int lineconfig, char buf[], size_t size)
case DAHDI_CONFIG_AMI: case DAHDI_CONFIG_AMI:
case DAHDI_CONFIG_HDB3: case DAHDI_CONFIG_HDB3:
framing_bit = bit; framing_bit = bit;
len += snprintf(buf + len, size, "%s/", len += snprintf(buf + len, size, "%s%s",
(written) ? "/" : "",
dahdi_lineconfig_bit_name(bit)); dahdi_lineconfig_bit_name(bit));
written = true;
} }
} }
if (!coding_bit) { if (!coding_bit) {
@ -808,14 +811,18 @@ ssize_t lineconfig_str(int lineconfig, char buf[], size_t size)
case DAHDI_CONFIG_D4: case DAHDI_CONFIG_D4:
case DAHDI_CONFIG_CCS: case DAHDI_CONFIG_CCS:
coding_bit = bit; coding_bit = bit;
len += snprintf(buf + len, size, "%s", len += snprintf(buf + len, size, "%s%s",
(written) ? "/" : "",
dahdi_lineconfig_bit_name(bit)); dahdi_lineconfig_bit_name(bit));
written = true;
} }
} }
if (!crc4_bit && mask == DAHDI_CONFIG_CRC4) { if (!crc4_bit && mask == DAHDI_CONFIG_CRC4) {
crc4_bit = bit; crc4_bit = bit;
len += snprintf(buf + len, size, "/%s", len += snprintf(buf + len, size, "%s%s",
(written) ? "/" : "",
dahdi_lineconfig_bit_name(bit)); dahdi_lineconfig_bit_name(bit));
written = true;
} }
} }
return len; return len;