diff options
| -rw-r--r-- | configure.in | 2 | ||||
| -rw-r--r-- | src/atcmd.c | 20 | ||||
| -rw-r--r-- | src/atcmd.h | 1 | 
3 files changed, 22 insertions, 1 deletions
| diff --git a/configure.in b/configure.in index 430967d..065ac86 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@  AC_INIT([src/sms_main.c]) -AM_INIT_AUTOMAKE([sms-utils], [0.0.3]) +AM_INIT_AUTOMAKE([sms-utils], [0.0.4])  AM_CONFIG_HEADER([config.h])  AC_PROG_CC diff --git a/src/atcmd.c b/src/atcmd.c index 76372d2..aad15e9 100644 --- a/src/atcmd.c +++ b/src/atcmd.c @@ -611,6 +611,21 @@ int atcmd_v_write(int fd, int mode)  	return 0;  } +int atcmd_q_write(int fd, int mode) +{ +	char buf[ATCMD_LINE_SIZE]; +	int tmp; + +	atcmd_writeline(fd, "ATQ%d", mode); +	tmp = atcmd_expect_line(fd, buf, sizeof(buf), "OK"); +	if (tmp <= 0) { +		log_debug("expected OK but it was not received"); +		return -1; +	} + +	return 0; +} +  int atcmd_plus_cmgf_write(int fd, int mode)  {  	char buf[ATCMD_LINE_SIZE]; @@ -1099,6 +1114,11 @@ int atcmd_init(int fd, int read_timeout)  {  	int tmp; +	tmp = atcmd_q_write(fd, 0); +	if (tmp < 0) { +		return tmp; +	} +  	tmp = atcmd_v_write(fd, 1);  	if (tmp < 0) {  		return tmp; diff --git a/src/atcmd.h b/src/atcmd.h index d9a53a0..de6eeee 100644 --- a/src/atcmd.h +++ b/src/atcmd.h @@ -59,6 +59,7 @@ int atcmd_response_foreach_line(int fd, atcmd_response_callback_t call, void *pr  int atcmd_e_write(int fd, int mode);  int atcmd_v_write(int fd, int mode); +int atcmd_q_write(int fd, int mode);  int atcmd_plus_cmgf_write(int fd, int mode);  int atcmd_plus_cmgw_write(int fd, const char *msg, size_t msg_len);  int atcmd_plus_cmgs_write(int fd, const char *msg, size_t msg_len); | 
