Jarko Poutiainen
17599580d8
gatchat: introduce send for +CPOS
2011-03-28 18:06:58 -05:00
Denis Kenzior
92a6b18ef4
gatsyntax: Support echo of empty lines
2011-03-28 18:06:57 -05:00
Denis Kenzior
54736c532c
gatsyntax: Re-name enum a proper way
2011-03-28 18:06:57 -05:00
Olivier Guiter
6b03d7cdff
gatserver: add v250 ATL and ATM commands
2011-03-25 12:37:25 -05:00
Olivier Guiter
155cf8f9c4
gatserver: add AT&F command
2011-03-24 13:27:13 -05:00
Olivier Guiter
cc17e8fd8c
gatserver: add ATZ command
2011-03-23 15:01:36 -05:00
Patrick Porlan
2f0485e757
ringbuffer: Switch ringbuffer to g_slice allocator
...
This should allow for more efficient handling of equally sized
buffers, in terms of alignment and recycling.
2011-03-16 21:34:54 -05:00
Patrick Porlan
bb0e3e0a58
PPP: Optimize write buffer management
...
Extend the write buffer handling in gathdlc.c to minimize stalling and
process switching during large PPP transfers. The single write buffer
is replaced by a queue of buffers, allowing for much larger emission
windows without hugely impacting memory consumption. This reduces the
time required to send 50 MB between a couple of local PPP interfaces on
my laptop from ~53s to ~3s.
2011-03-15 14:15:26 -05:00
Patrick Porlan
992019cad4
gatchat: Optimize ringbuffer modulo operations
...
Replace modulo operations in ringbuffer.c by masking operations. This
is possible because the size of the ring buffers is always a power of
two, and yields a small performance improvement.
The improvement should be mostly visible on processors that implement
division in microcode (Atom) or lack a division instruction (ARM).
2011-03-02 22:50:32 -06:00
Denis Kenzior
ef49d65b70
gsmdial: Introduce data_mode
...
If we're in PPP mode, then don't send unsolicited notifications. Only a
NO CARRIER is really allowed.
2011-02-28 16:13:56 -06:00
Denis Kenzior
51d950994d
gatserver: Tweak use of g_at_server_suspend/resume
2011-02-28 16:13:56 -06:00
Denis Kenzior
d3350d6662
test-server: Make sure to send CONNECT
...
Before starting the ppp session we should make sure that the CONNECT
response has been sent on the wire.
2011-02-28 16:13:56 -06:00
Denis Kenzior
4da1a9318c
gatserver: Exit garbage state on HDLC frame end
2011-02-28 16:13:56 -06:00
Denis Kenzior
6f8675d7fa
gatppp: Try to detect no carrier conditions
2011-02-28 16:13:56 -06:00
Denis Kenzior
ea56a71067
gatppp: Delay signaling ppp_down
...
Delay signaling of ppp_down until we exit the GAtHDLC read handler.
Otherwise exchanging the read handler on GAtIO might lead to funny
double consumption problems.
2011-02-28 16:13:56 -06:00
Denis Kenzior
0dc8e5e588
gathdlc: Try to detect no carrier conditions
...
Sometimes we receive the no carrier embedded in a stream following the
PPP packets. This might be due to write scheduling on the remote side
or read scheduling locally. Try not to consume the no carrier condition
and assume the previous hdlc frames will result in closing of the ppp
stack.
2011-02-28 16:13:56 -06:00
Denis Kenzior
703271e629
gatio: Remove stray empty line
2011-02-28 16:13:56 -06:00
Denis Kenzior
78eb4ee59c
gatio: update comment
2011-02-28 16:13:56 -06:00
Denis Kenzior
09ca5aaef0
gathdlc: Unregister read / write handlers
...
When GAtHDLC is being unregistered make sure to unregister read / write
handlers so as not to crash.
2011-02-28 16:13:56 -06:00
Denis Kenzior
1cbe91090d
gathdlc: drain the last hdlc frame processed
...
If we're being destroyed, we should drain the last HDLC frame
2011-02-28 16:13:56 -06:00
Denis Kenzior
2446d1aa43
gsmdial: register notification before resuming
2011-02-28 16:13:56 -06:00
Denis Kenzior
57f32ff899
ppp: Remove some g_prints
2011-02-28 16:13:56 -06:00
Denis Kenzior
75730bbaac
ppp_cp: Replace some left over g_prints with DBG
2011-02-28 16:13:56 -06:00
Denis Kenzior
e880aab120
gatppp: Replace some left-over g_prints with DBG
2011-02-28 16:13:55 -06:00
Denis Kenzior
b6bc221bc8
gatppp: Send the final terminate ack
...
In the case where we're going down, but have a pending terminate ack,
delay signaling the upper layers until the ack has been put on the wire.
2011-02-28 16:13:55 -06:00
Denis Kenzior
802962adbc
gatppp: Add a debug macro
2011-02-28 16:13:55 -06:00
Denis Kenzior
5ffe6f7beb
gatio: Add write 'done' notifier
...
This allows external clients to get notified when GAtIO no longer has a
registered write watcher. E.g. no more data is currently pending.
2011-02-28 16:13:55 -06:00
Denis Kenzior
3f2f11fe8f
test-server: Remove root user check
2011-02-28 16:13:55 -06:00
Denis Kenzior
92404672fc
gatserver: Update the internal command parsers
...
commit 61b30c025d
changed the way the
command callbacks are being called (namely the contents of the GAtResult
object). Most command callbacks were updated, but the internal ones
were forgotten. This patch fixes this issue.
2011-02-28 16:13:51 -06:00
Denis Kenzior
d841fc868a
gatchat: Fix minor style issues
2011-02-25 10:55:08 -06:00
Frédéric Danis
8f8559edf6
gatchat: add g_at_result_iter_next_number_default API
2011-02-24 14:01:23 -06:00
Frédéric Dalleau
42224e2bbe
gatserver: Add function to enable/disable echo
2011-02-23 09:31:07 -06:00
Olivier Guiter
4ae645d7e6
gatserver: Add various ATSx handlers
2011-02-22 09:45:59 -06:00
Guillaume Zajac
205d40db82
test-server: Fix crash when remote disconnects
...
If the remote side kills the connection when PPP is established, we
should not try to resume the AT server.
2011-02-17 11:30:47 -06:00
Denis Kenzior
36056ddb38
gsmdial: Fix minor style quirk
2011-02-16 15:45:39 -06:00
Gustavo F. Padovan
c57c78062e
gsmdial: add option for Bluetooth DUN dialing
2011-02-16 15:45:34 -06:00
Martin Xu
694589f51d
PPP: Use default ACCM (0xffffffff) to trasmit
...
Using my Huawei EM770W modem, if set ACCM as 0x00000000, RXJ-
event breaks PPP link, after IP package transmit for a while.
Using default ACCM, the issue can be fixed.
I tested it at China Unicom networks.
2011-02-16 12:01:39 -06:00
Denis Kenzior
6eeaacc706
gatserver: Be more const correct
2011-02-16 00:23:44 -06:00
Denis Kenzior
55d54e377a
test-server: Fix a few more occurrences
2011-02-15 16:05:02 -06:00
Denis Kenzior
a6f910e27c
gatserver: Change callback signature
...
Provide the originating GAtServer to the callback
2011-02-15 15:47:32 -06:00
Denis Kenzior
a0cca0a970
gatserver: extend D with GSM/UMTS specifics
2011-02-15 15:47:32 -06:00
Denis Kenzior
5da299ad34
test-server: Behavior to match previous commit
2011-02-15 15:47:32 -06:00
Denis Kenzior
61b30c025d
gatserver: Don't bother reporting command prefixes
...
The command line parser knows where the actual command line parameters
begin, so there's no need to make the callback skip the prefix and the
additional separator characters.
2011-02-15 15:47:32 -06:00
Martin Xu
ad16e81aff
PPP: Fix transmit ACCM and receive ACCM mixup
...
According to RFC1662 Section 7.1, ACCM Configuration Option is
used to inform the peer which control characters MUST remain
mapped when the peer sends them.
2011-02-14 14:22:32 -06:00
Olivier Guiter
a1f5a5520a
gatserver: Add ATS5 command feature
2011-02-14 09:51:30 -06:00
Denis Kenzior
2b9a14dd0c
gatmux: Remove unused error variable
2011-02-08 16:48:52 -06:00
Carlos Pargada
1b10f55f5c
gatchat: improve large file downlink data transfer
...
Fix large file downlink data transfer on IFX modem. Increase buffer size of
ring buffer to support close received Packets from the modem. Set highest
priority for write data on IO device
2011-01-20 12:59:40 +01:00
Marcel Holtmann
d70011661c
gatchat: The IO setup already ensures no encoding and no buffering
2011-01-20 10:56:21 +01:00
Marcel Holtmann
5d524cac73
gatchat: Small cleanup to make function look simpler
2011-01-20 10:55:31 +01:00
Marcel Holtmann
2f2460f5ae
gatchat: Disable encoding for RawIP GIOChannel
2011-01-19 15:28:59 +01:00
Marcel Holtmann
2126700c3e
gatchat: Fix setup of GIOChannel from multiplexer DLC
2011-01-19 12:10:10 +01:00
Denis Kenzior
45abba276b
gatchat: Turn off buffering of GAtChat IO channels
...
After commit d83da35370
this was causing
the command queue to never run.
2011-01-18 12:16:19 -06:00
Olivier Guiter
b931e77470
gatserver: ATS6 command handler added
2011-01-18 16:10:23 +01:00
Marcel Holtmann
d83da35370
gatchat: Use g_io_channel_read_chars and g_io_channel_write_chars
2011-01-18 15:11:31 +01:00
Jeevaka Badrappan
2182336c8b
gatchat: M15 coding styles fixes
2011-01-12 08:06:59 -08:00
Vinicius Costa Gomes
2702a2e349
gatchat: fix canceling in progress commands
...
As g_queue_peek_head() returns the node data field, we have to compare
it against the actual command, not against the pointer to the queue node.
2010-12-07 12:16:20 -06:00
Lucas De Marchi
521071a785
gatchat: explicitly compare pointers to NULL
...
This patch was generated by the following semantic patch
(http://coccinelle.lip6.fr/ )
// <smpl>
@fix disable is_null,isnt_null1@
expression *E;
@@
- !E
+ E == NULL
// </smpl>
2010-11-29 12:05:29 -06:00
Denis Kenzior
99107c6c9d
gatchat: remove write watcher on a disconnect
...
There's a small probability that we call chat_wakeup_writer
just before the channel disonnects. When this happens the write
watcher still fires causing a potential crash.
2010-11-23 03:21:22 -06:00
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