/* * networkmanager.h * * Created on: Sep 5, 2011 * Author: niklas */ #ifndef NETWORKMANAGER_H_ #define NETWORKMANAGER_H_ #include #include #include #include #include #include #include #include #include #include #include class NetworkManager: public QObject { Q_OBJECT public: NetworkManager(); virtual ~NetworkManager(); int replaceDefaultRoute(QString ifname, QString gateway, int metric, int af); int bringInterfaceUP(QString ifname); int bringInterfaceDown(QString ifname); int ip4_setManualConfiguration(QString ifname, QString ipAddress, QString netmask, QString broadcast, QString gateway, int metric, int af, QString pathToResolvConf, QList nameServer); int ip4_configureInterface(QString ifname, QString ipAddress, QString broadcast, QString netmask, int af); int ip6_addRoute(const char *iface, const struct in6_addr *ip6_dest, int ip6_prefix, const struct in6_addr *ip6_gateway, int metric, int mss); int ip6_addAddress(struct ip6_addr* ip6Addr, const char *iface); int writeResolvConf(QString path, QString ifname, QList nameServer); private: QString _tag; int bringInterfaceUpDown(QString ifname, bool up); int ip4_netmaskToPrefix(QString ipAddr, QString netmask); int sync_address(const char *iface, int ifindex, int family, struct rtnl_addr *addr); struct rtnl_route* create_route (int iface_idx, int mss); struct nl_addr* ip6AddrToNlAddr (const struct ip6_addr* ip6Addr); int nlAddrToRtnlAddr (const struct ip6_addr* ip6Addr, struct rtnl_addr* addr); struct rtnl_addr* ip6AddrToRtnlAddr(struct ip6_addr* ip6Addr); }; #endif /* NETWORKMANAGER_H_ */