Hi Richard,

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.

Cheers,

Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com

On 09.04.2018 16:38, Richard Revels wrote:
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.

--code--
route[testswitch]
{
switch( $avp(testvalue) )
        {
  case "defined break":
          xlog("L_INFO", "log only this line \n");
  break;

  case "non defined break":
          xlog("L_INFO", "log this line and fall through to also and then to default \n");

  case "also non defined":
          xlog("L_INFO", "log this line and fall through to default \n");

  default:
          xlog("L_ERR", "log default line \n");
        }
xlog("L_ERR", "at end of switch block with $avp(testvalue) \n");
}

...

        $avp(testvalue) := "defined break";
        route(testswitch);
        $avp(testvalue) := "non defined break";
        route(testswitch);
        $avp(testvalue) := "also non defined";
        route(testswitch);
        $avp(testvalue) := "non defined value";
        route(testswitch);

--end code--

--log--

2018-04-09T13:13:28.092141+00:00 pidflo-01 /sbin/opensips[25651]: log only this line 2018-04-09T13:13:28.092150+00:00 pidflo-01 /sbin/opensips[25651]: at end of switch block with defined break 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 2018-04-09T13:13:28.092161+00:00 pidflo-01 /sbin/opensips[25651]: log this line and fall through to default 2018-04-09T13:13:28.092164+00:00 pidflo-01 /sbin/opensips[25651]: at end of switch block with non defined break 2018-04-09T13:13:28.092168+00:00 pidflo-01 /sbin/opensips[25651]: log this line and fall through to default 2018-04-09T13:13:28.092171+00:00 pidflo-01 /sbin/opensips[25651]: at end of switch block with also non defined 2018-04-09T13:13:28.092176+00:00 pidflo-01 /sbin/opensips[25651]: log default line 2018-04-09T13:13:28.092179+00:00 pidflo-01 /sbin/opensips[25651]: at end of switch block with non defined value

--end log--




_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to