void priv_init(char*, int, uid_t, gid_t);
void priv_ctl_cleanup(void);
char *priv_gethostbyname(void);
-int priv_open(char*);
#ifdef HOST_OS_LINUX
+int priv_open(char*);
int priv_ethtool(char*, void*, size_t);
#endif
int priv_iface_init(int);
return buf;
}
+#ifdef HOST_OS_LINUX
/* Proxy for open */
int
priv_open(char *file)
return rc;
return receive_fd(remote);
}
+#endif
#ifdef HOST_OS_LINUX
/* Proxy for ethtool ioctl */
}
}
+#ifdef HOST_OS_LINUX
static void
asroot_open()
{
send_fd(remote, fd);
close(fd);
}
+#endif
#ifdef HOST_OS_LINUX
#include <linux/ethtool.h>
{PRIV_PING, asroot_ping},
{PRIV_DELETE_CTL_SOCKET, asroot_ctl_cleanup},
{PRIV_GET_HOSTNAME, asroot_gethostbyname},
- {PRIV_OPEN, asroot_open},
#ifdef HOST_OS_LINUX
+ {PRIV_OPEN, asroot_open},
{PRIV_ETHTOOL, asroot_ethtool},
#endif
{PRIV_IFACE_INIT, asroot_iface_init},