From mboxrd@z Thu Jan 1 00:00:00 1970 From: belle Date: Fri, 26 Feb 2010 01:09:02 +0000 Subject: Error binding udev_event socket: Address already in use Message-Id: <1267146542.3803.0.camel@shili-desktop> List-Id: References: <1267085491.7714.4.camel@shili-desktop> In-Reply-To: <1267085491.7714.4.camel@shili-desktop> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org dear all: i wrote a program and i used the udev_event socket to receive the udev event, the program is as follow: int udev_socket; struct sockaddr_un saddr; socklen_t addrlen; const int on = 1; GIOChannel *udev_channel; printf("net_manage_init\n"); memset(&saddr, 0x00, sizeof(saddr)); saddr.sun_family = AF_LOCAL; strcpy(&saddr.sun_path[1], "/com/yy/net_manager"); addrlen = offsetof(struct sockaddr_un, sun_path) +strlen(saddr.sun_path+1) + 1; udev_socket = socket(AF_LOCAL, SOCK_DGRAM, 0); if (udev_socket = -1) { printf("Couldn't open socket"); return; } if (bind(udev_socket, (struct sockaddr *) &saddr, addrlen) < 0) { printf ("Error binding udev_event socket: %s\n", strerror(errno)); return; } setsockopt(udev_socket, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); and when i first to run my program, everything goes ok,but after i killed my program and run it again,i find a promote of "Error binding udev_event socket: Address already in use",and i can't receive the udev event. and i restart the udevd daemon,but still i can't receive the udev event, is there anyone who can give me some advice? i have been working on it for a long time, it really a nightmare to me, thanks for advance