Re: Patch for rc.d/devd on FreeBSD 9-current

From: Garrett Cooper <yanefbsd_at_gmail.com>
Date: Sat, 26 Jun 2010 14:00:05 -0700
On Sat, Jun 26, 2010 at 1:45 PM, Garrett Cooper <yanefbsd_at_gmail.com> wrote:
> On Sat, Jun 26, 2010 at 1:29 PM, Hans Petter Selasky <hselasky_at_c2i.net> wrote:
>> Hi,
>>
>> Sometimes utilities that are started by devd require libraries outside
>> /usr/lib. One example is the webcamd utility which is started by devd upon USB
>> device insertion. What do you think about the following patch:
>>
>> --- devd        (revision 209463)
>> +++ devd        (local)
>> _at__at_ -4,7 +4,7 _at__at_
>>  #
>>
>>  # PROVIDE: devd
>> -# REQUIRE: netif
>> +# REQUIRE: netif ldconfig
>>  # BEFORE: NETWORKING mountcritremote
>>  # KEYWORD: nojail shutdown
>
> Funny since I was just monkeying around with this. This doesn't appear
> to be the only issue with devd:
>
> # devd
> devd: devd already running, pid: 430
> # pgrep 430; echo $?
> 1
> #
>
> Looks like /etc/rc.d/devd restart is broken :(...

This seems to fix that.
Thanks,
-Garrett

Index: devd.cc
===================================================================
--- devd.cc	(revision 209530)
+++ devd.cc	(working copy)
_at__at_ -739,6 +739,7 _at__at_
 static void
 event_loop(void)
 {
+	bool warn_user_about_cleanup;
 	int rv;
 	int fd;
 	char buffer[DEVCTL_MAXBUF];
_at__at_ -804,6 +805,17 _at__at_
 			new_client(server_fd);
 	}
 	close(fd);
+	close(server_fd);
+
+	if (unlink(PIPE) == 0) {
+		cfg.remove_pidfile();
+		warn_user_about_cleanup = false;
+	} else
+		warn_user_about_cleanup = true;
+
+	if (warn_user_about_cleanup == true)
+		warn("cleanup failed");
+
 }
 
 /*
Received on Sat Jun 26 2010 - 19:00:07 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:05 UTC