diff options
author | Dan Williams <dcbw@redhat.com> | 2008-12-17 10:14:33 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2008-12-17 10:14:33 -0500 |
commit | 937562af6b273dd0b78428baf28401ba964fc659 (patch) | |
tree | a327a21fdf9b1fd4abb1e216be2aa16fbc4ef854 | |
parent | 828c267eedcb508efa92ef3718d94358255b54af (diff) |
Simplify logging and ensure logfile is closed
-rw-r--r-- | probe-modem/probe-modem.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/probe-modem/probe-modem.c b/probe-modem/probe-modem.c index d237760..99497db 100644 --- a/probe-modem/probe-modem.c +++ b/probe-modem/probe-modem.c @@ -327,6 +327,13 @@ print_usage (void) " --help\n\n"); } +static void +do_exit (int val) +{ + if (logfile) fclose (logfile); + exit (val); +} + int main(int argc, char *argv[]) { @@ -391,21 +398,18 @@ main(int argc, char *argv[]) device = argv[optind]; if (device == NULL) { g_printerr ("no node specified\n"); - fclose (logfile); - return 3; + do_exit (3); } fd = open (device, O_RDWR | O_EXCL | O_NONBLOCK); if (fd < 0) { g_printerr ("open(%s) failed: %d\n", device, errno); - if (logfile) fclose (logfile); - return 4; + do_exit (4); } if (tcgetattr (fd, &orig)) { g_printerr ("tcgetattr(%s): failed %d\n", device, errno); - if (logfile) fclose (logfile); - return 5; + do_exit (5); } memcpy (&attrs, &orig, sizeof (attrs)); @@ -427,8 +431,7 @@ main(int argc, char *argv[]) if (caps < 0) { g_printerr ("%s: couldn't get modem capabilities\n", device); printf ("ID_MODEM_PROBED=1\n"); - if (logfile) fclose (logfile); - return 0; + do_exit (0); } if (export) { @@ -451,7 +454,7 @@ main(int argc, char *argv[]) caps & MODEM_CAP_IS856 ? " EVDOr0" : "", caps & MODEM_CAP_IS856_A ? " EVDOrA" : ""); - if (logfile) fclose (logfile); + do_exit (0); return 0; } |