<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><tt>Hi Richard,</tt></p>
<p><tt>IMO, that looks like a slip-up which has been probably
lurking in there since the very beginnings. I suggest we should
fix it to match the expected behavior of switch/case/default for
most (all?) programming languages which are out there. It would
be interesting to hear other opinions as well before we act,
though.<br>
</tt></p>
<p><tt>Cheers,</tt><br>
</p>
<pre class="moz-signature" cols="72">Liviu Chircu
OpenSIPS Developer
<a class="moz-txt-link-freetext" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a></pre>
<div class="moz-cite-prefix">On 09.04.2018 16:38, Richard Revels
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAE-NtRfQwAc_M0zDsOfr86t_f+ZKrPa0omMoLNcYV9XjocxLNQ@mail.gmail.com">
<div dir="ltr">I am unsure of the expected behaviour in the config
switch / case block when the break is not defined between a
defined case and the default case but what I'm seeing right now
is not what I expect. Wanted to get some input before opening a
bug tracker on it.
<div><br>
</div>
<div>--code--</div>
<div>
<div><font size="1" face="monospace, monospace">route[testswitch]</font></div>
<div><font size="1" face="monospace, monospace">{</font></div>
<div><font size="1" face="monospace, monospace">
switch( $avp(testvalue) )</font></div>
<div><font size="1" face="monospace, monospace"> {</font></div>
<div><font size="1" face="monospace, monospace">
case "defined break":</font></div>
<div><font size="1" face="monospace, monospace">
xlog("L_INFO", "log only this line \n");</font></div>
<div><font size="1" face="monospace, monospace">
break;</font></div>
<div><font size="1" face="monospace, monospace"><br>
</font></div>
<div><font size="1" face="monospace, monospace">
case "non defined break":</font></div>
<div><font size="1" face="monospace, monospace">
xlog("L_INFO", "log this line and fall through
to also and then to default \n");</font></div>
<div><font size="1" face="monospace, monospace"><br>
</font></div>
<div><font size="1" face="monospace, monospace">
case "also non defined":</font></div>
<div><font size="1" face="monospace, monospace">
xlog("L_INFO", "log this line and fall through
to default \n");</font></div>
<div><font size="1" face="monospace, monospace"><br>
</font></div>
<div><font size="1" face="monospace, monospace">
default:</font></div>
<div><font size="1" face="monospace, monospace">
xlog("L_ERR", "log default line \n");</font></div>
<div><font size="1" face="monospace, monospace"> }</font></div>
<div><font size="1" face="monospace, monospace">
xlog("L_ERR", "at end of switch block with $avp(testvalue)
\n");</font></div>
<div><font size="1" face="monospace, monospace">}</font></div>
</div>
<div><font size="1" face="monospace, monospace"><br>
</font></div>
<div><font size="1" face="monospace, monospace">...</font></div>
<div><font size="1" face="monospace, monospace"><br>
</font></div>
<div><font size="1" face="monospace, monospace">
<div> $avp(testvalue) := "defined break";</div>
<div> route(testswitch);</div>
<div> $avp(testvalue) := "non defined break";</div>
<div> route(testswitch);</div>
<div> $avp(testvalue) := "also non defined";</div>
<div> route(testswitch);</div>
<div> $avp(testvalue) := "non defined value";</div>
<div> route(testswitch);</div>
<div><br>
</div>
</font></div>
<div>--end code--</div>
<div><br>
</div>
<div>--log--</div>
<div><br>
</div>
<div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092141+00:00
pidflo-01 /sbin/opensips[25651]: log only this line </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092150+00:00
pidflo-01 /sbin/opensips[25651]: at end of switch block
with defined break </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092158+00:00
pidflo-01 /sbin/opensips[25651]: log this line and fall
through to also and then to default </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092161+00:00
pidflo-01 /sbin/opensips[25651]: log this line and fall
through to default </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092164+00:00
pidflo-01 /sbin/opensips[25651]: at end of switch block
with non defined break </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092168+00:00
pidflo-01 /sbin/opensips[25651]: log this line and fall
through to default </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092171+00:00
pidflo-01 /sbin/opensips[25651]: at end of switch block
with also non defined </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092176+00:00
pidflo-01 /sbin/opensips[25651]: log default line </font></div>
<div><font size="1" face="monospace, monospace">2018-04-09T13:13:28.092179+00:00
pidflo-01 /sbin/opensips[25651]: at end of switch block
with non defined value </font></div>
</div>
<div><br>
</div>
<div>--end log--</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>
<div class="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a>
<a class="moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</body>
</html>