From f691c77a30af8767ef421941988ba11283094e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Sat, 29 Sep 2007 07:22:18 +0000 Subject: [PATCH] * don't know which option to pass to fopen() in order to create a file if it doesn't exist, so I just used a BFile instead... this should fix part of ticket #1423, if someone wants to look into the gateway retrieval (settings.cpp) to fix the other half of the bug, that would be great git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22366 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../network/EthernetSettingsView.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/preferences/network/EthernetSettingsView.cpp b/src/preferences/network/EthernetSettingsView.cpp index 09362bdf7a..880073e346 100644 --- a/src/preferences/network/EthernetSettingsView.cpp +++ b/src/preferences/network/EthernetSettingsView.cpp @@ -345,22 +345,28 @@ EthernetSettingsView::_SaveConfiguration() void EthernetSettingsView::_SaveDNSConfiguration() { - FILE* fp = fopen("/etc/resolv.conf", "w"); - if (fp == NULL) + 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", + strerror(file.InitCheck())); return; + } - fprintf(fp, "# Generated by Network Preflet\n"); + BString content("# Generated by Network Preflet\n"); // loop over all adapters for (int i = 0; i < fSettings.CountItems(); i++) { Settings* settings = fSettings.ItemAt(i); for (int j = 0; j < settings->fNameservers.CountItems(); j++) { if (settings->fNameservers.ItemAt(j)->Length() > 0) { - fprintf(fp, "nameserver\t%s\n", - settings->fNameservers.ItemAt(j)->String()); + content << "nameserver\t" + << settings->fNameservers.ItemAt(j)->String() + << "\n"; } } } - fclose(fp); + + file.Write(content.String(), content.Length()); }