From eef5dcbb47966521543e82dbb0b9269ec245d3d8 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Fri, 16 Nov 2007 17:15:11 +0000 Subject: [PATCH] add time constraints and other checks on PC9x timestamp This involves making sure that the timestamp is within 15 mins of "now" to be accepted. This has other rollover effects in that I don't send an "old" C record on startup anymore, just send an A record followed by a K. These days a newly minted C record will be along in 15mins or so anyway. Made sh/newc terminal width aware. Added CTY-1709 cty.dat data. --- Changes | 5 + cmd/show/newconfiguration.pl | 2 +- data/cty.dat | 205 +++++++++++++++++------------------ data/prefix_data.pl | 73 +++++-------- perl/DXProt.pm | 6 +- perl/DXProtHandle.pm | 47 +++++--- perl/Route.pm | 5 +- perl/Version.pm | 2 +- 8 files changed, 176 insertions(+), 169 deletions(-) diff --git a/Changes b/Changes index e779721a..6a0731b6 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,8 @@ +16Nov07======================================================================= +1. add CTY-1709 prefix changes +2. added extra checking for the time stamp on PC9x sentences. These must now +be within 15 minutes (configurable) of this node's time to be accepted. +3. made show/newc terminal width aware. 24Oct07======================================================================= 1. Added CTY-1708 prefix changes 23Oct07======================================================================= diff --git a/cmd/show/newconfiguration.pl b/cmd/show/newconfiguration.pl index 516e4487..63414e06 100644 --- a/cmd/show/newconfiguration.pl +++ b/cmd/show/newconfiguration.pl @@ -16,6 +16,6 @@ if (@list && $list[0] =~ /^NOD/) { shift @list; } -push @out, $main::routeroot->config($nodes_only, 0, {}, @list); +push @out, $main::routeroot->config($nodes_only, $self->width, 0, {}, @list); return (1, @out); diff --git a/data/cty.dat b/data/cty.dat index f9dbdf05..1447d5ab 100644 --- a/data/cty.dat +++ b/data/cty.dat @@ -106,7 +106,7 @@ Sierra Leone: 35: 46: AF: 8.50: 13.20: 0.0: 9L: West Malaysia: 28: 54: AS: 3.20: -101.60: -7.5: 9M2: 9M2,9M4,9M50,9W2,9W4; East Malaysia: 28: 54: OC: 5.80: -118.10: -7.5: 9M6: - 9M6,9M8,9W6,9W8,9M50MS; + 9M6,9M8,9W6,9W8,9M2/PG5M/6,9M50MS; Nepal: 22: 42: AS: 27.70: -85.30: -5.75: 9N: 9N; Rep. of Congo: 36: 52: AF: -4.30: -15.30: -1.0: 9Q: @@ -187,11 +187,9 @@ Antarctica: 13: 74: SA: -65.00: 64.00: -4.0: CE9: ANT,AX0,FT0Y(30)[70],FT2Y(30)[70],FT4Y(30)[70],FT5Y(30)[70],FT8Y(30)[70], LU1Z[73],R1AN,VH0(39)[69],VI0(39)[69],VJ0(39)[69],VK0(39)[69],VL0(39)[69], VM0(39)[69],VN0(39)[69],VZ0(39)[69],ZL0(30)[71],ZL5(30)[71],ZM5(30)[71], - ZS7(38)[67],8J1RF(39)[67],8J1RL(39)[67],DP0GVN(38)[67],K2ARB/KC4(30)[71], - KC4/K2ARB(30)[71],KC4AAA(39),KC4AAC[73],KC4AAF(30)[71],KC4USB(12)[72], - KC4USV(30)[71],KC4USX(30)[71],LU4ZS[73],R1ANB(29)[73],R1ANC(29)[73], - R1AND(38)[67],R1ANN(38)[67],R1ANT(29)[69],R1ANZ(29)[73],VP8BF[73], - VP8DJB[73],VP8DKF(30)[71],VP8PJ[73],VP8ROT[73],W1MRQ/KC4(30)[71]; + ZS7(38)[67],8J1RF(39)[67],8J1RL(39)[67],DP0GVN(38)[67],KC4/K2ARB(30)[71], + KC4AAA(39),KC4AAC[73],KC4USB(12)[72],KC4USV(30)[71],LU4ZS[73],VP8DJB[73], + VP8DKF(30)[71],VP8PJ[73],VP8ROT[73]; Cuba: 08: 11: NA: 23.10: 82.40: 5.0: CM: CL,CM,CO,T4; Morocco: 33: 37: AF: 33.60: 7.50: 0.0: CN: @@ -225,7 +223,7 @@ Eritrea: 37: 48: AF: 15.30: -38.90: -3.0: E3: Palestine: 20: 39: AS: 31.40: -35.10: -2.0: E4: E4; North Cook Is.: 32: 62: OC: -10.40: 161.00: 10.0: E5/n: - E51PDX,E51PEN,E51QMA,E51TUG,E51WL; + E51WL; South Cook Is.: 32: 62: OC: -21.20: 159.80: 10.0: E5/s: E5; Bosnia-Herzegovina: 15: 28: EU: 43.50: -18.30: -1.0: E7: @@ -233,7 +231,7 @@ Bosnia-Herzegovina: 15: 28: EU: 43.50: -18.30: -1.0: E7: Spain: 14: 37: EU: 40.40: 3.70: -1.0: EA: AM,AN,AO,EA,EB,EC,ED,EE,EF,EG,EH; Balearic Is.: 14: 37: EU: 39.50: -2.60: -1.0: EA6: - AM6,AN6,AO6,EA6,EB6,EC6,ED6,EE6,EF6,EG6,EH6,EA5ON/6; + AM6,AN6,AO6,EA6,EB6,EC6,ED6,EE6,EF6,EG6,EH6,ED5ON/6; Canary Is.: 33: 36: AF: 28.40: 15.30: 0.0: EA8: AM8,AN8,AO8,EA8,EB8,EC8,ED8,EE8,EF8,EG8,EH8; Ceuta and Melilla: 33: 37: AF: 35.60: 3.00: -1.0: EA9: @@ -287,13 +285,13 @@ Marquesas Is.: 31: 63: OC: -9.00: 139.50: 10.0: FO/m: St. Pierre & Miquelon: 05: 09: NA: 46.70: 56.00: 3.0: FP: FP; Reunion: 39: 53: AF: -21.10: -55.60: -4.0: FR: - FR,TO5R; + FR; Glorioso: 39: 53: AF: -11.50: -47.30: -4.0: FR/g: TO4G; Juan de Nova & Europa: 39: 53: AF: -19.60: -41.60: -3.0: FR/j: - TO4E,TO4WW; + TO4E; Tromelin: 39: 53: AF: -15.90: -54.40: -4.0: FR/t: - FR5ZQ/T,FR5ZU/T; + FR5ZU/T; Crozet: 39: 68: AF: -46.00: -52.00: -4.0: FT5W: FT0W,FT2W,FT4W,FT5W,FT8W; Kerguelen: 39: 68: AF: -49.30: -69.20: -5.0: FT5X: @@ -337,7 +335,7 @@ Shetland: 14: 27: EU: 60.40: 1.50: 0.0: *GM/s: GZ,MZ,2M0ZET,GB2ELH,GM0AVR,GM0CXQ,GM0CYJ,GM0DJI,GM0EKM,GM0ILB,GM0ULK, GM1ZNR,GM3KLA,GM3WHT,GM3ZET,GM3ZNM,GM4GPP,GM4GQM,GM4IPK,GM4LBE,GM4LER, GM4SLV,GM4SSA,GM4SWU,GM4WXQ,GM4ZHL,GM7AFE,GM7GWW,GM8LNH,GM8MMA,GM8YEC, - MM0LSM,MM0XAU,MM0ZAL,MM1FJM,MM3VQO,MM5PSL; + MM0LSM,MM0XAU,MM0ZAL,MM1FJM,MM3VQO,MM5PSL,MS0ZCG; Guernsey: 14: 27: EU: 49.50: 2.70: 0.0: GU: 2P,2U,GP,GU,MP,MU,GB0GUC,GB0JAG,GB0ON,GB2ECG,GB2GU,GB50LIB; Wales: 14: 27: EU: 51.50: 3.20: 0.0: GW: @@ -375,7 +373,7 @@ San Andres/Providencia: 07: 11: NA: 12.50: 81.70: 5.0: HK0/a: Malpelo I.: 09: 12: SA: 4.00: 81.10: 5.0: HK0/m: 5J0M,5K0M,HJ0M,HK0M,HK0TU; South Korea: 25: 44: AS: 37.50: -127.00: -9.0: HL: - 6K,6L,6M,6N,D7,D8,D9,DS,DT,HL,KL9K; + 6K,6L,6M,6N,D7,D8,D9,DS,DT,HL; North Korea: 25: 44: AS: 39.00: -126.00: -9.0: HM: HM,P5,P6,P7,P8,P9; Panama: 07: 11: NA: 9.00: 79.50: 5.0: HP: @@ -393,7 +391,8 @@ Italy: 15: 28: EU: 41.90: -12.50: -1.0: I: Italy (Africa): 33: 37: AF: 35.40: -12.50: -1.0: *IG9: IG9,IH9; Sardinia: 15: 28: EU: 39.20: -9.10: -1.0: IS: - IM0,IS,IW0U,IW0V,IW0W,IW0X,IW0Y,IW0Z,II0P; + IM0,IS,IW0U,IW0V,IW0W,IW0X,IW0Y,IW0Z,IQ0AG,IQ0AH,IQ0AI,IQ0AK,IQ0AL,IQ0AM, + IQ0EH,IQ0HO,IQ0QP,IQ0SS; Sicily: 15: 28: EU: 37.50: -14.00: -1.0: *IT9: IB9,ID9,IE9,IF9,II9,IJ9,IO9,IQ9,IR9,IT,IU9,IW9,IZ9; Djibouti: 37: 48: AF: 11.60: -43.20: -3.0: J2: @@ -412,9 +411,7 @@ Japan: 25: 45: AS: 35.70: -139.80: -9.0: JA: 7J,7K,7L,7M,7N,8J,8K,8L,8M,8N,JA,JB,JC,JE,JF,JG,JH,JI,JJ,JK,JL,JM,JN,JO, JP,JQ,JR,JS; Minami Torishima: 27: 90: OC: 24.30: -154.00: -10.0: JD/m: - 7J1ACH,JA6GXK/JD1,JD1/JI7BCD,JD1BIE/JD1,JD1BIP,JD1BIU,JD1BIY,JD1BIZ, - JD1BJA,JD1BJE,JD1BME,JD1BMM,JD1YAA,JD1YBJ,JG8NQJ/JD1,JL1KFR/JD1, - JR6TYH/JD1; + JA6GXK/JD1,JD1/JI7BCD,JD1BME,JD1BMM,JD1YAA,JD1YBJ; Ogasawara: 27: 45: AS: 27.50: -141.00: -10.0: JD/o: JD1; Mongolia: 23: 32: AS: 47.90: -106.90: -8.0: JT: @@ -431,50 +428,50 @@ United States: 05: 08: NA: 43.00: 87.90: 5.0: K: 4U1WB,AA,AB,AC,AD,AE,AF,AG,AI,AJ,AK,K,N,W,AA0CY(5)[8],AA3VA(4),AB4EJ(4), AB4GG(4),AC4PY(4),AD4EB(4),AD8J(5),AE9F(3)[6],AG3V(4)[7],AG4W(4), AH0AH(5)[8],AH2AK(5)[8],AH6HJ(5)[8],AH6RI(3)[6],AH8M(5)[8],AL0F(3)[6], - AL1VE(5)[8],AL7C(4)[8],AL7KT(5)[8],AL7LV(5)[8],AL7NS(5)[8],AL7O(4)[7], - AL7QQ(4)[7],AL7W(3)[6],K0COP(5)[8],K0JJ(3)[6],K0JJM(4)[7],K0JJR(4)[7], - K0LUZ(5)[8],K0TV(5)[8],K0TVD(4)[7],K1GU(4),K1GUG(5),K1LKR(3)[6],K1LT(4), - K1NG(4),K1NT(4)[7],K1NTR(5)[8],K1TN(4),K1TU(4)[7],K2AAW(4),K2BA(4)[7], - K2HT(4)[7],K2HTO(5)[8],K2RD(3)[6],K2VCO(3)[6],K2VV(4)[7],K3CQ(4),K3GP(4), - K3IE(4),K3PA(4)[7],K3WT(4)[7],K4AMC(4),K4BEV(4),K4BP(4),K4BX(4),K4BXC(5), - K4EJQ(4),K4FXN(4),K4HAL(4),K4IE(4),K4IU(4)[7],K4JA(4),K4JNY(4),K4LTA(4), - K4NO(4),K4OAQ(4),K4RO(4),K4SAC(4),K4TD(4),K4VU(3)[6],K4VUD(5)[8],K4WI(4), - K4WW(4),K4WX(4),K4XG(4),K4XU(3)[6],K4ZGB(4),K5KG(5)[8],K5MA(5)[8], - K5RC(3)[6],K5RR(3)[6],K5ZD(5)[8],K5ZDG(4)[7],K6EID(5)[8],K6XT(4)[7], - K7ABV(4)[6],K7BG(4)[6],K7CMZ(5)[8],K7CS(5)[8],K7GM(5)[8],K7GMF(3)[6], - K7IA(4)[7],K7RE(4)[7],K7REL(3)[6],K7SV(5)[8],K7TD(4)[7],K7UP(4)[7], - K7VU(4)[7],K8AC(5),K8IA(3)[6],K8JQ(5),K8OQL(5),K8OSF(5),K8XS(5),K8YC(5), - K9AW(5),K9ES(5),K9FY(5),K9HUY(5),K9JF(3)[6],K9OM(5),K9VV(5),KA2EYH(4), - KA8Q(5),KB7Q(4)[6],KC3MR(4),KC7UP(4)[6],KD5M(5)[8],KD5MDO(4)[7],KE4MBP(4), - KE4OAR(4),KE7NO(4)[6],KH2D(5)[8],KH6DX(3)[6],KH6GJV(3)[6],KH6HHS(5)[8], - KH6OE(4)[8],KH6QAI(3)[6],KH6QAJ(3)[6],KH6RW(3)[6],KI6DY(4)[7],KK9A(5), - KL0ET(4)[8],KL0LN(4)[8],KL1IF(4)[8],KL2A/7(3)[6],KL7FDQ(3)[6],KL7WP(3)[6], - KL7XX(4)[8],KM4FO(4),KM6JD(5)[8],KN4Q(4),KN4QS(4)[7],KN5H(3)[6], - KN6RO(5)[8],KN8J(5),KO7X(4)[7],KP2N(5)[8],KP4E(4)[8],KS7T(4)[6], - KU1CW(4)[7],KU8E(5),KY1V(4),KY4AA(4),KY4Z(4)[7],N0AX(3)[6],N1LN(4)[7], - N1SZ(4)[7],N1WI(4),N1ZP(4),N2BJ(4),N2BJL(5),N2IC(4)[7],N2LA(4)[7], - N2NB(3)[6],N2WN(4),N3AIU(4)[7],N3BB(4)[7],N3ZZ(3)[6],N4CVO(4),N4DD(4), - N4DW(4),N4GK(4),N4GN(4),N4IR(4),N4IRR(5),N4JF(4),N4KG(4),N4KZ(4),N4NO(4), - N4OGW(4)[7],N4QS(4),N4SL(3)[6],N4TN(4),N4TZ(4),N4UW(4),N4VV(4),N4XM(4), - N4ZZ(4),N6AR(5)[8],N6MW(5)[8],N6MWA(3)[6],N6RFM(5)[8],N6ZO(5)[8], - N6ZZ(4)[7],N7DC(5)[8],N7DF(4)[7],N7FLT(4)[6],N7IV(4)[7],N7NG(5)[8], - N7VMR(4)[6],N8FF(5),N8II(5),N8NA(5),N8PR(5),N8RA(5),N8WXQ(5),N9ADG(3)[6], - NA4K(4),NA4M(4)[7],NA4MA(5)[8],ND2T(3)[6],ND9M(5),NH7C(5)[8],NJ4I(4), - NL7AU(5)[8],NL7CO(4)[7],NL7XM(5)[8],NP3D(5)[8],NQ4U(4),NU4B(4),NU4BP(5), - NW7MT(4)[6],NW8U(5),NX9T(5),NY4N(4),NY6DX(5)[8],W0RLI(3)[6],W0UCE(5)[8], - W0YK(3)[6],W0YR(5)[8],W0YRN(4)[7],W0ZZ(3)[6],W0ZZQ(4)[7],W1DY(4)[7], - W1DYH(5)[8],W1DYJ(5)[8],W1MVY(3)[6],W1RH(3)[6],W1SRD(3)[6],W2OO(4), - W2VJN(3)[6],W3CP(3)[6],W3HDH(4),W4BCG(4),W4CID(4),W4DAN(4),W4DHE(4), - W4DVG(4),W4EEH(4),W4EF(3)[6],W4FMS(4),W4GKM(4),W4HZD(4),W4JSI(4),W4KW(4), - W4LC(4),W4LIA(4),W4NBS(4),W4NI(4),W4NTI(4),W4NZ(4),W4PA(4),W4RYW(4), - W4TDB(4),W4TYU(4),W4YOK(4)[7],W5KI(5)[8],W5REA(5)[8],W6AAN(5)[8], - W6DSQ(4)[8],W6FC(5)[8],W6IHG(5)[8],W6JV(5)[8],W6LFB(4)[7],W6NWS(5)[8], - W6TER(4)[7],W6UB(4)[8],W6XR(5)[8],W6YJ(4)[7],W7FG(4)[7],W7LPF(5)[8], - W7LR(4)[6],W7LRD(3)[6],W7QF(5)[8],W7SE(4)[7],W8AEF(3)[6],W8FJ(5),W8HGH(5), - W8TN(5),W8WEJ(5),W8ZA(5),W9GE(5),W9GEN(4),W9IGJ(5),W9MAK(3)[6], - W9NGA(3)[6],WA0KDS(3)[6],WA1FCN(4),WA1MKE(4),WA1UJU(4),WA2MNO(4)[7], - WA4GLH(4),WA4JA(4),WA4OSD(4),WA5VGI(3)[6],WA8WV(5),WB2ORD(4),WB4YDL(4), - WB4ZBI(4),WB6BWZ(5)[8],WB8YQJ(3)[6],WB8YYY(5),WD4K(4),WD4OHD(4), + AL1VE(5)[8],AL4T(5)[8],AL7C(4)[8],AL7KT(5)[8],AL7LV(5)[8],AL7NS(5)[8], + AL7O(4)[7],AL7QQ(4)[7],AL7W(3)[6],K0COP(5)[8],K0JJ(3)[6],K0JJM(4)[7], + K0JJR(4)[7],K0LUZ(5)[8],K0TV(5)[8],K0TVD(4)[7],K1GU(4),K1GUG(5), + K1LKR(3)[6],K1LT(4),K1NG(4),K1NT(4)[7],K1NTR(5)[8],K1TN(4),K1TU(4)[7], + K2AAW(4),K2BA(4)[7],K2HT(4)[7],K2HTO(5)[8],K2RD(3)[6],K2VCO(3)[6], + K2VV(4)[7],K3CQ(4),K3GP(4),K3IE(4),K3PA(4)[7],K3WT(4)[7],K4AMC(4), + K4BEV(4),K4BP(4),K4BX(4),K4BXC(5),K4EJQ(4),K4FXN(4),K4HAL(4),K4IE(4), + K4IU(4)[7],K4JA(4),K4JNY(4),K4LTA(4),K4NO(4),K4OAQ(4),K4RO(4),K4SAC(4), + K4TD(4),K4VU(3)[6],K4VUD(5)[8],K4WI(4),K4WW(4),K4WX(4),K4XG(4),K4XU(3)[6], + K4ZGB(4),K5KG(5)[8],K5MA(5)[8],K5RC(3)[6],K5RR(3)[6],K5ZD(5)[8], + K5ZDG(4)[7],K6EID(5)[8],K6XT(4)[7],K7ABV(4)[6],K7BG(4)[6],K7CMZ(5)[8], + K7CS(5)[8],K7GM(5)[8],K7GMF(3)[6],K7IA(4)[7],K7RE(4)[7],K7REL(3)[6], + K7SV(5)[8],K7TD(4)[7],K7UP(4)[7],K7VU(4)[7],K8AC(5),K8IA(3)[6],K8JQ(5), + K8OQL(5),K8OSF(5),K8XS(5),K8YC(5),K9AW(5),K9ES(5),K9FY(5),K9HUY(5), + K9JF(3)[6],K9OM(5),K9VV(5),KA2EYH(4),KA8Q(5),KB7Q(4)[6],KC3MR(4), + KC7UP(4)[6],KD5M(5)[8],KD5MDO(4)[7],KE4MBP(4),KE4OAR(4),KE7NO(4)[6], + KH2D(5)[8],KH6DX(3)[6],KH6GJV(3)[6],KH6HHS(5)[8],KH6OE(4)[8],KH6QAI(3)[6], + KH6QAJ(3)[6],KH6RW(3)[6],KI6DY(4)[7],KK9A(5),KL0ET(4)[8],KL0LN(4)[8], + KL1IF(4)[8],KL7FDQ(3)[6],KL7WP(3)[6],KL7XX(4)[8],KM4FO(4),KM6JD(5)[8], + KN4Q(4),KN4QS(4)[7],KN5H(3)[6],KN6RO(5)[8],KN8J(5),KO7X(4)[7],KP2N(5)[8], + KP4E(4)[8],KS7T(4)[6],KU1CW(4)[7],KU8E(5),KY1V(4),KY4AA(4),KY4Z(4)[7], + N0AX(3)[6],N1LN(4)[7],N1SZ(4)[7],N1WI(4),N1ZP(4),N2BJ(4),N2BJL(5), + N2IC(4)[7],N2LA(4)[7],N2NB(3)[6],N2WN(4),N3AIU(4)[7],N3BB(4)[7], + N3ZZ(3)[6],N4CVO(4),N4DD(4),N4DW(4),N4GK(4),N4GN(4),N4IR(4),N4IRR(5), + N4JF(4),N4KG(4),N4KZ(4),N4NO(4),N4OGW(4)[7],N4QS(4),N4SL(3)[6],N4TN(4), + N4TZ(4),N4UW(4),N4VV(4),N4XM(4),N4ZZ(4),N6AR(5)[8],N6MW(5)[8],N6MWA(3)[6], + N6RFM(5)[8],N6ZO(5)[8],N6ZZ(4)[7],N7DC(5)[8],N7DF(4)[7],N7FLT(4)[6], + N7IV(4)[7],N7NG(5)[8],N7VMR(4)[6],N8FF(5),N8II(5),N8NA(5),N8PR(5),N8RA(5), + N8WXQ(5),N9ADG(3)[6],NA4K(4),NA4M(4)[7],NA4MA(5)[8],ND2T(3)[6],ND9M(5), + NH7C(5)[8],NJ4I(4),NL7AU(5)[8],NL7CO(4)[7],NL7XM(5)[8],NP3D(5)[8],NQ4U(4), + NU4B(4),NU4BP(5),NW7MT(4)[6],NW8U(5),NX9T(5),NY4N(4),NY6DX(5)[8], + W0RLI(3)[6],W0UCE(5)[8],W0YK(3)[6],W0YR(5)[8],W0YRN(4)[7],W0ZZ(3)[6], + W0ZZQ(4)[7],W1DY(4)[7],W1DYH(5)[8],W1DYJ(5)[8],W1MVY(3)[6],W1RH(3)[6], + W1SRD(3)[6],W2OO(4),W2VJN(3)[6],W3CP(3)[6],W3HDH(4),W4BCG(4),W4CID(4), + W4DAN(4),W4DHE(4),W4DVG(4),W4EEH(4),W4EF(3)[6],W4FMS(4),W4GKM(4),W4HZD(4), + W4JSI(4),W4KW(4),W4LC(4),W4LIA(4),W4NBS(4),W4NI(4),W4NTI(4),W4NZ(4), + W4PA(4),W4RYW(4),W4TDB(4),W4TYU(4),W4YOK(4)[7],W5KI(5)[8],W5REA(5)[8], + W6AAN(5)[8],W6DSQ(4)[8],W6FC(5)[8],W6IHG(5)[8],W6JV(5)[8],W6LFB(4)[7], + W6NWS(5)[8],W6TER(4)[7],W6UB(4)[8],W6XR(5)[8],W6YJ(4)[7],W7FG(4)[7], + W7LPF(5)[8],W7LR(4)[6],W7LRD(3)[6],W7QF(5)[8],W7SE(4)[7],W8AEF(3)[6], + W8FJ(5),W8HGH(5),W8TN(5),W8WEJ(5),W8ZA(5),W9GE(5),W9GEN(4),W9IGJ(5), + W9MAK(3)[6],W9NGA(3)[6],WA0KDS(3)[6],WA1FCN(4),WA1MKE(4),WA1UJU(4), + WA2MNO(4)[7],WA4GLH(4),WA4JA(4),WA4OSD(4),WA5VGI(3)[6],WA8WV(5),WB2ORD(4), + WB4YDL(4),WB4ZBI(4),WB6BWZ(5)[8],WB8YQJ(3)[6],WB8YYY(5),WD4K(4),WD4OHD(4), WG7Y(4)[7],WH0AI(4)[8],WH6ASW/M(3)[6],WJ9B(5),WL7BPY(4)[7],WL7K(3)[6], WN4M(4),WO4O(4),WO5D(5)[8],WP4JBG(4)[8],WS4Y(4)[7],WT5L(5)[8],WX4TM(4); Guantanamo Bay: 08: 11: NA: 19.90: 75.20: 5.0: KG4: @@ -504,7 +501,7 @@ Swains Island: 32: 62: OC: -11.05: 171.25: 11.0: KH8/s: Wake I.: 31: 65: OC: 19.30: -166.60: -12.0: KH9: AH9,KH9,NH9,WH9; Alaska: 01: 01: NA: 61.20: 150.00: 9.0: KL: - AL,KL,NL,WL; + AL,KL,NL,WL,KW1W; Navassa I.: 08: 11: NA: 18.40: 75.00: 5.0: KP1: KP1,NP1,WP1; Virgin Is.: 08: 11: NA: 18.30: 64.90: 5.0: KP2: @@ -516,10 +513,10 @@ Desecheo I.: 08: 11: NA: 18.30: 67.50: 5.0: KP5: Norway: 14: 18: EU: 60.00: -10.70: -1.0: LA: LA,LB,LC,LD,LE,LF,LG,LH,LI,LJ,LK,LL,LM,LN; Argentina: 13: 14: SA: -34.60: 58.40: 3.0: LU: - AY,AZ,L2,L3,L4,L5,L6,L7,L8,L84VI/D,L9,LO,LP,LQ,LR,LS,LT,LU,LU1DZ/E,LV,LW, - AY0N/X,AY3DR/D,AY4EJ/D,AY5E/D,AY7DSY/D,DJ4SN/LU/X,L20ARC/D,L21ESC/LH, - L25E/D,L30EY/D,L30EY/V,L40E/D,L44D/D,L80AA/D,L8D/X,LO0D/D,LO7E/D, - LU/DH4PB/R,LU/DH4PB/S,LU1AEE/D,LU1AF/D,LU1CDP/D,LU1DK/D,LU1DMA/E,LU1DZ/P, + AY,AZ,L2,L3,L4,L5,L6,L7,L8,L84VI/D,L9,LO,LP,LQ,LR,LS,LT,LU,LV,LW,AY0N/X, + AY3DR/D,AY4EJ/D,AY5E/D,AY7DSY/D,DJ4SN/LU/X,L20ARC/D,L21ESC/LH,L25E/D, + L30EY/D,L30EY/V,L40E/D,L44D/D,L80AA/D,L8D/X,LO0D/D,LO7E/D,LU/DH4PB/R, + LU/DH4PB/S,LU1AEE/D,LU1AF/D,LU1CDP/D,LU1DK/D,LU1DMA/E,LU1DZ/E,LU1DZ/P, LU1DZ/Q,LU1DZ/R,LU1DZ/S,LU1DZ/X,LU1EJ/W,LU1EQ/D,LU1EYW/D,LU1OFN/I, LU1VOF/D,LU1VZ/V,LU1XAW/X,LU1XY/X,LU1YU/D,LU1YY/Y,LU2DT/D,LU2DT/LH, LU2DVI/H,LU2EE/D,LU2EE/E,LU2EJB/X,LU2VC/D,LU2WV/O,LU2XX/X,LU3CQ/D, @@ -537,7 +534,7 @@ Argentina: 13: 14: SA: -34.60: 58.40: 3.0: LU: LU8EHQ/D,LU8EHQ/E,LU8EHQ/W,LU8EKB/W,LU8EKC/D,LU8EOT/X,LU8EOT/Y,LU8ERH/D, LU8EXJ/D,LU8EXN/D,LU8FOZ/V,LU8VCC/D,LU8XC/X,LU8XW/X,LU9ARB/D,LU9AUC/D, LU9DBK/X,LU9DKX/X,LU9EI/F,LU9EJS/E,LU9ESD/D,LU9ESD/V,LU9ESD/Y,LU9EV/LH, - LU9JMG/J,LW1DAL/D,LW1EXU/D,LW1EXU/Y,LW2DX/D,LW2DX/P,LW2DX/Q,LW2DX/R, + LU9JMG/J,LW1DAL/D,LW1EXU/D,LW1EXU/Y,LW2DX/E,LW2DX/P,LW2DX/Q,LW2DX/R, LW2DX/S,LW2DX/Y,LW2ENB/D,LW3DKC/D,LW3DKC/E,LW3DKO/D,LW3DKO/E,LW3HAQ/D, LW4DRH/D,LW4DRH/E,LW4DRV/D,LW4EM/E,LW4EM/LH,LW5DR/LH,LW5DWX/D,LW5EE/D, LW5EE/V,LW5EOL/D,LW6DTM/D,LW7DAF/D,LW7DAF/W,LW7DLY/D,LW7DNS/E,LW8DMK/D, @@ -627,7 +624,7 @@ Mount Athos: 20: 28: EU: 40.20: -24.30: -2.0: SV/a: Dodecanese: 20: 28: EU: 36.40: -28.20: -2.0: SV5: J45,SV5,SW5,SX5,SY5,SZ5; Crete: 20: 28: EU: 35.40: -25.20: -2.0: SV9: - J49,SV9,SW9,SX9,SY9,SZ9,SV0LK,SV0XAZ; + J49,SV9,SW9,SX9,SY9,SZ9,SV0XAZ; Tuvalu: 31: 65: OC: -8.70: -179.20: -12.0: T2: T2; Western Kiribati: 31: 65: OC: -1.40: -173.20: -12.0: T30: @@ -678,9 +675,9 @@ European Russia: 16: 29: EU: 55.80: -37.60: -3.0: UA: R,RD4W[30],RK4W[30],RM4W[30],RN4W[30],RU4W[30],RV4W[30],RW4W[30],U, UA4W[30],R7C,R7C/1,R7C/3,R7C/4; Kaliningrad: 15: 29: EU: 55.00: -20.50: -2.0: UA2: - R2,RA2,RB2,RC2,RD2,RE2,RF2,RG2,RH2,RI2,RJ2,RK2,RL2,RM2,RN2,RP2,RQ2,RR2, - RS2,RT2,RU2,RV2,RW2,RX2,RY2,RZ2,U2,UA2,UB2,UC2,UD2,UE2,UF2,UG2,UH2,UI2, - R5K/2,UA1AAE/2; + R2,RA2,RB2,RC2,RD2,RE2,RF2,RG2,RH2,RI2,RJ2,RK2,RL2,RM2,RN2,RO2,RP2,RQ2, + RR2,RS2,RT2,RU2,RV2,RW2,RX2,RY2,RZ2,U2,UA2,UB2,UC2,UD2,UE2,UF2,UG2,UH2, + UI2,R5K/2,UA1AAE/2; Asiatic Russia: 17: 30: AS: 55.00: -83.00: -7.0: UA9: R0,R450W,R7,R8,R8T(18)[32],R8V(18)[33],R9,R9I(18)[31],R9M(17),R9S(16), R9T(16),R9W(16),RA0,RA7,RA8,RA8T(18)[32],RA8V(18)[33],RA9,RA9I(18)[31], @@ -700,34 +697,35 @@ Asiatic Russia: 17: 30: AS: 55.00: -83.00: -7.0: UA9: RL8T(18)[32],RL8V(18)[33],RL9,RL9I(18)[31],RL9M(17),RL9S(16),RL9T(16), RL9W(16),RM0,RM7,RM8,RM8T(18)[32],RM8V(18)[33],RM9,RM9I(18)[31],RM9M(17), RM9S(16),RM9T(16),RM9W(16),RN0,RN7,RN8,RN8T(18)[32],RN8V(18)[33],RN9, - RN9I(18)[31],RN9M(17),RN9S(16),RN9T(16),RN9W(16),RP0,RP7,RP8,RP8T(18)[32], - RP8V(18)[33],RP9,RP9I(18)[31],RP9M(17),RP9S(16),RP9T(16),RP9W(16),RQ0,RQ7,RQ8, - RQ8T(18)[32],RQ8V(18)[33],RQ9,RQ9I(18)[31],RQ9M(17),RQ9S(16),RQ9T(16), - RQ9W(16),RR0,RR7,RR8,RR8T(18)[32],RR8V(18)[33],RR9,RR9I(18)[31],RR9M(17), - RR9S(16),RR9T(16),RR9W(16),RS0,RS7,RS8,RS8T(18)[32],RS8V(18)[33],RS9, - RS9I(18)[31],RS9M(17),RS9S(16),RS9T(16),RS9W(16),RT0,RT7,RT8,RT8T(18)[32], - RT8V(18)[33],RT9,RT9I(18)[31],RT9M(17),RT9S(16),RT9T(16),RT9W(16),RU0,RU7,RU8, - RU8T(18)[32],RU8V(18)[33],RU9,RU9I(18)[31],RU9M(17),RU9S(16),RU9T(16), - RU9W(16),RV0,RV7,RV8,RV8T(18)[32],RV8V(18)[33],RV9,RV9I(18)[31],RV9M(17), - RV9S(16),RV9T(16),RV9W(16),RW0,RW7,RW8,RW8T(18)[32],RW8V(18)[33],RW9, - RW9I(18)[31],RW9M(17),RW9S(16),RW9T(16),RW9W(16),RX0,RX7,RX8,RX8T(18)[32], - RX8V(18)[33],RX9,RX9I(18)[31],RX9M(17),RX9S(16),RX9T(16),RX9W(16),RY0,RY7,RY8, - RY8T(18)[32],RY8V(18)[33],RY9,RY9I(18)[31],RY9M(17),RY9S(16),RY9T(16), - RY9W(16),RZ0,RZ7,RZ8,RZ8T(18)[32],RZ8V(18)[33],RZ9,RZ9I(18)[31],RZ9M(17), - RZ9S(16),RZ9T(16),RZ9W(16),U0,U7,U8,U8T(18)[32],U8V(18)[33],U9,U9I(18)[31], - U9M(17),U9S(16),U9T(16),U9W(16),UA0,UA7,UA8,UA8T(18)[32],UA8V(18)[33],UA9, - UA9I(18)[31],UA9M(17),UA9S(16),UA9T(16),UA9W(16),UB0,UB7,UB8,UB8T(18)[32], - UB8V(18)[33],UB9,UB9I(18)[31],UB9M(17),UB9S(16),UB9T(16),UB9W(16),UC0,UC7,UC8, - UC8T(18)[32],UC8V(18)[33],UC9,UC9I(18)[31],UC9M(17),UC9S(16),UC9T(16), - UC9W(16),UD0,UD7,UD8,UD8T(18)[32],UD8V(18)[33],UD9,UD9I(18)[31],UD9M(17), - UD9S(16),UD9T(16),UD9W(16),UE0,UE7,UE8,UE8T(18)[32],UE8V(18)[33],UE9, - UE9I(18)[31],UE9M(17),UE9S(16),UE9T(16),UE9W(16),UF0,UF7,UF8,UF8T(18)[32], - UF8V(18)[33],UF9,UF9I(18)[31],UF9M(17),UF9S(16),UF9T(16),UF9W(16),UG0,UG7,UG8, - UG8T(18)[32],UG8V(18)[33],UG9,UG9I(18)[31],UG9M(17),UG9S(16),UG9T(16), - UG9W(16),UH0,UH7,UH8,UH8T(18)[32],UH8V(18)[33],UH9,UH9I(18)[31],UH9M(17), - UH9S(16),UH9T(16),UH9W(16),UI0,UI7,UI8,UI8T(18)[32],UI8V(18)[33],UI9, - UI9I(18)[31],UI9M(17),UI9S(16),UI9T(16),UI9W(16),R30ZF,R35NP,R3F/9,R9HQ(17)[30], - UE60SWA; + RN9I(18)[31],RN9M(17),RN9S(16),RN9T(16),RN9W(16),RO0,RO7,RO8,RO8T(18)[32], + RO8V(18)[33],RO9,RO9I(18)[31],RO9M(17),RO9S(16),RO9T(16),RO9W(16),RP0,RP7,RP8, + RP8T(18)[32],RP8V(18)[33],RP9,RP9I(18)[31],RP9M(17),RP9S(16),RP9T(16), + RP9W(16),RQ0,RQ7,RQ8,RQ8T(18)[32],RQ8V(18)[33],RQ9,RQ9I(18)[31],RQ9M(17), + RQ9S(16),RQ9T(16),RQ9W(16),RR0,RR7,RR8,RR8T(18)[32],RR8V(18)[33],RR9, + RR9I(18)[31],RR9M(17),RR9S(16),RR9T(16),RR9W(16),RS0,RS7,RS8,RS8T(18)[32], + RS8V(18)[33],RS9,RS9I(18)[31],RS9M(17),RS9S(16),RS9T(16),RS9W(16),RT0,RT7,RT8, + RT8T(18)[32],RT8V(18)[33],RT9,RT9I(18)[31],RT9M(17),RT9S(16),RT9T(16), + RT9W(16),RU0,RU7,RU8,RU8T(18)[32],RU8V(18)[33],RU9,RU9I(18)[31],RU9M(17), + RU9S(16),RU9T(16),RU9W(16),RV0,RV7,RV8,RV8T(18)[32],RV8V(18)[33],RV9, + RV9I(18)[31],RV9M(17),RV9S(16),RV9T(16),RV9W(16),RW0,RW7,RW8,RW8T(18)[32], + RW8V(18)[33],RW9,RW9I(18)[31],RW9M(17),RW9S(16),RW9T(16),RW9W(16),RX0,RX7,RX8, + RX8T(18)[32],RX8V(18)[33],RX9,RX9I(18)[31],RX9M(17),RX9S(16),RX9T(16), + RX9W(16),RY0,RY7,RY8,RY8T(18)[32],RY8V(18)[33],RY9,RY9I(18)[31],RY9M(17), + RY9S(16),RY9T(16),RY9W(16),RZ0,RZ7,RZ8,RZ8T(18)[32],RZ8V(18)[33],RZ9, + RZ9I(18)[31],RZ9M(17),RZ9S(16),RZ9T(16),RZ9W(16),U0,U7,U8,U8T(18)[32], + U8V(18)[33],U9,U9I(18)[31],U9M(17),U9S(16),U9T(16),U9W(16),UA0,UA7,UA8, + UA8T(18)[32],UA8V(18)[33],UA9,UA9I(18)[31],UA9M(17),UA9S(16),UA9T(16), + UA9W(16),UB0,UB7,UB8,UB8T(18)[32],UB8V(18)[33],UB9,UB9I(18)[31],UB9M(17), + UB9S(16),UB9T(16),UB9W(16),UC0,UC7,UC8,UC8T(18)[32],UC8V(18)[33],UC9, + UC9I(18)[31],UC9M(17),UC9S(16),UC9T(16),UC9W(16),UD0,UD7,UD8,UD8T(18)[32], + UD8V(18)[33],UD9,UD9I(18)[31],UD9M(17),UD9S(16),UD9T(16),UD9W(16),UE0,UE7,UE8, + UE8T(18)[32],UE8V(18)[33],UE9,UE9I(18)[31],UE9M(17),UE9S(16),UE9T(16), + UE9W(16),UF0,UF7,UF8,UF8T(18)[32],UF8V(18)[33],UF9,UF9I(18)[31],UF9M(17), + UF9S(16),UF9T(16),UF9W(16),UG0,UG7,UG8,UG8T(18)[32],UG8V(18)[33],UG9, + UG9I(18)[31],UG9M(17),UG9S(16),UG9T(16),UG9W(16),UH0,UH7,UH8,UH8T(18)[32], + UH8V(18)[33],UH9,UH9I(18)[31],UH9M(17),UH9S(16),UH9T(16),UH9W(16),UI0,UI7,UI8, + UI8T(18)[32],UI8V(18)[33],UI9,UI9I(18)[31],UI9M(17),UI9S(16),UI9T(16), + UI9W(16),R30ZF,R35NP,R3F/9,R9HQ(17)[30],UE60SWA; Uzbekistan: 17: 30: AS: 41.20: -69.30: -5.0: UK: UJ,UK,UL,UM; Kazakhstan: 17: 30: AS: 43.30: -76.90: -5.0: UN: @@ -763,7 +761,7 @@ Canada: 05: 09: NA: 45.00: 80.00: 4.0: VE: VE2III(2),VE2IM(2),VE2KK(2),VE2MTA(2),VE2MTB(2),VE2NN(2),VE2NRK(2), VE2PR(2),VE2QRZ(2),VE2RB(2),VE2TVU(2),VE2UA(2),VE2VH(2),VE2WDX(2), VE2WT(2),VE2XAA/2(2),VE2XY(2),VE2YM(2),VE2Z(2),VE2ZC(5),VE2ZM(5),VE2ZV(5), - VE3EY/2(2),VE3NE/2(2),VE3RHJ/2(2),VE8AJ(2),VE8PW(2),VE8RCS(2),VER20071024, + VE3EY/2(2),VE3NE/2(2),VE3RHJ/2(2),VE8AJ(2),VE8PW(2),VE8RCS(2),VER20071116, VY0AA(4)[3],VY0PW(4)[3],VY2MGY/3(4)[4]; Australia: 30: 59: OC: -22.00: -135.00: -10.0: VK: AX,VH,VI,VJ,VK,VL,VM,VN,VZ; @@ -799,10 +797,9 @@ Ducie I.: 32: 63: OC: -24.67: 124.79: 8.5: VP6/d: Falkland Is.: 13: 16: SA: -51.70: 57.90: 4.0: VP8: VP8; South Georgia: 13: 73: SA: -54.30: 36.80: 2.0: VP8/g: - VP8GEO,VP8SGB,VP8SGK; + VP8DKX,VP8SGK; South Shetland: 13: 73: SA: -62.00: 58.30: 4.0: VP8/h: - CE9A,CE9R,CA8WCI/9,D88S,DT8A,HF0POL,HF0QF,HL0KSJ,HL5BDS,HL8KSJ,LU/R1ANF, - LU1ZC,LZ0A,OL0ANT,R1ANF,VP8/LZ1UQ,VP8DJK; + DT8A,HF0POL,HL8KSJ,LU/R1ANF,LU1ZC,LZ0A,R1ANF,VP8/LZ1UQ,VP8DJK; South Orkney: 13: 73: SA: -60.00: 45.50: 3.0: VP8/o: AY1ZA,LU1ZA,LU2ERA/Z; South Sandwich: 13: 73: SA: -57.00: 26.70: 2.0: VP8/s: @@ -814,7 +811,7 @@ Chagos Is.: 39: 41: AF: -7.30: -72.40: -5.0: VQ9: Hong Kong: 24: 44: AS: 22.30: -114.30: -8.0: VR: VR; India: 22: 41: AS: 22.00: -80.00: -5.5: VU: - 8T,8U,8V,8W,8X,8Y,AT,AU,AV,AW,VT,VU,VV,VW; + 8T,8U,8V,8W,8X,8Y,AT,AU,AV,AW,VT,VU,VV,VW,AT7CD; Andaman & Nicobar: 26: 49: AS: 11.70: -92.80: -5.5: VU4: 8T4,8U4,8V4,8W4,8X4,8Y4,AT4,AU4,AV4,AW4,VT4,VU4,VV4,VW4,VU3VPX,VU3VPY; Laccadive Is.: 22: 41: AS: 10.00: -73.00: -5.5: VU7: diff --git a/data/prefix_data.pl b/data/prefix_data.pl index 92e252d6..b6e4ac31 100644 --- a/data/prefix_data.pl +++ b/data/prefix_data.pl @@ -202,7 +202,6 @@ '7H' => '231', '7I' => '231', '7J' => '92', - '7J1ACH' => '93', '7K' => '92', '7L' => '92', '7M' => '92', @@ -276,6 +275,7 @@ '9M0' => '261', '9M2' => '302', '9M2/PG5M' => '261', + '9M2/PG5M/6' => '303,527', '9M4' => '302', '9M4SDX' => '261', '9M50' => '302', @@ -446,6 +446,7 @@ 'AL' => '112', 'AL0F' => '220', 'AL1VE' => '220', + 'AL4T' => '220', 'AL7C' => '220', 'AL7KT' => '220', 'AL7LV' => '220', @@ -474,6 +475,7 @@ 'AT0' => '365', 'AT4' => '214', 'AT7' => '215', + 'AT7CD' => '213,456,457,458', 'AU' => '459', 'AU4' => '214', 'AU7' => '215', @@ -675,7 +677,6 @@ 'CA0' => '17', 'CA0X' => '18', 'CA0Z' => '19', - 'CA8WCI/9' => '208', 'CB' => '16', 'CB0' => '17', 'CB0X' => '18', @@ -695,8 +696,6 @@ 'CE0Y' => '17', 'CE0Z' => '19', 'CE9' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'CE9A' => '208', - 'CE9R' => '208', 'CF' => '434', 'CG' => '434', 'CH' => '434', @@ -746,7 +745,6 @@ 'D6' => '31', 'D7' => '78', 'D8' => '78', - 'D88S' => '208', 'D9' => '78', 'DA' => '32', 'DB' => '32', @@ -788,14 +786,9 @@ 'E5' => '250', 'E5/N' => '249', 'E5/S' => '250', - 'E51PDX' => '249', - 'E51PEN' => '249', - 'E51QMA' => '249', - 'E51TUG' => '249', 'E51WL' => '249', 'E7' => '325', 'EA' => '34', - 'EA5ON/6' => '35', 'EA6' => '35', 'EA8' => '36', 'EA9' => '37,346,347', @@ -808,6 +801,7 @@ 'EC8' => '36', 'EC9' => '346,347', 'ED' => '34', + 'ED5ON/6' => '35', 'ED6' => '35', 'ED8' => '36', 'ED9' => '346,347', @@ -870,7 +864,6 @@ 'FR/G' => '51', 'FR/J' => '52', 'FR/T' => '53', - 'FR5ZQ/T' => '53', 'FR5ZU/T' => '53', 'FS' => '54', 'FT' => '55,350,57,366', @@ -1243,7 +1236,6 @@ 'HE0' => '70', 'HF' => '147', 'HF0POL' => '208', - 'HF0QF' => '208', 'HG' => '68', 'HH' => '73', 'HI' => '74', @@ -1257,8 +1249,6 @@ 'HK0M' => '76', 'HK0TU' => '76', 'HL' => '78', - 'HL0KSJ' => '208', - 'HL5BDS' => '208', 'HL8KSJ' => '208', 'HM' => '317', 'HN' => '232', @@ -1281,11 +1271,20 @@ 'IF9' => '356', 'IG9' => '354', 'IH9' => '355', - 'II0P' => '85', 'II9' => '356', 'IJ9' => '356', 'IM0' => '85', 'IO9' => '356', + 'IQ0AG' => '85', + 'IQ0AH' => '85', + 'IQ0AI' => '85', + 'IQ0AK' => '85', + 'IQ0AL' => '85', + 'IQ0AM' => '85', + 'IQ0EH' => '85', + 'IQ0HO' => '85', + 'IQ0QP' => '85', + 'IQ0SS' => '85', 'IQ9' => '356', 'IR9' => '356', 'IS' => '85', @@ -1322,13 +1321,6 @@ 'JD/O' => '94', 'JD1' => '94', 'JD1/JI7BCD' => '93', - 'JD1BIE/JD1' => '93', - 'JD1BIP' => '93', - 'JD1BIU' => '93', - 'JD1BIY' => '93', - 'JD1BIZ' => '93', - 'JD1BJA' => '93', - 'JD1BJE' => '93', 'JD1BME' => '93', 'JD1BMM' => '93', 'JD1YAA' => '93', @@ -1336,20 +1328,17 @@ 'JE' => '92', 'JF' => '92', 'JG' => '92', - 'JG8NQJ/JD1' => '93', 'JH' => '92', 'JI' => '92', 'JJ' => '92', 'JK' => '92', 'JL' => '92', - 'JL1KFR/JD1' => '93', 'JM' => '92', 'JN' => '92', 'JO' => '92', 'JP' => '92', 'JQ' => '92', 'JR' => '92', - 'JR6TYH/JD1' => '93', 'JS' => '92', 'JT' => '95,363', 'JU' => '95', @@ -1383,7 +1372,6 @@ 'K1TU' => '220', 'K2' => '492,495', 'K2AAW' => '220', - 'K2ARB/KC4' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'K2BA' => '220', 'K2HT' => '220', 'K2HTO' => '220', @@ -1496,10 +1484,8 @@ 'KC4/K2ARB' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'KC4AAA' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'KC4AAC' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'KC4AAF' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'KC4USB' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'KC4USV' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'KC4USX' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'KC5' => '461,479,486,493,497,504', 'KC6' => '463,464,465,466', 'KC7' => '462,474,487,494,498,505,508,511', @@ -1616,12 +1602,10 @@ 'KL0ET' => '220', 'KL0LN' => '220', 'KL1IF' => '220', - 'KL2A/7' => '220', 'KL7' => '112,389,390,391,392', 'KL7FDQ' => '220', 'KL7WP' => '220', 'KL7XX' => '220', - 'KL9K' => '78', 'KM0' => '467,473,477,484,485,489,490,502', 'KM1' => '468,480,482,491,500,507', 'KM2' => '492,495', @@ -1733,6 +1717,7 @@ 'KV9' => '475,476,509', 'KW0' => '467,473,477,484,485,489,490,502', 'KW1' => '468,480,482,491,500,507', + 'KW1W' => '392', 'KW2' => '492,495', 'KW3' => '469,470,481,499', 'KW4' => '460,471,472,478,488,501,503,506', @@ -1973,7 +1958,7 @@ 'LW1DAL/D' => '119,396,397', 'LW1EXU/D' => '119,396,397', 'LW1EXU/Y' => '119,396,397', - 'LW2DX/D' => '119,396,397', + 'LW2DX/E' => '119,396,397', 'LW2DX/P' => '119,396,397', 'LW2DX/Q' => '119,396,397', 'LW2DX/R' => '119,396,397', @@ -2030,6 +2015,7 @@ 'MN' => '62', 'MP' => '65', 'MS' => '64', + 'MS0ZCG' => '351', 'MT' => '61', 'MU' => '65', 'MVI' => '312', @@ -2385,7 +2371,6 @@ 'OJ0' => '127', 'OK' => '128', 'OL' => '128', - 'OL0ANT' => '208', 'OM' => '320', 'ON' => '129', 'OO' => '129', @@ -2511,13 +2496,7 @@ 'R0' => '422,424,428', 'R1' => '418', 'R1AN' => '385', - 'R1ANB' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'R1ANC' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'R1AND' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'R1ANF' => '208', - 'R1ANN' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'R1ANT' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'R1ANZ' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'R1FJ' => '174', 'R1MV' => '312', 'R2' => '175', @@ -2778,8 +2757,16 @@ 'RO3' => '419', 'RO4' => '420', 'RO6' => '421', + 'RO7' => '176,425,430', 'RO8' => '431', + 'RO8T' => '176,425,430', + 'RO8V' => '176,425,430', 'RO9' => '425,430', + 'RO9I' => '176,425,430', + 'RO9M' => '176,425,430', + 'RO9S' => '176,425,430', + 'RO9T' => '176,425,430', + 'RO9W' => '176,425,430', 'RP0' => '422,424,428', 'RP1' => '418', 'RP2' => '175', @@ -2993,7 +2980,6 @@ 'SU' => '149', 'SV' => '150', 'SV/A' => '153', - 'SV0LK' => '152', 'SV0XAZ' => '152', 'SV2ASP/A' => '153', 'SV5' => '151', @@ -3060,7 +3046,6 @@ 'TO4E' => '52', 'TO4G' => '51', 'TO4T' => '43', - 'TO4WW' => '52', 'TO5A' => '46', 'TO5AA' => '46', 'TO5BG' => '43', @@ -3070,7 +3055,6 @@ 'TO5GI' => '43', 'TO5J' => '46', 'TO5MM' => '46', - 'TO5R' => '50,51,52,53', 'TO5ROM' => '43', 'TO5S' => '43', 'TO5T' => '46', @@ -3403,7 +3387,7 @@ 'VE8PW' => '191', 'VE8RCS' => '191', 'VE9' => '436', - 'VER20071024' => '191', + 'VER20071116' => '191', 'VERSION' => '536', 'VF' => '434', 'VF0' => '191', @@ -3547,14 +3531,12 @@ 'VP8/LZ1UQ' => '208', 'VP8/O' => '206', 'VP8/S' => '207', - 'VP8BF' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'VP8DJB' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'VP8DJK' => '208', 'VP8DKF' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'VP8GEO' => '205', + 'VP8DKX' => '205', 'VP8PJ' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'VP8ROT' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', - 'VP8SGB' => '205', 'VP8SGK' => '205', 'VP8SSI' => '207', 'VP8THU' => '207', @@ -3612,7 +3594,6 @@ 'W1DY' => '220', 'W1DYH' => '220', 'W1DYJ' => '220', - 'W1MRQ/KC4' => '99,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384', 'W1MVY' => '220', 'W1RH' => '220', 'W1SRD' => '220', diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 5a88a2d4..8b415974 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -857,8 +857,10 @@ sub send_local_config } elsif ($self->{do_pc9x}) { dbg("send_local_config: doing pc9x"); my $node = Route::Node::get($self->{call}); - $self->send_last_pc92_config($main::routeroot); - $self->send(pc92a($main::routeroot, $node)) unless $main::routeroot->last_PC92C =~ /$self->{call}/; +# $self->send_last_pc92_config($main::routeroot); +# $self->send(pc92a($main::routeroot, $node)) unless $main::routeroot->last_PC92C =~ /$self->{call}/; + $self->send(pc92a($main::routeroot, $node)); + $self->send(pc92k($main::routeroot)); } else { # create a list of all the nodes that are not connected to this connection # and are not themselves isolated, this to make sure that isolated nodes diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index f18089ff..7839e11c 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -43,17 +43,19 @@ use vars qw($pc11_max_age $pc23_max_age $last_pc50 $eph_restime $eph_info_restim $investigation_int $pc19_version $myprot_version %nodehops $baddx $badspotter $badnode $censorpc $allowzero $decode_dk0wcy $send_opernam @checklist - $eph_pc15_restime $pc9x_past_age $pc9x_future_age + $eph_pc15_restime $pc9x_past_age $pc10_dupe_age $pc92_slug_changes $last_pc92_slug - $pc92Ain $pc92Cin $pc92Din $pc92Kin + $pc92Ain $pc92Cin $pc92Din $pc92Kin $pc9x_time_tolerance ); -$pc9x_past_age = 62*60; # maximum age in the past of a px9x (a config record might be the only - # thing a node might send - once an hour) -$pc9x_future_age = 2*3600; # maximum age in the future ditto $pc10_dupe_age = 45; # just something to catch duplicate PC10->PC93 conversions $pc92_slug_changes = 60; # slug any changes going outward for this long $last_pc92_slug = 0; # the last time we sent out any delayed add or del PC92s +$pc9x_time_tolerance = 15*60; # the time on a pc9x is allowed to be out by this amount +$pc9x_past_age = (122*60)+ # maximum age in the past of a px9x (a config record might be the only + $pc9x_time_tolerance; # thing a node might send - once an hour and we allow an extra hour for luck) + # this is actually the partition between "yesterday" and "today" but old. + # incoming talk commands sub handle_10 @@ -1478,6 +1480,21 @@ sub check_pc9x_t my $pc = shift; my $create = shift; + # check that the time is between 0 >= $t < 86400 + unless ($t >= 0 && $t < 86400) { + dbg("PCPROT: time invalid t: $t, ignored") if isdbg('chanerr'); + return undef; + } + + # check that the time of this pc9x is within tolerance (default 15 mins either way) + my $now = $main::systime - $main::systime_daystart ; + my $diff = abs($now - $t); + unless ($diff < $pc9x_time_tolerance || 86400 - $diff < $pc9x_time_tolerance) { + my $c = ref $call ? $call->call : $call; + dbg("PC9XERR: $c time out of range t: $t now: $now diff: $diff > $pc9x_time_tolerance, ignored") if isdbg('chan'); + return undef; + } + my $parent = ref $call ? $call : Route::Node::get($call); if ($parent) { # we only do this for external calls whose routing table @@ -1489,19 +1506,23 @@ sub check_pc9x_t my $lastid = $parent->lastid; if (defined $lastid) { if ($t < $lastid) { - if ($t+86400-$lastid > $pc9x_past_age) { + # note that this is where we determine whether this pc9x has come in yesterday + # but is still greater (modulo 86400) than the lastid or is simply an old + # duplicate sentence. To determine this we need to do some module 86400 + # arithmetic. High numbers mean that this is an old duplicate sentence, + # low numbers that it is a new sentence. + # + # Typically you will see yesterday being taken on $t = 84, $lastid = 86235 + # and old dupes with $t = 234, $lastid = 256 (which give answers 249 and + # 86378 respectively in the calculation below). + # + if (($t-$lastid)%86400 > $pc9x_past_age) { dbg("PCPROT: dup id on $t <= lastid $lastid, ignored") if isdbg('chanerr') || isdbg('pc92dedupe'); return undef; } } elsif ($t == $lastid) { dbg("PCPROT: dup id on $t == lastid $lastid, ignored") if isdbg('chanerr') || isdbg('pc92dedupe'); return undef; - } else { - # $t > $lastid, check that the timestamp offered isn't too far away from 'now' - if ($t-$lastid > $pc9x_future_age ) { - dbg("PCPROT: id $t too far in the future of lastid $lastid, ignored") if isdbg('chanerr') || isdbg('pc92dedupe'); - return undef; - } } } } @@ -1510,7 +1531,7 @@ sub check_pc9x_t } else { return undef; } - if ('pc92dedupe') { + if (isdbg('pc92dedupe')) { my $exists = exists $parent->{lastid}; # naughty, naughty :-) my $val = $parent->{lastid}; my $s = $exists ? (defined $val ? $val : 'exists/undef') : 'undef'; diff --git a/perl/Route.pm b/perl/Route.pm index abc09847..868317a9 100644 --- a/perl/Route.pm +++ b/perl/Route.pm @@ -181,6 +181,7 @@ sub config { my $self = shift; my $nodes_only = shift || 0; + my $width = shift || 79; my $level = shift; my $seen = shift; my @out; @@ -223,7 +224,7 @@ sub config } else { $c = "$ucall?"; } - if ((length $line) + (length $c) + 1 < 79) { + if ((length $line) + (length $c) + 1 < $width) { $line .= $c . ' '; } else { $line =~ s/\s+$//; @@ -251,7 +252,7 @@ sub config if ($nref) { my $c = $nref->user_call; dbg("recursing from $call -> $c") if isdbg('routec'); - my @rout = $nref->config($nodes_only, $level+1, $seen, @_); + my @rout = $nref->config($nodes_only, $width, $level+1, $seen, @_); if (@rout && @_) { push @out, ' ' x ($level*2) . $self->user_call unless grep /^\s+$call/, @out; } diff --git a/perl/Version.pm b/perl/Version.pm index e10f759d..9cb07279 100644 --- a/perl/Version.pm +++ b/perl/Version.pm @@ -11,6 +11,6 @@ use vars qw($version $subversion $build); $version = '1.54'; $subversion = '0'; -$build = '180'; +$build = '181'; 1; -- 2.43.0