diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-10-02 14:52:52 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-10-02 18:25:56 -0500 |
commit | c9a2eedc08b5a7ba625dac3764f176676c11d304 (patch) | |
tree | e7ba2479fc2e0609850510cc52c5486e36c2a5d9 /src/simutil.c | |
parent | 53496c6a32d36cc694dbb9162048a78de10c4646 (diff) | |
download | ofono-c9a2eedc08b5a7ba625dac3764f176676c11d304.tar.bz2 |
Add utility to parse 2G GET_RESPONSE data
This format is described in 51.011 and the older 11.11. It is not
supported by newer 3G UICC based devices & sim card combinations
Diffstat (limited to 'src/simutil.c')
-rw-r--r-- | src/simutil.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/simutil.c b/src/simutil.c index 9cdf8247..2b5db2af 100644 --- a/src/simutil.c +++ b/src/simutil.c @@ -573,3 +573,25 @@ struct sim_ef_info *sim_ef_db_lookup(unsigned short id) return result; } + +gboolean sim_parse_2G_get_response(unsigned char *response, int len, + int *file_len, int *record_len, + int *structure, unsigned char *access) +{ + if (len < 14) + return FALSE; + + *file_len = (response[2] << 8) | response[3]; + *structure = response[13]; + + access[0] = response[8]; + access[1] = response[9]; + access[2] = response[10]; + + if (response[13] == 0x01 || response[13] == 0x03) + *record_len = response[14]; + else + *record_len = 0; + + return TRUE; +} |