From kde-core-devel Thu Nov 25 13:17:37 2004 From: Cornelius Schumacher Date: Thu, 25 Nov 2004 13:17:37 +0000 To: kde-core-devel Subject: Re: RFC: Keeping track of online/offline status & central DNS Message-Id: <200411251417.37767.schumacher () kde ! org> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=110138869329620 On Thursday, 25. November 2004 12:11, Waldo Bastian wrote: > =========================== > > > A KDED Module that keeps track of the internet connection status and that > provides DNS lookup service with intelligent support for round-robin DNS. > > > Design goals > ============ > > * Keeping track of online/offline status > * Prevent unneeded connection errors when the user is offline > * Make applications aware of online/offline status > * Improve dial-on-demand functionality to kick in only with > user-initiated actions. > * Improve dial-on-demand functionality by [optionally] being aware of the > local net topology and differentating between local addresses (always > available) > and internet addresses (availability subject to online/offline status) > * Improve handling of round-robin DNS by making sure that multiple > requests are all send to the same IP. (KDE BR63088) > * Improve handling of multiple DNS records by being aware of connection > failures to the primary IP and redirecting subsequent requests to > a secondary IP. I would add: * Provide an interface for integration with system-specific mechanisms to change and detect network status. > Proposed DCOP interface > ======================= > > enumOnlineStatus { Unknown = 0, OffLine = 1, Online = 2 } Wouldn't we need additional intermediate states here, something like RequestedOffline and RequestedOnline? It might take a while to get online and when going from Online to Offline it would be desirable to wait with actually switching off the network until pending network operations are finished. > enumOnlineStatus (int?) onlineStatus() > // Returns internet status, can be used by applications such as KMail / > // KWeather in deciding whether to do certain background activities > void setOnlineStatus(enumOnlineStatus (int?) ) > // Sets internet status, to be used by kppp / kisdn or distribution > specific // tools Is this meant to set the status reflecting the actual network state or to request a status change? Or asked in a different way: Would kppp call this function or be called by this function? > setNetworkActivationCallback(DCOPRef, function) > // Specify DCOP function that should be called in order to request > activation // of network > // To be used by kppp / kisdn or distribution specific tools How would this callback be used? Might it be desirable to not require DCOP here, so that distribution specific tools don't need to be able to use DCOP? -- Cornelius Schumacher