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
Denis Kenzior
7b8f4f5dc8
gatchat: port gatchat to use gatio
2010-04-28 17:27:33 -05:00
Denis Kenzior
43c30e2292
gatio: Remove g_at_io_shutdown
2010-04-28 17:27:33 -05:00
Denis Kenzior
204814da05
gatio: Get re-entrancy correct
2010-04-28 17:27:32 -05:00
Denis Kenzior
c614254ae9
gatio: Style fix for gsource id comparisons
2010-04-28 17:27:32 -05:00
Denis Kenzior
2d2bc8b5b3
gatio: Kill the reader when no more space
2010-04-28 17:27:32 -05:00
Denis Kenzior
f09ce13ad7
gatchat: Remove g_at_chat_set_syntax
...
Never used and too unsafe in its current form
2010-04-28 17:27:32 -05:00
Denis Kenzior
5fc7c1e1d0
gatchat: Add initial GAtIO implementation
2010-04-28 17:27:32 -05:00
Kristen Carlson Accardi
a9c0be7339
ppp: use default ACCM when sending LCP codes 1-7
...
According to the spec, you must transmit all Link Configuration,
Termination, and Code-Reject packets as if no options had been
negotiated. This requires that when encoding we use the
default ACCM of 0xffffffff when sending these types of packets.
2010-04-26 15:31:17 -05:00
Kristen Carlson Accardi
fce78feb54
ppp: discard non-LCP packets in ESTABLISHMENT phase
2010-04-26 12:38:31 -05:00
Marcel Holtmann
cc1975270c
Fix broken HDLC flag handling
2010-04-24 19:12:30 +02:00
Marcel Holtmann
057bd9f0b3
Fix wrong escape character check in HDLC transmit
2010-04-24 19:02:04 +02:00
Marcel Holtmann
46839fbd15
Allow real wrapping around of HDLC transmit ring buffer
2010-04-24 19:00:54 +02:00
Marcel Holtmann
8f05535bb2
Add offset parameter to ring_buffer_write_ptr() function
2010-04-24 18:59:44 +02:00
Marcel Holtmann
9fd7d841c8
Add support for wrapping of HDLC transmit ring buffer
2010-04-24 18:54:34 +02:00
Marcel Holtmann
d2c8f124e6
Use HDLC_FCS helper where possible
2010-04-23 17:22:56 +02:00
Marcel Holtmann
2a609f9054
Use HDLC constants instead of magic numbers
2010-04-23 17:21:49 +02:00
Marcel Holtmann
a31870f542
Add support for wrapping of HDLC receive ring buffer
2010-04-23 17:18:30 +02:00
Denis Kenzior
fa5e8cf56b
ppp: Fix trivial style error
2010-04-22 17:58:29 -05:00
Kristen Carlson Accardi
e98fb9a6bd
ppp: change MTU on TUN device when MRU option received
2010-04-22 17:56:31 -05:00
Denis Kenzior
fde23f113a
ppp: Request MRU if we ever get NAKed with it
...
Huawei E160G hardware seems to NAK our configure request and suggest
that it will never send packets bigger than 1440 bytes. Since we don't
particularly care (our receive ring buffer is 4K, so it can handle 2048
byte packets), we just re-send the Configure Request with the preferred
value.
2010-04-22 15:08:05 -05:00
Denis Kenzior
07280e1bff
ppp: Fix trivial copy paste error
2010-04-22 15:07:42 -05:00
Denis Kenzior
226865272c
ppp: Shut off IPCP when entering TERMINATING phase
2010-04-22 15:05:18 -05:00
Kristen Carlson Accardi
71775550fe
ppp: implement MRU option
...
If the peer requests a MRU option, set the mtu for the network
phase. When we are in link establishment phase, we should
continue to behave as if no option has been set and the peer
should use the default MRU.
This option is required for the Huawei E160G modem.
2010-04-22 07:00:40 +02:00
Marcel Holtmann
123b87de2c
No to check for NULL pointers with g_free
2010-04-15 04:42:03 -07:00
Kristen Carlson Accardi
60643ee287
ppp: nak unknown auth protocol
...
If we are sent a Config-Request for an auth proto other than
CHAP with MD5, send a NAK.
2010-04-14 17:16:03 -05:00
Denis Kenzior
15d93ad0b9
Fix: GAtMux channels should return EAGAIN
...
GAtChat uses non-blocking semantics, so the GAtMux channels should
return the EAGAIN status to make GAtChat work properly.
2010-04-14 10:39:47 -05:00
Denis Kenzior
c8aa645973
ppp: Refing the channel is actually not necessary
...
The read_watch and write_watches both take a ref
2010-04-13 15:57:07 -05:00
Denis Kenzior
8e15816ac1
Fix: Don't try to set channel flags if they're 0
2010-04-13 15:37:05 -05:00
Denis Kenzior
c74e2ab189
ppp: TUN channel should not be opened NONBLOCKING
...
We don't handle it as a nonblocking channel and getting it right would
be a nightmare.
2010-04-13 15:35:55 -05:00
Denis Kenzior
7085818f23
ppp: Cleanup function definitions in ppp.h
2010-04-13 15:32:35 -05:00
Kristen Carlson Accardi
b74a9342d2
ppp: remove pfc and acfc
...
We will not support pfc or acfc
2010-04-13 15:32:35 -05:00
Kristen Carlson Accardi
9c3631f24e
ppp: remove references to magic number
...
We will not support loopback detection.
2010-04-13 15:32:35 -05:00
Denis Kenzior
0aaf98a354
ppp: Get rid of net_open and net_close
...
There really isn't a need for these now
2010-04-13 15:14:40 -05:00
Denis Kenzior
1d939052fc
ppp: Introduce ppp_net_down_notify
2010-04-13 14:59:13 -05:00
Denis Kenzior
d1d73a75fc
ppp: Introduce ppp_net_up_notify and use it
...
This is slightly cleaner way than defining a weird callback function.
2010-04-13 14:55:10 -05:00
Denis Kenzior
6525826455
ppp: Hide ppp_net definition in ppp_net.c
2010-04-13 14:42:59 -05:00
Denis Kenzior
71ddfca269
ppp: Use chap functions directly, instead of auth
2010-04-13 14:21:16 -05:00
Denis Kenzior
18e5e26acb
ppp: Remove auth_ functions from ppp_auth.c
...
These really serve no purpose right now as we use only CHAP. So they
only take up space and make the code harder to read. If we implement
1-3 auth protocols, then they're easier handled inside gatppp.c. If we
have more, then a proper auth driver framework is required.
2010-04-13 14:21:16 -05:00