<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/16051">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">xua: Avoid multiline log in xua_msg_dump()<br><br>In general we want to avoid multiline log messages since they make<br>parsing more difficult. Also output in VTY over telnet looks strange<br>(indentation incremented at each new line).<br><br>Change-Id: Id9084d0e0f976bb374186db93d6ff8062b99e238<br>---<br>M src/xua_msg.c<br>M tests/xua/xua_test.ok<br>2 files changed, 15 insertions(+), 54 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/51/16051/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/xua_msg.c b/src/xua_msg.c</span><br><span>index ed0cdc7..91adcf1 100644</span><br><span>--- a/src/xua_msg.c</span><br><span>+++ b/src/xua_msg.c</span><br><span>@@ -496,18 +496,18 @@</span><br><span>    static char buf[1024];</span><br><span>       struct xua_msg_part *part;</span><br><span>   const struct xua_msg_class *xmc = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+       bool comma = false;</span><br><span>  if (dialect)</span><br><span>                 xmc = dialect->class[xua->hdr.msg_class];</span><br><span> </span><br><span>  buf[0] = '\0';</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      append_to_buf(buf, NULL, "HDR=(%s,V=%u,LEN=%u)",</span><br><span style="color: hsl(120, 100%, 40%);">+    append_to_buf(buf, &comma, "HDR=(%s,V=%u,LEN=%u)",</span><br><span>                     xua_hdr_dump(xua, dialect),</span><br><span>                  xua->hdr.version, xua->hdr.msg_length);</span><br><span style="color: hsl(0, 100%, 40%);">-   buf[0] = ' ';</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      llist_for_each_entry(part, &xua->headers, entry)</span><br><span style="color: hsl(0, 100%, 40%);">-         append_to_buf(buf, NULL, "\n\tPART(T=%s,L=%u,D=%s)",</span><br><span style="color: hsl(120, 100%, 40%);">+                append_to_buf(buf, NULL, " PART(T=%s,L=%u,D=%s)",</span><br><span>                          xua_class_iei_name(xmc, part->tag), part->len,</span><br><span>                                 osmo_hexdump_nospc(part->dat, part->len));</span><br><span>     return buf;</span><br><span>diff --git a/tests/xua/xua_test.ok b/tests/xua/xua_test.ok</span><br><span>index f93b41e..6738cc0 100644</span><br><span>--- a/tests/xua/xua_test.ok</span><br><span>+++ b/tests/xua/xua_test.ok</span><br><span>@@ -18,116 +18,77 @@</span><br><span> => BSSMAP-RESET</span><br><span> SCCP Input: [L2]> 09 00 03 05 07 02 42 fe 02 42 fe 06 00 04 30 04 01 20 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CL:CLDT,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Protocol Class,L=4,D=00000000),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Destination Address,L=12,D=0002000180030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Source Address,L=12,D=0002000180030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">- PART(T=Data,L=6,D=000430040120)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CL:CLDT,V=0,LEN=0), PART(T=Protocol Class,L=4,D=00000000), PART(T=Destination Address,L=12,D=0002000180030008000000fe), PART(T=Source Address,L=12,D=0002000180030008000000fe), PART(T=Data,L=6,D=000430040120)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 09 00 03 05 07 02 42 fe 02 42 fe 06 00 04 30 04 01 20 </span><br><span> </span><br><span> => BSSMAP-RESET-ACK</span><br><span> SCCP Input: [L2]> 09 00 03 07 0b 04 43 01 00 fe 04 43 5c 00 fe 03 00 01 31 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CL:CLDT,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-       PART(T=Protocol Class,L=4,D=00000000),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Destination Address,L=20,D=00020003800200080000000180030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Source Address,L=20,D=00020003800200080000005c80030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">- PART(T=Data,L=3,D=000131)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CL:CLDT,V=0,LEN=0), PART(T=Protocol Class,L=4,D=00000000), PART(T=Destination Address,L=20,D=00020003800200080000000180030008000000fe), PART(T=Source Address,L=20,D=00020003800200080000005c80030008000000fe), PART(T=Data,L=3,D=000131)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 09 00 03 07 0b 04 43 01 00 fe 04 43 5c 00 fe 03 00 01 31 </span><br><span> </span><br><span> => BSSMAP-PAGING</span><br><span> SCCP Input: [L2]> 09 00 03 07 0b 04 43 01 00 fe 04 43 5c 00 fe 10 00 0e 52 08 08 29 47 10 02 01 31 97 61 1a 01 06 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CL:CLDT,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Protocol Class,L=4,D=00000000),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Destination Address,L=20,D=00020003800200080000000180030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Source Address,L=20,D=00020003800200080000005c80030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">- PART(T=Data,L=16,D=000e52080829471002013197611a0106)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CL:CLDT,V=0,LEN=0), PART(T=Protocol Class,L=4,D=00000000), PART(T=Destination Address,L=20,D=00020003800200080000000180030008000000fe), PART(T=Source Address,L=20,D=00020003800200080000005c80030008000000fe), PART(T=Data,L=16,D=000e52080829471002013197611a0106)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 09 00 03 07 0b 04 43 01 00 fe 04 43 5c 00 fe 10 00 0e 52 08 08 29 47 10 02 01 31 97 61 1a 01 06 </span><br><span> </span><br><span> => BSSMAP-UDT</span><br><span> SCCP Input: [L2]> 09 00 03 05 07 02 42 fe 02 42 fe 10 00 0e 52 08 08 29 47 10 02 01 31 97 61 1a 01 06 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CL:CLDT,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-      PART(T=Protocol Class,L=4,D=00000000),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Destination Address,L=12,D=0002000180030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Source Address,L=12,D=0002000180030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">- PART(T=Data,L=16,D=000e52080829471002013197611a0106)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CL:CLDT,V=0,LEN=0), PART(T=Protocol Class,L=4,D=00000000), PART(T=Destination Address,L=12,D=0002000180030008000000fe), PART(T=Source Address,L=12,D=0002000180030008000000fe), PART(T=Data,L=16,D=000e52080829471002013197611a0106)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 09 00 03 05 07 02 42 fe 02 42 fe 10 00 0e 52 08 08 29 47 10 02 01 31 97 61 1a 01 06 </span><br><span> </span><br><span> => BSSMAP-CR</span><br><span> SCCP Input: [L2]> 01 01 02 03 02 02 04 02 42 fe 0f 1f 00 1d 57 05 08 00 72 f4 80 20 12 c3 50 17 10 05 24 11 03 33 19 a2 08 29 47 10 02 01 31 97 61 00 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CO:CORE,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-   PART(T=Protocol Class,L=4,D=00000002),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Source Reference,L=4,D=00010203),</span><br><span style="color: hsl(0, 100%, 40%);">-        PART(T=Destination Address,L=12,D=0002000180030008000000fe),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Data,L=31,D=001d5705080072f4802012c3501710052411033319a2082947100201319761)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CO:CORE,V=0,LEN=0), PART(T=Protocol Class,L=4,D=00000002), PART(T=Source Reference,L=4,D=00010203), PART(T=Destination Address,L=12,D=0002000180030008000000fe), PART(T=Data,L=31,D=001d5705080072f4802012c3501710052411033319a2082947100201319761)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 01 01 02 03 02 02 04 02 42 fe 0f 1f 00 1d 57 05 08 00 72 f4 80 20 12 c3 50 17 10 05 24 11 03 33 19 a2 08 29 47 10 02 01 31 97 61 00 </span><br><span> </span><br><span> => BSSMAP-CC</span><br><span> SCCP Input: [L2]> 02 01 02 03 00 00 03 02 01 00 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CO:COAK,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Protocol Class,L=4,D=00000002),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Destination Reference,L=4,D=00010203),</span><br><span style="color: hsl(0, 100%, 40%);">-   PART(T=Source Reference,L=4,D=00000003)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CO:COAK,V=0,LEN=0), PART(T=Protocol Class,L=4,D=00000002), PART(T=Destination Reference,L=4,D=00010203), PART(T=Source Reference,L=4,D=00000003)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 02 01 02 03 00 00 03 02 01 00 </span><br><span> </span><br><span> => BSSMAP-DTAP</span><br><span> SCCP Input: [L2]> 06 00 00 03 00 01 0f 01 00 0c 03 05 5c 08 11 81 33 66 02 13 45 f4 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CO:CODT,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Destination Reference,L=4,D=00000003),</span><br><span style="color: hsl(0, 100%, 40%);">-   PART(T=Segmentation,L=4,D=00000000),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Data,L=15,D=01000c03055c0811813366021345f4)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CO:CODT,V=0,LEN=0), PART(T=Destination Reference,L=4,D=00000003), PART(T=Segmentation,L=4,D=00000000), PART(T=Data,L=15,D=01000c03055c0811813366021345f4)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 06 00 00 03 00 01 0f 01 00 0c 03 05 5c 08 11 81 33 66 02 13 45 f4 </span><br><span> </span><br><span> => BSSMAP-CLEAR</span><br><span> SCCP Input: [L2]> 06 00 00 03 00 01 06 00 04 20 04 01 09 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CO:CODT,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Destination Reference,L=4,D=00000003),</span><br><span style="color: hsl(0, 100%, 40%);">-   PART(T=Segmentation,L=4,D=00000000),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Data,L=6,D=000420040109)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CO:CODT,V=0,LEN=0), PART(T=Destination Reference,L=4,D=00000003), PART(T=Segmentation,L=4,D=00000000), PART(T=Data,L=6,D=000420040109)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 06 00 00 03 00 01 06 00 04 20 04 01 09 </span><br><span> </span><br><span> => BSSMAP-RELEASED</span><br><span> SCCP Input: [L2]> 04 00 00 03 01 02 03 00 01 0f 02 23 42 00 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CO:RELRE,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-      PART(T=Destination Reference,L=4,D=00000003),</span><br><span style="color: hsl(0, 100%, 40%);">-   PART(T=Source Reference,L=4,D=00010203),</span><br><span style="color: hsl(0, 100%, 40%);">-        PART(T=Cause,L=4,D=00000300),</span><br><span style="color: hsl(0, 100%, 40%);">-   PART(T=Data,L=2,D=2342)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CO:RELRE,V=0,LEN=0), PART(T=Destination Reference,L=4,D=00000003), PART(T=Source Reference,L=4,D=00010203), PART(T=Cause,L=4,D=00000300), PART(T=Data,L=2,D=2342)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 04 00 00 03 01 02 03 00 01 0f 02 23 42 00 </span><br><span> </span><br><span> => BSSMAP-RELEASE_COMPLETE</span><br><span> SCCP Input: [L2]> 05 01 02 03 00 00 03 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CO:RELCO,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-     PART(T=Destination Reference,L=4,D=00010203),</span><br><span style="color: hsl(0, 100%, 40%);">-   PART(T=Source Reference,L=4,D=00000003)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CO:RELCO,V=0,LEN=0), PART(T=Destination Reference,L=4,D=00010203), PART(T=Source Reference,L=4,D=00000003)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 05 01 02 03 00 00 03 </span><br><span> </span><br><span> => TCAP</span><br><span> SCCP Input: [L2]> 09 81 03 0d 18 0a 12 07 00 12 04 53 84 09 00 17 0b 12 06 00 12 04 44 87 20 00 20 65 9a 65 81 97 48 04 26 00 01 98 49 04 51 01 03 df 6c 81 88 a1 81 85 02 01 44 02 01 07 30 80 a7 80 a0 80 04 01 2b 30 80 30 12 83 01 10 84 01 07 85 07 91 44 57 76 67 16 97 86 01 20 30 06 82 01 18 84 01 04 00 00 00 00 a3 06 04 01 42 84 01 05 a3 06 04 01 51 84 01 05 a3 06 04 01 31 84 01 05 a3 09 04 01 12 84 01 05 82 01 02 a3 09 04 01 11 84 01 05 81 01 01 a3 06 04 01 14 84 01 00 a3 0b 04 01 41 84 01 04 30 03 83 01 10 a3 0b 04 01 41 84 01 04 30 03 82 01 18 00 00 00 00 </span><br><span> Transcoding message SCCP -> XUA</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded SUA:  HDR=(CL:CLDT,V=0,LEN=0),</span><br><span style="color: hsl(0, 100%, 40%);">-     PART(T=Protocol Class,L=4,D=00000081),</span><br><span style="color: hsl(0, 100%, 40%);">-  PART(T=Destination Address,L=32,D=0001000580010014000000040a00010453840900170000008003000800000007),</span><br><span style="color: hsl(0, 100%, 40%);">-    PART(T=Source Address,L=32,D=0001000580010014000000040c00010444872000206500008003000800000006),</span><br><span style="color: hsl(0, 100%, 40%);">- PART(T=Data,L=154,D=6581974804260001984904510103df6c8188a181850201440201073080a780a08004012b30803012830110840107850791445776671697860120300682011884010400000000a306040142840105a306040151840105a306040131840105a309040112840105820102a309040111840105810101a306040114840100a30b0401418401043003830110a30b040141840104300382011800000000)</span><br><span style="color: hsl(120, 100%, 40%);">+Decoded SUA: HDR=(CL:CLDT,V=0,LEN=0), PART(T=Protocol Class,L=4,D=00000081), PART(T=Destination Address,L=32,D=0001000580010014000000040a00010453840900170000008003000800000007), PART(T=Source Address,L=32,D=0001000580010014000000040c00010444872000206500008003000800000006), PART(T=Data,L=154,D=6581974804260001984904510103df6c8188a181850201440201073080a780a08004012b30803012830110840107850791445776671697860120300682011884010400000000a306040142840105a306040151840105a306040131840105a309040112840105820102a309040111840105810101a306040114840100a30b0401418401043003830110a30b040141840104300382011800000000)</span><br><span> Re-Encoding decoded SUA to SCCP</span><br><span> SCCP Output: [L2]> 09 81 03 0d 18 0a 12 07 00 12 04 53 84 09 00 17 0b 12 06 00 12 04 44 87 20 00 20 65 9a 65 81 97 48 04 26 00 01 98 49 04 51 01 03 df 6c 81 88 a1 81 85 02 01 44 02 01 07 30 80 a7 80 a0 80 04 01 2b 30 80 30 12 83 01 10 84 01 07 85 07 91 44 57 76 67 16 97 86 01 20 30 06 82 01 18 84 01 04 00 00 00 00 a3 06 04 01 42 84 01 05 a3 06 04 01 51 84 01 05 a3 06 04 01 31 84 01 05 a3 09 04 01 12 84 01 05 82 01 02 a3 09 04 01 11 84 01 05 81 01 01 a3 06 04 01 14 84 01 00 a3 0b 04 01 41 84 01 04 30 03 83 01 10 a3 0b 04 01 41 84 01 04 30 03 82 01 18 00 00 00 00 </span><br><span> Parsing M3UA Message</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/16051">change 16051</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmo-sccp/+/16051"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-sccp </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Id9084d0e0f976bb374186db93d6ff8062b99e238 </div>
<div style="display:none"> Gerrit-Change-Number: 16051 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>