Network: beginnings of the DNS settings.

This commit is contained in:
Axel Dörfler
2015-03-27 13:24:02 +01:00
parent 55820aedc1
commit a4a34e4235
5 changed files with 169 additions and 0 deletions
+1
View File
@@ -5,6 +5,7 @@ SubInclude HAIKU_TOP src add-ons network_settings ipv4 ;
SubInclude HAIKU_TOP src add-ons network_settings ipv6 ;
# Service add-ons
SubInclude HAIKU_TOP src add-ons network_settings dnsclient ;
SubInclude HAIKU_TOP src add-ons network_settings ftpd ;
SubInclude HAIKU_TOP src add-ons network_settings sshd ;
SubInclude HAIKU_TOP src add-ons network_settings telnetd ;
@@ -0,0 +1,151 @@
/*
* Copyright 2015 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Axel Dörfler, <[email protected]>
*/
#include <Catalog.h>
#include <NetworkSettings.h>
#include <NetworkSettingsAddOn.h>
#include <StringItem.h>
#include "DNSSettingsView.h"
using namespace BNetworkKit;
#undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "DNSClientServiceAddOn"
class DNSClientServiceAddOn : public BNetworkSettingsAddOn {
public:
DNSClientServiceAddOn(image_id image,
BNetworkSettings& settings);
virtual ~DNSClientServiceAddOn();
virtual BNetworkSettingsItem*
CreateNextItem(uint32& cookie);
};
class DNSClientServiceItem : public BNetworkSettingsItem {
public:
DNSClientServiceItem(
BNetworkSettings& settings);
virtual ~DNSClientServiceItem();
virtual BNetworkSettingsType
Type() const;
virtual BListItem* ListItem();
virtual BView* View();
virtual status_t Revert();
virtual bool IsRevertable();
private:
BNetworkSettings& fSettings;
BStringItem* fItem;
DNSSettingsView* fView;
};
// #pragma mark -
DNSClientServiceItem::DNSClientServiceItem(BNetworkSettings& settings)
:
fSettings(settings),
fItem(new BStringItem(B_TRANSLATE("DNS settings"))),
fView(NULL)
{
}
DNSClientServiceItem::~DNSClientServiceItem()
{
if (fView->Parent() == NULL)
delete fView;
delete fItem;
}
BNetworkSettingsType
DNSClientServiceItem::Type() const
{
return B_NETWORK_SETTINGS_TYPE_SERVICE;
}
BListItem*
DNSClientServiceItem::ListItem()
{
return fItem;
}
BView*
DNSClientServiceItem::View()
{
if (fView == NULL)
fView = new DNSSettingsView();
return fView;
}
status_t
DNSClientServiceItem::Revert()
{
return B_OK;
}
bool
DNSClientServiceItem::IsRevertable()
{
return false;
}
// #pragma mark -
DNSClientServiceAddOn::DNSClientServiceAddOn(image_id image,
BNetworkSettings& settings)
:
BNetworkSettingsAddOn(image, settings)
{
}
DNSClientServiceAddOn::~DNSClientServiceAddOn()
{
}
BNetworkSettingsItem*
DNSClientServiceAddOn::CreateNextItem(uint32& cookie)
{
if (cookie++ == 0)
return new DNSClientServiceItem(Settings());
return NULL;
}
// #pragma mark -
extern "C"
BNetworkSettingsAddOn*
instantiate_network_settings_add_on(image_id image, BNetworkSettings& settings)
{
return new DNSClientServiceAddOn(image, settings);
}
@@ -0,0 +1,17 @@
SubDir HAIKU_TOP src add-ons network_settings dnsclient ;
UsePublicHeaders [ FDirName add-ons network_settings ] ;
UsePrivateHeaders app libroot kernel net ;
Addon DNSClientService :
DNSClientServiceAddOn.cpp
DNSSettingsView.cpp
: be network bnetapi <nogrist>Network [ TargetLibsupc++ ]
[ TargetLibstdc++ ] localestub
;
DoCatalogs DNSClientService : x-vnd.Haiku-DNSClientService :
DNSClientServiceAddOn.cpp
DNSSettingsView.cpp
;