Added support for VORWAHLEN2.EXE
This commit is contained in:
parent
04f23a200e
commit
d7bedaa9e3
|
@ -19,6 +19,9 @@
|
||||||
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
##
|
##
|
||||||
## $Log$
|
## $Log$
|
||||||
|
## Revision 1.37 1998/03/29 23:17:47 luethje
|
||||||
|
## mySQL-Patch of Sascha Matzke
|
||||||
|
##
|
||||||
## Revision 1.36 1998/03/29 19:54:04 luethje
|
## Revision 1.36 1998/03/29 19:54:04 luethje
|
||||||
## idnrep: added html feature (incoming/outgoing calls)
|
## idnrep: added html feature (incoming/outgoing calls)
|
||||||
##
|
##
|
||||||
|
@ -264,7 +267,7 @@ SERVICEFILE = /etc/services
|
||||||
# DON'T EDIT BELOW THIS LINE
|
# DON'T EDIT BELOW THIS LINE
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
VERSION = 2.99.27
|
VERSION = 2.99.28
|
||||||
|
|
||||||
ifeq ($(POSTGRES),1)
|
ifeq ($(POSTGRES),1)
|
||||||
DEFS += -DPOSTGRES
|
DEFS += -DPOSTGRES
|
||||||
|
|
|
@ -19,6 +19,12 @@
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*
|
*
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.9 1997/05/25 19:40:53 luethje
|
||||||
|
* isdnlog: close all files and open again after kill -HUP
|
||||||
|
* isdnrep: support vbox version 2.0
|
||||||
|
* isdnconf: changes by Roderich Schupp <roderich@syntec.m.EUnet.de>
|
||||||
|
* conffile: ignore spaces at the end of a line
|
||||||
|
*
|
||||||
* Revision 1.8 1997/05/05 21:21:42 luethje
|
* Revision 1.8 1997/05/05 21:21:42 luethje
|
||||||
* bugfix for option -M
|
* bugfix for option -M
|
||||||
*
|
*
|
||||||
|
@ -52,6 +58,7 @@ int find_data(char *_alias, char *_number, section *conf_dat);
|
||||||
const char* make_word(const char *in);
|
const char* make_word(const char *in);
|
||||||
char* tmp_dup(const char *in);
|
char* tmp_dup(const char *in);
|
||||||
int add_line(section **Ptr, const char *Name);
|
int add_line(section **Ptr, const char *Name);
|
||||||
|
char *get_area(char *number);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
@ -230,6 +237,7 @@ int find_data(char *_alias, char *_number, section *conf_dat)
|
||||||
auto char *ptr;
|
auto char *ptr;
|
||||||
auto entry *CEPtr;
|
auto entry *CEPtr;
|
||||||
auto section *SPtr;
|
auto section *SPtr;
|
||||||
|
char *area;
|
||||||
|
|
||||||
if (quiet)
|
if (quiet)
|
||||||
{
|
{
|
||||||
|
@ -248,7 +256,8 @@ int find_data(char *_alias, char *_number, section *conf_dat)
|
||||||
ptr = (CEPtr = Get_Entry(conf_dat->entries,CONF_ENT_SI))?(CEPtr->value?CEPtr->value:"0"):"0";
|
ptr = (CEPtr = Get_Entry(conf_dat->entries,CONF_ENT_SI))?(CEPtr->value?CEPtr->value:"0"):"0";
|
||||||
print_msg(PRT_NORMAL,"%s:\t\t%s\n",CONF_ENT_SI,ptr);
|
print_msg(PRT_NORMAL,"%s:\t\t%s\n",CONF_ENT_SI,ptr);
|
||||||
|
|
||||||
ptr = (CEPtr = Get_Entry(conf_dat->entries,CONF_ENT_ZONE))?(CEPtr->value?CEPtr->value:""):"";
|
area = get_area(_number);
|
||||||
|
ptr = area[0] != '\0'?area:(CEPtr = Get_Entry(conf_dat->entries,CONF_ENT_ZONE))?(CEPtr->value?CEPtr->value:""):"";
|
||||||
print_msg(PRT_NORMAL,"%s:\t\t%s\n",make_word(CONF_ENT_ZONE),ptr);
|
print_msg(PRT_NORMAL,"%s:\t\t%s\n",make_word(CONF_ENT_ZONE),ptr);
|
||||||
|
|
||||||
ptr = (CEPtr = Get_Entry(conf_dat->entries,CONF_ENT_INTFAC))?(CEPtr->value?CEPtr->value:""):"";
|
ptr = (CEPtr = Get_Entry(conf_dat->entries,CONF_ENT_INTFAC))?(CEPtr->value?CEPtr->value:""):"";
|
||||||
|
@ -466,6 +475,17 @@ int print_in_modules(const char *fmt, ...)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
char *get_area(char *number)
|
||||||
|
{
|
||||||
|
int area;
|
||||||
|
|
||||||
|
area = area_diff(NULL,number);
|
||||||
|
return area == AREA_LOCAL?"Nahbereich":area == AREA_R50?"Region 50":area == AREA_FAR?"Fernzone":"";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
int main(int argc, char *argv[], char *envp[])
|
int main(int argc, char *argv[], char *envp[])
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
|
@ -633,9 +653,11 @@ int main(int argc, char *argv[], char *envp[])
|
||||||
{
|
{
|
||||||
if (!isdnmon)
|
if (!isdnmon)
|
||||||
{
|
{
|
||||||
print_msg(PRT_NORMAL,"%s\n",ptr);
|
char *area = get_area(areacode);
|
||||||
|
|
||||||
|
print_msg(PRT_NORMAL,"%s%s%s\n",ptr,area[0] != '\0'?" / ":"", area[0] != '\0'?area:"");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
print_msg(PRT_NORMAL,"%s\t%d\t",ptr,len);
|
print_msg(PRT_NORMAL,"%s\t%d\t",ptr,len);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ endif
|
||||||
# USER CONFIGURATION AREA
|
# USER CONFIGURATION AREA
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
CFLAGS = -Wall -pipe -O6
|
CFLAGS = -g -Wall -pipe #-O6
|
||||||
DEFS =
|
DEFS =
|
||||||
ifndef _CC
|
ifndef _CC
|
||||||
export _CC = gcc
|
export _CC = gcc
|
||||||
|
|
244
lib/isdntools.c
244
lib/isdntools.c
|
@ -19,6 +19,9 @@
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*
|
*
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.18 1998/04/28 08:34:36 paul
|
||||||
|
* Fixed compiler warnings from egcs.
|
||||||
|
*
|
||||||
* Revision 1.17 1998/03/08 12:13:49 luethje
|
* Revision 1.17 1998/03/08 12:13:49 luethje
|
||||||
* Patches by Paul Slootman
|
* Patches by Paul Slootman
|
||||||
*
|
*
|
||||||
|
@ -144,15 +147,30 @@
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
|
||||||
#include "libisdn.h"
|
#include "libisdn.h"
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#define GERMAN_CODE 49
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char code[15];
|
||||||
|
long int pointer;
|
||||||
|
} s_areacode;
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
static int (*print_msg)(const char *, ...) = printf;
|
static int (*print_msg)(const char *, ...) = printf;
|
||||||
static char *_get_avon(char *code, int *Len, int flag);
|
static char *_get_avon(char *code, int *Len, int flag);
|
||||||
static char *_get_areacode(char *code, int *Len, int flag);
|
static char *_get_areacode(char *code, int *Len, int flag);
|
||||||
static int create_runfile(const char *file, const char *format);
|
static int create_runfile(const char *file, const char *format);
|
||||||
|
static long int area_read_value(FILE *fp, int size);
|
||||||
|
static int area_read_file(void);
|
||||||
|
static int area_get_index(char *code);
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
@ -200,6 +218,8 @@ static char countrycodes[][2][30] = {
|
||||||
|
|
||||||
static char *avonlib = NULL;
|
static char *avonlib = NULL;
|
||||||
static char *codelib = NULL;
|
static char *codelib = NULL;
|
||||||
|
static s_areacode *codes = NULL;
|
||||||
|
static int codes_number = 0;
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
@ -547,11 +567,11 @@ static int create_runfile(const char *file, const char *format)
|
||||||
muss von jedem Programm aufgerufen werden!!!
|
muss von jedem Programm aufgerufen werden!!!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define _MAX_VARS 7
|
#define _MAX_VARS 8
|
||||||
|
|
||||||
int Set_Codes(section* Section)
|
int Set_Codes(section* Section)
|
||||||
{
|
{
|
||||||
static char *ptr[_MAX_VARS] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL};
|
static char *ptr[_MAX_VARS] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
|
||||||
int i;
|
int i;
|
||||||
int RetCode = 0;
|
int RetCode = 0;
|
||||||
entry *Entry;
|
entry *Entry;
|
||||||
|
@ -628,6 +648,27 @@ int Set_Codes(section* Section)
|
||||||
print_msg("Error: Variable `%s' are not set!\n",CONF_ENT_COUNTRY);
|
print_msg("Error: Variable `%s' are not set!\n",CONF_ENT_COUNTRY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((Entry = Get_Entry(SPtr->entries,CONF_ENT_AREADIFF)) != NULL &&
|
||||||
|
Entry->value != NULL )
|
||||||
|
ptr[7] = areadifffile = strdup(Entry->value);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((areadifffile = (char*) calloc(strlen(confdir())+strlen(S_AREA_DIFF_FILE)+2,sizeof(char))) == NULL)
|
||||||
|
print_msg("Can not allocate memory!\n");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf(areadifffile,"%s%c%s",confdir(),C_SLASH,S_AREA_DIFF_FILE);
|
||||||
|
|
||||||
|
if (access(areadifffile,R_OK))
|
||||||
|
{
|
||||||
|
free(areadifffile);
|
||||||
|
areadifffile = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ptr[7] = areadifffile;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SPtr = Section;
|
SPtr = Section;
|
||||||
|
|
||||||
while ((SPtr = Get_Section(SPtr,CONF_SEC_VAR)) != NULL)
|
while ((SPtr = Get_Section(SPtr,CONF_SEC_VAR)) != NULL)
|
||||||
|
@ -930,3 +971,202 @@ int paranoia_check(char *cmd)
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
static long int area_read_value(FILE *fp, int size)
|
||||||
|
{
|
||||||
|
long value = 0;
|
||||||
|
static int endian = -1;
|
||||||
|
|
||||||
|
if (size != 2 && size != 4 && size != 1)
|
||||||
|
{
|
||||||
|
print_msg("Can not read lenght %d, only 1, 2, 4\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endian == -1)
|
||||||
|
{
|
||||||
|
if (htons(0x0101) == 0x0101)
|
||||||
|
endian = 0;
|
||||||
|
else
|
||||||
|
endian = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fread(&value,size,1,fp) != 1)
|
||||||
|
{
|
||||||
|
print_msg("Can not read from file `%s': Too less data!\n", areadifffile);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endian)
|
||||||
|
{
|
||||||
|
if (size == 2)
|
||||||
|
value = ntohs(value);
|
||||||
|
else
|
||||||
|
if (size == 4)
|
||||||
|
value = ntohl(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
const char* area_diff_string(char* number1, char* number2)
|
||||||
|
{
|
||||||
|
int area = area_diff(number1,number2);
|
||||||
|
return area == AREA_LOCAL?"Nahbereich":area == AREA_R50?"Region 50":area == AREA_FAR?"Fernzone":"";
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
int area_diff(char* _code, char *_diffcode)
|
||||||
|
{
|
||||||
|
FILE *fp = NULL;
|
||||||
|
char code[15];
|
||||||
|
char diffcode[15];
|
||||||
|
char value[15];
|
||||||
|
int index;
|
||||||
|
int number;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
|
||||||
|
if (codes == NULL)
|
||||||
|
if (area_read_file() == -1)
|
||||||
|
return AREA_ERROR;
|
||||||
|
|
||||||
|
if (_code == NULL)
|
||||||
|
{
|
||||||
|
strcpy(code,mycountry);
|
||||||
|
strcat(code,myarea);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
strcpy(code,expand_number(_code));
|
||||||
|
|
||||||
|
if (_diffcode == NULL)
|
||||||
|
return AREA_ERROR;
|
||||||
|
else
|
||||||
|
strcpy(diffcode,expand_number(_diffcode));
|
||||||
|
|
||||||
|
if ((index = area_get_index(code)) == -1)
|
||||||
|
return AREA_ERROR;
|
||||||
|
|
||||||
|
if ((fp = fopen(areadifffile,"r")) == NULL)
|
||||||
|
{
|
||||||
|
print_msg("Can not open file `%s': %s\n", areadifffile, strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
fseek(fp,codes[index].pointer,SEEK_SET);
|
||||||
|
|
||||||
|
number = area_read_value(fp,2);
|
||||||
|
|
||||||
|
while(i++<number)
|
||||||
|
{
|
||||||
|
sprintf(value,"%s%d%ld",countryprefix,GERMAN_CODE,(area_read_value(fp,2)+32768)%65536);
|
||||||
|
if (!strncmp(value,diffcode,strlen(value)))
|
||||||
|
{
|
||||||
|
fclose(fp);
|
||||||
|
return AREA_LOCAL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
number = area_read_value(fp,2);
|
||||||
|
|
||||||
|
while(i++<number)
|
||||||
|
{
|
||||||
|
sprintf(value,"%s%d%ld",countryprefix,GERMAN_CODE,(area_read_value(fp,2)+32768)%65536);
|
||||||
|
if (!strncmp(value,diffcode,strlen(value)))
|
||||||
|
{
|
||||||
|
fclose(fp);
|
||||||
|
return AREA_R50;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
if (!strncmp(mycountry,diffcode,strlen(mycountry)))
|
||||||
|
return AREA_FAR;
|
||||||
|
|
||||||
|
return AREA_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
static int area_get_index(char *code)
|
||||||
|
{
|
||||||
|
int index = -1;
|
||||||
|
|
||||||
|
if (codes == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
while(++index < codes_number)
|
||||||
|
if (!strcmp(codes[index].code,code))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (index == codes_number)
|
||||||
|
{
|
||||||
|
print_msg("Can not find area code `%s'!\n", code);
|
||||||
|
index = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
static int area_read_file(void)
|
||||||
|
{
|
||||||
|
FILE *fp = NULL;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
|
||||||
|
if (areadifffile == NULL)
|
||||||
|
{
|
||||||
|
// print_msg("There is no file name for vorwahl database!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((fp = fopen(areadifffile,"r")) == NULL)
|
||||||
|
{
|
||||||
|
print_msg("Can not open file `%s': %s\n", areadifffile, strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((codes_number = area_read_value(fp,2)) < 0)
|
||||||
|
{
|
||||||
|
print_msg("Number of areacodes is wrong: %d\n", codes_number);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (codes != NULL)
|
||||||
|
free(codes);
|
||||||
|
|
||||||
|
if ((codes = (s_areacode*) calloc(codes_number,sizeof(s_areacode))) == NULL)
|
||||||
|
{
|
||||||
|
print_msg("%s\n", strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fseek(fp,3,SEEK_SET) != 0)
|
||||||
|
{
|
||||||
|
print_msg("Can not seek file `%s' to position %d: %s\n", areadifffile, 4*codes_number+3, strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (i<codes_number)
|
||||||
|
codes[i++].pointer = area_read_value(fp,4) -1;
|
||||||
|
|
||||||
|
if (fseek(fp,4*codes_number+3,SEEK_SET) != 0)
|
||||||
|
{
|
||||||
|
print_msg("Can not seek file `%s' to position %d: %s\n", areadifffile, 4*codes_number+3, strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
while (i<codes_number)
|
||||||
|
sprintf(codes[i++].code,"%s%d%ld",countryprefix,GERMAN_CODE,(area_read_value(fp,2)+32768)%65536);
|
||||||
|
|
||||||
|
fclose(fp);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
|
@ -20,6 +20,12 @@
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*
|
*
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.7 1997/05/19 22:58:29 luethje
|
||||||
|
* - bugfix: it is possible to install isdnlog now
|
||||||
|
* - improved performance for read files for vbox files and mgetty files.
|
||||||
|
* - it is possible to decide via config if you want to use avon or
|
||||||
|
* areacode.
|
||||||
|
*
|
||||||
* Revision 1.6 1997/04/08 21:57:07 luethje
|
* Revision 1.6 1997/04/08 21:57:07 luethje
|
||||||
* Create the file isdn.conf
|
* Create the file isdn.conf
|
||||||
* some bug fixes for pid and lock file
|
* some bug fixes for pid and lock file
|
||||||
|
@ -99,6 +105,10 @@ extern char *basename __P((__const char *__name));
|
||||||
# define S_AREA_PREFIX "0"
|
# define S_AREA_PREFIX "0"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef S_AREA_DIFF_FILE
|
||||||
|
# define S_AREA_DIFF_FILE "vorwahlen.dat"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef AVON
|
#ifndef AVON
|
||||||
# define AVON "avon"
|
# define AVON "avon"
|
||||||
#endif
|
#endif
|
||||||
|
@ -113,6 +123,7 @@ extern char *basename __P((__const char *__name));
|
||||||
#define CONF_ENT_AREALIB "AREALIB"
|
#define CONF_ENT_AREALIB "AREALIB"
|
||||||
#define CONF_ENT_AVONLIB "AVON"
|
#define CONF_ENT_AVONLIB "AVON"
|
||||||
#define CONF_ENT_CODELIB "CODELIB"
|
#define CONF_ENT_CODELIB "CODELIB"
|
||||||
|
#define CONF_ENT_AREADIFF "AREADIFF"
|
||||||
|
|
||||||
#define CONF_SEC_VAR "VARIABLES"
|
#define CONF_SEC_VAR "VARIABLES"
|
||||||
|
|
||||||
|
@ -142,14 +153,24 @@ extern char *basename __P((__const char *__name));
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#define AREA_ERROR -1
|
||||||
|
#define AREA_UNKNOWN 0
|
||||||
|
#define AREA_LOCAL 1
|
||||||
|
#define AREA_R50 2
|
||||||
|
#define AREA_FAR 3
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifdef _ISDNTOOLS_C_
|
#ifdef _ISDNTOOLS_C_
|
||||||
#define _EXTERN
|
#define _EXTERN
|
||||||
#define SET_NULL = ""
|
#define SET_NULL = ""
|
||||||
|
#define SET_NULL2 = NULL
|
||||||
#define SET_AREA_PREFIX = S_AREA_PREFIX
|
#define SET_AREA_PREFIX = S_AREA_PREFIX
|
||||||
#define SET_COUNTRY_PREFIX = S_COUNTRY_PREFIX
|
#define SET_COUNTRY_PREFIX = S_COUNTRY_PREFIX
|
||||||
#else
|
#else
|
||||||
#define _EXTERN extern
|
#define _EXTERN extern
|
||||||
#define SET_NULL
|
#define SET_NULL
|
||||||
|
#define SET_NULL2
|
||||||
#define SET_AREA_PREFIX
|
#define SET_AREA_PREFIX
|
||||||
#define SET_COUNTRY_PREFIX
|
#define SET_COUNTRY_PREFIX
|
||||||
#endif
|
#endif
|
||||||
|
@ -158,6 +179,7 @@ _EXTERN char *mycountry SET_NULL;
|
||||||
_EXTERN char *myarea SET_NULL;
|
_EXTERN char *myarea SET_NULL;
|
||||||
_EXTERN char *areaprefix SET_AREA_PREFIX;
|
_EXTERN char *areaprefix SET_AREA_PREFIX;
|
||||||
_EXTERN char *countryprefix SET_COUNTRY_PREFIX;
|
_EXTERN char *countryprefix SET_COUNTRY_PREFIX;
|
||||||
|
_EXTERN char *areadifffile SET_NULL2;
|
||||||
|
|
||||||
_EXTERN void set_print_fct_for_lib(int (*new_print_msg)(const char *, ...));
|
_EXTERN void set_print_fct_for_lib(int (*new_print_msg)(const char *, ...));
|
||||||
_EXTERN int num_match(char *Pattern, char *number);
|
_EXTERN int num_match(char *Pattern, char *number);
|
||||||
|
@ -169,8 +191,11 @@ _EXTERN int Set_Codes(section* Section);
|
||||||
_EXTERN char *get_areacode(char *code, int *Len, int flag);
|
_EXTERN char *get_areacode(char *code, int *Len, int flag);
|
||||||
_EXTERN int read_conffiles(section **Section, char *groupfile);
|
_EXTERN int read_conffiles(section **Section, char *groupfile);
|
||||||
_EXTERN int paranoia_check(char *cmd);
|
_EXTERN int paranoia_check(char *cmd);
|
||||||
|
_EXTERN int area_diff(char* _code, char *_diffcode);
|
||||||
|
_EXTERN const char* area_diff_string(char* number1, char* number2);
|
||||||
|
|
||||||
#undef SET_NULL
|
#undef SET_NULL
|
||||||
|
#undef SET_NULL2
|
||||||
#undef SET_AREA_PREFIX
|
#undef SET_AREA_PREFIX
|
||||||
#undef SET_COUNTRY_PREFIX
|
#undef SET_COUNTRY_PREFIX
|
||||||
#undef _EXTERN
|
#undef _EXTERN
|
||||||
|
|
Loading…
Reference in New Issue