[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