FuVst: Add security code and card reader type to database
This commit is contained in:
parent
2dcf10b1b1
commit
fd3fcddc07
|
@ -306,6 +306,7 @@ typedef struct cnetz_database {
|
||||||
uint8_t futln_fuvst;
|
uint8_t futln_fuvst;
|
||||||
uint16_t futln_rest;
|
uint16_t futln_rest;
|
||||||
uint8_t chip;
|
uint8_t chip;
|
||||||
|
int32_t sicherungscode;
|
||||||
} cnetz_db_t;
|
} cnetz_db_t;
|
||||||
|
|
||||||
static cnetz_db_t *cnetz_db_head;
|
static cnetz_db_t *cnetz_db_head;
|
||||||
|
@ -362,7 +363,7 @@ static void flush_db(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_db(uint8_t futln_nat, uint8_t futln_fuvst, uint16_t futln_rest, uint8_t chip)
|
static void add_db(uint8_t futln_nat, uint8_t futln_fuvst, uint16_t futln_rest, uint8_t chip, int32_t sicherungscode)
|
||||||
{
|
{
|
||||||
cnetz_db_t *db, **dbp;
|
cnetz_db_t *db, **dbp;
|
||||||
|
|
||||||
|
@ -380,8 +381,9 @@ static void add_db(uint8_t futln_nat, uint8_t futln_fuvst, uint16_t futln_rest,
|
||||||
db->futln_fuvst = futln_fuvst;
|
db->futln_fuvst = futln_fuvst;
|
||||||
db->futln_rest = futln_rest;
|
db->futln_rest = futln_rest;
|
||||||
db->chip = chip;
|
db->chip = chip;
|
||||||
|
db->sicherungscode = sicherungscode;
|
||||||
|
|
||||||
LOGP(DDB, LOGL_INFO, "Adding subscriber '%d,%d,%d' to database.\n", db->futln_nat, db->futln_fuvst, db->futln_rest);
|
LOGP(DDB, LOGL_INFO, "Adding subscriber '%d,%d,%d' to database. (reader=%s, sicherungs-code=%d)\n", db->futln_nat, db->futln_fuvst, db->futln_rest, (db->chip) ? "chip" : "magent", db->sicherungscode);
|
||||||
|
|
||||||
/* attach to end of list */
|
/* attach to end of list */
|
||||||
dbp = &cnetz_db_head;
|
dbp = &cnetz_db_head;
|
||||||
|
@ -855,7 +857,7 @@ static void message_receive(fuvst_t *zzk, uint8_t ident, uint8_t opcode, uint8_t
|
||||||
uint16_t s = 0;
|
uint16_t s = 0;
|
||||||
uint8_t u = 0, b = 0, l = 0;
|
uint8_t u = 0, b = 0, l = 0;
|
||||||
uint16_t T_array[3];
|
uint16_t T_array[3];
|
||||||
uint8_t U_array[3], N_array[3], l_array[3];
|
uint8_t U_array[3], N_array[3], b_array[3];
|
||||||
int i, num;
|
int i, num;
|
||||||
char number[17];
|
char number[17];
|
||||||
|
|
||||||
|
@ -930,7 +932,7 @@ static void message_receive(fuvst_t *zzk, uint8_t ident, uint8_t opcode, uint8_t
|
||||||
break;
|
break;
|
||||||
case OPCODE_EBAF: /* enter BS (inscription) */
|
case OPCODE_EBAF: /* enter BS (inscription) */
|
||||||
decode_ebaf(data, len, &T, &U, &N, &s, &u, &b, &l);
|
decode_ebaf(data, len, &T, &U, &N, &s, &u, &b, &l);
|
||||||
add_db(N, U, T, l);
|
add_db(N, U, T, b, (!l || !b) ? s : -1);
|
||||||
console_inscription(nut2rufnummer(N, U, T));
|
console_inscription(nut2rufnummer(N, U, T));
|
||||||
len = encode_ebpqu(&opcode, &data);
|
len = encode_ebpqu(&opcode, &data);
|
||||||
message_send(ident, opcode, data, len);
|
message_send(ident, opcode, data, len);
|
||||||
|
@ -1087,11 +1089,11 @@ outgoing:
|
||||||
config_send(ident, PJ, D, L);
|
config_send(ident, PJ, D, L);
|
||||||
break;
|
break;
|
||||||
case OPCODE_SADQF: /* transfer of inscription list (aktivdatei) */
|
case OPCODE_SADQF: /* transfer of inscription list (aktivdatei) */
|
||||||
num = decode_sadqf(data, len, &s, &e, l_array, T_array, U_array, N_array);
|
num = decode_sadqf(data, len, &s, &e, b_array, T_array, U_array, N_array);
|
||||||
if (s == 0)
|
if (s == 0)
|
||||||
flush_db();
|
flush_db();
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
add_db(N_array[i], U_array[i], T_array[i], l_array[i]);
|
add_db(N_array[i], U_array[i], T_array[i], b_array[i], -1);
|
||||||
len = encode_ebpqu(&opcode, &data);
|
len = encode_ebpqu(&opcode, &data);
|
||||||
message_send(ident, opcode, data, len);
|
message_send(ident, opcode, data, len);
|
||||||
break;
|
break;
|
||||||
|
@ -1454,7 +1456,7 @@ void dump_info(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
while (db) {
|
while (db) {
|
||||||
LOGP(DDB, LOGL_NOTICE, " - Subscriber '%d,%d,%d' is attached.\n", db->futln_nat, db->futln_fuvst, db->futln_rest);
|
LOGP(DDB, LOGL_NOTICE, " - Subscriber '%d,%d,%d' (reader=%s, sicherungs-code=%d) is attached.\n", db->futln_nat, db->futln_fuvst, db->futln_rest, (db->chip) ? "chip" : "magent", db->sicherungscode);
|
||||||
db = db->next;
|
db = db->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -640,7 +640,7 @@ void decode_ebaf(uint8_t *data, int len, uint16_t *T, uint8_t *U, uint8_t *N, ui
|
||||||
*b = (data[5] >> 6) & 0x1;
|
*b = (data[5] >> 6) & 0x1;
|
||||||
*l = data[5] >> 7;
|
*l = data[5] >> 7;
|
||||||
|
|
||||||
LOGP(DMUP, LOGL_INFO, "(BS EBAF) Einbuchauftrag: FuTln=%d,%d,%d (0161-%d%d%05d)\n", *N, *U, *T, *N, *U, *T);
|
LOGP(DMUP, LOGL_INFO, "(BS EBAF) Einbuchauftrag: FuTln=%d,%d,%d (0161-%d%d%05d) reader=%s\n", *N, *U, *T, *N, *U, *T, (b) ? "chip" : "magent");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ack to inscription */
|
/* ack to inscription */
|
||||||
|
@ -1108,7 +1108,7 @@ void encode_sadau(uint8_t *opcode)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ack "Aktivdatei" */
|
/* ack "Aktivdatei" */
|
||||||
int decode_sadqf(uint8_t *data, int len, uint16_t *S, uint8_t *E, uint8_t *l, uint16_t *T, uint8_t *U, uint8_t *N)
|
int decode_sadqf(uint8_t *data, int len, uint16_t *S, uint8_t *E, uint8_t *b, uint16_t *T, uint8_t *U, uint8_t *N)
|
||||||
{
|
{
|
||||||
int i, n = 0;
|
int i, n = 0;
|
||||||
|
|
||||||
|
@ -1120,7 +1120,7 @@ int decode_sadqf(uint8_t *data, int len, uint16_t *S, uint8_t *E, uint8_t *l, ui
|
||||||
*S = ((data[1] & 0xf) << 4) | data[0];
|
*S = ((data[1] & 0xf) << 4) | data[0];
|
||||||
*E = data[1] >> 7;
|
*E = data[1] >> 7;
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
l[n] = (data[1] >> (6 - i)) & 0x1;
|
b[n] = (data[1] >> (6 - i)) & 0x1;
|
||||||
T[n] = (data[3 + (i * 3)] << 8) | data[2 + (i * 3)];
|
T[n] = (data[3 + (i * 3)] << 8) | data[2 + (i * 3)];
|
||||||
U[n] = data[4 + (i * 3)] & 0x1f;
|
U[n] = data[4 + (i * 3)] & 0x1f;
|
||||||
N[n] = data[4 + (i * 3)] >> 5;
|
N[n] = data[4 + (i * 3)] >> 5;
|
||||||
|
@ -1130,7 +1130,7 @@ int decode_sadqf(uint8_t *data, int len, uint16_t *S, uint8_t *E, uint8_t *l, ui
|
||||||
|
|
||||||
LOGP(DMUP, LOGL_INFO, "(BS SADQF) Aktivdateiquittung der BS:\n");
|
LOGP(DMUP, LOGL_INFO, "(BS SADQF) Aktivdateiquittung der BS:\n");
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
LOGP(DMUP, LOGL_INFO, " %d: FuTln=%d,%d,%d (0161-%d%d%05d)\n", i + 1, N[i], U[i], T[i], N[i], U[i], T[i]);
|
LOGP(DMUP, LOGL_INFO, " %d: FuTln=%d,%d,%d (0161-%d%d%05d) reader=%s\n", i + 1, N[i], U[i], T[i], N[i], U[i], T[i], (b[i]) ? "chip" : "magent");
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue