From 9cad6d980bd059107780d7cae98a13371ad6a5ed Mon Sep 17 00:00:00 2001 From: Waldemar Kornewald Date: Fri, 14 Oct 2005 13:56:22 +0000 Subject: [PATCH] Fixed very stupid bug. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14384 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../network/interfaces/ppp/PPPManager.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/add-ons/kernel/network/interfaces/ppp/PPPManager.cpp b/src/add-ons/kernel/network/interfaces/ppp/PPPManager.cpp index 7cc7dc209c..2967664904 100644 --- a/src/add-ons/kernel/network/interfaces/ppp/PPPManager.cpp +++ b/src/add-ons/kernel/network/interfaces/ppp/PPPManager.cpp @@ -716,11 +716,12 @@ PPPManager::SettingsChanged() // get default interface name and update interfaces if it changed void *handle = load_driver_settings("ptpnet.settings"); const char *name = get_driver_parameter(handle, "default", NULL, NULL); - unload_driver_settings(handle); if((!fDefaultInterface && !name) || (fDefaultInterface && name - && !strcmp(name, fDefaultInterface))) + && !strcmp(name, fDefaultInterface))) { + unload_driver_settings(handle); return; + } ppp_interface_entry *entry = EntryFor(fDefaultInterface); if(entry && entry->interface->StateMachine().Phase() == PPP_DOWN_PHASE) @@ -729,11 +730,13 @@ PPPManager::SettingsChanged() free(fDefaultInterface); if(!name) { fDefaultInterface = NULL; + unload_driver_settings(handle); return; } fDefaultInterface = strdup(name); - ppp_interface_id id = CreateInterfaceWithName(name); + unload_driver_settings(handle); + ppp_interface_id id = CreateInterfaceWithName(fDefaultInterface); entry = EntryFor(id); if(entry) entry->interface->SetConnectOnDemand(true); @@ -814,12 +817,8 @@ PPPManager::_CreateInterface(const char *name, locker.UnlockNow(); // it is safe to access the manager from userland now - if(!Report(PPP_MANAGER_REPORT, PPP_REPORT_INTERFACE_CREATED, - &id, sizeof(ppp_interface_id))) { - DeleteInterface(id); - atomic_add(&entry->accessing, -1); - return PPP_UNDEFINED_INTERFACE_ID; - } + Report(PPP_MANAGER_REPORT, PPP_REPORT_INTERFACE_CREATED, &id, + sizeof(ppp_interface_id))); // notify handlers that interface has been created and they can initialize it now entry->interface->StateMachine().DownProtocols();