[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    RFC: Keeping track of online/offline status & central DNS service
From:       Waldo Bastian <bastian () kde ! org>
Date:       2004-11-25 11:11:59
Message-ID: 200411251212.03863.bastian () kde ! org
[Download RAW message or body]


Hi,

I have prepared some ideas for improving the general network experience, in 
particular for those use-cases where the internet connection is subject to 
availability (e.g. wireless or dial-up access)

This is just a first rough draft, your feedback is appreciated on all aspects 
of this.

Cheers,
Waldo

===========================


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.


Proposed DCOP interface
=======================

enumOnlineStatus { Unknown = 0, OffLine = 1, Online = 2 }

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

signal onlineStatusChanged(enumOnlineStatus (int?) )
// DCOP signal that gets emited whenever the onlineStatus changes


"list of resolved addresses" lookup("hostname", port, bool activateNetwork )
// resolve hostname, returns list of IP addresses
// alternative: returns only one IP address, if DNS returns multiple
// IP addresses it returns the most appropriate one
// activateNetwork: If true and hostname is not on local network and status is
// OffLine, request activation of network if possible or fail if no activation
// is possible
// activateNetwork: If false and hostname is not on local network and status
// is Offline, fail.


"try again" reportConnectionResult("hostname", port, "resolved address", 
result)
// Function for application to report back whether connection was successfull
// Returns whether the application should try again (e.g. because
// online/offline status changed since the last lookup, or because another IP
// is available for this hostname)
// alternative: Instead of passing "hostname" and port, "resolved address"
// could contain a handle that identifies the lookup call responsible for this
// resolved address.


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


-- 
bastian@kde.org   |   Free Novell Linux Desktop 9 Evaluation Download
bastian@suse.com  |   http://www.novell.com/products/desktop/eval.html

[Attachment #3 (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic