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:Preferences
Ort:/boot/system/preferences/Network
Einstellungen:/boot/system/etc/resolv.conf
Einstellungen:/boot/common/settings/network/resolv.conf


network.png 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:Preferences
Location:/boot/system/preferences/Network
Settings:/boot/system/etc/resolv.conf
Settings:/boot/common/settings/network/resolv.conf


network.png 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:Preferencias
Ubicación:/boot/system/preferences/Network
Configuración:/boot/system/etc/resolv.conf
Configuración:/boot/common/settings/network/resolv.conf


network.png 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 :Preferences
Localisation :/boot/system/preferences/Network
Réglages :/boot/system/etc/resolv.conf
Réglages :/boot/common/settings/network/resolv.conf


network.png 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:Preferences
Posizione:/boot/system/preferences/Network
Impostazioni:/boot/system/etc/resolv.conf
Impostazioni:/boot/common/settings/network/resolv.conf


network.png 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:Preferences
Location:/boot/system/preferences/Network
Settings:/boot/system/etc/resolv.conf
Settings:/boot/common/settings/network/resolv.conf


network.png 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:Настройки (Preferences)
Расположение в Tracker:/boot/system/preferences/Network
Настройки хранятся по адресу:/boot/system/etc/resolv.conf
Настройки хранятся по адресу:/boot/common/settings/network/resolv.conf


network.png 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:Preferences
Plats:/boot/system/preferences/Network
Inställningar:/boot/system/etc/resolv.conf
Inställningar:/boot/common/settings/network/resolv.conf


network.png 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); }