hlr: respect the num_auth_vectors requested

Previous the hlr always returned the maximum possible auth vectors (5)
to the client. Even when only asked for a single auth vector.

Change-Id: I20c2b648456bc7ba1fc1321a7d42852158a3523c
diff --git a/src/hlr.c b/src/hlr.c
index c3737d5..38b9022 100644
--- a/src/hlr.c
+++ b/src/hlr.c
@@ -234,6 +234,7 @@
 	struct osmo_gsup_message gsup_out;
 	struct msgb *msg_out;
 	bool separation_bit = false;
+	int num_auth_vectors = OSMO_GSUP_MAX_NUM_AUTH_INFO;
 	int rc;
 
 	subscr_create_on_demand(gsup->imsi);
@@ -245,9 +246,13 @@
 	if (gsup->current_rat_type == OSMO_RAT_EUTRAN_SGS)
 		separation_bit = true;
 
+	if (gsup->num_auth_vectors > 0 &&
+			gsup->num_auth_vectors <= OSMO_GSUP_MAX_NUM_AUTH_INFO)
+		num_auth_vectors = gsup->num_auth_vectors;
+
 	rc = db_get_auc(dbc, gsup->imsi, conn->auc_3g_ind,
 			gsup_out.auth_vectors,
-			ARRAY_SIZE(gsup_out.auth_vectors),
+			num_auth_vectors,
 			gsup->rand, gsup->auts, separation_bit);
 	if (rc <= 0) {
 		gsup_out.message_type = OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR;