ndgui/NetworkDiscovery

/home/niklas/workspace/fbgui/src/networkmanager.h

Go to the documentation of this file.
00001 
00016 #ifndef NETWORKMANAGER_H_
00017 #define NETWORKMANAGER_H_
00018 
00019 #include <arpa/inet.h>
00020 #include <net/if.h>
00021 #include <netlink/netlink.h>
00022 #include <netlink/netlink-kernel.h>
00023 #include <netlink/route/addr.h>
00024 #include <netlink/route/rtnl.h>
00025 #include <netlink/route/route.h>
00026 #include <netlink/route/link.h>
00027 
00028 #include <errno.h>
00029 #include <QtCore>
00030 #include <QNetworkAddressEntry>
00031 
00032 class NetworkManager: public QObject {
00033 Q_OBJECT
00034 
00035 public:
00036         NetworkManager();
00037         virtual ~NetworkManager();
00038 
00039         int     replaceDefaultRoute(QString ifname, QString gateway, int metric,
00040                                         int af);
00041 
00042         int bringInterfaceUP(QString ifname);
00043         int bringInterfaceDown(QString ifname);
00044 
00045         int ip4_setManualConfiguration(QString ifname, QString ipAddress, QString netmask,
00046                         QString broadcast, QString gateway, int metric, int af, QString pathToResolvConf, QList<QString> nameServer);
00047         int ip4_configureInterface(QString ifname, QString ipAddress,
00048                                                 QString broadcast, QString netmask, int af);
00049 
00050         int ip6_addRoute(const char *iface,
00051                         const struct in6_addr *ip6_dest, int ip6_prefix,
00052                         const struct in6_addr *ip6_gateway, int metric, int mss);
00053         int ip6_addAddress(struct ip6_addr* ip6Addr, const char *iface);
00054 
00055         int writeResolvConf(QString path, QString ifname, QList<QString> nameServer);
00056 
00057 private:
00058         QString _tag;
00059         int bringInterfaceUpDown(QString ifname, bool up);
00060         int ip4_netmaskToPrefix(QString ipAddr, QString netmask);
00061 
00062         int sync_address(const char *iface, int ifindex, int family,
00063                 struct rtnl_addr *addr);
00064 
00065         struct rtnl_route* create_route (int iface_idx, int mss);
00066         struct nl_addr* ip6AddrToNlAddr (const struct ip6_addr* ip6Addr);
00067         int nlAddrToRtnlAddr (const struct ip6_addr* ip6Addr, struct rtnl_addr* addr);
00068         struct rtnl_addr* ip6AddrToRtnlAddr(struct ip6_addr* ip6Addr);
00069 
00070 
00071 };
00072 
00073 #endif /* NETWORKMANAGER_H_ */
 All Classes Files Functions Variables Defines