We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Changes of Revision 3
osmo-hlr.spec
Changed
x
1
2
3
Name: osmo-hlr
4
Requires: osmocom-latest
5
-Version: 1.4.0
6
+Version: 1.5.0
7
Release: 0
8
Summary: Osmocom Home Location Register for GSUP protocol towards OsmoSGSN and OsmoCSCN
9
License: AGPL-3.0-or-later AND GPL-2.0-or-later
10
Group: Productivity/Telephony/Servers
11
URL: https://osmocom.org/projects/osmo-hlr
12
-Source: osmo-hlr_1.4.0.tar.xz
13
+Source: osmo-hlr_1.5.0.tar.xz
14
BuildRequires: autoconf
15
BuildRequires: automake
16
BuildRequires: libtool
17
18
%if 0%{?suse_version}
19
BuildRequires: systemd-rpm-macros
20
%endif
21
-BuildRequires: pkgconfig(libosmoabis) >= 1.1.0
22
-BuildRequires: pkgconfig(libosmocore) >= 1.5.0
23
-BuildRequires: pkgconfig(libosmoctrl) >= 1.5.0
24
-BuildRequires: pkgconfig(libosmogsm) >= 1.5.0
25
-BuildRequires: pkgconfig(libosmovty) >= 1.5.0
26
+BuildRequires: pkgconfig(libosmoabis) >= 1.3.0
27
+BuildRequires: pkgconfig(libosmocore) >= 1.7.0
28
+BuildRequires: pkgconfig(libosmoctrl) >= 1.7.0
29
+BuildRequires: pkgconfig(libosmogsm) >= 1.7.0
30
+BuildRequires: pkgconfig(libosmovty) >= 1.7.0
31
BuildRequires: pkgconfig(sqlite3)
32
BuildRequires: pkgconfig(talloc) >= 2.0.1
33
# only needed for populate_hlr_db.pl
34
osmo-hlr_1.4.0.dsc -> osmo-hlr_1.5.0.dsc
Changed
35
1
2
Format: 3.0 (native)
3
Source: osmo-hlr
4
-Binary: osmo-hlr, osmo-hlr-dbg, libosmo-gsup-client0, libosmo-gsup-client-dev, libosmo-mslookup0, libosmo-mslookup-dev, osmo-hlr-doc
5
+Binary: osmo-hlr, osmo-hlr-dbg, libosmo-gsup-client0, libosmo-gsup-client-dev, libosmo-mslookup0, libosmo-mslookup-dev, osmo-mslookup-utils, osmo-hlr-doc
6
Architecture: any all
7
-Version: 1.4.0
8
+Version: 1.5.0
9
Maintainer: Osmocom team <openbsc@lists.osmocom.org>
10
Homepage: https://projects.osmocom.org/projects/osmo-hlr
11
Standards-Version: 3.9.6
12
-Vcs-Browser: http://cgit.osmocom.org/osmo-hlr
13
-Vcs-Git: git://git.osmocom.org/osmo-hlr
14
-Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, autotools-dev, python3-minimal, libosmocore-dev (>= 1.5.0), libosmo-abis-dev (>= 1.1.0), libosmo-netif-dev (>= 1.1.0), libsqlite3-dev, sqlite3, osmo-gsm-manuals-dev (>= 1.1.0)
15
+Vcs-Browser: https://gitea.osmocom.org/cellular-infrastructure/osmo-hlr
16
+Vcs-Git: https://gitea.osmocom.org/cellular-infrastructure/osmo-hlr
17
+Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, autotools-dev, python3-minimal, libosmocore-dev (>= 1.7.0), libosmo-abis-dev (>= 1.3.0), libosmo-netif-dev (>= 1.2.0), libsqlite3-dev, sqlite3, osmo-gsm-manuals-dev (>= 1.3.0)
18
Package-List:
19
libosmo-gsup-client-dev deb net optional arch=any
20
libosmo-gsup-client0 deb libs optional arch=any
21
22
osmo-hlr deb net optional arch=any
23
osmo-hlr-dbg deb debug extra arch=any
24
osmo-hlr-doc deb doc optional arch=all
25
+ osmo-mslookup-utils deb utils optional arch=any
26
Checksums-Sha1:
27
- b277ccc94f9ae1ae69b0e64be3f4bcf09a2a492a 169536 osmo-hlr_1.4.0.tar.xz
28
+ 0670110acba6b51b9e1f9f27cafb4cb0c7b1581a 171872 osmo-hlr_1.5.0.tar.xz
29
Checksums-Sha256:
30
- 103389ab0fdb433d258bd1afd8e4dec9e460467336ab41721d5b63e51ff9a71f 169536 osmo-hlr_1.4.0.tar.xz
31
+ 8cf694124d443619b05a12838e308b137a5b7a0c10766db01860cd8731c1dbb5 171872 osmo-hlr_1.5.0.tar.xz
32
Files:
33
- f9f234b357d3f272f1fa009645247e03 169536 osmo-hlr_1.4.0.tar.xz
34
+ b80a9edb0732c6c5b4c9b315a729bd8e 171872 osmo-hlr_1.5.0.tar.xz
35
osmo-hlr_1.4.0.tar.xz/.tarball-version -> osmo-hlr_1.5.0.tar.xz/.tarball-version
Changed
6
1
2
-1.4.0
3
\ No newline at end of file
4
+1.5.0
5
\ No newline at end of file
6
osmo-hlr_1.4.0.tar.xz/README.md -> osmo-hlr_1.5.0.tar.xz/README.md
Changed
14
1
2
3
You can clone from the official osmo-hlr.git repository using
4
5
- git clone git://git.osmocom.org/osmo-hlr.git
6
- git clone https://git.osmocom.org/osmo-hlr.git
7
+ git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-hlr
8
9
-There is a cgit interface at https://git.osmocom.org/osmo-hlr/
10
+There is a web interface at <https://gitea.osmocom.org/cellular-infrastructure/osmo-hlr>
11
12
Documentation
13
-------------
14
osmo-hlr_1.4.0.tar.xz/configure.ac -> osmo-hlr_1.5.0.tar.xz/configure.ac
Changed
27
1
2
3
PKG_CHECK_MODULES(TALLOC, talloc >= 2.0.1)
4
5
-PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.5.0)
6
-PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.5.0)
7
-PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.5.0)
8
-PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.5.0)
9
-PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 1.1.0)
10
+PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.7.0)
11
+PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.7.0)
12
+PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.7.0)
13
+PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.7.0)
14
+PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 1.3.0)
15
16
PKG_CHECK_MODULES(SQLITE3, sqlite3)
17
18
19
AM_PATH_PYTHON
20
AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmotestvty.py,yes)
21
if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then
22
- AC_MSG_ERROR(Please install git://osmocom.org/python/osmo-python-tests to run the VTY/CTRL tests.)
23
+ AC_MSG_ERROR(Please install https://gitea.osmocom.org/cellular-infrastructure/osmo-python-tests to run the VTY/CTRL tests.)
24
fi
25
fi
26
AC_MSG_CHECKING(whether to enable VTY/CTRL tests)
27
osmo-hlr_1.4.0.tar.xz/contrib/osmo-hlr.spec.in -> osmo-hlr_1.5.0.tar.xz/contrib/osmo-hlr.spec.in
Changed
18
1
2
%if 0%{?suse_version}
3
BuildRequires: systemd-rpm-macros
4
%endif
5
-BuildRequires: pkgconfig(libosmoabis) >= 1.1.0
6
-BuildRequires: pkgconfig(libosmocore) >= 1.5.0
7
-BuildRequires: pkgconfig(libosmoctrl) >= 1.5.0
8
-BuildRequires: pkgconfig(libosmogsm) >= 1.5.0
9
-BuildRequires: pkgconfig(libosmovty) >= 1.5.0
10
+BuildRequires: pkgconfig(libosmoabis) >= 1.3.0
11
+BuildRequires: pkgconfig(libosmocore) >= 1.7.0
12
+BuildRequires: pkgconfig(libosmoctrl) >= 1.7.0
13
+BuildRequires: pkgconfig(libosmogsm) >= 1.7.0
14
+BuildRequires: pkgconfig(libosmovty) >= 1.7.0
15
BuildRequires: pkgconfig(sqlite3)
16
BuildRequires: pkgconfig(talloc) >= 2.0.1
17
# only needed for populate_hlr_db.pl
18
osmo-hlr_1.4.0.tar.xz/debian/changelog -> osmo-hlr_1.5.0.tar.xz/debian/changelog
Changed
33
1
2
+osmo-hlr (1.5.0) unstable; urgency=medium
3
+
4
+ Oliver Smith
5
+ * treewide: remove FSF address
6
+
7
+ Vadim Yanitskiy
8
+ * fixup: debian: remove unneeded dependency libdbd-sqlite3
9
+ * debian: add new 'osmo-mslookup-utils' package
10
+ * tests: use 'check_PROGRAMS' instead of 'noinst_PROGRAMS'
11
+
12
+ Pau Espin Pedrol
13
+ * ctrl: Mark function as static
14
+ * tests: Allow specyfing specific ctrl test to run
15
+ * tests/ctrl: Move ERROR test scenario to proper file
16
+ * Fix db_subscr_create() not returning -EEXIST expected by VTY subscriber create cmd
17
+ * ctrl: Introduce cmd SET subscriber.create <imsi>
18
+ * ctrl: Introduce CTRL command subscriber.by-*.msisdn
19
+ * cosmetic: hlr_vty_subscr.c: Fix trailing whitespace
20
+ * ctrl: Introduce cmd SET subscriber.delete <imsi>
21
+ * ctrl: Introduce CTRL command subscriber.by-*.aud2g <algo,ki>
22
+ * ctrl: Introduce CTRL command subscriber.by-*.aud3g <algo,KI,(op|opc),OP_C,ind_bitlen>
23
+ * doc: Document new subscriber CTRL commands
24
+
25
+ Harald Welte
26
+ * update git URLs (git -> https; gitea)
27
+
28
+ -- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 28 Jun 2022 18:38:31 +0200
29
+
30
osmo-hlr (1.4.0) unstable; urgency=medium
31
32
Keith
33
osmo-hlr_1.4.0.tar.xz/debian/control -> osmo-hlr_1.5.0.tar.xz/debian/control
Changed
46
1
2
dh-autoreconf,
3
autotools-dev,
4
python3-minimal,
5
- libosmocore-dev (>= 1.5.0),
6
- libosmo-abis-dev (>= 1.1.0),
7
- libosmo-netif-dev (>= 1.1.0),
8
+ libosmocore-dev (>= 1.7.0),
9
+ libosmo-abis-dev (>= 1.3.0),
10
+ libosmo-netif-dev (>= 1.2.0),
11
libsqlite3-dev,
12
sqlite3,
13
- osmo-gsm-manuals-dev (>= 1.1.0)
14
+ osmo-gsm-manuals-dev (>= 1.3.0)
15
Standards-Version: 3.9.6
16
-Vcs-Browser: http://cgit.osmocom.org/osmo-hlr
17
-Vcs-Git: git://git.osmocom.org/osmo-hlr
18
+Vcs-Browser: https://gitea.osmocom.org/cellular-infrastructure/osmo-hlr
19
+Vcs-Git: https://gitea.osmocom.org/cellular-infrastructure/osmo-hlr
20
Homepage: https://projects.osmocom.org/projects/osmo-hlr
21
22
Package: osmo-hlr
23
Architecture: any
24
-Depends: osmocom-latest, ${shlibs:Depends}, ${misc:Depends}, libdbd-sqlite3
25
+Depends: osmocom-latest, ${shlibs:Depends}, ${misc:Depends}
26
Description: Osmocom Home Location Register
27
OsmoHLR is a Osmocom implementation of HLR (Home Location Registrar) which works over GSUP
28
protocol. The subscribers are store in sqlite DB. It supports both 2G and 3G authentication.
29
30
.
31
This package contains the development headers.
32
33
+Package: osmo-mslookup-utils
34
+Architecture: any
35
+Section: utils
36
+Depends: osmocom-latest, ${shlibs:Depends},
37
+ libosmo-mslookup0 (= ${binary:Version}),
38
+ ${misc:Depends}
39
+Multi-Arch: same
40
+Description: Utilities for Osmocom MS lookup
41
+ This package contains a simple MS lookup client utility.
42
+
43
Package: osmo-hlr-doc
44
Architecture: all
45
Section: doc
46
osmo-hlr_1.5.0.tar.xz/debian/osmo-mslookup-utils.install
Added
3
1
2
+usr/bin/osmo-mslookup-client
3
osmo-hlr_1.4.0.tar.xz/doc/manuals/Makefile.am -> osmo-hlr_1.5.0.tar.xz/doc/manuals/Makefile.am
Changed
13
1
2
-EXTRA_DIST = example_subscriber_add_update_delete.vty \
3
+EXTRA_DIST = \
4
+ example_subscriber_add_update_delete.vty \
5
+ example_subscriber_aud2g.ctrl \
6
+ example_subscriber_aud3g.ctrl \
7
example_subscriber_cs_ps_enabled.ctrl \
8
example_subscriber_info.ctrl \
9
+ example_subscriber_msisdn.ctrl \
10
osmohlr-usermanual.adoc \
11
osmohlr-usermanual-docinfo.xml \
12
osmohlr-vty-reference.xml \
13
osmo-hlr_1.4.0.tar.xz/doc/manuals/chapters/control.adoc -> osmo-hlr_1.5.0.tar.xz/doc/manuals/chapters/control.adoc
Changed
92
1
2
to all programs using it are described in <<ctrl_common_vars>>. This section
3
describes the CTRL interface variables specific to OsmoHLR.
4
5
+Subscribers can be created and deleted using the following SET commands:
6
+
7
+.Subscriber management commands available on OsmoHLR's Control interface
8
+options="header",width="100%",cols="35%,65%"
9
+|===
10
+|Command|Comment
11
+|subscriber.create '123456'|Create a new subscriber with IMSI "123456" to the database. Returns database ID of the subscriber being created.
12
+|subscriber.delete '123456'|Delete subscriber with IMSI "123456" from database. Returns database ID of the subscriber being deleted.
13
+|===
14
+
15
All subscriber variables are available by different selectors, which are freely
16
interchangeable:
17
18
19
|subscriber.by-\*.*info-all*|R|No||List both 'info' and 'info-aud' in one
20
|subscriber.by-\*.*cs-enabled*|RW|No|'1' or '0'|Enable/disable circuit-switched access
21
|subscriber.by-\*.*ps-enabled*|RW|No|'1' or '0'|Enable/disable packet-switched access
22
+|subscriber.by-\*.*msisdn*|RW|No|valid MSISDN string|Get/Set assigned MSISDN
23
+|subscriber.by-\*.*aud2g*|RW|No|'algo,KI'|Get/Set 2g Authentication Data
24
+|subscriber.by-\*.*aud2g*|RW|No|'algo,KI,("op"|"opc"),OP_C,ind_bitlen'|Get/Set 3g Authentication Data
25
|===
26
27
=== subscriber.by-*.info, info-aud, info-all
28
29
----
30
include::../example_subscriber_cs_ps_enabled.ctrl
31
----
32
+
33
+=== subscriber.by-*.msisdn
34
+
35
+Get or set the MSISDN currently assigned to a subscriber.
36
+
37
+
38
+This is an example transcript that illustrates use of this command:
39
+
40
+----
41
+include::../example_subscriber_msisdn.ctrl
42
+----
43
+
44
+=== subscriber.by-*.aud2g
45
+
46
+Get or set the 2G Authentication data of a subscriber.
47
+
48
+The information is stored/retrieved as a comma separated list of fields:
49
+
50
+----
51
+algo,KI
52
+----
53
+
54
+Where::
55
+* *KI* is the KI as a hexadecimal string.
56
+* *algo* is one of the following algorithms: _none, xor, comp128v1, comp128v2,
57
+ comp128v3_.
58
+
59
+All values are case insensitive.
60
+
61
+This is an example transcript that illustrates use of this command:
62
+
63
+----
64
+include::../example_subscriber_aud2g.ctrl
65
+----
66
+
67
+=== subscriber.by-*.aud3g
68
+
69
+Get or set the 3G Authentication data of a subscriber.
70
+
71
+The information is stored/retrieved as a comma separated list of fields:
72
+
73
+----
74
+algo,KI,("op"|"opc"),OP_C,ind_bitlen
75
+----
76
+
77
+Where:
78
+* *KI* is the KI as a hexadecimal string.
79
+* *algo* is one of the following algorithms: _none, xor, milenage_.
80
+* "op" or "opc" indicates whether next field is an OP or OPC value.
81
+* *OP_C* contains an OP or OPC values as hexadecimal string, based on what the
82
+ previous field specifies.
83
+* *ind_bitlen* is set to 5 by default if not provided.
84
+
85
+All values are case insensitive.
86
+
87
+This is an example transcript that illustrates use of this command:
88
+
89
+----
90
+include::../example_subscriber_aud3g.ctrl
91
+----
92
osmo-hlr_1.5.0.tar.xz/doc/manuals/example_subscriber_aud2g.ctrl
Added
16
1
2
+GET 1 subscriber.by-imsi-901991234567891.aud2g
3
+GET_REPLY 1 subscriber.by-imsi-901991234567891.aud2g none
4
+
5
+SET 2 subscriber.by-imsi-901991234567891.aud2g xor,c01ffedc1cadaeac1d1f1edacac1ab0a
6
+SET_REPLY 2 subscriber.by-imsi-901991234567891.aud2g OK
7
+
8
+GET 3 subscriber.by-imsi-901991234567891.aud2g
9
+GET_REPLY 3 subscriber.by-imsi-901991234567891.aud2g XOR,c01ffedc1cadaeac1d1f1edacac1ab0a
10
+
11
+SET 4 subscriber.by-imsi-901991234567891.aud2g none
12
+SET_REPLY 4 subscriber.by-imsi-901991234567891.aud2g OK
13
+
14
+GET 5 subscriber.by-imsi-901991234567891.aud2g
15
+GET_REPLY 5 subscriber.by-imsi-901991234567891.aud2g none
16
osmo-hlr_1.5.0.tar.xz/doc/manuals/example_subscriber_aud3g.ctrl
Added
22
1
2
+GET 117 subscriber.by-imsi-901991234567891.aud3g
3
+GET_REPLY 117 subscriber.by-imsi-901991234567891.aud3g none
4
+
5
+SET 118 subscriber.by-imsi-901991234567891.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OP,FB2A3D1B360F599ABAB99DB8669F8308
6
+SET_REPLY 118 subscriber.by-imsi-901991234567891.aud3g OK
7
+
8
+GET 119 subscriber.by-imsi-901991234567891.aud3g
9
+GET_REPLY 119 subscriber.by-imsi-901991234567891.aud3g MILENAGE,c01ffedc1cadaeac1d1f1edacac1ab0a,OP,fb2a3d1b360f599abab99db8669f8308,5
10
+
11
+SET 120 subscriber.by-imsi-901991234567891.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,FB2A3D1B360F599ABAB99DB8669F8308,7
12
+SET_REPLY 120 subscriber.by-imsi-901991234567891.aud3g OK
13
+
14
+GET 121 subscriber.by-imsi-901991234567891.aud3g
15
+GET_REPLY 121 subscriber.by-imsi-901991234567891.aud3g MILENAGE,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,fb2a3d1b360f599abab99db8669f8308,7
16
+
17
+SET 122 subscriber.by-imsi-901991234567891.aud3g none
18
+SET_REPLY 122 subscriber.by-imsi-901991234567891.aud3g OK
19
+
20
+GET 123 subscriber.by-imsi-901991234567891.aud3g
21
+GET_REPLY 123 subscriber.by-imsi-901991234567891.aud3g none
22
osmo-hlr_1.5.0.tar.xz/doc/manuals/example_subscriber_msisdn.ctrl
Added
10
1
2
+GET 1 subscriber.by-imsi-901991234567891.msisdn
3
+GET_REPLY 1 subscriber.by-imsi-901991234567891.msisdn none
4
+
5
+SET 2 subscriber.by-imsi-901991234567891.msisdn 555666
6
+SET_REPLY 2 subscriber.by-imsi-901991234567891.msisdn OK
7
+
8
+GET 3 subscriber.by-imsi-901991234567891.msisdn
9
+GET_REPLY 3 subscriber.by-imsi-901991234567891.msisdn 555666
10
osmo-hlr_1.4.0.tar.xz/include/osmocom/hlr/ctrl.h -> osmo-hlr_1.5.0.tar.xz/include/osmocom/hlr/ctrl.h
Changed
7
1
2
_LAST_CTRL_NODE_HLR
3
};
4
5
-int hlr_ctrl_cmds_install();
6
struct ctrl_handle *hlr_controlif_setup(struct hlr *hlr);
7
osmo-hlr_1.4.0.tar.xz/include/osmocom/hlr/hlr_vty.h -> osmo-hlr_1.5.0.tar.xz/include/osmocom/hlr/hlr_vty.h
Changed
14
1
2
MSLOOKUP_CLIENT_NODE,
3
};
4
5
+
6
+#define A38_XOR_MIN_KEY_LEN 12
7
+#define A38_XOR_MAX_KEY_LEN 16
8
+#define A38_COMP128_KEY_LEN 16
9
+#define MILENAGE_KEY_LEN 16
10
+
11
int hlr_vty_is_config_node(struct vty *vty, int node);
12
int hlr_vty_go_parent(struct vty *vty);
13
void hlr_vty_init(void);
14
osmo-hlr_1.4.0.tar.xz/include/osmocom/hlr/logging.h -> osmo-hlr_1.5.0.tar.xz/include/osmocom/hlr/logging.h
Changed
9
1
2
DMSLOOKUP,
3
DLU,
4
DDGSM,
5
+ DCTRL,
6
};
7
8
extern const struct log_info hlr_log_info;
9
osmo-hlr_1.4.0.tar.xz/src/ctrl.c -> osmo-hlr_1.5.0.tar.xz/src/ctrl.c
Changed
201
1
2
#include <osmocom/hlr/hlr.h>
3
#include <osmocom/hlr/ctrl.h>
4
#include <osmocom/hlr/db.h>
5
+#include <osmocom/hlr/hlr_vty.h>
6
7
#define SEL_BY "by-"
8
#define SEL_BY_IMSI SEL_BY "imsi-"
9
#define SEL_BY_MSISDN SEL_BY "msisdn-"
10
#define SEL_BY_ID SEL_BY "id-"
11
12
+extern bool auth_algo_parse(const char *alg_str, enum osmo_auth_algo *algo,
13
+ int *minlen, int *maxlen);
14
+
15
#define hexdump_buf(buf) osmo_hexdump_nospc((void*)buf, sizeof(buf))
16
17
static bool startswith(const char *str, const char *start)
18
19
aud->u.umts.sqn);
20
}
21
22
+CTRL_CMD_DEFINE_WO_NOVRF(subscr_create, "create");
23
+static int set_subscr_create(struct ctrl_cmd *cmd, void *data)
24
+{
25
+ struct hlr_subscriber subscr;
26
+ struct hlr *hlr = data;
27
+ const char *imsi = cmd->value;
28
+ int rc;
29
+
30
+ if (!osmo_imsi_str_valid(imsi)) {
31
+ cmd->reply = "Invalid IMSI value.";
32
+ return CTRL_CMD_ERROR;
33
+ }
34
+
35
+ /* Create the subscriber in the DB */
36
+ rc = db_subscr_create(g_hlr->dbc, imsi, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS);
37
+ if (rc) {
38
+ if (rc == -EEXIST)
39
+ cmd->reply = "Subscriber already exists.";
40
+ else
41
+ cmd->reply = "Cannot create subscriber.";
42
+ return CTRL_CMD_ERROR;
43
+ }
44
+
45
+ LOGP(DCTRL, LOGL_INFO, "Created subscriber IMSI='%s'\n",
46
+ imsi);
47
+
48
+ /* Retrieve data of newly created subscriber: */
49
+ rc = db_subscr_get_by_imsi(hlr->dbc, imsi, &subscr);
50
+ if (rc < 0) {
51
+ cmd->reply = "Failed retrieving ID of newly created subscriber.";
52
+ return CTRL_CMD_ERROR;
53
+ }
54
+
55
+ cmd->reply = talloc_asprintf(cmd, "%" PRIu64, subscr.id);
56
+ return CTRL_CMD_REPLY;
57
+}
58
+
59
+CTRL_CMD_DEFINE_WO_NOVRF(subscr_delete, "delete");
60
+static int set_subscr_delete(struct ctrl_cmd *cmd, void *data)
61
+{
62
+ struct hlr_subscriber subscr;
63
+ struct hlr *hlr = data;
64
+ const char *imsi = cmd->value;
65
+ int rc;
66
+
67
+ if (!osmo_imsi_str_valid(imsi)) {
68
+ cmd->reply = "Invalid IMSI value.";
69
+ return CTRL_CMD_ERROR;
70
+ }
71
+
72
+ /* Retrieve data of newly created subscriber: */
73
+ rc = db_subscr_get_by_imsi(hlr->dbc, imsi, &subscr);
74
+ if (rc < 0) {
75
+ cmd->reply = "Subscriber doesn't exist.";
76
+ return CTRL_CMD_ERROR;
77
+ }
78
+
79
+ /* Create the subscriber in the DB */
80
+ rc = db_subscr_delete_by_id(g_hlr->dbc, subscr.id);
81
+ if (rc) {
82
+ cmd->reply = "Cannot delete subscriber.";
83
+ return CTRL_CMD_ERROR;
84
+ }
85
+
86
+ LOGP(DCTRL, LOGL_INFO, "Deleted subscriber IMSI='%s'\n",
87
+ imsi);
88
+
89
+ cmd->reply = talloc_asprintf(cmd, "%" PRIu64, subscr.id);
90
+ return CTRL_CMD_REPLY;
91
+}
92
+
93
CTRL_CMD_DEFINE_RO(subscr_info, "info");
94
static int get_subscr_info(struct ctrl_cmd *cmd, void *data)
95
{
96
97
return set_subscr_cs_ps_enabled(cmd, data, false);
98
}
99
100
-int hlr_ctrl_cmds_install()
101
+CTRL_CMD_DEFINE(subscr_msisdn, "msisdn");
102
+static int verify_subscr_msisdn(struct ctrl_cmd *cmd, const char *value, void *data)
103
{
104
- int rc = 0;
105
+ struct hlr_subscriber subscr;
106
+ if (!value)
107
+ return 1;
108
+ if (strlen(value) > sizeof(subscr.msisdn) - 1)
109
+ return 1;
110
+ if (strcmp(value, "none") != 0 && !osmo_msisdn_str_valid(value))
111
+ return 1;
112
+ return 0;
113
+}
114
+static int get_subscr_msisdn(struct ctrl_cmd *cmd, void *data)
115
+{
116
+ struct hlr_subscriber subscr;
117
+ struct hlr *hlr = data;
118
+ const char *by_selector = cmd->node;
119
120
- rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR_BY, &cmd_subscr_info);
121
- rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR_BY, &cmd_subscr_info_aud);
122
- rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR_BY, &cmd_subscr_info_all);
123
- rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR_BY, &cmd_subscr_ps_enabled);
124
- rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR_BY, &cmd_subscr_cs_enabled);
125
+ if (!get_subscriber(hlr->dbc, by_selector, &subscr, cmd))
126
+ return CTRL_CMD_ERROR;
127
128
- return rc;
129
+ if (strlen(subscr.msisdn) == 0)
130
+ snprintf(subscr.msisdn, sizeof(subscr.msisdn), "none");
131
+
132
+ cmd->reply = talloc_asprintf(cmd, "%s", subscr.msisdn);
133
+ return CTRL_CMD_REPLY;
134
+}
135
+static int set_subscr_msisdn(struct ctrl_cmd *cmd, void *data)
136
+{
137
+ struct hlr_subscriber subscr;
138
+ struct hlr *hlr = data;
139
+ const char *by_selector = cmd->node;
140
+ const char *msisdn;
141
+
142
+ if (!get_subscriber(hlr->dbc, by_selector, &subscr, cmd))
143
+ return CTRL_CMD_ERROR;
144
+
145
+ if (strcmp(cmd->value, "none") == 0)
146
+ msisdn = NULL;
147
+ else
148
+ msisdn = cmd->value;
149
+
150
+ if (db_subscr_update_msisdn_by_imsi(g_hlr->dbc, subscr.imsi, msisdn)) {
151
+ cmd->reply = "Update MSISDN failed";
152
+ return CTRL_CMD_ERROR;
153
+ }
154
+
155
+ cmd->reply = "OK";
156
+ return CTRL_CMD_REPLY;
157
+}
158
+
159
+/* value format: <algo,KI> */
160
+CTRL_CMD_DEFINE(subscr_aud2g, "aud2g");
161
+static int verify_subscr_aud2g(struct ctrl_cmd *cmd, const char *value, void *data)
162
+{
163
+ if (!value)
164
+ return 1;
165
+ if (strcasecmp(value, "none") != 0 && !strchr(value, ','))
166
+ return 1;
167
+ return 0;
168
+}
169
+static int get_subscr_aud2g(struct ctrl_cmd *cmd, void *data)
170
+{
171
+ struct hlr_subscriber subscr;
172
+ struct hlr *hlr = data;
173
+ const char *by_selector = cmd->node;
174
+ struct osmo_sub_auth_data aud2g;
175
+ struct osmo_sub_auth_data aud3g_unused;
176
+ int rc;
177
+
178
+ if (!get_subscriber(hlr->dbc, by_selector, &subscr, cmd))
179
+ return CTRL_CMD_ERROR;
180
+
181
+ rc = db_get_auth_data(hlr->dbc, subscr.imsi, &aud2g, &aud3g_unused, NULL);
182
+ switch (rc) {
183
+ case 0:
184
+ break;
185
+ case -ENOENT:
186
+ case -ENOKEY:
187
+ aud2g.algo = OSMO_AUTH_ALG_NONE;
188
+ break;
189
+ default:
190
+ cmd->reply = "Error retrieving data from database.";
191
+ return CTRL_CMD_ERROR;
192
+ }
193
+
194
+ if (aud2g.algo == OSMO_AUTH_ALG_NONE) {
195
+ cmd->reply = "none";
196
+ return CTRL_CMD_REPLY;
197
+ }
198
+
199
+ cmd->reply = talloc_asprintf(cmd, "%s,%s", osmo_auth_alg_name(aud2g.algo),
200
+ hexdump_buf(aud2g.u.gsm.ki));
201
osmo-hlr_1.4.0.tar.xz/src/db_hlr.c -> osmo-hlr_1.5.0.tar.xz/src/db_hlr.c
Changed
20
1
2
* \paramin,out dbc database context.
3
* \paramin imsi ASCII string of IMSI digits, is validated.
4
* \paramin flags Bitmask of DB_SUBSCR_FLAG_*.
5
- * \returns 0 on success, -EINVAL on invalid IMSI, -EIO on database error.
6
+ * \returns 0 on success, -EINVAL on invalid IMSI, -EEXIST if subscriber with
7
+ * provided imsi already exists, -EIO on other database errors.
8
*/
9
int db_subscr_create(struct db_context *dbc, const char *imsi, uint8_t flags)
10
{
11
12
if (rc != SQLITE_DONE) {
13
LOGHLR(imsi, LOGL_ERROR, "Cannot create subscriber: SQL error: (%d) %s\n",
14
rc, sqlite3_errmsg(dbc->db));
15
+ if (rc == SQLITE_CONSTRAINT_UNIQUE)
16
+ return -EEXIST;
17
return -EIO;
18
}
19
20
osmo-hlr_1.4.0.tar.xz/src/dbd_decode_binary.c -> osmo-hlr_1.5.0.tar.xz/src/dbd_decode_binary.c
Changed
12
1
2
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3
* Lesser General Public License for more details.
4
*
5
- * You should have received a copy of the GNU Lesser General Public
6
- * License along with this library; if not, write to the Free Software
7
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
8
- *
9
* $Id: dbd_helper.c,v 1.44 2011/08/09 11:14:14 mhoenicka Exp $
10
*/
11
12
osmo-hlr_1.4.0.tar.xz/src/hlr_vty_subscr.c -> osmo-hlr_1.5.0.tar.xz/src/hlr_vty_subscr.c
Changed
44
1
2
#include <osmocom/hlr/hlr.h>
3
#include <osmocom/hlr/db.h>
4
#include <osmocom/hlr/timestamp.h>
5
+#include <osmocom/hlr/hlr_vty.h>
6
7
struct vty;
8
9
10
int rc;
11
struct hlr_subscriber subscr;
12
const char *imsi = argv0;
13
-
14
+
15
if (!osmo_imsi_str_valid(imsi)) {
16
vty_out(vty, "%% Not a valid IMSI: %s%s", imsi, VTY_NEWLINE);
17
return CMD_WARNING;
18
19
#define AUTH_ALG_TYPES_3G_HELP \
20
"Use Milenage algorithm\n"
21
22
-#define A38_XOR_MIN_KEY_LEN 12
23
-#define A38_XOR_MAX_KEY_LEN 16
24
-#define A38_COMP128_KEY_LEN 16
25
-
26
-#define MILENAGE_KEY_LEN 16
27
-
28
-static bool auth_algo_parse(const char *alg_str, enum osmo_auth_algo *algo,
29
- int *minlen, int *maxlen)
30
+bool auth_algo_parse(const char *alg_str, enum osmo_auth_algo *algo,
31
+ int *minlen, int *maxlen)
32
{
33
if (!strcasecmp(alg_str, "none")) {
34
*algo = OSMO_AUTH_ALG_NONE;
35
36
.ind_bitlen = ind_bitlen,
37
},
38
};
39
-
40
+
41
if (!auth_algo_parse(alg_type, &aud3g.algo, &minlen, &maxlen)) {
42
vty_out(vty, "%% Unknown auth algorithm: '%s'%s", alg_type, VTY_NEWLINE);
43
return CMD_WARNING;
44
osmo-hlr_1.4.0.tar.xz/src/logging.c -> osmo-hlr_1.5.0.tar.xz/src/logging.c
Changed
14
1
2
.color = "\0331;35m",
3
.enabled = 1, .loglevel = LOGL_NOTICE,
4
},
5
+ DCTRL = {
6
+ .name = "DCTRL",
7
+ .description = "Osmocom CTRL interface",
8
+ .color = "\0331;30m",
9
+ .enabled = 1, .loglevel = LOGL_NOTICE,
10
+ },
11
};
12
13
const struct log_info hlr_log_info = {
14
osmo-hlr_1.4.0.tar.xz/tests/Makefile.am -> osmo-hlr_1.5.0.tar.xz/tests/Makefile.am
Changed
20
1
2
3
CTRL_TEST_DB = hlr_ctrl_test.db
4
5
+# Run a specific test with: 'make ctrl-test CTRL_TEST=test_subscriber.ctrl'
6
+CTRL_TEST ?= *.ctrl
7
+
8
# To update the CTRL script from current application behavior,
9
# pass -u to ctrl_script_runner.py by doing:
10
# make ctrl-test U=-u
11
12
osmo_verify_transcript_ctrl.py -v \
13
-p 4259 \
14
-r "$(top_builddir)/src/osmo-hlr -c $(top_srcdir)/doc/examples/osmo-hlr.cfg -l $(CTRL_TEST_DB)" \
15
- $(U) $(srcdir)/*.ctrl
16
+ $(U) $(srcdir)/$(CTRL_TEST)
17
-rm -f $(CTRL_TEST_DB)
18
-rm $(CTRL_TEST_DB)-*
19
20
osmo-hlr_1.4.0.tar.xz/tests/auc/Makefile.am -> osmo-hlr_1.5.0.tar.xz/tests/auc/Makefile.am
Changed
12
1
2
auc_ts_55_205_test_sets.err \
3
$(NULL)
4
5
-check_PROGRAMS = auc_ts_55_205_test_sets
6
-
7
-noinst_PROGRAMS = auc_test
8
+check_PROGRAMS = auc_test auc_ts_55_205_test_sets
9
10
auc_test_SOURCES = \
11
auc_test.c \
12
osmo-hlr_1.4.0.tar.xz/tests/db/db_test.c -> osmo-hlr_1.5.0.tar.xz/tests/db/db_test.c
Changed
20
1
2
ASSERT_RC(db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), 0);
3
ASSERT_SEL(imsi, imsi2, 0);
4
id2 = g_subscr.id;
5
- ASSERT_RC(db_subscr_create(dbc, imsi0, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EIO);
6
+ ASSERT_RC(db_subscr_create(dbc, imsi0, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EEXIST);
7
ASSERT_SEL(imsi, imsi0, 0);
8
- ASSERT_RC(db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EIO);
9
- ASSERT_RC(db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EIO);
10
+ ASSERT_RC(db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EEXIST);
11
+ ASSERT_RC(db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EEXIST);
12
ASSERT_SEL(imsi, imsi1, 0);
13
- ASSERT_RC(db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EIO);
14
- ASSERT_RC(db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EIO);
15
+ ASSERT_RC(db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EEXIST);
16
+ ASSERT_RC(db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EEXIST);
17
ASSERT_SEL(imsi, imsi2, 0);
18
19
ASSERT_RC(db_subscr_create(dbc, "123456789 000003", DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS), -EINVAL);
20
osmo-hlr_1.4.0.tar.xz/tests/db/db_test.err -> osmo-hlr_1.5.0.tar.xz/tests/db/db_test.err
Changed
36
1
2
.imsi = '123456789000002',
3
}
4
5
-db_subscr_create(dbc, imsi0, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EIO
6
+db_subscr_create(dbc, imsi0, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EEXIST
7
DAUC IMSI='123456789000000': Cannot create subscriber: SQL error: (2067) UNIQUE constraint failed: subscriber.imsi
8
9
db_subscr_get_by_imsi(dbc, imsi0, &g_subscr) --> 0
10
11
.imsi = '123456789000000',
12
}
13
14
-db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EIO
15
+db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EEXIST
16
DAUC IMSI='123456789000001': Cannot create subscriber: SQL error: (2067) UNIQUE constraint failed: subscriber.imsi
17
18
-db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EIO
19
+db_subscr_create(dbc, imsi1, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EEXIST
20
DAUC IMSI='123456789000001': Cannot create subscriber: SQL error: (2067) UNIQUE constraint failed: subscriber.imsi
21
22
db_subscr_get_by_imsi(dbc, imsi1, &g_subscr) --> 0
23
24
.imsi = '123456789000001',
25
}
26
27
-db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EIO
28
+db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EEXIST
29
DAUC IMSI='123456789000002': Cannot create subscriber: SQL error: (2067) UNIQUE constraint failed: subscriber.imsi
30
31
-db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EIO
32
+db_subscr_create(dbc, imsi2, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EEXIST
33
DAUC IMSI='123456789000002': Cannot create subscriber: SQL error: (2067) UNIQUE constraint failed: subscriber.imsi
34
35
db_subscr_get_by_imsi(dbc, imsi2, &g_subscr) --> 0
36
osmo-hlr_1.4.0.tar.xz/tests/gsup/Makefile.am -> osmo-hlr_1.5.0.tar.xz/tests/gsup/Makefile.am
Changed
10
1
2
gsup_test.err \
3
$(NULL)
4
5
-noinst_PROGRAMS = \
6
+check_PROGRAMS = \
7
gsup_test \
8
$(NULL)
9
10
osmo-hlr_1.4.0.tar.xz/tests/test_subscriber.ctrl -> osmo-hlr_1.5.0.tar.xz/tests/test_subscriber.ctrl
Changed
106
1
2
periodic_rau_tau_timer 0
3
lmsi 00000000
4
5
-GET 101 subscriber.by-id-0x0123.info
6
-ERROR 101 Invalid value part of 'by-xxx-value' selector.
7
+SET 101 subscriber.create 901991234567891
8
+SET_REPLY 101 subscriber.create 124
9
+
10
+GET 102 subscriber.by-id-124.info
11
+GET_REPLY 102 subscriber.by-id-124.info
12
+id 124
13
+imsi 901991234567891
14
+nam_cs 1
15
+nam_ps 1
16
+ms_purged_cs 0
17
+ms_purged_ps 0
18
+periodic_lu_timer 0
19
+periodic_rau_tau_timer 0
20
+lmsi 00000000
21
+
22
+GET 103 subscriber.by-imsi-901991234567891.msisdn
23
+GET_REPLY 103 subscriber.by-imsi-901991234567891.msisdn none
24
+
25
+SET 104 subscriber.by-imsi-901991234567891.msisdn 555666
26
+SET_REPLY 104 subscriber.by-imsi-901991234567891.msisdn OK
27
+
28
+GET 105 subscriber.by-imsi-901991234567891.msisdn
29
+GET_REPLY 105 subscriber.by-imsi-901991234567891.msisdn 555666
30
+
31
+SET 106 subscriber.by-imsi-901991234567891.msisdn 888000
32
+SET_REPLY 106 subscriber.by-imsi-901991234567891.msisdn OK
33
+
34
+GET 107 subscriber.by-imsi-901991234567891.msisdn
35
+GET_REPLY 107 subscriber.by-imsi-901991234567891.msisdn 888000
36
+
37
+GET 108 subscriber.by-imsi-901991234567891.info
38
+GET_REPLY 108 subscriber.by-imsi-901991234567891.info
39
+id 124
40
+imsi 901991234567891
41
+msisdn 888000
42
+nam_cs 1
43
+nam_ps 1
44
+ms_purged_cs 0
45
+ms_purged_ps 0
46
+periodic_lu_timer 0
47
+periodic_rau_tau_timer 0
48
+lmsi 00000000
49
+
50
+SET 109 subscriber.by-imsi-901991234567891.msisdn none
51
+SET_REPLY 109 subscriber.by-imsi-901991234567891.msisdn OK
52
+
53
+GET 110 subscriber.by-imsi-901991234567891.msisdn
54
+GET_REPLY 110 subscriber.by-imsi-901991234567891.msisdn none
55
+
56
+GET 111 subscriber.by-imsi-901991234567891.info
57
+GET_REPLY 111 subscriber.by-imsi-901991234567891.info
58
+id 124
59
+imsi 901991234567891
60
+nam_cs 1
61
+nam_ps 1
62
+ms_purged_cs 0
63
+ms_purged_ps 0
64
+periodic_lu_timer 0
65
+periodic_rau_tau_timer 0
66
+lmsi 00000000
67
+
68
+GET 112 subscriber.by-imsi-901991234567891.aud2g
69
+GET_REPLY 112 subscriber.by-imsi-901991234567891.aud2g none
70
+
71
+SET 113 subscriber.by-imsi-901991234567891.aud2g xor,c01ffedc1cadaeac1d1f1edacac1ab0a
72
+SET_REPLY 113 subscriber.by-imsi-901991234567891.aud2g OK
73
+
74
+GET 114 subscriber.by-imsi-901991234567891.aud2g
75
+GET_REPLY 114 subscriber.by-imsi-901991234567891.aud2g XOR,c01ffedc1cadaeac1d1f1edacac1ab0a
76
+
77
+SET 115 subscriber.by-imsi-901991234567891.aud2g none
78
+SET_REPLY 115 subscriber.by-imsi-901991234567891.aud2g OK
79
+
80
+GET 116 subscriber.by-imsi-901991234567891.aud2g
81
+GET_REPLY 116 subscriber.by-imsi-901991234567891.aud2g none
82
+
83
+GET 117 subscriber.by-imsi-901991234567891.aud3g
84
+GET_REPLY 117 subscriber.by-imsi-901991234567891.aud3g none
85
+
86
+SET 118 subscriber.by-imsi-901991234567891.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OP,FB2A3D1B360F599ABAB99DB8669F8308
87
+SET_REPLY 118 subscriber.by-imsi-901991234567891.aud3g OK
88
+
89
+GET 119 subscriber.by-imsi-901991234567891.aud3g
90
+GET_REPLY 119 subscriber.by-imsi-901991234567891.aud3g MILENAGE,c01ffedc1cadaeac1d1f1edacac1ab0a,OP,fb2a3d1b360f599abab99db8669f8308,5
91
+
92
+SET 120 subscriber.by-imsi-901991234567891.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,FB2A3D1B360F599ABAB99DB8669F8308,7
93
+SET_REPLY 120 subscriber.by-imsi-901991234567891.aud3g OK
94
+
95
+GET 121 subscriber.by-imsi-901991234567891.aud3g
96
+GET_REPLY 121 subscriber.by-imsi-901991234567891.aud3g MILENAGE,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,fb2a3d1b360f599abab99db8669f8308,7
97
+
98
+SET 122 subscriber.by-imsi-901991234567891.aud3g none
99
+SET_REPLY 122 subscriber.by-imsi-901991234567891.aud3g OK
100
+
101
+GET 123 subscriber.by-imsi-901991234567891.aud3g
102
+GET_REPLY 123 subscriber.by-imsi-901991234567891.aud3g none
103
+
104
+SET 124 subscriber.delete 901991234567891
105
+SET_REPLY 124 subscriber.delete 124
106
osmo-hlr_1.4.0.tar.xz/tests/test_subscriber_errors.ctrl -> osmo-hlr_1.5.0.tar.xz/tests/test_subscriber_errors.ctrl
Changed
53
1
2
ERROR 46 Invalid value part of 'by-xxx-value' selector.
3
GET 47 subscriber.by-imsi-1234567890123456.cs-enabled
4
ERROR 47 Invalid value part of 'by-xxx-value' selector.
5
+
6
+GET 48 subscriber.by-id-0x0123.info
7
+ERROR 48 Invalid value part of 'by-xxx-value' selector.
8
+
9
+SET 49 subscriber.create zzz
10
+ERROR 49 Invalid IMSI value.
11
+
12
+SET 50 subscriber.create 901990000000001
13
+ERROR 50 Subscriber already exists.
14
+
15
+SET 51 subscriber.by-imsi-1234567890123456.msisdn hellobadmsisdn
16
+ERROR 51 Value failed verification.
17
+
18
+SET 52 subscriber.delete 100000
19
+ERROR 52 Subscriber doesn't exist.
20
+
21
+SET 53 subscriber.delete zzz
22
+ERROR 53 Invalid IMSI value.
23
+
24
+SET 54 subscriber.by-imsi-901990000000003.aud2g foobar
25
+ERROR 54 Value failed verification.
26
+
27
+SET 55 subscriber.by-imsi-901990000000003.aud2g foobar,2134
28
+ERROR 55 Unknown auth algorithm.
29
+
30
+SET 56 subscriber.by-imsi-901990000000003.aud2g xor,2134
31
+ERROR 56 Invalid KI.
32
+
33
+SET 57 subscriber.by-imsi-901990000000003.aud3g foobar
34
+ERROR 57 Value failed verification.
35
+
36
+SET 58 subscriber.by-imsi-901990000000003.aud3g foobar,2134
37
+ERROR 58 Unknown auth algorithm.
38
+
39
+SET 60 subscriber.by-imsi-901990000000003.aud3g milenage,2134
40
+ERROR 60 Invalid KI.
41
+
42
+SET 61 subscriber.by-imsi-901990000000003.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,AAA
43
+ERROR 61 Invalid format.
44
+
45
+SET 62 subscriber.by-imsi-901990000000003.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC
46
+ERROR 62 Invalid format.
47
+
48
+SET 63 subscriber.by-imsi-901990000000003.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,zzz
49
+ERROR 63 Invalid OP/OPC.
50
+
51
+SET 64 subscriber.by-imsi-901990000000003.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,fb2a3d1b360f599abab99db8669f8308,
52
+ERROR 64 Invalid format.
53