"Erich E. Hoover" <erich.e.hoover(a)gmail.com> writes:
> +static void ifchange_poll_event( struct fd *fd, int event )
> +{
> + struct object *ifchange = get_fd_user( fd );
> + int r, unix_fd, wakeup = FALSE;
> + char buffer[0x1000];
> +
> + unix_fd = get_unix_fd( fd );
> + r = recv( unix_fd, buffer, sizeof(buffer), 0 );
> + if (r < 0)
> + {
> + fprintf(stderr,"ifchange_poll_event(): ifchange read failed!\n");
> + return;
> + }
> + else if (r != 0)
> + {
> +#if defined(NETLINK_ROUTE)
> + struct nlmsghdr *nlh;
> +
> + nlh = (struct nlmsghdr*) buffer;
> + if (NLMSG_OK(nlh, r) && (nlh->nlmsg_type == RTM_NEWADDR || nlh->nlmsg_type == RTM_DELADDR))
> + wakeup = TRUE;
> +#endif
> + }
> + if (wakeup)
> + ifchange_wake_up( ifchange, STATUS_SUCCESS );
> +}
This needs more work. Also please try to better follow wineserver
conventions everywhere.
--
Alexandre Julliard
julliard(a)winehq.org