Marcel Holtmann
8c0163bfc0
gatchat: A full support for TUN/TAP pipe and GAtRawIP
2010-10-26 16:57:35 +02:00
Marcel Holtmann
a34a8840c9
gatchat: Remove unused write_watch variable of GAtHDLC
2010-10-26 15:16:35 +02:00
Marcel Holtmann
79e23355a4
gatchat: Fix missing return value for g_at_chat_set_slave
2010-10-21 20:34:13 +02:00
Marcel Holtmann
692cf6a6f6
gatchat: Add skeleton for GAtRawIP module
...
This adds the basic skeleton for a GAtRawIP support. It is only the
skeleton with its intended API. It has no raw IP support yet.
2010-10-21 19:36:18 +02:00
Marcel Holtmann
7492223f49
gatchat: Add support for slave chat instances
...
This adds support to assign a slave chat instance to an existing chat
instance. The slave chat is now additionally bound by the lifetime of
its master chat instance.
In case the master is cloned, the slave chat instance will also be
cloned as well.
With this it is possible to suspend the master while still have an
active slave for notifications or extra commands.
2010-10-21 18:41:38 +02:00
Marcel Holtmann
d0cbae0092
ppp: Fix some coding style and memory leaks
2010-10-21 18:26:50 +02:00
Marcel Holtmann
0caafef6c9
gatchat: Add support for skipping AT+CMUX speed parameter
2010-10-19 18:50:52 +02:00
Denis Kenzior
1e1ddfcf1b
gatchat: Fix calling unregister from callbacks
...
This fixes the issues with SIM hotswap on infineon
2010-10-14 09:42:42 -05:00
Denis Kenzior
fd113f7204
gatchat: break out the remove_if logic
...
And make unregister_group use the new function
2010-10-14 09:42:42 -05:00
Denis Kenzior
7fd86cf94f
gatchat: quit early if the group id doesn't match
...
If the ID of the notify matches but the group id does not match it means
that the unregister is being called with an id that does not belong to
that particular group. Checking further entries is no longer necessary.
2010-10-14 09:42:42 -05:00
Denis Kenzior
94fb2f23f8
gatsyntax: Fix responses starting with a quote
2010-09-29 05:37:41 -05:00
Marcel Holtmann
3dbfa4a7b4
gatchat: Hook up g_at_mux_set_debug to print debug messages for real
2010-09-26 17:25:27 +09:00
Lucas De Marchi
53f1e826c6
Fix common misspellings in gatchat
...
Fix common misspellings by using the list available at
http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
From the list cited above, the substitution script found the following
misspellings:
priviledge->privilege
succeded->succeeded
2010-09-14 16:00:42 +09:00
Denis Kenzior
54c75c47f8
gatchat: Skip string contents in extract_line
2010-08-16 13:11:44 -05:00
Denis Kenzior
5681e9df49
gatchat: Handle embedded \r and \n in responses
2010-08-16 12:44:50 -05:00
Denis Kenzior
0b2beb0068
gatutil: Handle non-printable characters
...
Signed arithmetic and shifts do not work well...
2010-08-16 11:25:19 -05:00
Denis Kenzior
5f47eca7ed
gatchat: Add g_at_chat_clone
...
This function will clone a chat object, but will create a new group
internally.
2010-08-12 16:06:32 -05:00
Denis Kenzior
2356ebf9ef
gatchat: Make GAtChat a facade for struct at_chat
...
Each GAtChat object is now simply a representation of a set of
outstanding commands and registered unsolicited notification handlers.
This makes it easy to cancel entire groups, e.g. by canceling the
GAtChat object itself rather than forcing the user into tracking all
relevant g_at_chat_register and g_at_chat_send ids.
2010-08-12 16:06:27 -05:00
Zhenhua Zhang
a72e092d19
ppp: Add MAX_IPCP_FAILURE to avoid timeout quickly
...
We use IPCP NAK response to stall the progress of acquiring the client
IP address from DHCP server. So we need to increase the max failure of
NAKs in IPCP handshaking.
2010-07-09 09:53:24 -03:00
Zhenhua Zhang
b3c35db955
gatppp: Unset disconnect function when unref PPP
...
Unset IO disconnect function when we try to destroy GAtPPP instance.
After freeing the instance, the IO disconnect function should not be
invoked.
2010-07-07 11:26:55 -05:00
Zhenhua Zhang
e70b1f0abd
gatserver: Restore GAtServer disconnect handling
...
Restore GAtServer disconnect handling when resuming a server session
2010-07-07 11:26:55 -05:00
Zhenhua Zhang
1badaf741a
test-server: Refactor set_raw_mode
...
Rename variable 'options' to 'ti' and use sizeof(ti).
2010-07-06 22:30:32 -03:00
Zhenhua Zhang
2d219d37f9
gatserver: Don't free twice after user disconnect
...
It's possible to free gatserver in user disconnect function. So we
should not free it again.
2010-07-06 11:24:44 -05:00
Zhenhua Zhang
4ec07e9443
test-server: Use cfmakeraw to set TTY raw mode
...
Use cfmakeraw to disable echoing and special characters processing. If
we don't turn off ICRNL, TTY layer translates \r\n to \n\n.
2010-07-06 09:49:48 -03:00
Zhenhua Zhang
b86b2d3299
gatppp: Check ppp instance before unref it
2010-07-06 09:47:15 -03:00
Denis Kenzior
a92d37454a
gsmdial: Wait for a no carrier before sending CFUN
2010-06-29 12:15:44 -05:00
Denis Kenzior
3a6b3bcd0c
test-server: Send a NO_CARRIER when ppp is done
2010-06-29 12:12:42 -05:00
Denis Kenzior
2955c206e4
test-server: Update to the new API
2010-06-29 12:01:34 -05:00
Denis Kenzior
674625ebe2
ppp: Don't accept 0 ip-addr/dns1/dns2
2010-06-29 11:55:18 -05:00
Denis Kenzior
820b1f55c8
ppp: Refactor server-side API
...
The biggest update here is that the server needs to be in dormant mode
by default, so as not to send a Configure-Req to the peer until the peer
is ready. This requires adding special constructor for LCP to
initialize it to Stopped state instead of initial state.
Along with this, we pass the server local IP directly to the ppp server
constructor.
2010-06-29 11:53:11 -05:00
Denis Kenzior
969862337a
test-server: Update to the new API
2010-06-29 11:50:25 -05:00
Denis Kenzior
d7c0640412
ppp: Tweak set_server_info API some more
2010-06-29 11:49:40 -05:00
Denis Kenzior
295270b4be
hdlc: Stop recording packets to stdout (fd = 0)
2010-06-29 11:46:40 -05:00
Denis Kenzior
aca0fdf87f
hdlc: Don't bother recording empty packets
2010-06-29 11:46:20 -05:00
Zhenhua Zhang
1afd51a8c7
gsmdial: Configure network interface for PPP
2010-06-28 17:39:23 -05:00
Zhenhua Zhang
0725aba03f
test-server: Configure network interface
...
Require ROOT priviledge to:
1. Run external command to configure and bring up network interface.
2. Enable kernel IP forwarding.
2010-06-28 17:39:18 -05:00
Denis Kenzior
90d240820b
ppp: Tweak the set_server_info API
2010-06-28 17:38:54 -05:00
Zhenhua Zhang
b6601bfeed
test-server: Add PPP server support
...
So that gsmdial and wvdial could talk to test-server and establish PPP
connection.
2010-06-28 16:37:20 -05:00
Denis Kenzior
ae24477801
ppp: Refactor server RCR action
...
We need to generate the Conf-Rej / Conf-Nak in the same order as the
client sent us.
2010-06-28 15:58:03 -05:00
Denis Kenzior
c5c7a229d2
ppp: Refactor client RCR action
2010-06-28 15:30:15 -05:00
Denis Kenzior
d5c963f5d8
ppp: Simplify the logic by re-using code
2010-06-28 11:15:44 -05:00
Denis Kenzior
cff81df606
ppp: Minor style tweaks
2010-06-28 10:21:33 -05:00
Zhenhua Zhang
8be0707ab0
gsmdial: Update to the new API
2010-06-28 10:19:14 -05:00
Zhenhua Zhang
588db02354
gatppp: Add PPP server extension
...
1. Add interface to set PPP server info by g_at_ppp_set_server_info.
2. Pass local and peer address through IPCP handshaking.
2010-06-28 10:17:58 -05:00
Zhenhua Zhang
28b2c32dc7
ppp: Fix incorrect packet length for little-endian
...
packet->length is in TCP/IP network byte order. It needs to call ntohs()
to convert to host byte order, which is little-endian.
2010-06-23 16:45:28 -05:00
Zhenhua Zhang
9f180fc27a
ppp: Fix leak in pppcp_send_protocol_reject
...
Free the reject pppcp packet after ppp_transmit.
2010-06-21 09:19:55 -05:00
Denis Kenzior
ab76f57cf9
gathdlc: Don't crash if unreffed in callback
2010-06-18 12:23:10 -05:00
Zhenhua Zhang
e2e17512e0
gsmdial: Unref ppp when we get disconnected
2010-06-17 14:57:49 -05:00
Zhenhua Zhang
199582f684
test-server: Fix GIOChannel leak in create_tty
...
Remove client_io and unref server_io after creating GAtServer.
2010-06-17 14:54:42 -05:00
Zhenhua Zhang
1822deba4a
gatserver: Check for disconnection when resuming
...
If the internal GAtIO is no longer valid, treat it as if our channel was
disconnected.
2010-06-17 14:38:53 -05:00
Zhenhua Zhang
047ea0cebb
gatserver: Suspend/resume GAtServer with GAtIO
...
Support g_at_server_suspend and g_at_server_resume operation by using
GAtIO to handle IO related function.
2010-06-17 14:38:23 -05:00
Denis Kenzior
48c3c4268c
gatppp: whitespace issues
2010-06-11 09:20:05 -05:00
Denis Kenzior
a0eafc269e
gatppp: Unref HDLC when unrefing PPP
2010-06-11 09:20:05 -05:00
Denis Kenzior
75e6a4707b
gathdlc: Free the main HDLC structure on unref
2010-06-11 09:20:05 -05:00
Denis Kenzior
719842ea39
gatchat: Check for disconnection when resuming
...
If the internal GAtIO is no longer valid, treat it as if our channel was
disconnected.
2010-06-07 19:32:26 -05:00
Marcel Holtmann
6178173160
Restore GAtChat disconnect handling when resuming a chat session
2010-06-07 02:18:39 -07:00
Denis Kenzior
1803f00c6e
ppp: Trivial whitespace error
2010-05-19 05:26:21 -05:00
Kristen Carlson Accardi
3fff4c49c8
ppp: implement ppp_packet_new
2010-05-19 02:58:45 -05:00
Kristen Carlson Accardi
41188e326a
ppp: fix another hardcode of ppp_packet size
2010-05-11 09:26:08 -05:00
Denis Kenzior
1794ad32fd
gsmdial: Shut down cleanly when ppp link dies
2010-05-10 16:36:33 -05:00
Denis Kenzior
3946d7e07c
ppp: Keep these defines private
2010-05-10 16:28:23 -05:00
Kristen Carlson Accardi
125fc62526
ppp: set address and control field
...
Before sending to hdlc, set the address and control field.
Fix hardcode of ppp header size.
2010-05-10 16:27:15 -05:00
Kristen Carlson Accardi
f13d5e2bad
gsmdial: use g_at_ppp_new_from_io()
2010-05-10 15:41:39 -05:00
Kristen Carlson Accardi
72c38f7adb
gatchat: implement g_at_chat_get_io()
2010-05-10 15:41:39 -05:00
Kristen Carlson Accardi
cb36130b13
gsmdial: use g_at_chat_suspend
2010-05-10 15:41:39 -05:00
Kristen Carlson Accardi
2d8a1462db
ppp: transition to dead when lcp finished
...
Transition to DEAD when lcp is finished and ignore any io
disconnects if we are already dead.
2010-05-10 15:29:44 -05:00
Denis Kenzior
02c2cdaf21
gsmdial: Port to new PPP api
2010-04-30 15:32:45 -05:00
Denis Kenzior
6d20194e75
ppp: Refactor connect / disconnect callbacks
...
Right now it is very hard to figure out whether we should be calling the
connect callback or the disconnect callback. So refactor as follows:
- Connect callback is only called once the net is actually up
- Disconnect callback is called once ppp is down, with a reason
for why it is so.
2010-04-30 15:31:26 -05:00
Denis Kenzior
9ae0dcb47d
ppp: get rid of ppp_enter_phase
...
This function simply didn't have the context of why the phase was being
entered. Instead have each protocol notify GAtPPP as to what is
happening. We already had this more or less for IPCP and AUTH events,
this just now formalizes it for LCP as well.
2010-04-30 14:37:17 -05:00
Denis Kenzior
c7ef06f91e
ppp: Add _from_io constructor
2010-04-30 10:52:16 -05:00
Kristen Carlson Accardi
5ef90f934b
ppp: fix return of drop_packet for NETWORK phase
2010-04-29 18:49:16 -05:00
Denis Kenzior
95e0a15010
gathdlc: Add from_io constructor
2010-04-29 18:49:16 -05:00
Kristen Carlson Accardi
7d59d7a377
ppp: silently drop invalid packets
2010-04-29 14:40:20 -05:00
Kristen Carlson Accardi
9d5eb5110f
ppp: transition to dead when read io destroyed
...
remove call to signal_close for lcp object, it is redundent. If
our io is destroyed we are dead, so transition the ppp phase to
DEAD so our disconnect callback can be called.
2010-04-29 14:24:47 -05:00
Denis Kenzior
c9edf56fc6
ppp: Hang set_recording off the GAtPPP object
...
Marcel: recording right now only works for PPP, so we'd need some sort
of multi-protocol support.
So for now expose set_recording to be used through the main PPP object.
HDLC object recording support needs to be extended.
2010-04-28 20:25:10 -05:00
Denis Kenzior
fb8ca665dd
ppp: Re-add capability to detect io down events
2010-04-28 17:27:36 -05:00
Denis Kenzior
378f3c61e3
gathdlc: Add accessor for GAtIO
2010-04-28 17:27:36 -05:00
Denis Kenzior
3b98ed067a
gathdlc: Port GAtHDLC to use GAtIO
2010-04-28 17:27:36 -05:00
Denis Kenzior
d271216112
ppp: Don't crash if the interface wasn't created
2010-04-28 17:27:36 -05:00
Denis Kenzior
db0b7c8a98
ppp: Accept 1500 byte MTUs
2010-04-28 17:27:36 -05:00
Denis Kenzior
7d5a3730d1
gsmdial: Use set recording on the HDLC object
2010-04-28 17:27:36 -05:00
Denis Kenzior
ed15727b98
ppp: Add getter for HDLC object
2010-04-28 17:27:36 -05:00
Denis Kenzior
4cdf49f0de
ppp: Initial port of PPP to use GAtHDLC
2010-04-28 17:27:35 -05:00
Denis Kenzior
fa8614cc78
ppp: Make pppcp functions const correct
2010-04-28 17:27:35 -05:00
Denis Kenzior
87340d64e2
ppp: Make ppp_chap_process_packet const correct
2010-04-28 17:27:35 -05:00
Denis Kenzior
955673573b
ppp: Make ppp_net_process_packet const correct
2010-04-28 17:27:35 -05:00
Denis Kenzior
5acb633a1d
gathdlc: Add recording support, ported from PPP
...
For protocol examination using wireshark
2010-04-28 17:27:35 -05:00
Denis Kenzior
41ce6212a1
gathdlc: Add receive ACCM support
2010-04-28 17:27:35 -05:00
Denis Kenzior
7c6c72f558
gathdlc: Support transmit ACCM
2010-04-28 17:27:35 -05:00
Denis Kenzior
e088f3c2bb
gatchat: Don't try to cleanup twice
...
In case we get unrefed from the disconnect callback
2010-04-28 17:27:35 -05:00
Denis Kenzior
0845dc3b5d
gatchat: Use GAtIO for write watchers
2010-04-28 17:27:34 -05:00
Denis Kenzior
6a66505e46
gatio: support for blocking / nonblocking writes
2010-04-28 17:27:34 -05:00
Denis Kenzior
85448aac8c
gatchat: get_channel should return one from GAtIO
2010-04-28 17:27:34 -05:00
Denis Kenzior
19115e0a15
gatchat: Channel is now setup by GAtIO
2010-04-28 17:27:34 -05:00
Denis Kenzior
033b576593
gatchat: Better re-entrancy handling
2010-04-28 17:27:34 -05:00
Denis Kenzior
9c3ae4746e
gsmdial: Get rid of g_at_chat_shutdown usage
2010-04-28 17:27:34 -05:00
Denis Kenzior
d875298404
gsmdial: Unref the chat instead of using shutdown
2010-04-28 17:27:34 -05:00
Denis Kenzior
8645b05c4f
gatmux: Unref the chat instead of using shutdown
2010-04-28 17:27:34 -05:00
Denis Kenzior
f9b2e5cf5a
gatchat: Only set debug on IO if we have it
2010-04-28 17:27:33 -05:00
Denis Kenzior
3aa1faddef
gatchat: Replace shutdown by suspend/resume
...
Shutdown was actually pointless and according to Marcel he only had it
in mind for PPP useage.
2010-04-28 17:27:33 -05:00