2006-02-27 Robert Love <rml@novell.com>

* dispatcher-daemon/NetworkManagerDispatcher.c, src/NetworkManager.c:
	  Open the pid file O_TRUNC, so if it already exists we truncate it to
	  zero length.  Also, be more verbose about warnings generated during
	  writing out the pid file.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1508 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Robert Love
2006-02-27 20:00:25 +00:00
committed by Robert Love
parent bd62301db9
commit 4fdea28f75
3 changed files with 35 additions and 30 deletions

View File

@@ -1,3 +1,10 @@
2006-02-27 Robert Love <rml@novell.com>
* dispatcher-daemon/NetworkManagerDispatcher.c, src/NetworkManager.c:
Open the pid file O_TRUNC, so if it already exists we truncate it to
zero length. Also, be more verbose about warnings generated during
writing out the pid file.
2006-02-27 Robert Love <rml@novell.com> 2006-02-27 Robert Love <rml@novell.com>
Patch by R. Vinay <rvinay@novell.com>: Patch by R. Vinay <rvinay@novell.com>:

View File

@@ -280,19 +280,22 @@ static void nmd_print_usage (void)
} }
static gboolean static void
write_pidfile (const char *pidfile) write_pidfile (const char *pidfile)
{ {
int fd;
int ignored;
char pid[16]; char pid[16];
int fd;
if ((fd = open (pidfile, O_CREAT | O_WRONLY, 00644)) < 0) if ((fd = open (pidfile, O_CREAT|O_WRONLY|O_TRUNC, 00644)) < 0)
return FALSE; {
nm_warning ("Opening %s failed: %s", pidfile, strerror (errno));
return;
}
snprintf (pid, sizeof (pid), "%d", getpid ()); snprintf (pid, sizeof (pid), "%d", getpid ());
ignored = write (fd, pid, strlen (pid)); if (write (fd, pid, strlen (pid)) < 0)
close (fd); nm_warning ("Writing to %s failed: %s", pidfile, strerror (errno));
return TRUE; if (close (fd))
nm_warning ("Closing %s failed: %s", pidfile, strerror (errno));
} }
@@ -365,11 +368,7 @@ int main (int argc, char *argv[])
g_thread_init (NULL); g_thread_init (NULL);
if (pidfile) if (pidfile)
{ write_pidfile (pidfile);
if (!write_pidfile (pidfile))
nm_warning ("Couldn't write pid file %s! errno: %s", pidfile,
strerror (errno));
}
/* Connect to the NetworkManager dbus service and run the main loop */ /* Connect to the NetworkManager dbus service and run the main loop */
if ((connection = nmd_dbus_init ())) if ((connection = nmd_dbus_init ()))

View File

@@ -664,19 +664,22 @@ void nm_hal_deinit (NMData *data)
} }
static gboolean static void
write_pidfile (const char *pidfile) write_pidfile (const char *pidfile)
{ {
int fd;
int ignored;
char pid[16]; char pid[16];
int fd;
if ((fd = open (pidfile, O_CREAT | O_WRONLY, 00644)) < 0) if ((fd = open (pidfile, O_CREAT|O_WRONLY|O_TRUNC, 00644)) < 0)
return FALSE; {
nm_warning ("Opening %s failed: %s", pidfile, strerror (errno));
return;
}
snprintf (pid, sizeof (pid), "%d", getpid ()); snprintf (pid, sizeof (pid), "%d", getpid ());
ignored = write (fd, pid, strlen (pid)); if (write (fd, pid, strlen (pid)) < 0)
close (fd); nm_warning ("Writing to %s failed: %s", pidfile, strerror (errno));
return TRUE; if (close (fd))
nm_warning ("Closing %s failed: %s", pidfile, strerror (errno));
} }
@@ -780,11 +783,7 @@ int main( int argc, char *argv[] )
dbus_g_thread_init (); dbus_g_thread_init ();
if (pidfile) if (pidfile)
{ write_pidfile (pidfile);
if (!write_pidfile (pidfile))
nm_warning ("Couldn't write pid file %s! errno: %s", pidfile,
strerror (errno));
}
nm_logging_setup (become_daemon); nm_logging_setup (become_daemon);
nm_info ("starting..."); nm_info ("starting...");