annotate utils/themwi-check-own.c @ 15:a24f0794ab4d default tip

INSTALL: document the new way
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 21 May 2024 00:29:21 +0000
parents dc1554b7dfb8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This utility performs a lookup in ThemWi number database to see
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * if a given NANP number is owned by us.
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <stdio.h>
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <stdint.h>
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdlib.h>
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <syslog.h>
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10
7
dc1554b7dfb8 themwi-check-own compiles in the new model
Mychaela Falconia <falcon@freecalypso.org>
parents: 6
diff changeset
11 #include <themwi/nanp/number_db_v2.h>
dc1554b7dfb8 themwi-check-own compiles in the new model
Mychaela Falconia <falcon@freecalypso.org>
parents: 6
diff changeset
12 #include <themwi/nanp/number_lookup.h>
dc1554b7dfb8 themwi-check-own compiles in the new model
Mychaela Falconia <falcon@freecalypso.org>
parents: 6
diff changeset
13 #include <themwi/nanp/number_utils.h>
dc1554b7dfb8 themwi-check-own compiles in the new model
Mychaela Falconia <falcon@freecalypso.org>
parents: 6
diff changeset
14
dc1554b7dfb8 themwi-check-own compiles in the new model
Mychaela Falconia <falcon@freecalypso.org>
parents: 6
diff changeset
15 int main(int argc, char **argv)
6
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 {
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 char nanp[11];
7
dc1554b7dfb8 themwi-check-own compiles in the new model
Mychaela Falconia <falcon@freecalypso.org>
parents: 6
diff changeset
18 const struct owned_number_rec *rec;
6
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 if (argc != 2) {
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 usage: fprintf(stderr, "usage: %s 10-digit-number\n", argv[0]);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 exit(1);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 }
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 if (grok_number_string(argv[1], 1) != 10)
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 goto usage;
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 dehyphen_number_string(argv[1], nanp);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 if (!is_nanp_valid_prefix(nanp)) {
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 fprintf(stderr, "error: number violates NANP rules\n");
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 exit(1);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 }
7
dc1554b7dfb8 themwi-check-own compiles in the new model
Mychaela Falconia <falcon@freecalypso.org>
parents: 6
diff changeset
31 openlog("themwi-check-own", LOG_PERROR, LOG_USER);
6
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 if (read_number_db() < 0) {
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 fprintf(stderr, "error reading number database\n");
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 exit(1);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 }
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 rec = numdb_lookup_nanp(nanp);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 printf("+1-%.3s-%.3s-%s is ", nanp, nanp+3, nanp+6);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 if (!rec) {
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 puts("NOT owned by us");
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 exit(1);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 }
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 fputs("locally owned, ", stdout);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 switch (rec->usage & NUMBER_USAGE_MASK) {
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 case NUMBER_USAGE_TYPE_RSVD:
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 puts("reserved");
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 break;
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 case NUMBER_USAGE_TYPE_GSM_SUB:
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 puts("assigned to a GSM subscriber");
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 break;
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 case NUMBER_USAGE_TYPE_ALIAS:
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 printf("mapped to +1-%03u-%03u-%04u\n", rec->remap[0],
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 rec->remap[1], rec->remap[2]);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 break;
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 default:
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 printf("unknown usage byte 0x%02X\n", rec->usage);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 }
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 exit(0);
1e548c7a24a1 themwi-check-own: old source as starting point
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 }