--- nut-2.0.5/drivers/main.c.alt-drivers 2007-07-27 13:40:29 +0400 +++ nut-2.0.5/drivers/main.c 2007-07-27 13:41:51 +0400 @@ -544,6 +544,18 @@ int main(int argc, char **argv) upsdebugx(1, "debug level is '%d'", nut_debug_level); + upsdrv_initups(); + + /* now see if things are very wrong out there */ + if (broken_driver) { + printf("Fatal error: broken driver. It probably needs to be converted.\n"); + printf("Search for 'broken_driver = 1' in the source for more details.\n"); + exit(EXIT_FAILURE); + } + + if (do_forceshutdown) + forceshutdown(); + new_uid = get_user_pwent(user); if (chroot_path) @@ -562,18 +574,6 @@ int main(int argc, char **argv) /* clear out callback handler data */ memset(&upsh, '\0', sizeof(upsh)); - upsdrv_initups(); - - /* now see if things are very wrong out there */ - if (broken_driver) { - printf("Fatal error: broken driver. It probably needs to be converted.\n"); - printf("Search for 'broken_driver = 1' in the source for more details.\n"); - exit(EXIT_FAILURE); - } - - if (do_forceshutdown) - forceshutdown(); - /* get the base data established before allowing connections */ upsdrv_initinfo(); upsdrv_updateinfo();