isdnlog Version 3.35
zone data for .nl (many thanks to Paul!) WARNING: This version of isdnlog dont even compile! *EXPERIMENTAL*!!
This commit is contained in:
parent
06b8787949
commit
f6fe20a597
|
@ -1,4 +1,4 @@
|
|||
## $Id: Makefile.in,v 1.87 1999/06/16 19:11:54 akool Exp $
|
||||
## $Id: Makefile.in,v 1.88 1999/06/21 19:32:08 akool Exp $
|
||||
##
|
||||
## ISDN accounting for isdn4linux.
|
||||
##
|
||||
|
@ -19,6 +19,12 @@
|
|||
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
##
|
||||
## $Log: Makefile.in,v $
|
||||
## Revision 1.88 1999/06/21 19:32:08 akool
|
||||
## isdnlog Version 3.35
|
||||
## zone data for .nl (many thanks to Paul!)
|
||||
##
|
||||
## WARNING: This version of isdnlog dont even compile! *EXPERIMENTAL*!!
|
||||
##
|
||||
## Revision 1.87 1999/06/16 19:11:54 akool
|
||||
## isdnlog Version 3.34
|
||||
## fixed some memory faults
|
||||
|
@ -686,7 +692,7 @@ SERVICEFILE = /etc/services
|
|||
# DON'T EDIT BELOW THIS LINE
|
||||
######################################################################
|
||||
|
||||
VERSION = 3.34
|
||||
VERSION = 3.35
|
||||
|
||||
MANPAGES = isdnlog/callerid.conf.5 isdnlog/isdn.conf.5 \
|
||||
isdnlog/isdnformat.5 isdnlog/isdnlog.5 isdnlog/isdnlog.8 \
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: processor.c,v 1.68 1999/06/16 23:37:35 akool Exp $
|
||||
/* $Id: processor.c,v 1.69 1999/06/21 19:33:53 akool Exp $
|
||||
*
|
||||
* ISDN accounting for isdn4linux. (log-module)
|
||||
*
|
||||
|
@ -19,6 +19,12 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: processor.c,v $
|
||||
* Revision 1.69 1999/06/21 19:33:53 akool
|
||||
* isdnlog Version 3.35
|
||||
* zone data for .nl (many thanks to Paul!)
|
||||
*
|
||||
* WARNING: This version of isdnlog dont even compile! *EXPERIMENTAL*!!
|
||||
*
|
||||
* Revision 1.68 1999/06/16 23:37:35 akool
|
||||
* fixed zone-processing
|
||||
*
|
||||
|
@ -3573,10 +3579,13 @@ static void prepareRate(int chan, char **msg, char **tip, int viarep)
|
|||
if (call[chan].intern[CALLING])
|
||||
call[chan].Rate.src = mynum;
|
||||
else {
|
||||
static char src[BUFSIZ];
|
||||
static char src[BUFSIZ], *text;
|
||||
auto int l;
|
||||
|
||||
|
||||
l = getAreacode(DTAG, call[chan].num[CALLING] + 3, &text);
|
||||
print_msg(PRT_NORMAL, "getAreacode(49,%s,\"%s\")=%d\n", call[chan].num[CALLING] + 3, text, l);
|
||||
|
||||
if ((get_areacode(call[chan].num[CALLING], &l, C_NO_WARN | C_NO_EXPAND | C_NO_ERROR)))
|
||||
Strncpy(src, call[chan].num[CALLING], l + 1);
|
||||
else
|
||||
|
@ -3586,9 +3595,11 @@ static void prepareRate(int chan, char **msg, char **tip, int viarep)
|
|||
}
|
||||
|
||||
{
|
||||
static char dst[BUFSIZ];
|
||||
static char dst[BUFSIZ], *text;
|
||||
auto int l;
|
||||
|
||||
l = getAreacode(DTAG, call[chan].num[CALLED] + 3, &text);
|
||||
print_msg(PRT_NORMAL, "getAreacode(49,%s,\"%s\")=%d\n", call[chan].num[CALLED] + 3, text, l);
|
||||
if ((get_areacode(call[chan].num[CALLED], &l, C_NO_WARN | C_NO_EXPAND | C_NO_ERROR)))
|
||||
Strncpy(dst, call[chan].num[CALLED], l + 1);
|
||||
else
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
V:1.02-Germany [16-Jun-1999 21:08:01]
|
||||
V:1.02-Germany [20-Jun-1999 22:27:34]
|
||||
|
||||
# Währungsformat
|
||||
U:%.3f DM
|
||||
|
@ -8,7 +8,7 @@ U:%.3f DM
|
|||
#
|
||||
# (C) Copyright 1999 by Andreas Kool (akool@isdn4linux.de)
|
||||
#
|
||||
# $Id: rate-de.dat,v 1.22 1999/06/16 19:12:01 akool Exp $
|
||||
# $Id: rate-de.dat,v 1.23 1999/06/21 19:32:14 akool Exp $
|
||||
#
|
||||
# Zonenzuordnung für Deutschland
|
||||
#
|
||||
|
@ -11295,7 +11295,9 @@ T:*/8-18=0.07(60)/90
|
|||
T:*/18-8=0.035(60)/90
|
||||
Z:3,4
|
||||
T:*/8-18=0.12(60)/1
|
||||
T:*/18-8=0.09(60)/1
|
||||
T:*/18-2,6-8=0.09(60)/1
|
||||
T:*/2-6=0.065(60)/1 Data
|
||||
A:+49
|
||||
Z:10-15
|
||||
T:*/8-18=0.59(60)/1
|
||||
T:*/18-8=0.49(60)/1
|
||||
|
@ -13268,7 +13270,7 @@ Z:457
|
|||
A:Ägypten # +20
|
||||
T:*/08-20=1.199(60)/1
|
||||
T:*/20-08=1.179(60)/1
|
||||
Z:358 Alaska
|
||||
Z:458 Alaska
|
||||
A:Alaska # +1907
|
||||
T:*/08-20=0.319(60)/1
|
||||
T:*/20-08=0.299(60)/1
|
||||
|
@ -13375,7 +13377,7 @@ P:79 Viatel
|
|||
##
|
||||
## macht *keinen* Tarifwechsel in laufender Verbindung!
|
||||
##
|
||||
G:01.05.1999
|
||||
G:15.06.1999
|
||||
C:VIAPHONE GmbH, Hanauer Landstraße 187, 60314 Frankfurt 01079
|
||||
C:Homepage: http://www.viatel.de
|
||||
C:Hotline: 0800/79-01079
|
||||
|
@ -13384,20 +13386,188 @@ C:Telefax: 069/94 994-100
|
|||
C:Adresse: Hanauer Landstrasse 187-189
|
||||
C: 60314 Frankfurt am Main
|
||||
D:dtag
|
||||
Z:2-4 Fern
|
||||
T:W/09-18=0.08/30,0.16(60)/1 Standard
|
||||
T:W/18-09=0.045/30,0.09(60)/1 Spar
|
||||
T:E/*=0.045/30,0.09(60)/1 Nacht
|
||||
Z:2-4 National
|
||||
T:W/09-18=0.064/30,0.128(60)/1 Hauptzeit
|
||||
T:W/18-21=0.085(60)/60 Nebenzeit
|
||||
T:W/21-9=0.055(60)/60 Nacht
|
||||
T:E/9-21=0.085(60)/60 Hauptzeit
|
||||
T:E/21-9=0.055(60)/60 Nacht
|
||||
A:+49
|
||||
Z:5-10 Deutschland GSM
|
||||
A:01610,01617,01619,01618 # C
|
||||
A:0170,0171 # D1
|
||||
A:0172,0173 # D2
|
||||
A:0177,0178 # Eplus
|
||||
A:0176,0179 # E2
|
||||
T:W/09-18=0.365/30,0.73(60)/1 Standard
|
||||
T:W/18-09=0.18/30,0.36(60)/1 Spar
|
||||
T:E/*=0.18/30,0.36(60)/1 Spar
|
||||
Z:10-15 Mobilfunk
|
||||
T:W/09-18=0.365/30,0.730(60)/1 Hauptzeit
|
||||
T:W/18-09=0.01825/30,0.365(60)/1 Nebenzeit
|
||||
T:E/*=0.365(60)/60
|
||||
# Auslandstarife
|
||||
Z:200
|
||||
A:Afganistan,Amerikanisch Samoa,Angola,Antigua,Aquatorial Guinea,Anguilla
|
||||
A:Armenien,Aruba,Ascension,Aserbaidschan,Athiopien,Bahamas,Bahrain
|
||||
A:Bangladesch,Barbados,Belize,Benin,Bermuda,Bhutan,Botswana
|
||||
A:Britisch Jungferninseln,Brunei,Burkina Faso,Burma,Burundi,Cap Verde
|
||||
A:Cayman Inseln,Christmas & Cocos Inseln,Cook Inseln,Diego Garcia
|
||||
A:Dominica,Dschibuti,Elfenbeinküste,Eritrea,Falkland Inseln,Fidschi Inseln
|
||||
A:Franz. Antillen,Guadeloup,Franz. Guinea,Franz. Polynesion,Gabun
|
||||
A:Gambia,Ghana,Grenada,Carriacou,Grönland,Guam,Guantanamo Bay,Guinea
|
||||
A:Guinea Bissau,Guayana,Haiti,Indien,Irak,Iran,Jamaika,Jemen,Kambodscha
|
||||
A:Kamerun,Kasachstan,Katar,Kenia,Kirgisien,Kiribati,Kommoren,Kongo
|
||||
A:Korea Nord,Kuba,Kuwait,Laos,Lesotho,Liberia,Macao,Madagaskar
|
||||
A:Madeira,Malawi,Malediven,Mali,Marshall Inseln,Mauretanien,Mauritius
|
||||
A:Mayotte Inseln,Mikronesien,Mongolei,Montserrat,Mozambik,Namibia
|
||||
A:Nauru,Nepal,Neu Kaledonien,Nevis,Niederl. Antillen,Niger,Nigeria
|
||||
A:Niue,Norfolk Inseln,Oman,Pakistan,Palau,Papua Neu Guinea,Puerto Rico
|
||||
A:Reunion,Ruanda,Salomon Inseln,Sambia,Sao Tome,Saudi-Arabien,Senegal
|
||||
A:Seychellen,Somalia,Sri Lanka,St. Helena,St. Lucia,St. Kitts
|
||||
A:St. Pierre & Miquelon,St. Vincent & Greens.,Sudan,Surinam,Swaziland
|
||||
A:Tadschikistan,Tansania,Togo,Tonga,Trinidad & Tobago,Tschad,Turkmenistan
|
||||
A:Turks and Caicos Inseln,Tuvalu,US Jungferninseln,Uganda,Usbekistan
|
||||
A:Vanuatu,Vereinte Arabische Emirate,Vienam,Wallis & Futuna, Westl. Marianen
|
||||
A:Westl. Samoa,Zaire,Zentral. Afrika. Rep.,Zimbabwe
|
||||
T:W/9-18=1.065/30,2.13(60)/1
|
||||
T:W/18-9=0.937/30,1.874(60)/1
|
||||
T:E/*=0.937/30,1.874(60)/1
|
||||
Z:201
|
||||
A:Agypten,Jordanien,Syrien,Libanon
|
||||
T:*/*=0.5475/30,1.095(60)/1
|
||||
Z:202
|
||||
A:Albanien,Litauen,Mazedonien,Moldavien,Bosnien-Herzegovina,Bulgarien
|
||||
A:Estland,Rumänien,Rußland,Slowenien,Jugoslawien,Ukraine,Lettland
|
||||
T:W/9-18=0.5125/30,1.025(60)/1
|
||||
T:W/18-9=0.451/30,0.902(60)/1
|
||||
T:E/*=0.451/30,0.902(60)/1
|
||||
Z:203
|
||||
A:Algerien,Marokko,Gibraltar,Israel,Tunesien,Weißrußland,Libyen
|
||||
T:W/9-18=0.483/30,0.966(60)/1
|
||||
T:W/18-9=0.425/30,0.850(60)/1
|
||||
T:E/*=0.425/30,0.850(60)/1
|
||||
Z:204
|
||||
A:Andorra,Belgien Mobilfunk,Liechtenstein,Luxemburg,Monaco,Dänemark
|
||||
A:Niederlande Mobilfunk,San Marino,Irland,Spanien
|
||||
T:W/9-18=0.480/30,0.960(60)/1
|
||||
T:W/18-9=0.297/30,0.594(60)/1
|
||||
T:E/*=0.297/30,0.594(60)/1
|
||||
Z:205
|
||||
A:Argentinien,Mexiko,Dominikanische Republik,Brasilien,Kolumbien,Südafrika
|
||||
T:W/9-18=1.065/30,2.13(60)/1
|
||||
T:W/18-9=0.6605/30,1.321(60)/1
|
||||
T:E/*=0.6605/30,1.321(60)/1
|
||||
Z:206
|
||||
A:Australien,Japan
|
||||
T:W/9-18=0.631/30,1.262(60)/1
|
||||
T:W/18-9=0.4355/30,0.871(60)/1
|
||||
T:E/*=0.4355/30,0.871(60)/1
|
||||
Z:207
|
||||
A:Malaysia,Bolivien,China,Ecuador,El Salvador,Panama,Paraguay,Peru
|
||||
A:Guatemala,Honduras,Indonesien,Kosta Rica,Thailand,Uruguay,Venezuela
|
||||
A:Nicaragua
|
||||
T:W/9-18=1.065/30,2.13(60)/1
|
||||
T:W/18-9=0.788/30,1.576(60)/1
|
||||
T:E/*=0.788/30,1.576(60)/1
|
||||
Z:208
|
||||
A:Malta
|
||||
T:W/9-18=0.498/30,0.996(60)/1
|
||||
T:W/18-9=0.438/30,0.876(60)/1
|
||||
T:E/*=0.438/30,0.876(60)/1
|
||||
Z:209
|
||||
A:Belgien,Frankreich,Niederlande,Schweiz,Großbritannien,Schweiz Mobilfunk
|
||||
T:1-5/9-18=0.185/30,0.37(60)/1
|
||||
T:2-5/18-9=0.165/30,0.33(60)/1
|
||||
T:1/18-0=0.165/30,0.33(60)/1
|
||||
T:6/0-9=0.165/30,0.33(60)/1
|
||||
T:6/9-0=0.241/60 Weekend Special
|
||||
T:7/*=0.241/60 Weekend Special
|
||||
T:1/0-9=0.241/60 Weekend Special
|
||||
Z:210
|
||||
A:Osterreich
|
||||
T:W/9-18=0.185/30,0.37(60)/1
|
||||
T:W/18-9=0.165/30,0.33(60)/1
|
||||
T:E/*=0.165/30,0.33(60)/1
|
||||
Z:211
|
||||
A:Chile
|
||||
T:W/9-18=0.9665/30,1.933(60)/1
|
||||
T:W/18-9=0.483/30,0.966(60)/1
|
||||
T:E/*=0.483/30,0.966(60)/1
|
||||
Z:212
|
||||
A:Faroer Inseln
|
||||
T:W/9-18=0.338/30,0.676(60)/1
|
||||
T:W/18-9=0.3045/30,0.609(60)/1
|
||||
T:E/*=0.3045/30,0.609(60)/1
|
||||
Z:213
|
||||
A:Finnland,Norwegen,Portugal,Schweden,Island
|
||||
T:W/9-18=0.3985/30,0.797(60)/1
|
||||
T:W/18-9=0.299/30,0.598(60)/1
|
||||
T:E/*=0.299/30,0.598(60)/1
|
||||
Z:214
|
||||
A:Frankreich Mobilfunk
|
||||
T:*/*=0.2635/30,0.527(60)/1
|
||||
Z:215
|
||||
A:Georgien
|
||||
T:W/9-18=1.331/30,2.662(60)/1
|
||||
T:W/18-9=1.025/30,2.05(60)/1
|
||||
T:E/*=1.025/30,2.05(60)/1
|
||||
Z:216
|
||||
A:Griechenland
|
||||
T:W/9-18=0.345/30,0.690(60)/1
|
||||
T:W/18-9=0.328/30,0.656(60)/1
|
||||
T:E/*=0.328/30,0.656(60)/1
|
||||
Z:217
|
||||
A:Neuseeland,Singapur,Hongkong
|
||||
T:W/9-18=0.8185/30,1.637(60)/1
|
||||
T:W/18-9=0.434/30,0.868(60)/1
|
||||
T:E/*=0.434/30,0.868(60)/1
|
||||
Z:218
|
||||
A:Philippinen
|
||||
T:W/9-18=1.045/30,2.09(60)/1
|
||||
T:W/18-9=0.690/30,1.38(60)/1
|
||||
T:E/*=0.690/30,1.38(60)/1
|
||||
Z:219
|
||||
A:Polen
|
||||
T:W/9-18=0.337/30,0.674(60)/1
|
||||
T:W/18-9=0.3035/30,0.607(60)/1
|
||||
T:E/*=0.3035/30,0.607(60)/1
|
||||
Z:220
|
||||
A:Slowakei,Tschechien
|
||||
T:W/9-18=0.409/30,0.818(60)/1
|
||||
T:W/18-9=0.307/30,0.614(60)/1
|
||||
T:E/*=0.307/30,0.614(60)/1
|
||||
Z:221
|
||||
A:Großbritannien Mobilfunk
|
||||
T:*/*=0.2365/30,0.473(60)/1
|
||||
Z:222
|
||||
A:Italien,Italien POPs
|
||||
T:W/9-18=0.3215/30,0.643(60)/1
|
||||
T:W/18-9=0.2895/30,0.579(60)/1
|
||||
T:E/*=0.2895/30,0.579(60)/1
|
||||
Z:223
|
||||
A:Italien - Mailand,Italien - Rom
|
||||
T:*/*=0.273/30,0.546(60)/1
|
||||
Z:224
|
||||
A:Korea Süd
|
||||
T:W/9-18=0.8185/30,1.637(60)/1
|
||||
T:W/18-9=0.54/30,1.08(60)/1
|
||||
T:E/*=0.54/30,1.08(60)/1
|
||||
Z:225
|
||||
A:Kroatien,Ungarn.Zypern
|
||||
T:W/9-18=0.4635/30,0.927(60)/1
|
||||
T:W/18-9=0.4125/30,0.825(60)/1
|
||||
T:E/*=0.4125/30,0.825(60)/1
|
||||
Z:226
|
||||
A:Spanien - Barcelona,Spanien - Bilbao,Spanien - Gerona,Spanien - Madrid
|
||||
A:Spanien - Mallorca,Spanien - Tarragona,Spanien - Valencia
|
||||
T:W/9-18=0.3155/30,0.631(60)/1
|
||||
T:W/18-9=0.284/30,0.568(60)/1
|
||||
T:E/*=0.284/30,0.568(60)/1
|
||||
Z:227
|
||||
A:Taiwan
|
||||
T:W/9-18=0.789/30,1.578(60)/1
|
||||
T:W/18-9=0.5445/30,1.089(60)/1
|
||||
T:E/*=0.5445/30,1.089(60)/1
|
||||
Z:228
|
||||
A:Türkei
|
||||
T:W/9-18=0.3995/30,0.799(60)/1
|
||||
T:W/18-9=0.3795/30,0.759(60)/1
|
||||
T:E/*=0.3795/30,0.759(60)/1
|
||||
Z:229
|
||||
A:USA
|
||||
T:*/*=0.12/30,0.24(60)/1
|
||||
#####################################################################
|
||||
#
|
||||
#
|
||||
|
@ -14142,7 +14312,7 @@ T:*/*=0.847/0,0.121/6.7
|
|||
# 51:01051 Telecom 04.06.1999 je
|
||||
# 70:Arcor 01.05.1999 ak
|
||||
# 78:3U 01.05.1999 ak
|
||||
# 79:Viatel 01.05.1999 ak
|
||||
# 79:Viatel 20.06.1999 je
|
||||
# 85:GTS-WESTCom 01.05.1999 ak
|
||||
# 90:Viag Interkom 29.05.1999 je
|
||||
#
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: rate.c,v 1.23 1999/06/16 23:37:50 akool Exp $
|
||||
/* $Id: rate.c,v 1.24 1999/06/21 19:34:28 akool Exp $
|
||||
*
|
||||
* Tarifdatenbank
|
||||
*
|
||||
|
@ -19,6 +19,12 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: rate.c,v $
|
||||
* Revision 1.24 1999/06/21 19:34:28 akool
|
||||
* isdnlog Version 3.35
|
||||
* zone data for .nl (many thanks to Paul!)
|
||||
*
|
||||
* WARNING: This version of isdnlog dont even compile! *EXPERIMENTAL*!!
|
||||
*
|
||||
* Revision 1.23 1999/06/16 23:37:50 akool
|
||||
* fixed zone-processing
|
||||
*
|
||||
|
@ -1149,7 +1155,6 @@ int getRate(RATE *Rate, char **msg)
|
|||
if (Rate->domestic && *(Rate->dst)=='+') {
|
||||
int l=strlen(mycountry);
|
||||
int z=getZone(prefix, Rate->src+l, Rate->dst+l);
|
||||
print_msg(PRT_NORMAL, "@@@ getZone(%d,%s,%s)=%d\n", prefix, Rate->src + l, Rate->dst + l, z);
|
||||
if (z!=UNKNOWN) {
|
||||
for (i=0; i<Provider[prefix].nZone; i++) {
|
||||
for (j=0; j<Provider[prefix].Zone[i].nNumber; j++) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: zone.c,v 1.4 1999/06/18 12:41:57 akool Exp $
|
||||
/* $Id: zone.c,v 1.5 1999/06/21 19:35:04 akool Exp $
|
||||
*
|
||||
* Zonenberechnung
|
||||
*
|
||||
|
@ -19,6 +19,12 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: zone.c,v $
|
||||
* Revision 1.5 1999/06/21 19:35:04 akool
|
||||
* isdnlog Version 3.35
|
||||
* zone data for .nl (many thanks to Paul!)
|
||||
*
|
||||
* WARNING: This version of isdnlog dont even compile! *EXPERIMENTAL*!!
|
||||
*
|
||||
* Revision 1.4 1999/06/18 12:41:57 akool
|
||||
* zone V1.0
|
||||
*
|
||||
|
@ -43,7 +49,7 @@
|
|||
* int getZone(int provider, char *from, char *to)
|
||||
* returns zone for provider, UNKNOWN on not found, -2 on error
|
||||
*
|
||||
* int getAreacode(int provider, char *num, char **text)
|
||||
* int getAreacode(int countrycode, char *num, char **text)
|
||||
* returns len of areacode in num and in text a malloced string
|
||||
* UNKNOWN on not found
|
||||
*
|
||||
|
@ -76,6 +82,7 @@ extern const char *basename (const char *name);
|
|||
/* this config (from config.in) could go in global policy */
|
||||
#include "zone/config.h"
|
||||
#include "zone/common.h"
|
||||
#include <dirent.h>
|
||||
|
||||
struct sth {
|
||||
_DB fh;
|
||||
|
@ -88,15 +95,18 @@ struct sth {
|
|||
int table_size;
|
||||
int oz;
|
||||
int numlen;
|
||||
int cc;
|
||||
} ;
|
||||
#define min(a,b) (a) < (b) ? (a) : (b)
|
||||
|
||||
static struct sth *sthp;
|
||||
static int count;
|
||||
static char version[] = "1.00";
|
||||
static char version[] = "1.10";
|
||||
static bool area_read = false;
|
||||
|
||||
#define LINK 127
|
||||
#define INFO_LEN 80
|
||||
#define LENGTH 120
|
||||
#define LENGTH 160
|
||||
#define BUFSIZE 200
|
||||
|
||||
#ifdef STANDALONE
|
||||
|
@ -118,7 +128,17 @@ static void warning (char *file, char *fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
void exitZone(int provider)
|
||||
static void _exitZone(int provider);
|
||||
|
||||
void exitZone(int provider) {
|
||||
int i;
|
||||
_exitZone(provider);
|
||||
for (i=0; i<count; i++)
|
||||
if(sthp[i].provider>=10000)
|
||||
_exitZone(sthp[i].provider);
|
||||
}
|
||||
|
||||
static void _exitZone(int provider)
|
||||
{
|
||||
int i;
|
||||
bool any = false;
|
||||
|
@ -154,20 +174,85 @@ void exitZone(int provider)
|
|||
sthp = 0;
|
||||
}
|
||||
}
|
||||
#define ZONES 0
|
||||
#define AREACODES 1
|
||||
static int _initZone(int provider, char *path, char **msg, bool area_only);
|
||||
|
||||
int initZone(int provider, char *path, char **msg)
|
||||
{
|
||||
int i;
|
||||
static char message[LENGTH];
|
||||
int res;
|
||||
char * dir;
|
||||
char * file;
|
||||
char *p;
|
||||
DIR *dp;
|
||||
struct dirent *ep;
|
||||
int len, i;
|
||||
|
||||
if (msg)
|
||||
*(*msg=message)='\0';
|
||||
res = _initZone(provider, path, msg, ZONES);
|
||||
if (area_read)
|
||||
return res;
|
||||
|
||||
area_read = true;
|
||||
if ((dir = strdup(path)) == 0) {
|
||||
if (msg)
|
||||
snprintf (message, LENGTH,
|
||||
"Zone V%s: Error: Out of mem 10", version);
|
||||
return res;
|
||||
}
|
||||
p = strrchr(dir, '/');
|
||||
if ((file = strdup(p+1)) == 0) {
|
||||
if (msg)
|
||||
snprintf (message, LENGTH,
|
||||
"Zone V%s: Error: Out of mem 11", version);
|
||||
return res;
|
||||
}
|
||||
p[1] = '\0';
|
||||
if ((dp = opendir(dir)) == 0) {
|
||||
if (msg)
|
||||
snprintf (message, LENGTH,
|
||||
"Zone V%s: Error: Out of mem 11", version);
|
||||
return res;
|
||||
}
|
||||
len = strchr(file,'-')-file;
|
||||
i = 0;
|
||||
while ((ep = readdir(dp))) { /* zone-cc-xx */
|
||||
if (memcmp(ep->d_name, file, len) == 0 && memcmp(ep->d_name, file, len+3) != 0) {
|
||||
int l=strlen(dir)+strlen(ep->d_name)+1;
|
||||
char *npath=malloc(l);
|
||||
strcpy(npath, dir);
|
||||
strcat(npath, ep->d_name);
|
||||
_initZone(10000+i, npath, 0, AREACODES);
|
||||
i++;
|
||||
free(npath);
|
||||
}
|
||||
}
|
||||
closedir(dp);
|
||||
free(dir);
|
||||
free(file);
|
||||
if (msg && strlen(message) < LENGTH-5) {
|
||||
strcat(message, " - ");
|
||||
for (i=0; i<count; i++)
|
||||
if(sthp[i].provider>=10000 && sthp[i].cc && strlen(message) < LENGTH-5)
|
||||
sprintf(message+strlen(message),"%d ",sthp[i].cc);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
static int _initZone(int provider, char *path, char **msg, bool area_only)
|
||||
{
|
||||
int i;
|
||||
struct sth *newsthp;
|
||||
bool found;
|
||||
int ocount;
|
||||
int csize=0, tsize=0, n;
|
||||
datum key, value;
|
||||
char *message;
|
||||
|
||||
if (msg)
|
||||
*(*msg=message)='\0';
|
||||
|
||||
message = *msg;
|
||||
if (!path || !*path) {
|
||||
if (msg)
|
||||
snprintf (message, LENGTH,
|
||||
|
@ -209,6 +294,7 @@ int initZone(int provider, char *path, char **msg)
|
|||
sthp[ocount].real = -1;
|
||||
sthp[ocount].oz=1;
|
||||
sthp[ocount].numlen=0;
|
||||
sthp[ocount].cc=0;
|
||||
/* now search for same path */
|
||||
found = false;
|
||||
for (i=0; i<count-1; i++) {
|
||||
|
@ -265,7 +351,7 @@ int initZone(int provider, char *path, char **msg)
|
|||
*q++ = *p++;
|
||||
*q = '\0';
|
||||
if (*dversion != *version) {
|
||||
if (msg)
|
||||
if (msg)
|
||||
snprintf (message, LENGTH,
|
||||
"Zone V%s: Error: Provider %d File '%s': incompatible Dataversion %s",
|
||||
version, provider, path, dversion);
|
||||
|
@ -287,14 +373,18 @@ int initZone(int provider, char *path, char **msg)
|
|||
p++;
|
||||
tsize = strtol(p, &p, 10);
|
||||
break;
|
||||
case 'O' :
|
||||
case 'O' :
|
||||
p++;
|
||||
sthp[ocount].oz = strtol(p, &p, 10);
|
||||
break;
|
||||
case 'L' :
|
||||
case 'L' :
|
||||
p++;
|
||||
sthp[ocount].numlen = strtol(p, &p, 10);
|
||||
break;
|
||||
case 'A' : /* this provider has the areacodes for county A */
|
||||
p++;
|
||||
sthp[ocount].cc = strtol(p, &p, 10);
|
||||
break;
|
||||
}
|
||||
} /* for */
|
||||
free (value.dptr);
|
||||
|
@ -314,10 +404,16 @@ int initZone(int provider, char *path, char **msg)
|
|||
exitZone(provider);
|
||||
return -1;
|
||||
}
|
||||
/* alloc & read table */
|
||||
sthp[ocount].pack_table = sthp[ocount].pack_table == 'C' ? sizeof(char) :
|
||||
sthp[ocount].pack_table == 'S' ? sizeof(short) : sizeof(long);
|
||||
sthp[ocount].pack_key = sthp[ocount].pack_key == 'S' ? sizeof(short) : sizeof(long);
|
||||
|
||||
if (area_only) {
|
||||
if (sthp[ocount].cc == 0)
|
||||
_exitZone(provider); /* discard this one */
|
||||
return;
|
||||
}
|
||||
/* alloc & read table */
|
||||
if ( (sthp[ocount].table = calloc(csize > 256 ? 256 : csize,
|
||||
sizeof(int)) ) == 0) {
|
||||
if (msg)
|
||||
|
@ -346,10 +442,10 @@ int initZone(int provider, char *path, char **msg)
|
|||
if (msg) {
|
||||
snprintf (message, LENGTH,
|
||||
"Zone V%s: Provider %d File '%s' opened fine - "
|
||||
"V%s K%d C%d N%d T%d O%d L%d",
|
||||
"V%s K%d C%d N%d T%d O%d L%d A%d",
|
||||
version, provider, path,
|
||||
dversion, sthp[ocount].pack_key, sthp[ocount].pack_table,
|
||||
csize, tsize, sthp[ocount].oz, sthp[ocount].numlen);
|
||||
csize, tsize, sthp[ocount].oz, sthp[ocount].numlen, sthp[ocount].cc);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -369,7 +465,7 @@ static int _getZ(struct sth *sthp, char *from, char *sto) {
|
|||
char *temp;
|
||||
int res;
|
||||
|
||||
if ((res=strcmp(from, sto)) == 0)
|
||||
if ((res=strcmp(from, sto)) == 0)
|
||||
return sthp->oz;
|
||||
else if (res > 0) {
|
||||
temp=from;
|
||||
|
@ -379,7 +475,7 @@ static int _getZ(struct sth *sthp, char *from, char *sto) {
|
|||
strncpy(newfrom, from, LENGTH-1);
|
||||
while (strlen(newfrom)) {
|
||||
UL lifrom = (UL) atol(newfrom); /* keys could be long */
|
||||
US ifrom = (US) lifrom;
|
||||
US ifrom = (US) lifrom;
|
||||
if (sthp->pack_key == 2) {
|
||||
key.dptr = (char *) &ifrom;
|
||||
key.dsize = sizeof(US);
|
||||
|
@ -395,9 +491,9 @@ static int _getZ(struct sth *sthp, char *from, char *sto) {
|
|||
US count;
|
||||
int ito;
|
||||
unsigned char z=0;
|
||||
if (sthp->cc) /* if areacodes */
|
||||
/* here is since 1.00 a zero-terminated strring */
|
||||
while (*p++);
|
||||
/* skipped */
|
||||
count = *((US*)p)++;
|
||||
while (count--) {
|
||||
bool ind = true;
|
||||
|
@ -437,10 +533,8 @@ static int _getZ(struct sth *sthp, char *from, char *sto) {
|
|||
int getZone(int provider, char *from, char *to)
|
||||
{
|
||||
int i;
|
||||
char *path=NULL;
|
||||
for (i=0; i<count; i++)
|
||||
if (sthp[i].provider == provider) {
|
||||
path = sthp[i].path ? sthp[i].path : sthp[sthp[i].real].path;
|
||||
if (sthp[i].fh == 0)
|
||||
return UNKNOWN;
|
||||
return _getZ(&sthp[i], from, to);
|
||||
|
@ -458,8 +552,12 @@ static int _getAreacode(struct sth *sthp, char *from, char **text) {
|
|||
newfrom[sthp->numlen] = '\0';
|
||||
while ((len=strlen(newfrom))) {
|
||||
UL lifrom = (UL) atol(newfrom); /* keys could be long */
|
||||
US ifrom = (US) lifrom;
|
||||
US ifrom = (US) lifrom;
|
||||
if (sthp->pack_key == 2) {
|
||||
if (lifrom >= 0x10000) { /* can't be, so cut a digit */
|
||||
newfrom[strlen(newfrom) - 1] = '\0';
|
||||
continue;
|
||||
} /* if */
|
||||
key.dptr = (char *) &ifrom;
|
||||
key.dsize = sizeof(US);
|
||||
}
|
||||
|
@ -473,17 +571,17 @@ static int _getAreacode(struct sth *sthp, char *from, char **text) {
|
|||
if (*dbv == 'G') /* GDBM has a malloced string in dptr */
|
||||
free(value.dptr);
|
||||
return UNKNOWN;
|
||||
}
|
||||
}
|
||||
if (*dbv == 'G') /* GDBM has a malloced string in dptr */
|
||||
*text = value.dptr;
|
||||
else
|
||||
else
|
||||
*text = strdup(value.dptr);
|
||||
return len;
|
||||
} /* if dptr */
|
||||
newfrom[strlen(newfrom)-1] = '\0';
|
||||
}
|
||||
return UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
int getAreacode(int provider, char *from, char **text)
|
||||
{
|
||||
|
@ -494,8 +592,8 @@ int getAreacode(int provider, char *from, char **text)
|
|||
path = sthp[i].path ? sthp[i].path : sthp[sthp[i].real].path;
|
||||
if (sthp[i].fh == 0)
|
||||
return UNKNOWN;
|
||||
return _getAreacode(&sthp[i], from, text);
|
||||
}
|
||||
return _getAreacode(&sthp[i], from, text);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef STANDALONE
|
||||
|
@ -568,7 +666,7 @@ static int checkZone(char *zf, char* df,int num1,int num2, bool verbose)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int checkArea(char *df, char *from, int verbose) {
|
||||
static int checkArea(char *df, int cc, char *from, int verbose) {
|
||||
char *msg, *text;
|
||||
int ret=0;
|
||||
|
||||
|
@ -578,13 +676,13 @@ static int checkArea(char *df, char *from, int verbose) {
|
|||
}
|
||||
if(verbose)
|
||||
printf("%s\n", msg);
|
||||
ret = getAreacode(1, from, &text);
|
||||
ret = getAreacode(cc, from, &text);
|
||||
if(ret != UNKNOWN) {
|
||||
printf("%s:%d '%s'\n", from, ret, text);
|
||||
printf("%s:%d '%s'\n", from, ret, text);
|
||||
free(text);
|
||||
}
|
||||
else
|
||||
printf("%s - UNKNOWN\n", from);
|
||||
printf("%s - UNKNOWN\n", from);
|
||||
exitZone(1);
|
||||
return ret;
|
||||
}
|
||||
|
@ -596,13 +694,15 @@ int main (int argc, char *argv[])
|
|||
char *zf=0;
|
||||
int c;
|
||||
int num1=0, num2=0;
|
||||
int cc=0;
|
||||
char snum1[LENGTH];
|
||||
while ( (c=getopt(argc, argv, "vVd:z:")) != EOF) {
|
||||
while ( (c=getopt(argc, argv, "vVd:z:a:")) != EOF) {
|
||||
switch (c) {
|
||||
case 'v' : verbose = true; break;
|
||||
case 'V' : printf("%s: V%s\n", basename(argv[0]), version); exit(1);
|
||||
case 'd' : df = strdup(optarg); break;
|
||||
case 'z' : zf = strdup(optarg); break;
|
||||
case 'a' : cc = atoi(optarg); break;
|
||||
}
|
||||
}
|
||||
while (optind < argc) {
|
||||
|
@ -622,7 +722,7 @@ int main (int argc, char *argv[])
|
|||
if (df && (zf || (num1 && num2)))
|
||||
return checkZone(zf, df, num1, num2, verbose);
|
||||
if (df && num1)
|
||||
return checkArea(df, snum1, verbose);
|
||||
return checkArea(df, snum1, verbose);
|
||||
fprintf(stderr, "Usage:\n%s -d DBfile -v -V { -z Zonefile | num1 num2 }\n", basename(argv[0]));
|
||||
fprintf(stderr, "\t-d DBfile -v -V num1\n");
|
||||
return 0;
|
||||
|
|
|
@ -3,8 +3,10 @@
|
|||
#
|
||||
# (C) 1999 l.toetsch <lt@toetsch.at>
|
||||
#
|
||||
BZIP2 = @BZIP2@
|
||||
BZIP2 = @BZIP2@
|
||||
SHELL = /bin/sh
|
||||
CFLAGS = -Wall -g
|
||||
CFLAGS = -Wall -O2
|
||||
INCLUDES =
|
||||
LDFLAGS = @DBMLIB@
|
||||
DBEXT = @DBEXT@
|
||||
|
@ -71,17 +73,21 @@ distclean: clean
|
|||
rm -f config.h config.status config.cache config.log *.man Makefile
|
||||
|
||||
test:
|
||||
./$(PROGRAM) -d uta$(DBEXT) -r at/uta/zred.uta -c at/code -v
|
||||
./zone -d uta$(RDBEXT) -z at/uta/zoneall.uta -v
|
||||
./$(PROGRAM) -d zone-at-pta$(DBEXT) -r at/pta/zred.pta -c at/code -v
|
||||
$(BZIP2) -d at/pta/zred.pta.bz2
|
||||
$(BZIP2) -d at/pta/zoneall.pta.bz2
|
||||
./zone -d zone-at-pta$(RDBEXT) -z at/pta/zoneall.pta -v
|
||||
$(BZIP2) -9 at/pta/zred.pta
|
||||
$(BZIP2) -9 at/pta/zoneall.pta
|
||||
|
||||
zonefiles:
|
||||
./$(PROGRAM) -d ../../zone-at-1012$(DBEXT) -r at/1012/zred-at-1012 -c at/code -v -l4
|
||||
bzip2 -d at/uta/zred.uta.bz2
|
||||
$(BZIP2) -d at/uta/zred.uta.bz2
|
||||
./$(PROGRAM) -d ../../zone-at-uta$(DBEXT) -r at/uta/zred.uta -c at/code -v
|
||||
bzip2 -9 at/uta/zred.uta
|
||||
bzip2 -d at/pta/zred.pta.bz2
|
||||
$(BZIP2) -9 at/uta/zred.uta
|
||||
$(BZIP2) -d at/pta/zred.pta.bz2
|
||||
./$(PROGRAM) -d ../../zone-at-pta$(DBEXT) -r at/pta/zred.pta -c at/code -v
|
||||
bzip2 -9 at/pta/zred.pta
|
||||
bzip2 -d de/01033/zred.dtag.bz2
|
||||
$(BZIP2) -9 at/pta/zred.pta
|
||||
$(BZIP2) -d de/01033/zred.dtag.bz2
|
||||
./$(PROGRAM) -d ../../zone-de-dtag$(DBEXT) -r de/01033/zred.dtag -c de/code -v
|
||||
bzip2 -9 de/01033/zred.dtag
|
||||
$(BZIP2) -9 de/01033/zred.dtag
|
||||
|
|
|
@ -86,7 +86,7 @@ sub min {
|
|||
return $_[0] < $_[1] ? $_[0] : $_[1];
|
||||
}
|
||||
sub read_compact {
|
||||
my ($from,$to,$z,$n);
|
||||
my ($from,$to,$z,$n, $cc);
|
||||
print "Reading $reducedf...\n" if($verbose);
|
||||
if (!$dbm) {
|
||||
open(IN, $reducedf) || die("Can't read $reducedf");
|
||||
|
@ -112,6 +112,7 @@ sub read_compact {
|
|||
$pack_table = $1 if(/C(\w)/);
|
||||
$n = $1 if(/N(\d+)/);
|
||||
$t = $1 if(/T(\d+)/);
|
||||
$cc = $1 if(/A(\d+)/);
|
||||
}
|
||||
my($bnum) = $db{"_tAbLe\x0"};
|
||||
my %len = ('C' => 1, 'S' => 2, 'L' => 4);
|
||||
|
@ -124,9 +125,11 @@ sub read_compact {
|
|||
next if ($key eq "_tAbLe\x0" || $key eq "vErSiO\x0");
|
||||
my($temp) = unpack($pack_key, $key);
|
||||
next if( $temp !~ /\d/);
|
||||
if ($cc) {
|
||||
my($ind);
|
||||
my($ort) = substr($value,0, $ind=index($value, "\x0"));
|
||||
$value = substr($value, $ind+1);
|
||||
}
|
||||
my($count) = unpack('S', $value);
|
||||
$value=substr($value, 2); # past count
|
||||
while ($count--) {
|
||||
|
|
|
@ -774,9 +774,42 @@ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
|||
|
||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||
|
||||
for ac_prog in bzip2
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:783: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_BZIP2'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
if test -n "$BZIP2"; then
|
||||
ac_cv_prog_BZIP2="$BZIP2" # Let the user override the test.
|
||||
else
|
||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
||||
for ac_dir in $PATH; do
|
||||
test -z "$ac_dir" && ac_dir=.
|
||||
if test -f $ac_dir/$ac_word; then
|
||||
ac_cv_prog_BZIP2="$ac_prog"
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$ac_save_ifs"
|
||||
fi
|
||||
fi
|
||||
BZIP2="$ac_cv_prog_BZIP2"
|
||||
if test -n "$BZIP2"; then
|
||||
echo "$ac_t""$BZIP2" 1>&6
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
fi
|
||||
|
||||
test -n "$BZIP2" && break
|
||||
done
|
||||
|
||||
|
||||
echo $ac_n "checking for gdbm_open in -lgdbm""... $ac_c" 1>&6
|
||||
echo "configure:780: checking for gdbm_open in -lgdbm" >&5
|
||||
echo "configure:813: checking for gdbm_open in -lgdbm" >&5
|
||||
ac_lib_var=`echo gdbm'_'gdbm_open | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
|
@ -784,7 +817,7 @@ else
|
|||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lgdbm $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 788 "configure"
|
||||
#line 821 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
|
@ -795,7 +828,7 @@ int main() {
|
|||
gdbm_open()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
|
@ -817,7 +850,7 @@ EOF
|
|||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
|
||||
echo "configure:821: checking for dbm_open in -ldbm" >&5
|
||||
echo "configure:854: checking for dbm_open in -ldbm" >&5
|
||||
ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
|
@ -825,7 +858,7 @@ else
|
|||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-ldbm $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 829 "configure"
|
||||
#line 862 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
|
@ -836,7 +869,7 @@ int main() {
|
|||
dbm_open()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
|
@ -858,7 +891,7 @@ EOF
|
|||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
echo $ac_n "checking for dbm_open in -ldb""... $ac_c" 1>&6
|
||||
echo "configure:862: checking for dbm_open in -ldb" >&5
|
||||
echo "configure:895: checking for dbm_open in -ldb" >&5
|
||||
ac_lib_var=`echo db'_'dbm_open | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
|
@ -866,7 +899,7 @@ else
|
|||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-ldb $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 870 "configure"
|
||||
#line 903 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
|
@ -877,7 +910,7 @@ int main() {
|
|||
dbm_open()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
|
@ -907,7 +940,7 @@ fi
|
|||
|
||||
|
||||
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
|
||||
echo "configure:911: checking how to run the C preprocessor" >&5
|
||||
echo "configure:944: checking how to run the C preprocessor" >&5
|
||||
# On Suns, sometimes $CPP names a directory.
|
||||
if test -n "$CPP" && test -d "$CPP"; then
|
||||
CPP=
|
||||
|
@ -922,13 +955,13 @@ else
|
|||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 926 "configure"
|
||||
#line 959 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <assert.h>
|
||||
Syntax Error
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:965: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out`
|
||||
if test -z "$ac_err"; then
|
||||
:
|
||||
|
@ -939,13 +972,13 @@ else
|
|||
rm -rf conftest*
|
||||
CPP="${CC-cc} -E -traditional-cpp"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 943 "configure"
|
||||
#line 976 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <assert.h>
|
||||
Syntax Error
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:949: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:982: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out`
|
||||
if test -z "$ac_err"; then
|
||||
:
|
||||
|
@ -968,12 +1001,12 @@ fi
|
|||
echo "$ac_t""$CPP" 1>&6
|
||||
|
||||
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
|
||||
echo "configure:972: checking for ANSI C header files" >&5
|
||||
echo "configure:1005: checking for ANSI C header files" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 977 "configure"
|
||||
#line 1010 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
@ -981,7 +1014,7 @@ else
|
|||
#include <float.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:1018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
|
@ -998,7 +1031,7 @@ rm -f conftest*
|
|||
if test $ac_cv_header_stdc = yes; then
|
||||
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1002 "configure"
|
||||
#line 1035 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <string.h>
|
||||
EOF
|
||||
|
@ -1016,7 +1049,7 @@ fi
|
|||
if test $ac_cv_header_stdc = yes; then
|
||||
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1020 "configure"
|
||||
#line 1053 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdlib.h>
|
||||
EOF
|
||||
|
@ -1037,7 +1070,7 @@ if test "$cross_compiling" = yes; then
|
|||
:
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1041 "configure"
|
||||
#line 1074 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
|
||||
|
@ -1048,7 +1081,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
|
|||
exit (0); }
|
||||
|
||||
EOF
|
||||
if { (eval echo configure:1052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:1085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
:
|
||||
else
|
||||
|
@ -1075,17 +1108,17 @@ for ac_hdr in unistd.h
|
|||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:1079: checking for $ac_hdr" >&5
|
||||
echo "configure:1112: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1084 "configure"
|
||||
#line 1117 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:1089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:1122: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
|
@ -1113,12 +1146,12 @@ done
|
|||
|
||||
|
||||
echo $ac_n "checking for size_t""... $ac_c" 1>&6
|
||||
echo "configure:1117: checking for size_t" >&5
|
||||
echo "configure:1150: checking for size_t" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1122 "configure"
|
||||
#line 1155 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#if STDC_HEADERS
|
||||
|
@ -1147,7 +1180,7 @@ fi
|
|||
|
||||
|
||||
echo $ac_n "checking size of char""... $ac_c" 1>&6
|
||||
echo "configure:1151: checking size of char" >&5
|
||||
echo "configure:1184: checking size of char" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_sizeof_char'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -1155,7 +1188,7 @@ else
|
|||
ac_cv_sizeof_char=1
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1159 "configure"
|
||||
#line 1192 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdio.h>
|
||||
main()
|
||||
|
@ -1166,7 +1199,7 @@ main()
|
|||
exit(0);
|
||||
}
|
||||
EOF
|
||||
if { (eval echo configure:1170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:1203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_sizeof_char=`cat conftestval`
|
||||
else
|
||||
|
@ -1186,7 +1219,7 @@ EOF
|
|||
|
||||
|
||||
echo $ac_n "checking size of short""... $ac_c" 1>&6
|
||||
echo "configure:1190: checking size of short" >&5
|
||||
echo "configure:1223: checking size of short" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -1194,7 +1227,7 @@ else
|
|||
ac_cv_sizeof_short=2
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1198 "configure"
|
||||
#line 1231 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdio.h>
|
||||
main()
|
||||
|
@ -1205,7 +1238,7 @@ main()
|
|||
exit(0);
|
||||
}
|
||||
EOF
|
||||
if { (eval echo configure:1209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:1242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_sizeof_short=`cat conftestval`
|
||||
else
|
||||
|
@ -1225,7 +1258,7 @@ EOF
|
|||
|
||||
|
||||
echo $ac_n "checking size of long""... $ac_c" 1>&6
|
||||
echo "configure:1229: checking size of long" >&5
|
||||
echo "configure:1262: checking size of long" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -1233,7 +1266,7 @@ else
|
|||
ac_cv_sizeof_long=4
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1237 "configure"
|
||||
#line 1270 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdio.h>
|
||||
main()
|
||||
|
@ -1244,7 +1277,7 @@ main()
|
|||
exit(0);
|
||||
}
|
||||
EOF
|
||||
if { (eval echo configure:1248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:1281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_sizeof_long=`cat conftestval`
|
||||
else
|
||||
|
@ -1264,7 +1297,7 @@ EOF
|
|||
|
||||
|
||||
echo $ac_n "checking size of int""... $ac_c" 1>&6
|
||||
echo "configure:1268: checking size of int" >&5
|
||||
echo "configure:1301: checking size of int" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -1272,7 +1305,7 @@ else
|
|||
ac_cv_sizeof_int=4
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1276 "configure"
|
||||
#line 1309 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdio.h>
|
||||
main()
|
||||
|
@ -1283,7 +1316,7 @@ main()
|
|||
exit(0);
|
||||
}
|
||||
EOF
|
||||
if { (eval echo configure:1287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:1320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_sizeof_int=`cat conftestval`
|
||||
else
|
||||
|
@ -1306,12 +1339,12 @@ EOF
|
|||
for ac_func in strdup strtoul
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:1310: checking for $ac_func" >&5
|
||||
echo "configure:1343: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1315 "configure"
|
||||
#line 1348 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
@ -1334,7 +1367,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:1338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:1371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
@ -1501,6 +1534,7 @@ s%@mandir@%$mandir%g
|
|||
s%@CC@%$CC%g
|
||||
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
|
||||
s%@INSTALL_DATA@%$INSTALL_DATA%g
|
||||
s%@BZIP2@%$BZIP2%g
|
||||
s%@CPP@%$CPP%g
|
||||
s%@DBMLIB@%$DBMLIB%g
|
||||
s%@DBEXT@%$DBEXT%g
|
||||
|
|
|
@ -9,6 +9,7 @@ CONFIG_SBINDIR=`eval echo ${CONFIG_SBINDIR:-"/sbin"}`
|
|||
dnl Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
AC_CHECK_PROGS(BZIP2, bzip2)
|
||||
|
||||
dnl Checks for libraries.
|
||||
dnl Berkeley DB appends RDBEXT
|
||||
|
|
|
@ -33,7 +33,7 @@ sub min {
|
|||
return $_[0] < $_[1] ? $_[0] : $_[1];
|
||||
}
|
||||
sub read_compact {
|
||||
my ($from,$to,$z,$n);
|
||||
my ($from,$to,$z,$n, $cc);
|
||||
$verbose=3;
|
||||
|
||||
print "Reading $reducedf...\n" if($verbose);
|
||||
|
@ -49,6 +49,7 @@ sub read_compact {
|
|||
$pack_table = $1 if(/C(\w)/);
|
||||
$n = $1 if(/N(\d+)/);
|
||||
$t = $1 if(/T(\d+)/);
|
||||
$cc = $1 if(/A(\d+)/);
|
||||
}
|
||||
my($bnum) = $db{"_tAbLe\x0"};
|
||||
my %len = ('C' => 1, 'S' => 2, 'L' => 4);
|
||||
|
@ -62,10 +63,12 @@ sub read_compact {
|
|||
next if ($key eq "_tAbLe\x0" || $key eq "vErSiO\x0");
|
||||
my($temp) = unpack($pack_key, $key);
|
||||
next if( $temp !~ /\d/);
|
||||
if ($cc) {
|
||||
my($ind);
|
||||
my($ort) = substr($value,0, $ind=index($value, "\x0"));
|
||||
print "$temp $ort\n";
|
||||
$value = substr($value, $ind+1);
|
||||
}
|
||||
my($count) = unpack('S', $value);
|
||||
$value=substr($value, 2); # past count
|
||||
while ($count--) {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Copyright 1999 by Leopold Toetsch <lt@toetsch.at>
|
||||
*
|
||||
* SYNOPSIS
|
||||
* mkzonedb -r Zonefile -d database [ -f ] [ -v ] [ - V ]
|
||||
* mkzonedb -r Zonefile -d database -c Codef [-f] [-v] [-V] [-o Oz] [-l L]
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -22,7 +22,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
static char progversion[] = "1.00";
|
||||
static char progversion[] = "1.01";
|
||||
/* first char must match dataversion */
|
||||
|
||||
|
||||
|
@ -75,7 +75,6 @@ static int numlen;
|
|||
|
||||
static void read_codefile(char *cf) {
|
||||
FILE *fp;
|
||||
int l, llen = 0;
|
||||
char *p;
|
||||
auto char line[BUFSIZ];
|
||||
|
||||
|
@ -87,14 +86,13 @@ static void read_codefile(char *cf) {
|
|||
exit(EXIT_FAILURE);
|
||||
}
|
||||
maxnum = 0;
|
||||
while (!feof(fp)) {
|
||||
while (fgets(line, BUFSIZ, fp)) {
|
||||
if (verbose && (nc % 1000) == 0) {
|
||||
printf("%d\r", nc);
|
||||
fflush(stdout);
|
||||
}
|
||||
fgets(line, BUFSIZ, fp);
|
||||
if (!isdigit(*line))
|
||||
continue;
|
||||
break;
|
||||
line[strlen(line)-1] = '\0';
|
||||
if ((codes=realloc(codes, (nc+1)*sizeof(code_t))) == 0) {
|
||||
fprintf(stderr, "Out of mem\n");
|
||||
|
@ -118,7 +116,7 @@ static void read_codefile(char *cf) {
|
|||
fflush(stdout);
|
||||
}
|
||||
fclose(fp);
|
||||
/* we append a dumm for not defined nums */
|
||||
/* we append a dummy for not defined nums */
|
||||
if ((codes=realloc(codes, (nc+1)*sizeof(code_t))) == 0) {
|
||||
fprintf(stderr, "Out of mem\n");
|
||||
exit(EXIT_FAILURE);
|
||||
|
@ -131,8 +129,6 @@ static void read_codefile(char *cf) {
|
|||
static void read_rzfile(char *rf) {
|
||||
int i;
|
||||
char line[BUFSIZ], *p, *op;
|
||||
|
||||
size_t llen, l;
|
||||
FILE *fp;
|
||||
int from,to,z;
|
||||
|
||||
|
@ -140,30 +136,24 @@ static void read_rzfile(char *rf) {
|
|||
fprintf(stderr, "Coudn't read '%s'\n", rf);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
llen=40;
|
||||
n=0;
|
||||
zones = 0;
|
||||
if ((numbers = calloc(maxnum+1, sizeof(int))) == 0) {
|
||||
fprintf(stderr, "Out of mem\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
i=keylen=keydigs=0;
|
||||
n=i=keylen=keydigs=0;
|
||||
if (verbose)
|
||||
printf("Reading %s\n", rf);
|
||||
|
||||
while (!feof(fp)) {
|
||||
while (fgets(line, BUFSIZ, fp)) {
|
||||
if (verbose && (n % 1000) == 0) {
|
||||
printf("%d\r", n);
|
||||
fflush(stdout);
|
||||
}
|
||||
fgets(line, BUFSIZ, fp);
|
||||
l = strlen(line);
|
||||
if (!l || l == -1 || !*line)
|
||||
if (!*line)
|
||||
break;
|
||||
if (l>40)
|
||||
if (strlen(line)>40)
|
||||
fprintf(stderr, "Possible junk in line %d", n);
|
||||
p = line;
|
||||
from = strtoul(p, &p, 10);
|
||||
from = strtoul(line, &p, 10);
|
||||
if (p-line > keydigs)
|
||||
keydigs=p-line;
|
||||
p++;
|
||||
|
@ -194,6 +184,7 @@ static void read_rzfile(char *rf) {
|
|||
free(rf);
|
||||
}
|
||||
|
||||
/* get the 256 top used nums in table */
|
||||
static void make_table() {
|
||||
int i, j, k;
|
||||
tablelen = 0;
|
||||
|
@ -253,8 +244,16 @@ static void write_remaining_codes(_DB db) {
|
|||
US kus;
|
||||
datum key, value;
|
||||
char *val;
|
||||
if (verbose)
|
||||
printf("Writing remaining\n");
|
||||
|
||||
for (i=0 ; i< nc; i++)
|
||||
if (codes[i].num > 0 && *codes[i].code) {
|
||||
if (verbose && (i % 1000) == 0) {
|
||||
printf("%d\r", i);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
if (keylen == 4) {
|
||||
kul = (UL)codes[i].num;
|
||||
key.dptr = (char*)&kul;
|
||||
|
@ -271,7 +270,7 @@ static void write_remaining_codes(_DB db) {
|
|||
value.dsize = l;
|
||||
if(STORE(db, key, value)) {
|
||||
fprintf(stderr, "Error storing key '%d' - %s\n",codes[i].num,GET_ERR);
|
||||
/* exit(EXIT_FAILURE); */
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
free(val);
|
||||
}
|
||||
|
@ -309,7 +308,10 @@ static void write_db(char * df) {
|
|||
nn,n, ortszone, numlen?numlen:keydigs);
|
||||
value.dptr = version;
|
||||
value.dsize = strlen(version)+1;
|
||||
STORE(db, key, value);
|
||||
if(STORE(db, key, value)) {
|
||||
fprintf(stderr, "Error storing version key - %s\n", GET_ERR);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if ((p = val = calloc(nn, tablelen)) == 0) {
|
||||
fprintf(stderr, "Out of mem\n");
|
||||
|
@ -326,11 +328,14 @@ static void write_db(char * df) {
|
|||
*((UL*)p)++ = (UL)table[i];
|
||||
value.dptr = val;
|
||||
value.dsize = nn*tablelen;
|
||||
STORE(db, key, value);
|
||||
if(STORE(db, key, value)) {
|
||||
fprintf(stderr, "Error storing table key - %s\n", GET_ERR);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
free(val);
|
||||
|
||||
/* and write data */
|
||||
val = malloc(2); /* size */
|
||||
val = malloc(2); /* size of count */
|
||||
vlen = 2;
|
||||
ofrom = -1;
|
||||
count = 0;
|
||||
|
@ -351,7 +356,7 @@ static void write_db(char * df) {
|
|||
fprintf(stderr, "Error storing key '%d' - %s\n",ofrom,GET_ERR);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
free(val);
|
||||
free(value.dptr); /* the realloced val */
|
||||
}
|
||||
if (ofrom != zones[i][0]) {
|
||||
count = 0;
|
||||
|
@ -404,7 +409,7 @@ static void write_db(char * df) {
|
|||
value.dsize = vlen;
|
||||
insert_code(&value, ofrom);
|
||||
STORE(db, key, value);
|
||||
free(val);
|
||||
free(value.dptr);
|
||||
write_remaining_codes(db);
|
||||
CLOSE(db);
|
||||
free(zones);
|
||||
|
@ -437,12 +442,9 @@ int main (int argc, char *argv[])
|
|||
}
|
||||
read_codefile(cf);
|
||||
read_rzfile(rf);
|
||||
/* make table of 256 maxused to's */
|
||||
make_table();
|
||||
|
||||
write_db(df);
|
||||
|
||||
|
||||
/* Uff this got longer as I thought,
|
||||
C is a real low level language -
|
||||
now it's clear, why I prefer Perl
|
||||
|
|
|
@ -59,11 +59,16 @@ compzone { -z<CITE>Zonefile</CITE> | -r<CITE>Reducedfile</CITE> } -c<CITE>Codefi
|
|||
<H2><A NAME="mkzonedb">mkzonedb</A></H2>
|
||||
<P>Makes a zonedatabase (gdbm - GNU Database or db - Berkeley DB) from a reduced file.</P>
|
||||
<H3>Synopsis</H3>
|
||||
<PRE>./mkzonedb -d <CITE>zone-CC-PP.gdbm</CITE> -r <CITE>ReducedFile</CITE> -c Codefile [ -v<CITE>Verboselevel</CITE> ] [ -o Localzone ] [ -l Len ]</PRE>
|
||||
<PRE>./mkzonedb -d <CITE>zone-CC-PP.gdbm</CITE> -r <CITE>ReducedFile</CITE> -c Codefile [-a CC ] [ -v<CITE>Verboselevel</CITE> ] [ -o Localzone ] [ -l Len ]</PRE>
|
||||
|
||||
<H3>Options</H3>
|
||||
<PRE>-r <CITE>ReducedFile</CITE> ... reduced zone file from <STRONG>redzone</STRONG>
|
||||
-d <CITE>zone-CC-PP.gdbm</CITE> ...CC = Iso-Countrycode, PP = Providername/number<BR>-c <CITE>Codefile</CITE><BR>-v Verboselevel ... default = 1<BR>-o Localzone ... default = 1<BR>-l Len ... default = maxlen of data</PRE>
|
||||
-d <CITE>zone-CC-PP.gdbm</CITE> ...CC = Iso-Countrycode, PP = Providername/number
|
||||
-c <CITE>Codefile</CITE>
|
||||
-v Verboselevel ... default = 1
|
||||
-o Localzone ... default = 1
|
||||
-l Len ... default = maxlen of data
|
||||
-a CC .. Countrycode (only 1 File per country should have this)</PRE>
|
||||
|
||||
<P>For examples look at the <TT>Makefile</TT> in target <TT>zonefiles</TT>.</P>
|
||||
<H2><A NAME="zone">zone</A></H2>
|
||||
|
@ -71,7 +76,7 @@ compzone { -z<CITE>Zonefile</CITE> | -r<CITE>Reducedfile</CITE> } -c<CITE>Codefi
|
|||
<PRE>zone -d <CITE>Datafile</CITE> [ -v ] [ -V ] { -z <CITE>zonefile</CITE> | num1 num2 }</PRE>
|
||||
|
||||
<P>or</P>
|
||||
<PRE>zone -d <CITE>Datafile</CITE> [ -v ] [ -V ] num1 </PRE>
|
||||
<PRE>zone -d <CITE>Datafile</CITE> [ -v ] [ -V ] -a CC num1 </PRE>
|
||||
|
||||
<H3>Options</H3>
|
||||
<PRE>-v ... verbose
|
||||
|
@ -81,7 +86,7 @@ compzone { -z<CITE>Zonefile</CITE> | -r<CITE>Reducedfile</CITE> } -c<CITE>Codefi
|
|||
<PRE>cc -DSTANDALONE -o zone zone.c -lgdbm</PRE>
|
||||
|
||||
<H3>I4L-Interface:</H3>
|
||||
<PRE>int initZone(int provider, char *datapath, char **msg)<BR> returns -1 on error, 0 if ok<BR>void exitZone(int provider)<BR>int getZone(int provider, char *from, char *to)<BR> returns -2 on error, UNKNOWN on not found, zone if ok<BR>int getAreacode(int provider, char *num, char **text)<BR> returns UNKNOWN if not found, or len of areacode<BR> text is a malloced string containing the name of the area
|
||||
<PRE>int initZone(int provider, char *datapath, char **msg)<BR> returns -1 on error, 0 if ok<BR>void exitZone(int provider)<BR>int getZone(int provider, char *from, char *to)<BR> returns -2 on error, UNKNOWN on not found, zone if ok<BR>int getAreacode(int country, char *num, char **text)<BR> returns UNKNOWN if not found, or len of areacode<BR> text is a malloced string containing the name of the area
|
||||
the caller should free this text.</PRE>
|
||||
|
||||
<H2>Glossary</H2>
|
||||
|
@ -95,12 +100,12 @@ then <TT>from</TT>.</P>
|
|||
1 2253 1
|
||||
...</PRE>
|
||||
|
||||
<P>It has (N*N-1)/2 entries.</P>
|
||||
<P>It has N*(N-1)/2 entries.</P>
|
||||
<H4><A NAME="redf">Reducedfile</A></H4>
|
||||
<P>A Zonefile with wildcards. It must be read top down to get correct rsults. The first matching entry is the right
|
||||
one.</P>
|
||||
<PRE>
|
||||
1 0252 1
|
||||
1 252 1
|
||||
...
|
||||
2252 228 1
|
||||
2252 22 0
|
||||
|
@ -116,12 +121,12 @@ one.</P>
|
|||
|
||||
<P>The line with zone 127 is a link to the zone-info 2252, so there are theoretical maximum of 126 zones.</P>
|
||||
<H4><A NAME="codef">Codefile</A></H4>
|
||||
<P>File of lines of all tel numbers.</P>
|
||||
<PRE>1
|
||||
2142
|
||||
2143
|
||||
<P>File of lines of all tel numbers and cits, separated by <tab>s</P>
|
||||
<PRE>1 Wien
|
||||
2142 Gattendorf
|
||||
2143 Berg
|
||||
...
|
||||
2252
|
||||
2252 Baden b Wien
|
||||
...</PRE>
|
||||
|
||||
<H2>Author</H2>
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue