Unlimited length in the config file, thanks to Cris van Pelt.
This commit is contained in:
parent
b18af982af
commit
7e817fcf0f
3 changed files with 17 additions and 2 deletions
1
THANKS
1
THANKS
|
@ -8,6 +8,7 @@ I would like to thank
|
||||||
* James B. MacLean (for fixing several mission critical bugs, and for
|
* James B. MacLean (for fixing several mission critical bugs, and for
|
||||||
giving me a few good ideas, and, most of all, for the wonderful
|
giving me a few good ideas, and, most of all, for the wonderful
|
||||||
testing and debugging)
|
testing and debugging)
|
||||||
|
* Cris van Pelt
|
||||||
* Robert van der Meulen
|
* Robert van der Meulen
|
||||||
* Sander Smeenk
|
* Sander Smeenk
|
||||||
* Tijs van Bakel
|
* Tijs van Bakel
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# Sample tinc configuration file
|
# Sample tinc configuration file
|
||||||
|
|
||||||
# This is a comment.
|
# This is a comment.
|
||||||
# Lines can have a maximum of 80 characters.
|
|
||||||
# Spaces and tabs are eliminated.
|
# Spaces and tabs are eliminated.
|
||||||
# The = sign isn't strictly necessary any longer, though you may want
|
# The = sign isn't strictly necessary any longer, though you may want
|
||||||
# to leave it in as it improves readability :)
|
# to leave it in as it improves readability :)
|
||||||
|
|
17
src/conf.c
17
src/conf.c
|
@ -18,6 +18,9 @@
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Created more dynamic storage for lines read from the config file. --
|
||||||
|
Cris van Pelt */
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
@ -111,15 +114,27 @@ add_config_val(config_t **cfg, int argtype, char *val)
|
||||||
int
|
int
|
||||||
readconfig(const char *fname, FILE *fp)
|
readconfig(const char *fname, FILE *fp)
|
||||||
{
|
{
|
||||||
char line[81];
|
char *line, *temp_buf;
|
||||||
char *p, *q;
|
char *p, *q;
|
||||||
int i, lineno = 0;
|
int i, lineno = 0;
|
||||||
config_t *cfg;
|
config_t *cfg;
|
||||||
|
|
||||||
|
line = (char *)xmalloc(80 * sizeof(char));
|
||||||
|
temp_buf = (char *)xmalloc(80 * sizeof(char));
|
||||||
|
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
if(fgets(line, 80, fp) == NULL)
|
if(fgets(line, 80, fp) == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
while(!index(line, '\n'))
|
||||||
|
{
|
||||||
|
fgets(temp_buf, (strlen(line)+1) * 80, fp);
|
||||||
|
if(!temp_buf)
|
||||||
|
break;
|
||||||
|
strcat(line, temp_buf);
|
||||||
|
line = (char *)xrealloc(line, (strlen(line)+1) * sizeof(char));
|
||||||
|
}
|
||||||
lineno++;
|
lineno++;
|
||||||
|
|
||||||
if((p = strtok(line, "\t\n\r =")) == NULL)
|
if((p = strtok(line, "\t\n\r =")) == NULL)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue