[Nut-upsdev] RFC: allow HID subdriver's to register ups.conf

j T hyvan_trant at hotmail.com
Sun Jun 4 14:16:03 UTC 2006


Hi Peter

You see, this is the problem that I'm having; I *really* don't want to be 
polluting the vartable with all the options from all the different 
subdrivers, but the current design doesn't allow me to avoid this (atleast 
that I can tell).

Basically, main() does:

	makevartable()
	process command line (while loop)
	chroot, setup signals, etc
	initups()

Because main() processes the command line straight after it does 
makevartable(), there's no way to have the subdriver selected before the 
command line stuff happens. If the subdriver's init() is called from 
initups(), issuing a "-x wait" on the command line will always get rejected 
by the command line processing simply because the subdriver hasn't been 
init()ed at that point.

Also, the command line needs to have been processed before the initups() 
happens because it needs to know the regexs and so-on in order to match the 
relevent UPS.

This is the whole reason that it turned into a bit of a bodge... I rather 
hoped to avoid trying to sort the whole thing out; C isn't my forte, and I 
don't really feel confident enough in my ability to start trying to rework 
the main() routine.

Having said that, I did have one thought... what if each subdriver had it's 
own supplemental vartable?

I just need to work out how on earth to implement it (and use it from 
main())!!! ;-)

I might just have a look into this later today.

BTW; is it ok to use #ifdef preprocessor conditionals in NUT code? I don't 
remember reading anything in the developer notes against it, but I'd rather 
not go writing something using it if its unofficially tagged as being 
"yucky"!

>
>Please keep the traffic on the mailing list.
>

Shucks, did it manage to get sent without the mailing list CC'd in? I 
thought I'd caught it and modified the recipients... doh!


Jo Turner
  -)O(-





More information about the Nut-upsdev mailing list