<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 24, 2023 at 7:05 AM Maria Matejka via Bird-users <<a href="mailto:bird-users@network.cz">bird-users@network.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello!<br>
<br>
> For example I may want to refactor the naming scheme for <br>
> protocols/tables in my bird config. But when I apply the new config with <br>
> the new names, such renamed protocols will be recreated or restarted, <br>
> which may be undesired. So if I could rename protocols/tables in advance <br>
> and then load the new config, I can hope than no changes would be found <br>
> and the there would be no interruptions.<br>
<br>
What I was thinking about some time ago, was not this kind of "renaming <br>
from CLI" but a special clause "renamed XYZ to ABC" which could be put <br>
at the end (!) of the new config. This would solve the problem with <br>
rewriting the symbol in-place which is ugly.<br></blockquote><div><br></div><div>Yes, that is ugly and I would not run the "renamed" configuration long, just for the transition. But it is the minimal intervention I figured out. I was thinking about adding new symbols instead of changing the name in-place, but there are too many places where you need to update the pointers to the new names. And still you need to do something with the old symbol. When I rename them in place, it updates the names automatically, as they all point to the buffer inside symbol, as far as I understand.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Yet there are problems (mostly in v3) where e.g. the protocol name is <br>
pre-formatted into other strings, effectively forcing us to walk through <br>
the code and find all these cases while renaming. We don't want BIRD to <br>
errorneously log about a protocol with its old name.<br></blockquote><div><br></div><div>Could you explain it more, when will you need to change something more in the code in my or your variant (with renamed statement)? As I udnerstand, in my variant, it should not be possible to log the old name, because I replace the string in-place. Only if it was copied somewhere. Anyway after loading the new config it should go away. In your variant too, if you do the second step and load the final config without "renamed" than there also should not be the old names. I don't think we should care much about logging during the transition.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
All in all, I'd not opposed to this idea, yet from my current POV, the <br>
changes needed are too high for now to have it a single patch or so.<br>
<br>
Thank you for your suggestion!<br>
<br>
Maria<br>
</blockquote></div></div>