aboutsummaryrefslogtreecommitdiffstats
path: root/sgsnemu/sgsnemu.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-10-07 18:45:54 +0200
committerHarald Welte <laforge@gnumonks.org>2011-10-07 18:45:54 +0200
commit3a4c67b4bf0067c4949a60bc750d01e0576c5e08 (patch)
tree9d92dc39d341fc0be78a7d389175a66ddf78712e /sgsnemu/sgsnemu.c
parent41af5691ef08fb70e2c65aba03c8b9e6c20983a6 (diff)
optionally do not send recovery with sgsnemu
According to 3GPP TS 29.060 recovery is optional, add command line option --norecovery to remove this field in sgsnemu Signed-off-by: Yann BONNAMY <yann_bonnamy@yahoo.fr> Signed-off-by: Harald Welte <laforge@gnumonks.org>
Diffstat (limited to 'sgsnemu/sgsnemu.c')
-rw-r--r--sgsnemu/sgsnemu.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index 7d164b3..48a33ea 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -115,6 +115,7 @@ struct {
struct ul255_t imeisv;
int imeisv_given;
struct ul16_t msisdn;
+ int norecovery_given;
} options;
@@ -272,6 +273,7 @@ int process_options(int argc, char **argv) {
printf("pingsize: %d\n", args_info.pingsize_arg);
printf("pingcount: %d\n", args_info.pingcount_arg);
printf("pingquiet: %d\n", args_info.pingquiet_flag);
+ printf("norecovery: %d\n", args_info.norecovery_flag);
}
/* Try out our new parser */
@@ -310,6 +312,7 @@ int process_options(int argc, char **argv) {
printf("pingsize: %d\n", args_info.pingsize_arg);
printf("pingcount: %d\n", args_info.pingcount_arg);
printf("pingquiet: %d\n", args_info.pingquiet_flag);
+ printf("norecovery: %d\n", args_info.norecovery_flag);
}
}
@@ -861,6 +864,9 @@ int process_options(int argc, char **argv) {
options.pingcount = args_info.pingcount_arg;
options.pingquiet = args_info.pingquiet_flag;
+ /* norecovery */
+ options.norecovery_given = args_info.norecovery_flag;
+
return 0;
}
@@ -1465,6 +1471,8 @@ int main(int argc, char **argv)
memcpy(pdp->imeisv.v, options.imeisv.v, options.imeisv.l);
pdp->imeisv_given = options.imeisv_given;
+ pdp->norecovery_given = options.norecovery_given;
+
if (options.apn.l > sizeof(pdp->apn_use.v)) {
sys_err(LOG_ERR, __FILE__, __LINE__, 0, "APN length too big");
exit(1);