-
You can either connect via the socket in the internet namespace on port
3185 (early versions on 53163) or via the socket in the local namespace named
"/var/run/smpppd/control".
-
The protocol in simply line oriented.
-
You may be required to authenticated yourself. If so, the first line you
get contains the challenge for md5 authentication:
challenge = <challenge>
Here challenge is in hex format. You must calculate the response by
taking the MD5 sum of the concatenation of the challenge (in bin format) and
the password. Send the MD5 sum back:
response = <response>
Again response is in hex format. If you are lucky, the connection is
not closed by the smpppd.
-
The first line (after authentication) is the greeting message:
SuSE Meta pppd (smpppd), Version version
You can start to send commands to the smpppd now.
-
List of commands:
- list-status
- Get the current status.
- want-status = <0 or 1>
- Tell the smpppd to not give or give you the status whenever is
changes. (want-status = 1 includes list-status)
- start
- Start the internet connection. Use this command if ask-password = 0.
- start <password>
- Start the internet connection. Use this command if ask-password = 1.
- dialin
- Trigger dial-in for dial on demand connections.
- hangup
- Trigger hangup for dial on demand connections.
- stop
- Stop the internet connection.
- list-interfaces
- List all configured interfaces.
- want-interfaces = <0 or 1>
- Tell the smpppd to not give or give you the list of interfaces whenever is
changes. (want-interfaces = 1 includes list-interfaces)
- interface-name = <name of interface>
- Select the interface with specific name. You can only select a interface
while you are not connected (status = ERROR || status = DISCONNECTED).
-
- interface-number = <number of proivder>
- Select the interface with specific number (starting at 1). You can only
select a interface while you are not connected (status = ERROR || status =
DISCONNECTED).
-
- list-providers
- List all configured providers.
- want-providers = <0 or 1>
- Tell the smpppd to not give or give you the list of providers whenever is
changes. (want-providers = 1 includes list-providers)
- provider-name = <name of provider>
- Select the provider with specific name. You can only select a provider
while you are not connected (status = ERROR || status = DISCONNECTED).
-
- provider-number = <number of proivder>
- Select the provider with specific number (starting at 1). You can only
select a provider while you are not connected (status = ERROR || status =
DISCONNECTED).
-
- list-log
- Get a log of the internet connection.
- want-log = <0 or 1>
- Tell the smpppd to not give or give you new lines of the log. (want-log =
1 includes list-log)
- list-config
- Get the current dial-up configuration.
- want-config = <0 or 1>
- Tell the smpppd to not give or give you the dial-up configuration whenever
it changes. (want-config = 1 includes list-config)
- want-rxtx-bytes = <0 or 1>
- Tell the smpppd to not give or give you (approx every second) the number
of transfered bytes.
- wwwoffle-use = <0 or 1>
- Should the wwwoffle commands wwwoffle -online and wwwoffle -offline be
executed after going online or before going offline?
- wwwoffle-fetch = <0 or 1>
- Should the command wwwoffle -fetch be executed after going online?
- lang = <lang>
- Set the language of the client (currently unused).
- survive-me = <0 or 1>
- Only used by cinternet
- quit
- Quit the connection to the client.
-
List of answers:
-
Status:
BEGIN STATUS
status = <status>
demand = <0 or 1>
ask-password = <0 or 1>
wwwoffle-possible = <0 or 1>
wwwoffle-use = <0 or 1>
wwwoffle-fetch = <0 or 1>
END STATUS
The status is one of:
- ERROR
- Such a bad error, that a connect is not possible and won't be possible by
just trying again.
- DISCONNECTED
- Well, we are disconnected from the internet (how bad).
- LURKING
- A dial on demand connection that is just waiting for traffic and
connect.
- CONNECTING
- We are trying to connect to the provider.
- CONNECTED
- We are connected to the provider.
- DISCONNECTED
- We are disconnecting from the provider.
-
Configured interfaces:
BEGIN LIST INTERFACES <number of interfaces>
<0 or 1> <name of interface 1>
END LIST INTERFACES
First character is 1 for selected interface, otherwise 0. The name is utf-8
encoded.
-
Configured providers:
BEGIN LIST PROVIDERS <number of providers>
<0 or 1> <name of provider 1>
END LIST PROVIDERS
First character is 1 for selected provider, otherwise 0. The name is utf-8
encoded.
-
Log of connection:
BEGIN LIST LOG <number of lines>
<log lines>
END LIST LOG
BEGIN APPEND LOG <number of lines>
<log lines>
END APPEND LOG
The log is utf-8 encoded.
-
Transfered bytes:
BEGIN RXTX BYTES
<rx bytes> <tx bytes>
END RXTX BYTES
-
Note: If something is unclear (I'm sure there is), you may look at the
source code of smpppd, cinternet and kinternet or ask me
(arvin@suse.de) directly.