FreeBSD porting and IMSI bugfix
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index ecf8ee8..53a1cc0 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -374,7 +374,9 @@
printf("Invalid IMSI\n");
return -1;
}
- options.imsi = ((uint64_t) (args_info.imsi_arg[ 0]-48));
+
+ options.imsi = 0xf000000000000000;
+ options.imsi |= ((uint64_t) (args_info.imsi_arg[ 0]-48));
options.imsi |= ((uint64_t) (args_info.imsi_arg[ 1]-48)) << 4;
options.imsi |= ((uint64_t) (args_info.imsi_arg[ 2]-48)) << 8;
options.imsi |= ((uint64_t) (args_info.imsi_arg[ 3]-48)) << 12;
@@ -655,6 +657,8 @@
i64 = i64 / 10;
}
+ *dst |= 0xf000000000000000;
+
return 0;
}