- updated man pages
[opensuse:smpppd.git] / smpppd / dsl.h
1 // -*- c++ -*-
2
3 /*
4  *  Author: Arvin Schnell <arvin@suse.de>
5  */
6
7
8 #ifndef dsl_h
9 #define dsl_h
10
11
12 #include "process.h"
13 #include "stream.h"
14 #include "connection.h"
15 #include "dsl-config.h"
16
17
18 class DSL : public Connection
19 {
20
21 public:
22
23     DSL (const DSLConfig* dslconfig, void (*) (bool, const char*),
24          void (*) (Status), void (*) ());
25     virtual ~DSL ();
26
27     bool start ();
28     bool dialin ();
29     bool hangup ();
30     bool stop ();
31     bool set_channels (int);
32
33     int action_flags () const;
34     int get_channels () const;
35     int max_channels () const;
36
37     void timer ();
38
39     void prepare_select (fd_set*, fd_set*) const;
40     void handle_select (fd_set*, fd_set*);
41
42     bool check_config ();
43
44     void list_config (std::list <string>*) const;
45
46 private:
47
48     const DSLConfig* dslconfig;
49
50     Process pppd;
51
52     Stream* pppd_log;
53
54     string pppd_ifname;
55
56     void analyse (const string&);
57
58     int padi_timeout;           // only for PPPOE
59
60 };
61
62
63 #endif