Oops. I did some VERY wrong things with readline(). Fixed now.

This commit is contained in:
Ivo Timmermans 2000-12-05 08:56:44 +00:00
parent 6ddc9109d7
commit 9267bed9f5

View file

@ -19,7 +19,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: conf.c,v 1.9.4.32 2000/12/03 12:22:19 zarq Exp $ $Id: conf.c,v 1.9.4.33 2000/12/05 08:56:44 zarq Exp $
*/ */
#include "config.h" #include "config.h"
@ -143,7 +143,7 @@ cp
given, and buf needs to be expanded, the var pointed to by buflen given, and buf needs to be expanded, the var pointed to by buflen
will be increased. will be increased.
*/ */
char *readline(FILE *fp, char *buf, size_t *buflen) char *readline(FILE *fp, char **buf, size_t *buflen)
{ {
char *newline = NULL; char *newline = NULL;
char *p; char *p;
@ -162,7 +162,7 @@ char *readline(FILE *fp, char *buf, size_t *buflen)
if((buf != NULL) && (buflen != NULL)) if((buf != NULL) && (buflen != NULL))
{ {
size = *buflen; size = *buflen;
line = buf; line = *buf;
} }
else else
{ {
@ -206,7 +206,10 @@ char *readline(FILE *fp, char *buf, size_t *buflen)
} }
if((buf != NULL) && (buflen != NULL)) if((buf != NULL) && (buflen != NULL))
*buf = size; {
*buflen = size;
*buf = line;
}
return line; return line;
} }
@ -216,7 +219,7 @@ char *readline(FILE *fp, char *buf, size_t *buflen)
*/ */
int read_config_file(config_t **base, const char *fname) int read_config_file(config_t **base, const char *fname)
{ {
int err = -1; int err = -2; /* Parse error */
FILE *fp; FILE *fp;
char *buffer, *line; char *buffer, *line;
char *p, *q; char *p, *q;
@ -233,7 +236,8 @@ cp
for(;;) for(;;)
{ {
if((line = readline(fp, buffer, &bufsize)) == NULL)
if((line = readline(fp, &buffer, &bufsize)) == NULL)
{ {
err = -1; err = -1;
break; break;
@ -297,7 +301,7 @@ int read_server_config()
cp cp
asprintf(&fname, "%s/tinc.conf", confbase); asprintf(&fname, "%s/tinc.conf", confbase);
x = read_config_file(&config, fname); x = read_config_file(&config, fname);
if(x != 0) if(x == -1) /* System error */
{ {
fprintf(stderr, _("Failed to read `%s': %m\n"), fprintf(stderr, _("Failed to read `%s': %m\n"),
fname); fname);