summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorerin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3>2008-01-24 15:20:40 +0000
committererin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3>2008-01-24 15:20:40 +0000
commit288049ff764151736483ba5f07987df67748b9cd (patch)
tree31f2f881943d19db1f4b1677b0de05c3b48963d9 /src/util
parentb97df6c14964a74476e2327f426dd2b7d9f40ee0 (diff)
gsmd: query network registration status (Erin Yueh)
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3943 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/util')
-rw-r--r--src/util/shell.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/util/shell.c b/src/util/shell.c
index e9aae1c..0507be5 100644
--- a/src/util/shell.c
+++ b/src/util/shell.c
@@ -291,6 +291,7 @@ static int net_msghandler(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh)
((void *) gmh + sizeof(*gmh));
const struct gsmd_voicemail *vmail = (struct gsmd_voicemail *)
((void *) gmh + sizeof(*gmh));
+ enum gsmd_netreg_state state = *(enum gsmd_netreg_state *) gmh->data;
int result = *(int *) gmh->data;
static const char *oper_stat[] = {
[GSMD_OPER_UNKNOWN] = "of unknown status",
@@ -361,6 +362,28 @@ static int net_msghandler(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh)
printf ("voicemail number is %s \n",vmail->addr.number);
pending_responses --;
break;
+ case GSMD_NETWORK_QUERY_REG:
+ switch (state) {
+ case GSMD_NETREG_UNREG:
+ printf("not searching for network \n");
+ break;
+ case GSMD_NETREG_REG_HOME:
+ printf("registered (home network) \n");
+ break;
+ case GSMD_NETREG_UNREG_BUSY:
+ printf("searching for network \n");
+ break;
+ case GSMD_NETREG_DENIED:
+ printf("registration denied \n");
+ break;
+ case GSMD_NETREG_REG_ROAMING:
+ printf("registered (roaming) \n");
+ break;
+ default:
+ break;
+ }
+ pending_responses --;
+ break;
default:
return -EINVAL;
}
@@ -648,6 +671,10 @@ int shell_main(struct lgsm_handle *lgsmh, int sync)
printf("Signal strength\n");
lgsm_signal_quality(lgsmh);
pending_responses ++;
+ } else if (!strcmp(buf, "nr")) {
+ printf("Query network registration\n");
+ lgsm_netreg_query(lgsmh);
+ pending_responses ++;
} else if (!strcmp(buf, "q")) {
exit(0);
} else if (buf[0] == 'S' ) {
personal git repositories of Harald Welte. Your mileage may vary