diff --git a/docs/userguide/de/preferences/network.html b/docs/userguide/de/preferences/network.html
index 30bfe5d293..a9551f7376 100644
--- a/docs/userguide/de/preferences/network.html
+++ b/docs/userguide/de/preferences/network.html
@@ -53,7 +53,7 @@
| Deskbar: | | |
| Ort: | | /boot/system/preferences/Network |
-| Einstellungen: | | /boot/system/etc/resolv.conf |
+| Einstellungen: | | /boot/common/settings/network/resolv.conf |
diff --git a/docs/userguide/en/preferences/network.html b/docs/userguide/en/preferences/network.html
index 53e8a397f0..24a26f629d 100644
--- a/docs/userguide/en/preferences/network.html
+++ b/docs/userguide/en/preferences/network.html
@@ -49,7 +49,7 @@
| Deskbar: | | |
| Location: | | /boot/system/preferences/Network |
-| Settings: | | /boot/system/etc/resolv.conf |
+| Settings: | | /boot/common/settings/network/resolv.conf |
diff --git a/docs/userguide/es/preferences/network.html b/docs/userguide/es/preferences/network.html
index 4a7dad1463..a8a0be4f29 100644
--- a/docs/userguide/es/preferences/network.html
+++ b/docs/userguide/es/preferences/network.html
@@ -51,7 +51,7 @@
| Deskbar: | | |
| Ubicación: | | /boot/system/preferences/Network |
-| Configuración: | | /boot/system/etc/resolv.conf |
+| Configuración: | | /boot/common/settings/network/resolv.conf |
diff --git a/docs/userguide/fr/preferences/network.html b/docs/userguide/fr/preferences/network.html
index 6cb111eb19..c85128b4d0 100644
--- a/docs/userguide/fr/preferences/network.html
+++ b/docs/userguide/fr/preferences/network.html
@@ -51,7 +51,7 @@
| Deskbar : | | |
| Localisation : | | /boot/system/preferences/Network |
-| Réglages : | | /boot/system/etc/resolv.conf |
+| Réglages : | | /boot/common/settings/network/resolv.conf |
diff --git a/docs/userguide/it/preferences/network.html b/docs/userguide/it/preferences/network.html
index 80f635c1a0..696c365856 100644
--- a/docs/userguide/it/preferences/network.html
+++ b/docs/userguide/it/preferences/network.html
@@ -49,7 +49,7 @@
| Deskbar: | | |
| Posizione: | | /boot/system/preferences/Network |
-| Impostazioni: | | /boot/system/etc/resolv.conf |
+| Impostazioni: | | /boot/common/settings/network/resolv.conf |
diff --git a/docs/userguide/jp/preferences/network.html b/docs/userguide/jp/preferences/network.html
index eb97360ca4..adb59d2e80 100644
--- a/docs/userguide/jp/preferences/network.html
+++ b/docs/userguide/jp/preferences/network.html
@@ -49,7 +49,7 @@
| Deskbar: | | |
| Location: | | /boot/system/preferences/Network |
-| Settings: | | /boot/system/etc/resolv.conf |
+| Settings: | | /boot/common/settings/network/resolv.conf |
diff --git a/docs/userguide/ru/preferences/network.html b/docs/userguide/ru/preferences/network.html
index a335da01a7..c2242ae59a 100644
--- a/docs/userguide/ru/preferences/network.html
+++ b/docs/userguide/ru/preferences/network.html
@@ -51,7 +51,7 @@
| Расположение в Deskbar: | | |
| Расположение в Tracker: | | /boot/system/preferences/Network |
-| Настройки хранятся по адресу: | | /boot/system/etc/resolv.conf |
+| Настройки хранятся по адресу: | | /boot/common/settings/network/resolv.conf |
diff --git a/docs/userguide/sv_SE/preferences/network.html b/docs/userguide/sv_SE/preferences/network.html
index 9073b165bc..ddc9d67c1b 100644
--- a/docs/userguide/sv_SE/preferences/network.html
+++ b/docs/userguide/sv_SE/preferences/network.html
@@ -51,7 +51,7 @@
| Deskbar: | | |
| Plats: | | /boot/system/preferences/Network |
-| Inställningar: | | /boot/system/etc/resolv.conf |
+| Inställningar: | | /boot/common/settings/network/resolv.conf |
diff --git a/src/preferences/mail/AutoConfig.h b/src/preferences/mail/AutoConfig.h
index 3ae1fddc53..b6279d0cad 100644
--- a/src/preferences/mail/AutoConfig.h
+++ b/src/preferences/mail/AutoConfig.h
@@ -11,8 +11,8 @@
#define ATTR_NAME_POPSERVER "POP Server"
#define ATTR_NAME_IMAPSERVER "IMAP Server"
#define ATTR_NAME_SMTPSERVER "SMTP Server"
-#define ATTR_NAME_AUTHPOP "POP Authentification"
-#define ATTR_NAME_AUTHSMTP "SMTP Authentification"
+#define ATTR_NAME_AUTHPOP "POP Authentication"
+#define ATTR_NAME_AUTHSMTP "SMTP Authentication"
#define ATTR_NAME_POPSSL "POP SSL"
#define ATTR_NAME_IMAPSSL "IMAP SSL"
#define ATTR_NAME_SMTPSSL "SMTP SSL"
@@ -78,4 +78,4 @@ class AutoConfig
-#endif
\ No newline at end of file
+#endif
diff --git a/src/preferences/mail/DNSQuery.cpp b/src/preferences/mail/DNSQuery.cpp
index a177048a69..e20cc4b1e6 100644
--- a/src/preferences/mail/DNSQuery.cpp
+++ b/src/preferences/mail/DNSQuery.cpp
@@ -1,12 +1,14 @@
#include "DNSQuery.h"
-#include
-#include
-#include
-
#include
#include
+#include
+#include
+#include
+#include
+#include
+
// #define DEBUG 1
#undef PRINT
@@ -155,11 +157,16 @@ DNSTools::GetDNSServers(BObjectList* serverList)
(line[sizeof(name) - 1] == ' ' || \
line[sizeof(name) - 1] == '\t'))
+ BPath path;
+ if (find_directory(B_COMMON_SETTINGS_DIRECTORY, &path) != B_OK)
+ return;
- register FILE* fp = fopen("/etc/resolv.conf", "r");
+ path.Append("network/resolv.conf");
+
+ register FILE* fp = fopen(path.Path(), "r");
if (fp == NULL) {
- fprintf(stderr, "failed to open '/etc/resolv.conf' to "
- "read nameservers: %s\n", strerror(errno));
+ fprintf(stderr, "failed to open '%s' to read nameservers: %s\n",
+ path.Path(), strerror(errno));
return;
}
diff --git a/src/preferences/network/EthernetSettingsView.cpp b/src/preferences/network/EthernetSettingsView.cpp
index a369c8043d..883cf40aea 100644
--- a/src/preferences/network/EthernetSettingsView.cpp
+++ b/src/preferences/network/EthernetSettingsView.cpp
@@ -388,7 +388,7 @@ EthernetSettingsView::_SaveDNSConfiguration()
BFile file(path.Path(), B_CREATE_FILE | B_ERASE_FILE | B_WRITE_ONLY);
if (file.InitCheck() != B_OK) {
- fprintf(stderr, "failed to open /etc/resolv.conf for writing: %s\n",
+ fprintf(stderr, "failed to open %s for writing: %s\n", path.Path(),
strerror(file.InitCheck()));
return;
}
diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/EthernetSettingsView.cpp b/src/tests/kits/net/preflet/InterfacesAddOn/EthernetSettingsView.cpp
index 0a1dc838fc..a03cb32c1a 100644
--- a/src/tests/kits/net/preflet/InterfacesAddOn/EthernetSettingsView.cpp
+++ b/src/tests/kits/net/preflet/InterfacesAddOn/EthernetSettingsView.cpp
@@ -276,10 +276,15 @@ EthernetSettingsView::_SaveConfiguration()
void
EthernetSettingsView::_SaveDNSConfiguration()
{
- BFile file("/etc/resolv.conf",
- B_CREATE_FILE | B_ERASE_FILE | B_WRITE_ONLY);
- if (file.InitCheck() < B_OK) {
- fprintf(stderr, "failed to open /etc/resolv.conf for writing: %s\n",
+ BPath path;
+ if (find_directory(B_COMMON_SETTINGS_DIRECTORY, &path) != B_OK)
+ return;
+
+ path.Append("network/resolv.conf");
+
+ BFile file(path.Path(), B_CREATE_FILE | B_ERASE_FILE | B_WRITE_ONLY);
+ if (file.InitCheck() != B_OK) {
+ fprintf(stderr, "failed to open %s for writing: %s\n", path.Path(),
strerror(file.InitCheck()));
return;
}
diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/Setting.cpp b/src/tests/kits/net/preflet/InterfacesAddOn/Setting.cpp
index f5a2d553a3..32802523d1 100644
--- a/src/tests/kits/net/preflet/InterfacesAddOn/Setting.cpp
+++ b/src/tests/kits/net/preflet/InterfacesAddOn/Setting.cpp
@@ -5,37 +5,40 @@
* Author:
* Andre Alves Garzia, andre@andregarzia.com
*/
-
+
+
#include "Setting.h"
-#include
-#include
-#include
-
-#include
-#include
-
#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
#include
+#include
+#include
+#include
#include
#include
#include
+#include
+#include
#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+
+#include
+
+
Setting::Setting(const char *name)
:
fAuto(true)
{
fSocket = socket(AF_INET, SOCK_DGRAM, 0);
fName = name;
+
ReadConfiguration();
}
@@ -121,7 +124,6 @@ Setting::ReadConfiguration()
ifreq *interface = (ifreq *)buffer;
ifreq *end = (ifreq *)((uint8 *)buffer + size);
-
while (interface < end) {
route_entry& route = interface->ifr_route;
@@ -138,15 +140,15 @@ Setting::ReadConfiguration()
if (route.gateway != NULL)
addressSize += route.gateway->sa_len;
- interface = (ifreq *)((addr_t)interface +
- IF_NAMESIZE + sizeof(route_entry) + addressSize);
+ interface = (ifreq *)((addr_t)interface + IF_NAMESIZE
+ + sizeof(route_entry) + addressSize);
}
uint32 flags = 0;
if (ioctl(fSocket, SIOCGIFFLAGS, &request, sizeof(struct ifreq)) == 0)
flags = request.ifr_flags;
- fAuto = flags & IFF_AUTO_CONFIGURED;
+ fAuto = (flags & IFF_AUTO_CONFIGURED) != 0;
if (ioctl(fSocket, SIOCGIFMEDIA, &request, sizeof(struct ifreq)) == 0)
fMedia = request.ifr_media;
@@ -154,45 +156,13 @@ Setting::ReadConfiguration()
// read resolv.conf for the dns.
fNameservers.MakeEmpty();
-#define MATCH(line, name) \
- (!strncmp(line, name, sizeof(name) - 1) && \
- (line[sizeof(name) - 1] == ' ' || \
- line[sizeof(name) - 1] == '\t'))
+ res_init();
+ res_state state = __res_state();
-
- register FILE *fp = fopen("/etc/resolv.conf", "r");
- if (fp == NULL) {
- fprintf(stderr, "failed to open '/etc/resolv.conf' to "
- "read nameservers: %s\n", strerror(errno));
- return;
- }
-
- int nserv = 0;
- char buf[1024];
- register char *cp; //, **pp;
-// register int n;
- int MAXNS = 2;
-
- // read the config file
- while (fgets(buf, sizeof(buf), fp) != NULL) {
- // skip comments
- if (*buf == ';' || *buf == '#')
- continue;
-
- // read nameservers to query
- if (MATCH(buf, "nameserver") && nserv < MAXNS) {
-// char sbuf[2];
- cp = buf + sizeof("nameserver") - 1;
- while (*cp == ' ' || *cp == '\t')
- cp++;
- cp[strcspn(cp, ";# \t\n")] = '\0';
- if ((*cp != '\0') && (*cp != '\n')) {
- fNameservers.AddItem(new BString(cp));
- nserv++;
- }
+ if (state != NULL) {
+ for (int i = 0; i < state->nscount; i++) {
+ fNameservers.AddItem(
+ new BString(inet_ntoa(state->nsaddr_list[i].sin_addr)));
}
- continue;
}
-
- fclose(fp);
}