tree 76bba63f79443698fec9774e1fb5ac9487d8783d
parent e6ce52bbdeb1dff729debb68313504ab07ee00a6
author Stefan Sperling <ssperling@sysmocom.de> 1543920030 +0100
committer Stefan Sperling <stsp@stsp.name> 1544094231 +0000

introduce osmo_gsup_client_create2()

Add a new API which allows creating a GSUP client connection with
more identification information than just a unit name. Instead of
being selective about which idenfifiers callers may use, allow
callers to pass a full-blown struct ipaccess_unit. This allows
applications to use entirely custom identifiers on GSUP client
connections.

This change is a prerequisite for inter-MSC handover because MSCs
will need to use unique identifiers towards the HLR, which isn't
very easy to do with the old osmo_gsup_client_create() API. While
it's always been possible to pass a unique unit_name, this is not
as flexible as we would like.

The old API remains for backwards compatibility.
struct osmo_gsup_client grows in size but is allocated internally
by the library; old calling code won't notice the difference.

Change-Id: Ief09677e07d6e977247185b72c605f109aa091f5
Related: OS#3355
