summaryrefslogtreecommitdiff
path: root/zhm
diff options
context:
space:
mode:
authorGravatar Jeffrey Hutzelman <jhutz@cmu.edu>2013-02-02 02:09:25 -0500
committerGravatar Jeffrey Hutzelman <jhutz@cmu.edu>2013-02-14 19:20:27 -0500
commite2bfb6322ce9f4323b83469dc06dd1ce1b0f4cf6 (patch)
tree507dab2f064c09996a002624d49c0dfb257a24a9 /zhm
parent350312d5db9b0a968bbbbecb37bd600a2da389d0 (diff)
Clean up warnings
Eliminate compiler warnings due to various issues (listed below). This allows Zephyr to build cleanly under GCC versions ranging from 4.1.0 to 4.7.2 with all of the options shown below: -g -O2 -Wall -Werror -Wno-deprecated-declarations -Wmissing-declarations -Wpointer-arith -Wstrict-prototypes -Wshadow -Wextra -Wno-missing-field-initializers -Wno-unused-parameter and, on recent versions, -Wunreachable-code Test builds were done - On Ubuntu 12.10 (Quantal Quetzal) using both MIT Kerberos 1.10.1 and Heimdal 1.6, without krb4 and both with and without C-Ares and Hesiod - On Fedora 14 using Heimdal 0.6, without C-Ares or Hesiod and both with and without krb4 (KTH Kerberos 1.3rc2) - On Fedora Core 3, Fedora Core 5, Fedora 7, and Fedora 10, using Heimdal 0.6 and without C-Ares, Hesiod, or krb4 It also allows clean builds on Solaris 10 under the Sun Studio 12 (9/07) C compiler with the following options: -g -fd -v -errfmt -errhdr=%user -errtags=yes -errwarn=%all -erroff=E_OLD_STYLE_FUNC_DECL,E_ENUM_TYPE_MISMATCH_ARG,E_ARG_INCOMPATIBLE_WITH_ARG ... and under Solaris 9 with the Sun Forte 7 (3/02) C compiler with the above options and -erroff=E_FUNC_HAS_NO_RETURN_STMT. Solaris builds were done with Heimdal 0.6 and without C-Ares, Hesiod, or krb4. The following types of issues are addressed in this change: - Parameters and local variables with the same names as library functions - Parameters and local variables with the same names as globals - Declarations for exported global variables missing from headers - Prototypes for exported functions missing from headers - Missing 'static' on functions that shouldn't be exported - Old-style function declarations - Duplicate declarations - Type mismatches - Unused variables and functions - Uninitialized variables - Forward references to enums - Necessary header files not included - Violations of the aliasing rules, where GCC was able to detect them - Missing braces on if blocks that might be empty - Attempts to do pointer arithmetic on pointers of type void *, which is not permitted in standard C. - An attempt to pass a function pointer via a void * parameter, which is not permitted in standard C. Instead, we now pass a pointer to a structure, which then contains the required function pointer. - Unnecessary inclusion of <krb5_err.h>, which is already included by <krb5.h> when the former exists, and might not be protected against double inclusion, depending on which com_err was used. - Missing include of <com_err.h>, which was masked by the fact that it is included by headers generated by e2fsprogs compile_et - Use of com_err() with a non-constant value in place of the format string, which in every case was a fixed-size buffer in which a message was built using sprintf(!). Both the calls to sprintf and the fixed-size buffers have been removed, in favor of just letting com_err() do the formatting. - Various cases where X library functions expecting a parameter of type wchar_t * were instead passed a parameter of type XChar2b *. The two types look similar, but are not the same and are _not_ interchangeable. - An overly-simplistic configure test which failed to detect existence of <term.h> on Solaris, due to not including <curses.h>. - Using the wrong type for the flags output of krb5_auth_con_getflags() when building against Heimdal. A configure test is added to detect the correct type.
Diffstat (limited to 'zhm')
-rw-r--r--zhm/queue.c2
-rw-r--r--zhm/zhm.c8
-rw-r--r--zhm/zhm.h18
-rw-r--r--zhm/zhm_client.c6
-rw-r--r--zhm/zhm_server.c11
5 files changed, 18 insertions, 27 deletions
diff --git a/zhm/queue.c b/zhm/queue.c
index c44a19a..993e131 100644
--- a/zhm/queue.c
+++ b/zhm/queue.c
@@ -33,8 +33,6 @@ static int retransmits_enabled = 0;
static Queue *find_notice_in_queue(ZNotice_t *notice);
static void queue_timeout(void *arg);
-extern void new_server(char *);
-
int rexmit_times[] = { 2, 2, 4, 4, 8, -1 };
#ifdef DEBUG
diff --git a/zhm/zhm.c b/zhm/zhm.c
index c2f1daf..bd888d0 100644
--- a/zhm/zhm.c
+++ b/zhm/zhm.c
@@ -51,12 +51,6 @@ static void detach(void);
static void send_stats(ZNotice_t *, struct sockaddr_in *);
static char *strsave(const char *);
-extern void send_flush_notice(char *);
-extern void server_manager(ZNotice_t *);
-extern void send_boot_notice(char *);
-extern void find_next_server(char *);
-extern int optind;
-
static RETSIGTYPE
deactivate(int ignored)
{
@@ -258,10 +252,10 @@ main(int argc,
static void
choose_server(void)
{
+#ifdef HAVE_HESIOD
int i = 0;
char **clust_info, **cpp;
-#ifdef HAVE_HESIOD
if (use_hesiod) {
/* Free up any previously used resources */
diff --git a/zhm/zhm.h b/zhm/zhm.h
index 4af8787..40cd34e 100644
--- a/zhm/zhm.h
+++ b/zhm/zhm.h
@@ -63,12 +63,26 @@ void retransmit_queue(struct sockaddr_in *);
void disable_queue_retransmits(void);
int queue_len(void);
-struct sockaddr_in serv_sin;
+/* zhm.c */
+extern void new_server(char *sugg_serv);
+extern void send_boot_notice(char *);
+extern void send_flush_notice(char *);
+
+/* zhm_server.c */
+extern void find_next_server(char *);
+extern void server_manager(ZNotice_t *);
+
+extern u_short cli_port;
+extern char **serv_list;
+extern char cur_serv[], prim_serv[];
+extern struct sockaddr_in cli_sin, serv_sin, from;
+extern int no_server, deactivated, noflushflag, rebootflag;
+extern int timeout_type, hmdebug, nservchang, booting, nclt, nserv, numserv;
extern int rexmit_times[];
#ifdef HAVE_ETEXT
extern int etext;
-#define adjust_size(size) size -= (unsigned int) &etext;
+#define adjust_size(size) size -= (unsigned long) &etext;
#else
/* Pick a var that tends to be near the start of data section. */
extern char **environ;
diff --git a/zhm/zhm_client.c b/zhm/zhm_client.c
index 0c5b68e..36c81ed 100644
--- a/zhm/zhm_client.c
+++ b/zhm/zhm_client.c
@@ -18,12 +18,6 @@ static const char rcsid_hm_client_c[] = "$Id$";
#endif /* SABER */
#endif /* lint */
-extern int no_server, nclt, deactivated, noflushflag;
-extern struct sockaddr_in cli_sin, serv_sin, from;
-
-extern void send_flush_notice(char *);
-extern void new_server(char *sugg_serv);
-
void transmission_tower(ZNotice_t *notice,
char *packet,
int pak_len)
diff --git a/zhm/zhm_server.c b/zhm/zhm_server.c
index ecfa5f3..0209054 100644
--- a/zhm/zhm_server.c
+++ b/zhm/zhm_server.c
@@ -26,18 +26,9 @@ static int serv_rexmit_times[] = { 5, 10, 20, 40 };
static int serv_timeouts = 0;
int serv_loop = 0;
-extern u_short cli_port;
-extern struct sockaddr_in serv_sin, from;
-extern int timeout_type, hmdebug, nservchang, booting, nserv, no_server;
-extern int deactivated, rebootflag;
-extern int numserv;
-extern char **serv_list;
-extern char cur_serv[], prim_serv[];
-extern void die_gracefully(void);
void hm_control(ZNotice_t *);
void send_back(ZNotice_t *);
-void new_server(char *);
/* Argument is whether we are actually booting, or just attaching
* after a server switch */
@@ -104,7 +95,7 @@ send_flush_notice(char *op)
void
find_next_server(char *sugg_serv)
{
- struct hostent *hp;
+ struct hostent *hp = 0;
int done = 0;
char **parse = serv_list;
char *new_serv;