RFC: Keeping track of online/offline status & central DNS service

Cornelius Schumacher schumacher at kde.org
Thu Nov 25 13:17:37 GMT 2004

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 <schumacher at kde.org>

More information about the kde-core-devel mailing list