Changeset View
Changeset View
Standalone View
Standalone View
contrib/tcp_wrappers/misc.c
Show All 19 Lines | |||||
#include "tcpd.h" | #include "tcpd.h" | ||||
#ifndef INADDR_NONE | #ifndef INADDR_NONE | ||||
#define INADDR_NONE (-1) /* XXX should be 0xffffffff */ | #define INADDR_NONE (-1) /* XXX should be 0xffffffff */ | ||||
#endif | #endif | ||||
/* xgets - fgets() with backslash-newline stripping */ | /* xgets - fgets() with backslash-newline stripping */ | ||||
char *xgets(ptr, len, fp) | char *xgets(char *ptr, int len, FILE *fp) | ||||
char *ptr; | |||||
int len; | |||||
FILE *fp; | |||||
{ | { | ||||
int got; | int got; | ||||
char *start = ptr; | char *start = ptr; | ||||
while (fgets(ptr, len, fp)) { | while (fgets(ptr, len, fp)) { | ||||
got = strlen(ptr); | got = strlen(ptr); | ||||
if (got >= 1 && ptr[got - 1] == '\n') { | if (got >= 1 && ptr[got - 1] == '\n') { | ||||
tcpd_context.line++; | tcpd_context.line++; | ||||
if (got >= 2 && ptr[got - 2] == '\\') { | if (got >= 2 && ptr[got - 2] == '\\') { | ||||
got -= 2; | got -= 2; | ||||
} else { | } else { | ||||
return (start); | return (start); | ||||
} | } | ||||
} | } | ||||
ptr += got; | ptr += got; | ||||
len -= got; | len -= got; | ||||
ptr[0] = 0; | ptr[0] = 0; | ||||
} | } | ||||
return (ptr > start ? start : 0); | return (ptr > start ? start : 0); | ||||
} | } | ||||
/* split_at - break string at delimiter or return NULL */ | /* split_at - break string at delimiter or return NULL */ | ||||
char *split_at(string, delimiter) | char *split_at(char *string, int delimiter) | ||||
char *string; | |||||
int delimiter; | |||||
{ | { | ||||
char *cp; | char *cp; | ||||
#ifdef INET6 | #ifdef INET6 | ||||
int bracket = 0; | int bracket = 0; | ||||
for (cp = string; cp && *cp; cp++) { | for (cp = string; cp && *cp; cp++) { | ||||
switch (*cp) { | switch (*cp) { | ||||
Show All 16 Lines | #else | ||||
if ((cp = strchr(string, delimiter)) != 0) | if ((cp = strchr(string, delimiter)) != 0) | ||||
*cp++ = 0; | *cp++ = 0; | ||||
return (cp); | return (cp); | ||||
#endif | #endif | ||||
} | } | ||||
/* dot_quad_addr - convert dotted quad to internal form */ | /* dot_quad_addr - convert dotted quad to internal form */ | ||||
unsigned long dot_quad_addr(str) | unsigned long dot_quad_addr(char *str) | ||||
char *str; | |||||
{ | { | ||||
int in_run = 0; | int in_run = 0; | ||||
int runs = 0; | int runs = 0; | ||||
char *cp = str; | char *cp = str; | ||||
/* Count the number of runs of non-dot characters. */ | /* Count the number of runs of non-dot characters. */ | ||||
while (*cp) { | while (*cp) { | ||||
Show All 10 Lines |