Hi, On Mon, Sep 26, 2022 at 08:46:50AM +0200, Antonio Quartulli wrote: > On 26/09/2022 08:39, Gert Doering wrote: > > It might seem elegant, to do this with a fall-through switch/case, but > > it turns out to be not very elegant due to the restrictions on local > > variables. Also, if someone ends up setting push-peer-info to 4, > > they will get "nothing at all" now, instead of "everything". > > This is set programmatically, not by the user. So right now you can't > set a value higher than 3.
Good point. > > To keep to your idea of doing this in blocks "3", "2+3", "1+2+3" one > > could do > > > > int detail = session->opt->push_peer_info_detail; > > if (detail >= 3) > > { > > ... > > } > > if (detail > 2) > > { > > ... > > } > > if (detail > 1) > > { > > ... > > } > > > > so it has less twisted conditions. > > Since >3 is not possible, this is exactly the same as a switch/case, > (just reimplemented with ifs). True, but less ugly. I know you really like the switch/case thing, but I find it much less compelling for a flow with "everything is a fall-through". > I am not sure why this switch/case is different from the others? > We also have {} in other case blocks for the very same reason. > > If we feel having the {} is ugly, we should agree on what to do > globally, no? Not just change this hunk. You are introducing something here, which is intended to make the result more readable. If that doesn't work, pointing to other ugly parts of openvpn code is not a very strong argument... I'm sure we all agree that for every possible C style sin, you could find a place where someone clever did this in OpenVPN (I specially like #ifdef right in the middle of a complex if/else expression) - but for new code, this should not be the standard to look at. Anyway, I'm not insisting on this, just stating my thoughts. What we should - indeed - not do is have inconsistent constructs, with "some case: having {}, some not" - so in that case, better bring the local variables before the switch, so we can have all case: without brackets? gert -- "If was one thing all people took for granted, was conviction that if you feed honest figures into a computer, honest figures come out. Never doubted it myself till I met a computer with a sense of humor." Robert A. Heinlein, The Moon is a Harsh Mistress Gert Doering - Munich, Germany g...@greenie.muc.de
signature.asc
Description: PGP signature
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel