[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: Announcement: Daemon for managing dialup internetconnections
From: Bjoern Kahl <Bjoern.Kahl () kiel ! netsurf ! de>
Date: 1999-06-25 6:50:18
[Download RAW message or body]
On 24-Jun-99 Matt Koss wrote:
> On ©t, 24 jún 1999, Bjoern.Kahl wrote:
> >Hallo !
>
> Hi,
>
> as you might know, I have started some work on ConnectionWatcher
> myself and I would like to know some things about your program.
Hallo !
I haven´t recognized, you have started, but if I remember correctly,
you are that person, who asked first about a way to find out if we
are connected.
> How does the user specify the type of the connection ?
> How does your program starts / stops connection ?
> Is it possible to set that the program will use e.g. kppp or kisdn
> for connecting ?
I am not sure, we are speaking about the same things ?
What I wrote is a backgroundservice, without a native gui where a user
can set some thing. (Not really true. I am writing on a gui now.)
Of course, I do not re-invent everything. I use the normal commands
like SuSE's ppp-on to start or stop a connection (better explaint
on the web. My english is not good, most text on
<http://home.netsurf.de/bjoern.kahl/netmgr/index2.html> was heavily
spell- and grammar-fixed by my girlfriend).
What to use to start/stop connection is freely configurable, as long
as it could be used on commandline. If there is a way to run kppp
from commandline, it could be used.
But I don't know why we should use it. (Never understood why kppp,
xppp, kisdn and friends make sense: I configure how to connect or
disconnect when I install the system, and after that point, i just
type in "goonline" or click on a button, which in turn start isdnctrl
or pppd. (Normal user should not play with systemconfiguration, and
networksetup is part of systemconfiguration, IMHO. Especially on
multiuser machines).)
> My idea was to create a general Connection Watcher with a CORBA
> interface.
> Apps like kmail, konqueror, caitoo or icq clients would then only
> connect to
> the CORBA signal and they would get info when connected /
> disconnected.
> Interface definition would also contain methods for connecting and
> disconnecting.
This is what I have done. Its working. Example:
I receive my mail and news using a single crontab-entry:
"00 3 * * * /usr/local/NetMgr2/bin/runjob -r 10"
"runjob" (part of NetMgr-system) register itself with my NetMgr,
request the netmgr to run predefined job #10, and exist.
NetMgr then:
- try to establish a connection,
- starts that job (in my case a shellscript running "fetchmail",
"sendmail -q" and "suck")
- disconnects after return of the job,
- loggs used time (so, on a multiuser-machine, you could charge user
for connectiontime)
Of course, other clients can register themself at the any time,
running other predefined jobs or simply request the server to
establish a connection.
The predefined job way is for thinks, user should be able to do, but
would require root (like "sendmail -q"). NetMgr runs as root, so user
can execute (via netmgr) network-related programms requiring root.
Normal way is, a programme (like Caitoo) register itself with
NetMgr, requests a connection if needed, waits for the
connection, use it, withdraw onlinerequest, unregister, exits:
( Pseudocode: )
- - - - - - - - - - - - - - - - - -
init() {
....
NetMgr_register(applicationame,0);
/* may be, if you want */
netmgrsocket = NetMgr_getsocket();
NetMgr_requestlink(NETMGR_CMD_NOTIFY, all_events_you_want_to_have);
...
}
mainloop {
...
/* start connecting */
NetMgr_requestlink(NETMGR_CMD_GOONLINE);
. . . . . . . . . . . . . . . . . . . . . . . .
/* pooling, (bad but possible) */
for (;;) {
NetMgr_requestlink(NETMGR_CMD_LINKSTAT, &rp);
if (rp->rt.ls.status & NETMGR_LIF_ONLINEFAILED)
.... /* failure exit */
if (rp->rt.ls.status & NETMGR_LIF_ONLINE)
.... /* ok exit */
do_some_thing_else();
}
. . . . . . . . . . . . . . . . . . . . . . . .
/* waiting (better - requires you to request the needed events
via "NETMGR_CMD_NOTIFY") */
...
select(n, readset, writeset, exclset, timeout);
if (FD_ISSET(netmgrsocket, readset)) {
NetMgr_processio();
NetMgr_querylink(NETMGR_CMD_NOTIFYCHECK, &rp);
if (rp->rt.no.status & NETMGR_NOTIFY_ONLINE)
... /* ok exit */
if (rp->rt.no.status & NETMGR_NOTIFY_ONLINEFAILED)
... /* failexit */
}
...
. . . . . . . . . . . . . . . . . . . . . . . .
/* use link */
....
/* don´t need the connection any longer */
NetMgr_requestlink(NETMGR_CMD_GOOFFLINE);
}
--------------------------------------------------------------------
The NetMg will establish a link as soon as and as long as there is
any programme registered *and* requesting to be online. Of course,
the NetMgr may be restricted to certain times (via disable and
enable-commands - buildin timerules are a good idea, will do that
next weekend). There are commands to go permanently online (without
a programm beeing registered) and offline again. Everything is
multiuser-save.
> I have started some work on it using the code from Caitoo, and also
> created a kcm module for general configuration ( type of connection,
> time interval ).
This is really great. (I know, I wrote I don't understand sense of
kpp, lisdn etc. but, if people use it, its ok.) I would be really
happy, if I may use your kmc module for configuring NetMgr. It has
only one Configfile (key - value pairs) which could easily created
using your kmc. (See install-chaper on web or downloaded files.)
> Dialog would also contain a preferred app for connecting ( this would
> require some cooperation on kppp / kisdn side ).
> I just hope that the functionality will be similar.
I don't know, what you have done. But we really should try to merge
things. Have a look at my web-page: The whole source and
documentation is online browseable and downloadable available.
May be, we should discuss details by private email (not over the list).
Ciao
Bjoern
--
+-----------------------------------------------------------------------+
| Björn Kahl ++ Max-Planck-Str.26 ++ 24211 Preetz ++ (ISDN) 04342 76882 |
+-----------------------------------------------------------------------+
Weitergabe und/oder gewerbliche Nutzung meiner Adresse/TeleNr untersagt.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic