From: Fabian Keil Date: Tue, 9 Mar 2021 14:24:00 +0000 (+0100) Subject: Move host_is_ip_address() to miscutil.c X-Git-Tag: v_3_0_34~139 X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=commitdiff_plain;h=6d67d8973b484f5a781fd46a04dc2410b769f970;ds=sidebyside Move host_is_ip_address() to miscutil.c ... so I can use it in gateway.c as well. --- diff --git a/miscutil.c b/miscutil.c index 831f3c5d..fe0cd9b5 100644 --- a/miscutil.c +++ b/miscutil.c @@ -1002,6 +1002,49 @@ time_t timegm(struct tm *tm) #endif /* !defined(HAVE_TIMEGM) && defined(HAVE_TZSET) && defined(HAVE_PUTENV) */ +/********************************************************************* + * + * Function : host_is_ip_address + * + * Description : Checks whether or not a host is specified by + * IP address. Does not actually validate the + * address. + * + * Parameters : + * 1 : host = The host name to check + * + * Returns : 1 => Yes + * 0 => No + * + *********************************************************************/ +extern int host_is_ip_address(const char *host) +{ + const char *p; + + if (NULL != strstr(host, ":")) + { + /* Assume an IPv6 address. */ + return 1; + } + + for (p = host; *p; p++) + { + if ((*p != '.') && !privoxy_isdigit(*p)) + { + /* Not a dot or digit so it can't be an IPv4 address. */ + return 0; + } + } + + /* + * Host only consists of dots and digits so + * assume that is an IPv4 address. + */ + return 1; + +} + + /* Local Variables: tab-width: 3 diff --git a/miscutil.h b/miscutil.h index 7c5f7dff..8f7c137d 100644 --- a/miscutil.h +++ b/miscutil.h @@ -91,6 +91,8 @@ size_t privoxy_strlcat(char *destination, const char *source, size_t size); extern int privoxy_millisleep(unsigned milliseconds); extern struct tm *privoxy_gmtime_r(const time_t *time_spec, struct tm *result); +extern int host_is_ip_address(const char *host); + #if defined(__cplusplus) } #endif diff --git a/ssl_common.c b/ssl_common.c index 35970eb9..18817137 100644 --- a/ssl_common.c +++ b/ssl_common.c @@ -673,49 +673,6 @@ extern int get_certificate_valid_to_date(char *buffer, size_t buffer_size, const } -/********************************************************************* - * - * Function : host_is_ip_address - * - * Description : Checks whether or not a host is specified by - * IP address. Does not actually validate the - * address. - * - * Parameters : - * 1 : host = The host name to check - * - * Returns : 1 => Yes - * 0 => No - * - *********************************************************************/ -extern int host_is_ip_address(const char *host) -{ - const char *p; - - if (NULL != strstr(host, ":")) - { - /* Assume an IPv6 address. */ - return 1; - } - - for (p = host; *p; p++) - { - if ((*p != '.') && !privoxy_isdigit(*p)) - { - /* Not a dot or digit so it can't be an IPv4 address. */ - return 0; - } - } - - /* - * Host only consists of dots and digits so - * assume that is an IPv4 address. - */ - return 1; - -} - - /********************************************************************* * * Function : enforce_sane_certificate_state diff --git a/ssl_common.h b/ssl_common.h index bd5ce0b6..66fb5374 100644 --- a/ssl_common.h +++ b/ssl_common.h @@ -72,7 +72,6 @@ extern char *make_certs_path(const char *conf_dir, const char *file_name, extern unsigned long get_certificate_serial(struct client_state *csp); extern int get_certificate_valid_from_date(char *buffer, size_t buffer_size, const char *fmt); extern int get_certificate_valid_to_date(char *buffer, size_t buffer_size, const char *fmt); -extern int host_is_ip_address(const char *host); extern int enforce_sane_certificate_state(const char *certificate, const char *key); #endif /* ndef SSL_COMMON_H_INCLUDED */