Metze, > > - Get rid of the register_subsystem() and register_backend() functions. > > why? there was a very good reason for adding them.
indeed. I should probably explain for everyone why we changed quite a while ago to register_backend() instead of having functions like auth_register(). The problem with having subsystem specific names for registration functions is that it makes it impossible to add a new type of subsystem via a loadable module. Imagine you want to have a module that adds a 'foo' subsystem, and you want another module that registers itself as a instance of 'foo' when the 'foo' module is loaded. If you use foo_register() as the function name, then the 2nd module has no way to load. If you use regisier_backend("foo", ...) then the module can load, then get a useful error message telling it that it cannot register as a 'foo' instance, in which case it might decide to do the work itself, or register itself somewhere else, or panic. So we decided to make the register_backend() and similar functions core functions, and to make subsystem names a constant string. That gives us all the same functionality, but allows whole new subsystems to be loaded as modules. Cheers, Tridge