Error binding udev_event socket: Address already in use

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux