fix: populate ldns submodule and add autotools to LDNS build stage
- Re-cloned zonemaster-ldns with --recurse-submodules so the bundled ldns C library source (including Changelog and configure.ac) is present - Added autoconf, automake, libtool to Dockerfile.backend ldns-build stage so libtoolize + autoreconf can generate ldns/configure during make Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
63
zonemaster-ldns/ldns/pcat/getdelim.c
Normal file
63
zonemaster-ldns/ldns/pcat/getdelim.c
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "config.h"
|
||||
#ifndef HAVE_GETDELIM
|
||||
|
||||
#define GETDELIM_BUFFER 128
|
||||
|
||||
/* copied from xine-devel */
|
||||
size_t
|
||||
getdelim( char **lineptr, size_t *n, int delimiter, FILE *stream )
|
||||
{
|
||||
char *p;
|
||||
int c;
|
||||
size_t len = 0;
|
||||
|
||||
if (!lineptr || !n || (!*lineptr && *n))
|
||||
return -1;
|
||||
|
||||
/* allocate initial buffer */
|
||||
if (!*lineptr || !*n) {
|
||||
char *np;
|
||||
np = realloc( *lineptr, GETDELIM_BUFFER );
|
||||
if (!np)
|
||||
return -1;
|
||||
*n = GETDELIM_BUFFER;
|
||||
*lineptr = np;
|
||||
}
|
||||
|
||||
p = *lineptr;
|
||||
|
||||
/* read characters from stream */
|
||||
while ((c = fgetc( stream )) != EOF) {
|
||||
if (len >= *n) {
|
||||
char *np = realloc( *lineptr, *n * 2 );
|
||||
if (!np)
|
||||
return -1;
|
||||
p = np + (p - *lineptr);
|
||||
*lineptr = np;
|
||||
*n *= 2;
|
||||
}
|
||||
*p++ = (char) c;
|
||||
len++;
|
||||
if (delimiter == c)
|
||||
break;
|
||||
}
|
||||
|
||||
/* end of file without any bytes read */
|
||||
if ((c == EOF) && (len == 0))
|
||||
return -1;
|
||||
|
||||
/* trailing "\0" */
|
||||
if (len >= *n) {
|
||||
char *np = realloc( *lineptr, *n + 1 );
|
||||
if (!np)
|
||||
return -1;
|
||||
p = np + (p - *lineptr);
|
||||
*lineptr = np;
|
||||
*n += 1;
|
||||
}
|
||||
*p = '\0';
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
#endif /* !HAVE_GETDELIM */
|
||||
Reference in New Issue
Block a user