summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2008-12-17 10:14:33 -0500
committerDan Williams <dcbw@redhat.com>2008-12-17 10:14:33 -0500
commit937562af6b273dd0b78428baf28401ba964fc659 (patch)
treea327a21fdf9b1fd4abb1e216be2aa16fbc4ef854
parent828c267eedcb508efa92ef3718d94358255b54af (diff)
Simplify logging and ensure logfile is closed
-rw-r--r--probe-modem/probe-modem.c21
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;
}