From 42c674fdae8d86bc6c6764cd0f3ce1bb14ceac92 Mon Sep 17 00:00:00 2001 From: serassio <> Date: Sun, 18 Jun 2006 16:05:53 +0000 Subject: [PATCH] MS Visual Studio C++ needs to declare global variables as extern "C". --- src/globals.h | 273 +++++++++++++++++++++++-------------------- src/mk-globals-c.awk | 13 ++- src/mk-globals-c.pl | 18 ++- 3 files changed, 174 insertions(+), 130 deletions(-) diff --git a/src/globals.h b/src/globals.h index 8a9d563582..4b0a527ccf 100644 --- a/src/globals.h +++ b/src/globals.h @@ -1,6 +1,6 @@ /* - * $Id: globals.h,v 1.135 2006/05/08 23:38:33 robertc Exp $ + * $Id: globals.h,v 1.136 2006/06/18 10:05:53 serassio Exp $ * * * SQUID Web Proxy Cache http://www.squid-cache.org/ @@ -34,146 +34,169 @@ #ifndef SQUID_GLOBALS_H #define SQUID_GLOBALS_H -extern FILE *debug_log; /* NULL */ -extern SquidConfig Config; -extern SquidConfig2 Config2; -extern char *ConfigFile; /* NULL */ -extern char *IcpOpcodeStr[]; -extern const char *dns_error_message; /* NULL */ -extern const char *log_tags[]; -extern char tmp_error_buf[ERROR_BUF_SZ]; -extern char *volatile debug_options; /* NULL */ -extern char ThisCache[SQUIDHOSTNAMELEN << 1]; -extern char ThisCache2[SQUIDHOSTNAMELEN << 1]; -extern char config_input_line[BUFSIZ]; -extern const char *DefaultConfigFile; /* DEFAULT_CONFIG_FILE */ -extern const char *cfg_filename; /* NULL */ -extern const char *const appname; /* "squid" */ -extern const char *const dash_str; /* "-" */ -extern const char *const localhost; /* "127.0.0.1" */ -extern const char *const null_string; /* "" */ -extern const char *const version_string; /* VERSION */ -extern const char *const full_appname_string; /* PACKAGE "/" VERSION */ -extern const char *const appname_string; /* PACKAGE */ -extern char * visible_appname_string; -extern const char *const w_space; /* " \t\n\r" */ -extern const char *fdTypeStr[]; -extern const char *hier_strings[]; -extern const char *memStatusStr[]; -extern const char *pingStatusStr[]; -extern const char *storeStatusStr[]; -extern const char *swapStatusStr[]; -extern fde *fd_table; /* NULL */ -extern int Biggest_FD; /* -1 */ -extern int Number_FD; /* 0 */ -extern int Opening_FD; /* 0 */ -extern int HttpSockets[MAXHTTPPORTS]; -extern int NDnsServersAlloc; /* 0 */ -extern int NHttpSockets; /* 0 */ -extern int RESERVED_FD; -extern int Squid_MaxFD; /* SQUID_MAXFD */ -extern int config_lineno; /* 0 */ -extern int do_mallinfo; /* 0 */ -extern int opt_reuseaddr; /* 1 */ -extern int icmp_sock; /* -1 */ -extern int neighbors_do_private_keys; /* 1 */ -extern int opt_catch_signals; /* 1 */ -extern int opt_debug_stderr; /* -1 */ -extern int opt_dns_tests; /* 1 */ -extern int opt_foreground_rebuild; /* 0 */ -extern int opt_forwarded_for; /* 1 */ -extern int opt_reload_hit_only; /* 0 */ +#ifdef __cplusplus +extern "C" +{ +#endif + + extern FILE *debug_log; /* NULL */ + extern SquidConfig Config; + extern SquidConfig2 Config2; + extern char *ConfigFile; /* NULL */ + extern char *IcpOpcodeStr[]; + extern const char *dns_error_message; /* NULL */ + extern const char *log_tags[]; + extern char tmp_error_buf[ERROR_BUF_SZ]; + extern char *volatile debug_options; /* NULL */ + extern char ThisCache[SQUIDHOSTNAMELEN << 1]; + extern char ThisCache2[SQUIDHOSTNAMELEN << 1]; + extern char config_input_line[BUFSIZ]; + extern const char *DefaultConfigFile; /* DEFAULT_CONFIG_FILE */ + extern const char *cfg_filename; /* NULL */ + extern const char *const appname; /* "squid" */ + extern const char *const dash_str; /* "-" */ + extern const char *const localhost; /* "127.0.0.1" */ + extern const char *const null_string; /* "" */ + extern const char *const version_string; /* VERSION */ + extern const char *const full_appname_string; /* PACKAGE "/" VERSION */ + extern const char *const appname_string; /* PACKAGE */ + extern char * visible_appname_string; + extern const char *const w_space; /* " \t\n\r" */ + extern const char *fdTypeStr[]; + extern const char *hier_strings[]; + extern const char *memStatusStr[]; + extern const char *pingStatusStr[]; + extern const char *storeStatusStr[]; + extern const char *swapStatusStr[]; + extern fde *fd_table; /* NULL */ + extern int Biggest_FD; /* -1 */ + extern int Number_FD; /* 0 */ + extern int Opening_FD; /* 0 */ + extern int HttpSockets[MAXHTTPPORTS]; + extern int NDnsServersAlloc; /* 0 */ + extern int NHttpSockets; /* 0 */ + extern int RESERVED_FD; + extern int Squid_MaxFD; /* SQUID_MAXFD */ + extern int config_lineno; /* 0 */ + extern int do_mallinfo; /* 0 */ + extern int opt_reuseaddr; /* 1 */ + extern int icmp_sock; /* -1 */ + extern int neighbors_do_private_keys; /* 1 */ + extern int opt_catch_signals; /* 1 */ + extern int opt_debug_stderr; /* -1 */ + extern int opt_dns_tests; /* 1 */ + extern int opt_foreground_rebuild; /* 0 */ + extern int opt_forwarded_for; /* 1 */ + extern int opt_reload_hit_only; /* 0 */ #if HAVE_SYSLOG -extern int opt_syslog_enable; /* 0 */ + + extern int opt_syslog_enable; /* 0 */ #endif -extern int opt_udp_hit_obj; /* 0 */ -extern int opt_create_swap_dirs; /* 0 */ -extern int opt_store_doublecheck; /* 0 */ -extern int syslog_enable; /* 0 */ -extern int theInIcpConnection; /* -1 */ -extern int theOutIcpConnection; /* -1 */ -extern int DnsSocket; /* -1 */ + + extern int opt_udp_hit_obj; /* 0 */ + extern int opt_create_swap_dirs; /* 0 */ + extern int opt_store_doublecheck; /* 0 */ + extern int syslog_enable; /* 0 */ + extern int theInIcpConnection; /* -1 */ + extern int theOutIcpConnection; /* -1 */ + extern int DnsSocket; /* -1 */ #ifdef SQUID_SNMP -extern int theInSnmpConnection; /* -1 */ -extern int theOutSnmpConnection; /* -1 */ -extern char *snmp_agentinfo; + + extern int theInSnmpConnection; /* -1 */ + extern int theOutSnmpConnection; /* -1 */ + extern char *snmp_agentinfo; #endif -extern int n_disk_objects; /* 0 */ -extern iostats IOStats; - -extern struct _acl_deny_info_list *DenyInfoList; /* NULL */ - -extern struct IN_ADDR any_addr; - -extern struct IN_ADDR local_addr; - -extern struct IN_ADDR no_addr; - -extern struct IN_ADDR theOutICPAddr; - -extern struct IN_ADDR theOutSNMPAddr; - -extern struct timeval current_time; - -extern struct timeval squid_start; -extern int shutting_down; /* 0 */ -extern int reconfiguring; /* 0 */ -extern int store_dirs_rebuilding; /* 1 */ -extern unsigned long store_swap_size; /* 0 */ -extern time_t hit_only_mode_until; /* 0 */ -extern StatCounters statCounter; -extern char *err_type_str[]; -extern char *icp_opcode_str[]; -extern char *swap_log_op_str[]; -extern char *lookup_t_str[]; -extern double request_failure_ratio; /* 0.0 */ -extern double current_dtime; -extern int store_hash_buckets; /* 0 */ -extern hash_table *store_table; /* NULL */ -extern dlink_list ClientActiveRequests; -extern int hot_obj_count; /* 0 */ -extern const int CacheDigestHashFuncCount; /* 4 */ -extern CacheDigest *store_digest; /* NULL */ -extern const char *StoreDigestFileName; /* "store_digest" */ -extern const char *StoreDigestMimeStr; /* "application/cache-digest" */ + + extern int n_disk_objects; /* 0 */ + extern iostats IOStats; + + extern struct _acl_deny_info_list *DenyInfoList; /* NULL */ + + extern struct IN_ADDR any_addr; + + extern struct IN_ADDR local_addr; + + extern struct IN_ADDR no_addr; + + extern struct IN_ADDR theOutICPAddr; + + extern struct IN_ADDR theOutSNMPAddr; + + extern struct timeval current_time; + + extern struct timeval squid_start; + extern int shutting_down; /* 0 */ + extern int reconfiguring; /* 0 */ + extern int store_dirs_rebuilding; /* 1 */ + extern unsigned long store_swap_size; /* 0 */ + extern time_t hit_only_mode_until; /* 0 */ + extern StatCounters statCounter; + extern char *err_type_str[]; + extern char *icp_opcode_str[]; + extern char *swap_log_op_str[]; + extern char *lookup_t_str[]; + extern double request_failure_ratio; /* 0.0 */ + extern double current_dtime; + extern int store_hash_buckets; /* 0 */ + extern hash_table *store_table; /* NULL */ + extern dlink_list ClientActiveRequests; + extern int hot_obj_count; /* 0 */ + extern const int CacheDigestHashFuncCount; /* 4 */ + extern CacheDigest *store_digest; /* NULL */ + extern const char *StoreDigestFileName; /* "store_digest" */ + extern const char *StoreDigestMimeStr; /* "application/cache-digest" */ #if USE_CACHE_DIGESTS -extern const Version CacheDigestVer; /* { 5, 3 } */ + + extern const Version CacheDigestVer; /* { 5, 3 } */ #endif -extern const char *MultipartMsgBoundaryStr; /* "Unique-Squid-Separator" */ + + extern const char *MultipartMsgBoundaryStr; /* "Unique-Squid-Separator" */ #if HTTP_VIOLATIONS -extern int refresh_nocache_hack; /* 0 */ + + extern int refresh_nocache_hack; /* 0 */ #endif -extern int store_open_disk_fd; /* 0 */ -extern const char *SwapDirType[]; -extern int store_swap_low; /* 0 */ -extern int store_swap_high; /* 0 */ -extern size_t store_pages_max; /* 0 */ -extern ssize_t store_maxobjsize; /* -1 */ -extern RemovalPolicy *mem_policy; -extern hash_table *proxy_auth_username_cache; /* NULL */ -extern int incoming_sockets_accepted; + + extern int store_open_disk_fd; /* 0 */ + extern const char *SwapDirType[]; + extern int store_swap_low; /* 0 */ + extern int store_swap_high; /* 0 */ + extern size_t store_pages_max; /* 0 */ + extern ssize_t store_maxobjsize; /* -1 */ + extern RemovalPolicy *mem_policy; + extern hash_table *proxy_auth_username_cache; /* NULL */ + extern int incoming_sockets_accepted; #ifdef _SQUID_MSWIN_ -extern unsigned int WIN32_Socks_initialized; /* 0 */ + + extern unsigned int WIN32_Socks_initialized; /* 0 */ #endif #ifdef _SQUID_WIN32_ -extern unsigned int WIN32_OS_version; /* 0 */ -extern char *WIN32_OS_string; /* NULL */ -extern char *WIN32_Service_name; /* NULL */ -extern char *WIN32_Command_Line; /* NULL */ -extern char *WIN32_Service_Command_Line; /* NULL */ -extern unsigned int WIN32_run_mode; /* _WIN_SQUID_RUN_MODE_INTERACTIVE */ + + extern unsigned int WIN32_OS_version; /* 0 */ + extern char *WIN32_OS_string; /* NULL */ + extern char *WIN32_Service_name; /* NULL */ + extern char *WIN32_Command_Line; /* NULL */ + extern char *WIN32_Service_Command_Line; /* NULL */ + extern unsigned int WIN32_run_mode; /* _WIN_SQUID_RUN_MODE_INTERACTIVE */ #if defined(_SQUID_MSWIN_) && defined(_DEBUG) -extern int do_debug_trap; /* 0 */ + + extern int do_debug_trap; /* 0 */ #endif #endif #if HAVE_SBRK -extern void *sbrk_start; /* 0 */ + + extern void *sbrk_start; /* 0 */ #endif -extern int ssl_ex_index_server; /* -1 */ -extern int ssl_ctx_ex_index_dont_verify_domain; /* -1 */ + extern int ssl_ex_index_server; /* -1 */ + extern int ssl_ctx_ex_index_dont_verify_domain; /* -1 */ + + extern const char *external_acl_message; /* NULL */ + extern int opt_send_signal; /* -1 */ + extern int opt_no_daemon; /* 0 */ + +#ifdef __cplusplus +} + +#endif -extern const char *external_acl_message; /* NULL */ -extern int opt_send_signal; /* -1 */ -extern int opt_no_daemon; /* 0 */ #endif /* SQUID_GLOBALS_H */ diff --git a/src/mk-globals-c.awk b/src/mk-globals-c.awk index b933f2179a..cb1b204a0e 100644 --- a/src/mk-globals-c.awk +++ b/src/mk-globals-c.awk @@ -2,7 +2,7 @@ # drop-in replacement for mk-globals-c.pl. # modified to work with Solaris awk (junk). # creates "globals.c" (on stdout) from "globals.h". -# invoke similarly: perl -f mk-globals-c.pl globals.h +# invoke similarly: perl mk-globals-c.pl globals.h # --> awk -f mk-globals-c.awk globals.h # # 2006 by Christopher Kerr. @@ -16,13 +16,18 @@ Copyright != 1 { print; next } # arrays defined elsewhere /\[\];/ { next } +/^extern \"C\"/ { print; next } -/^extern / { # process "^extern " input lines. +# +# Check exactly for lines beginning with " extern", generated +# from astyle (grrrrr ...) +# +/^ extern / { # process "^extern " input lines. # 0 1 2 ####### # extern int variable; /* val */ --> int variable; /* val */ ####### ########################################################################## - len = length($0) - 7 # sub(/extern /, "") - str = substr($0, 8, len) # strip "^extern ". + len = length($0) - 11 # sub(/extern /, "") + str = substr($0, 12, len) # strip "^extern ". pos0 = index(str, ";") # position of ";". pos1 = index(str, "/*") # position of "/*". diff --git a/src/mk-globals-c.pl b/src/mk-globals-c.pl index 124f5ab61a..4ebb70c254 100755 --- a/src/mk-globals-c.pl +++ b/src/mk-globals-c.pl @@ -10,9 +10,25 @@ while (<>) { print; next; } + if (/extern \"C\"/) { + print; + next; + } + if (/^}/) { + print; + next; + } + if (/^{/) { + print; + next; + } next unless (/./); next if (/\[\];$/); - die unless (/^extern\s+([^;]+);(.*)$/); +# +# Check exactly for lines beginning with " extern", generated +# from astyle (grrrrr ...) +# + die unless (/^ extern\s+([^;]+);(.*)$/); $var = $1; $comments = $2; if ($comments =~ m+/\*\s*(.*)\s*\*/+) { -- 2.39.5