From: Amos Jeffries Date: Sat, 4 Dec 2010 13:10:19 +0000 (-0700) Subject: Fix many C/C++ ABI warnings X-Git-Tag: take1~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=daacd51f6f3f823f02bfb3bba004968bac41b276;p=thirdparty%2Fsquid.git Fix many C/C++ ABI warnings --- diff --git a/helpers/basic_auth/MSNT/msntauth.h b/helpers/basic_auth/MSNT/msntauth.h index dd33cb77f2..7eadb18d59 100644 --- a/helpers/basic_auth/MSNT/msntauth.h +++ b/helpers/basic_auth/MSNT/msntauth.h @@ -1,7 +1,10 @@ +#ifndef _SQUID_HELPERS_BASIC_AUTH_MSNT_MSNTAUTH_H +#define _SQUID_HELPERS_BASIC_AUTH_MSNT_MSNTAUTH_H + extern int OpenConfigFile(void); extern int QueryServers(char *, char *); extern void Checktimer(void); -extern void Check_forchange(int); +extern "C" void Check_forchange(int); extern int Read_denyusers(void); extern int Read_allowusers(void); extern int Check_user(char *); @@ -9,3 +12,4 @@ extern int QueryServers(char *, char *); extern int Check_ifuserallowed(char *ConnectingUser); extern void Check_forallowchange(void); +#endif /* _SQUID_HELPERS_BASIC_AUTH_MSNT_MSNTAUTH_H */ diff --git a/helpers/basic_auth/PAM/basic_pam_auth.cc b/helpers/basic_auth/PAM/basic_pam_auth.cc index 9130d03e73..6a103c58f7 100644 --- a/helpers/basic_auth/PAM/basic_pam_auth.cc +++ b/helpers/basic_auth/PAM/basic_pam_auth.cc @@ -106,13 +106,16 @@ static char *password = NULL; /* Workaround for Solaris 2.6 brokenness */ #endif +extern "C" int password_conversation(int num_msg, PAM_CONV_FUNC_CONST_PARM struct pam_message **msg, + struct pam_response **resp, void *appdata_ptr); + /** * A simple "conversation" function returning the supplied password. * Has a bit to much error control, but this is my first PAM application * so I'd rather check everything than make any mistakes. The function * expects a single converstation message of type PAM_PROMPT_ECHO_OFF. */ -static int +int password_conversation(int num_msg, PAM_CONV_FUNC_CONST_PARM struct pam_message **msg, struct pam_response **resp, void *appdata_ptr) { if (num_msg != 1 || msg[0]->msg_style != PAM_PROMPT_ECHO_OFF) { diff --git a/helpers/ntlm_auth/smb_lm/ntlm_smb_lm_auth.cc b/helpers/ntlm_auth/smb_lm/ntlm_smb_lm_auth.cc index 6319e30565..5249d83845 100644 --- a/helpers/ntlm_auth/smb_lm/ntlm_smb_lm_auth.cc +++ b/helpers/ntlm_auth/smb_lm/ntlm_smb_lm_auth.cc @@ -317,10 +317,12 @@ ntlm_check_auth(ntlm_authenticate * auth, int auth_length) return credentials; } -/* signal handler to be invoked when the authentication operation - * times out */ +extern "C" void timeout_during_auth(int signum); + static char got_timeout = 0; -static void +/** signal handler to be invoked when the authentication operation + * times out */ +void timeout_during_auth(int signum) { dc_disconnect(); diff --git a/include/fatal.h b/include/fatal.h index 6a887308df..4a8892c5e8 100644 --- a/include/fatal.h +++ b/include/fatal.h @@ -3,6 +3,6 @@ SQUIDCEXTERN void fatal(const char *message); SQUIDCEXTERN void fatalf(const char *fmt,...) PRINTF_FORMAT_ARG1; -SQUIDCEXTERN void fatal_dump(const char *message); +extern void fatal_dump(const char *message); -#endif +#endif /* SQUID_FATAL_H */ diff --git a/src/Store.h b/src/Store.h index d643a76ae1..b3ba501b1d 100644 --- a/src/Store.h +++ b/src/Store.h @@ -364,7 +364,7 @@ SQUIDCEXTERN int expiresMoreThan(time_t, time_t); SQUIDCEXTERN void storeAppendPrintf(StoreEntry *, const char *,...) PRINTF_FORMAT_ARG2; /// \ingroup StoreAPI -SQUIDCEXTERN void storeAppendVPrintf(StoreEntry *, const char *, va_list ap); +extern void storeAppendVPrintf(StoreEntry *, const char *, va_list ap); /// \ingroup StoreAPI SQUIDCEXTERN int storeTooManyDiskFilesOpen(void); diff --git a/src/protos.h b/src/protos.h index beb25ecd12..12fdcda604 100644 --- a/src/protos.h +++ b/src/protos.h @@ -294,21 +294,21 @@ SQUIDCEXTERN void addr2oid(Ip::Address &addr, oid *Dest); SQUIDCEXTERN void oid2addr(oid *Dest, Ip::Address &addr, u_int code); SQUIDCEXTERN Ip::Address *client_entry(Ip::Address *current); -SQUIDCEXTERN variable_list *snmp_basicFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_confFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_sysFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_prfSysFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_prfProtoFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_prfPeerFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_netIpFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_netFqdnFn(variable_list *, snint *); +extern variable_list *snmp_basicFn(variable_list *, snint *); +extern variable_list *snmp_confFn(variable_list *, snint *); +extern variable_list *snmp_sysFn(variable_list *, snint *); +extern variable_list *snmp_prfSysFn(variable_list *, snint *); +extern variable_list *snmp_prfProtoFn(variable_list *, snint *); +extern variable_list *snmp_prfPeerFn(variable_list *, snint *); +extern variable_list *snmp_netIpFn(variable_list *, snint *); +extern variable_list *snmp_netFqdnFn(variable_list *, snint *); #if USE_DNSSERVERS -SQUIDCEXTERN variable_list *snmp_netDnsFn(variable_list *, snint *); +extern variable_list *snmp_netDnsFn(variable_list *, snint *); #else -SQUIDCEXTERN variable_list *snmp_netIdnsFn(variable_list *, snint *); +extern variable_list *snmp_netIdnsFn(variable_list *, snint *); #endif /* USE_DNSSERVERS */ -SQUIDCEXTERN variable_list *snmp_meshPtblFn(variable_list *, snint *); -SQUIDCEXTERN variable_list *snmp_meshCtblFn(variable_list *, snint *); +extern variable_list *snmp_meshPtblFn(variable_list *, snint *); +extern variable_list *snmp_meshCtblFn(variable_list *, snint *); #endif /* SQUID_SNMP */ #if USE_WCCP @@ -526,7 +526,7 @@ SQUIDCEXTERN void storeDigestInit(void); SQUIDCEXTERN void storeDigestNoteStoreReady(void); SQUIDCEXTERN void storeDigestScheduleRebuild(void); SQUIDCEXTERN void storeDigestDel(const StoreEntry * entry); -SQUIDCEXTERN void storeDigestReport(StoreEntry *); +extern void storeDigestReport(StoreEntry *); /* * store_rebuild.c @@ -556,10 +556,9 @@ SQUIDCEXTERN int storeClientIsThisAClient(store_client * sc, void *someClient); SQUIDCEXTERN const char *getMyHostname(void); SQUIDCEXTERN const char *uniqueHostname(void); SQUIDCEXTERN void safeunlink(const char *path, int quiet); + +#include "fatal.h" void death(int sig); -SQUIDCEXTERN void fatal(const char *message); -SQUIDCEXTERN void fatalf(const char *fmt,...) PRINTF_FORMAT_ARG1; -SQUIDCEXTERN void fatal_dump(const char *message); void sigusr2_handle(int sig); void sig_child(int sig); SQUIDCEXTERN void leave_suid(void); @@ -569,7 +568,7 @@ SQUIDCEXTERN void writePidFile(void); SQUIDCEXTERN void setSocketShutdownLifetimes(int); SQUIDCEXTERN void setMaxFD(void); SQUIDCEXTERN void setSystemLimits(void); -SQUIDCEXTERN void squid_signal(int sig, SIGHDLR *, int flags); +extern void squid_signal(int sig, SIGHDLR *, int flags); SQUIDCEXTERN pid_t readPidFile(void); SQUIDCEXTERN void keepCapabilities(void); SQUIDCEXTERN void BroadcastSignalIfAny(int& sig); diff --git a/src/snmp_core.cc b/src/snmp_core.cc index 25d4d80a1c..807fdc473c 100644 --- a/src/snmp_core.cc +++ b/src/snmp_core.cc @@ -99,7 +99,7 @@ static oid_ParseFn *snmpTreeNext(oid * Current, snint CurrentLen, oid ** Next, s static oid_ParseFn *snmpTreeGet(oid * Current, snint CurrentLen); static mib_tree_entry *snmpTreeEntry(oid entry, snint len, mib_tree_entry * current); static mib_tree_entry *snmpTreeSiblingEntry(oid entry, snint len, mib_tree_entry * current); -static void snmpSnmplibDebug(int lvl, char *buf); +extern "C" void snmpSnmplibDebug(int lvl, char *buf); /* * The functions used during startup: @@ -1138,7 +1138,7 @@ snmpDebugOid(oid * Name, snint Len, MemBuf &outbuf) return outbuf.content(); } -static void +void snmpSnmplibDebug(int lvl, char *buf) { debugs(49, lvl, buf); diff --git a/src/store_swapout.cc b/src/store_swapout.cc index d9b98952f6..f0ac547c9b 100644 --- a/src/store_swapout.cc +++ b/src/store_swapout.cc @@ -47,6 +47,12 @@ static void storeSwapOutStart(StoreEntry * e); static StoreIOState::STIOCB storeSwapOutFileClosed; static StoreIOState::STFNCB storeSwapOutFileNotify; +// wrapper to cross C/C++ ABI boundary. xfree is extern "C" for libraries. +static void xfree_cppwrapper(void *x) +{ + xfree(x); +} + /* start swapping object to disk */ static void storeSwapOutStart(StoreEntry * e) @@ -96,7 +102,7 @@ storeSwapOutStart(StoreEntry * e) e->swap_dirn = mem->swapout.sio->swap_dirn; /* write out the swap metadata */ - storeIOWrite(mem->swapout.sio, buf, mem->swap_hdr_sz, 0, xfree); + storeIOWrite(mem->swapout.sio, buf, mem->swap_hdr_sz, 0, xfree_cppwrapper); } static void diff --git a/src/tests/stub_store.cc b/src/tests/stub_store.cc index ec8407daa4..9832a53f9f 100644 --- a/src/tests/stub_store.cc +++ b/src/tests/stub_store.cc @@ -43,7 +43,7 @@ storeAppendPrintf(StoreEntry * e, const char *fmt,...) fatal("storeAppendPrintf: Not implemented"); } -extern "C" void +void storeAppendVPrintf(StoreEntry * e, const char *fmt, va_list vargs) { fatal("storeAppendVPrintf: Not implemented"); diff --git a/tools/squidclient.cc b/tools/squidclient.cc index 07b6371c63..f4820a6fde 100644 --- a/tools/squidclient.cc +++ b/tools/squidclient.cc @@ -126,8 +126,8 @@ static int client_comm_connect(int, const Ip::Address &, struct timeval *); static void usage(const char *progname); static int Now(struct timeval *); -static SIGHDLR catchSignal; -static SIGHDLR pipe_handler; +SIGHDLR catchSignal; +SIGHDLR pipe_handler; static void set_our_signal(void); static ssize_t myread(int fd, void *buf, size_t len); static ssize_t mywrite(int fd, void *buf, size_t len); @@ -758,14 +758,14 @@ Now(struct timeval *tp) #endif } /* ARGSUSED */ -static void +void catchSignal(int sig) { interrupted = 1; fprintf(stderr, "Interrupted.\n"); } -static void +void pipe_handler(int sig) { fprintf(stderr, "SIGPIPE received.\n");