isdnrep and lib: bugfixes

This commit is contained in:
Stefan Luethje 1998-10-13 21:53:37 +00:00
parent bfa9edbaf3
commit 44796a035d
5 changed files with 108 additions and 17 deletions

View File

@ -24,6 +24,22 @@
*
*
* $Log$
* Revision 1.46 1998/10/04 12:04:21 akool
* - README
* New entries "CALLFILE" and "CALLFMT" documented
* Small Correction from Markus Werner <mw@empire.wolfsburg.de>
* cosmetics
*
* - isdnrep.c
* Bugfix (Thanks to Arnd Bergmann <arnd@uni.de>)
*
* - processor.c
* Patch from Oliver Lauer <Oliver.Lauer@coburg.baynet.de>
* Makes CHARGEMAX work without AOC-D
*
* Patch from Stefan Gruendel <sgruendel@adulo.de>
* gcc 2.7.2.1 Optimizer-Bug workaround
*
* Revision 1.45 1998/10/03 18:06:35 akool
* - processor.c, takt_at.c : Patch from Michael Reinelt <reinelt@eunet.at>
* try to guess the zone of the calling/called party
@ -1134,9 +1150,10 @@ static int print_bottom(double unit, char *start, char *stop)
else
if ((p = get_areacode(unknown[i].num, &l, flag)) != 0) {
if (l > 1) {
strncpy(areacode, unknown[i].num, 2 + prefix);
/* Sehr gefaehrlich, was ist mit Laendern, die einen dreistelligen Code haben??? */
Strncpy(areacode, unknown[i].num, 3 + prefix);
if ((l - (2 + prefix)) > 0) {
strncpy(vorwahl, unknown[i].num + 2 + prefix, l - (2 + prefix));
Strncpy(vorwahl, unknown[i].num + 2 + prefix, l - (2 + prefix) + 1);
vorwahl[l - (2 + prefix)] = 0;
}
else

View File

@ -19,6 +19,29 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.22 1998/09/26 18:30:30 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.21 1998/06/07 21:03:26 akool
* Renamed old to new zone-names (CityCall, RegioCall, GermanCall, GlobalCall)
*
@ -275,9 +298,9 @@ char *expand_number(char *s)
{
int all_allowed = 0;
char *Ptr;
int Index;
char Help[SHORT_STRING_SIZE];
static char Num[SHORT_STRING_SIZE];
int Index = 0;
char Help[NUMBER_SIZE] = "";
static char Num[NUMBER_SIZE];
Help[0] = '\0';
@ -291,12 +314,17 @@ char *expand_number(char *s)
if (*Ptr == '+')
{
strcpy(Help,countryprefix);
Strncpy(Help,countryprefix,NUMBER_SIZE);
Ptr++;
}
Index = strlen(Help);
while(*Ptr != '\0')
{
if (*Ptr == ',' || Index >= NUMBER_SIZE)
break;
if (isdigit(*Ptr) || *Ptr == '?' || *Ptr == '*'||
*Ptr == '[' || *Ptr == ']' || all_allowed )
{
@ -306,14 +334,14 @@ char *expand_number(char *s)
if (*Ptr == ']')
all_allowed = 0;
Index = strlen(Help);
Help[Index] = *Ptr;
Help[Index+1] = '\0';
Help[Index++] = *Ptr;
}
Ptr++;
}
Help[Index] = '\0';
if (Help[0] == '\0')
return s;
@ -717,7 +745,7 @@ char *get_areacode(char *code, int *Len, int flag)
{
char *ptr = expand_number(code);
if ((code = alloca(strlen(ptr))) == NULL)
if ((code = alloca(strlen(ptr)+1)) == NULL)
print_msg("Can not allocate memory!\n");
strcpy(code,ptr);
@ -1038,8 +1066,8 @@ const char* area_diff_string(char* number1, char* number2)
int area_diff(char* _code, char *_diffcode)
{
FILE *fp = NULL;
char code[40];
char diffcode[40];
char code[NUMBER_SIZE];
char diffcode[NUMBER_SIZE];
char value[15];
int index;
int number;
@ -1052,11 +1080,11 @@ int area_diff(char* _code, char *_diffcode)
if (_code == NULL)
{
strcpy(code,mycountry);
strcat(code,myarea);
Strncpy(code,mycountry,NUMBER_SIZE);
Strncat(code,myarea,NUMBER_SIZE);
}
else
strcpy(code,expand_number(_code));
Strncpy(code,expand_number(_code),NUMBER_SIZE);
if (strncmp(mycountry,code,strlen(mycountry)))
return AREA_UNKNOWN;
@ -1064,7 +1092,7 @@ int area_diff(char* _code, char *_diffcode)
if (_diffcode == NULL)
return AREA_ERROR;
else
strcpy(diffcode,expand_number(_diffcode));
Strncpy(diffcode,expand_number(_diffcode),NUMBER_SIZE);
if ((index = area_get_index(code)) == -1)
return AREA_ERROR;

View File

@ -20,6 +20,9 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.9 1998/05/11 19:43:51 luethje
* Some changes for "vorwahlen.dat"
*
* Revision 1.8 1998/05/10 22:12:04 luethje
* Added support for VORWAHLEN2.EXE
*
@ -63,7 +66,13 @@ extern char *basename __P((__const char *__name));
/****************************************************************************/
#define CONFDIR_VAR "ISDN_CONF_PATH"
#ifndef NUMBER_SIZE
# define NUMBER_SIZE 40
#endif
#ifndef CONFDIR_VAR
# define CONFDIR_VAR "ISDN_CONF_PATH"
#endif
#define C_SLASH '/'
/* #define C_SLASH '\\' */

View File

@ -18,6 +18,11 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.6 1997/05/09 23:31:09 luethje
* isdnlog: new switch -O
* isdnrep: new format %S
* bugfix in handle_runfiles()
*
* Revision 1.5 1997/04/15 00:20:18 luethje
* replace variables: some bugfixes, README comleted
*
@ -645,3 +650,28 @@ char *int2str(int value, int prec)
/****************************************************************************/
char *Strncat(char *dest, const char *src, int len)
{
int destlen = strlen(dest);
return Strncpy(dest+destlen,src,len-destlen);
}
/****************************************************************************/
char *Strncpy(char *dest, const char *src, int len)
{
int l = strlen(src);
if (l > len - 1)
l = len - 1;
strncpy(dest,src,l);
dest[l] = '\0';
return dest;
}
/****************************************************************************/

View File

@ -19,6 +19,11 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.6 1997/05/09 23:31:10 luethje
* isdnlog: new switch -O
* isdnrep: new format %S
* bugfix in handle_runfiles()
*
* Revision 1.5 1997/04/15 00:20:19 luethje
* replace variables: some bugfixes, README comleted
*
@ -100,6 +105,8 @@ _EXTERN int is_double (char *string, double *value);
_EXTERN int is_integer (char *string, long int *value);
_EXTERN char *Replace_Variable(char *String);
_EXTERN char *int2str(int value, int prec);
_EXTERN char *Strncpy(char *dest, const char *src, int len);
_EXTERN char *Strncat(char *dest, const char *src, int len);
#undef _EXTERN