changeset 1038:60646878858e HEAD

Function typedefs now define them as functions, not function pointers.
author Timo Sirainen <tss@iki.fi>
date Mon, 27 Jan 2003 03:59:59 +0200
parents 17ac2832c63f
children 793f05a7e50e
files src/auth/passwd-file.c src/imap/client.h src/imap/commands.c src/imap/commands.h src/imap/imap-sort.c src/imap/imap-thread.c src/lib-index/mail-index-update.c src/lib-index/mail-index.h src/lib-index/maildir/maildir-sync.c src/lib-mail/message-content-parser.c src/lib-mail/message-content-parser.h src/lib-mail/message-header-decode.c src/lib-mail/message-header-decode.h src/lib-mail/message-parser.c src/lib-mail/message-parser.h src/lib-mail/message-tokenize.c src/lib-mail/message-tokenize.h src/lib-storage/index/maildir/maildir-list.c src/lib-storage/index/mbox/mbox-list.c src/lib-storage/mail-storage.h src/lib-storage/subscription-file/subscription-file.c src/lib-storage/subscription-file/subscription-file.h src/lib/failures.c src/lib/failures.h src/lib/hash.c src/lib/hash.h src/login/ssl-proxy-openssl.c
diffstat 27 files changed, 92 insertions(+), 96 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/passwd-file.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/auth/passwd-file.c	Mon Jan 27 03:59:59 2003 +0200
@@ -126,7 +126,7 @@
 
 	pw->pool = pool_alloconly_create("passwd_file", 10240);;
 	pw->users = hash_create(default_pool, pw->pool, 100,
-				str_hash, (hash_cmp_callback_t)strcmp);
+				str_hash, (hash_cmp_callback_t *)strcmp);
 
 	input = i_stream_create_file(pw->fd, default_pool, 4096, FALSE);
 	for (;;) {
--- a/src/imap/client.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/imap/client.h	Mon Jan 27 03:59:59 2003 +0200
@@ -6,7 +6,7 @@
 
 struct client;
 
-typedef int (*client_command_func_t)(struct client *client);
+typedef int client_command_func_t(struct client *client);
 
 struct client {
 	int socket;
@@ -24,7 +24,7 @@
 	struct imap_parser *parser;
 	const char *cmd_tag; /* tag of command (allocated from parser pool), */
 	const char *cmd_name; /* command name (allocated from parser pool) */
-	client_command_func_t cmd_func;
+	client_command_func_t *cmd_func;
 
 	unsigned int cmd_error:1;
 	unsigned int cmd_uid:1; /* used UID command */
--- a/src/imap/commands.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/imap/commands.c	Mon Jan 27 03:59:59 2003 +0200
@@ -3,7 +3,7 @@
 #include "common.h"
 #include "commands.h"
 
-client_command_func_t client_command_find(const char *name)
+client_command_func_t *client_command_find(const char *name)
 {
 	/* keep the command uppercased */
 	name = str_ucase(t_strdup_noconst(name));
--- a/src/imap/commands.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/imap/commands.h	Mon Jan 27 03:59:59 2003 +0200
@@ -4,7 +4,7 @@
 #include "commands-util.h"
 #include "imap-parser.h"
 
-client_command_func_t client_command_find(const char *name);
+client_command_func_t *client_command_find(const char *name);
 
 /* Non-Authenticated State */
 int cmd_authenticate(struct client *client);
--- a/src/imap/imap-sort.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/imap/imap-sort.c	Mon Jan 27 03:59:59 2003 +0200
@@ -162,7 +162,7 @@
 		ctx->str_pool = pool_alloconly_create("sort str", 8192);
 		ctx->string_table = hash_create(default_pool, ctx->str_pool,
 						0, str_hash,
-						(hash_cmp_callback_t)strcmp);
+						(hash_cmp_callback_t *)strcmp);
 	}
 
 	return fields;
--- a/src/imap/imap-thread.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/imap/imap-thread.c	Mon Jan 27 03:59:59 2003 +0200
@@ -131,7 +131,7 @@
 					       APPROX_MSGID_SIZE);
 	ctx->msgid_hash = hash_create(default_pool, ctx->temp_pool,
 				      APPROX_MSG_COUNT*2, str_hash,
-				      (hash_cmp_callback_t)strcmp);
+				      (hash_cmp_callback_t *)strcmp);
 
 	ctx->id_is_uid = client->cmd_uid;
 	while ((mail = client->mailbox->search_next(ctx->search_ctx)) != NULL)
@@ -652,7 +652,7 @@
 
 	ctx->subject_hash =
 		hash_create(default_pool, ctx->temp_pool, ctx->root_count * 2,
-			    str_hash, (hash_cmp_callback_t)strcmp);
+			    str_hash, (hash_cmp_callback_t *)strcmp);
 
 	node = ctx->root_node.first_child;
 	for (; node != NULL; node = node->next) {
--- a/src/lib-index/mail-index-update.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-index/mail-index-update.c	Mon Jan 27 03:59:59 2003 +0200
@@ -373,7 +373,7 @@
 	pool_t envelope_pool;
 	struct message_part_envelope_data *envelope;
 
-	message_header_callback_t header_cb;
+	message_header_callback_t *header_cb;
 	void *context;
 };
 
@@ -406,7 +406,7 @@
 void mail_index_update_headers(struct mail_index_update *update,
 			       struct istream *input,
                                enum mail_data_field cache_fields,
-			       message_header_callback_t header_cb,
+			       message_header_callback_t *header_cb,
 			       void *context)
 {
 	struct header_update_context ctx;
--- a/src/lib-index/mail-index.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-index/mail-index.h	Mon Jan 27 03:59:59 2003 +0200
@@ -95,9 +95,8 @@
 	MAIL_INDEX_ERROR_MAILBOX_LOCK_TIMEOUT
 };
 
-typedef void (*mail_lock_notify_callback_t)
-	(enum mail_lock_notify_type notify_type,
-	 unsigned int secs_left, void *context);
+typedef void mail_lock_notify_callback_t(enum mail_lock_notify_type notify_type,
+					 unsigned int secs_left, void *context);
 
 struct mail_index_header {
 	unsigned char compat_data[8];
@@ -210,7 +209,7 @@
 	/* If we have to wait for the lock, the given lock notify function
 	   is called once in a while. */
 	void (*set_lock_notify_callback)(struct mail_index *index,
-					 mail_lock_notify_callback_t callback,
+					 mail_lock_notify_callback_t *callback,
 					 void *context);
 
 	/* Rebuild the whole index. Note that this changes the indexid
@@ -394,7 +393,7 @@
 	time_t file_sync_stamp;
 	unsigned int first_recent_uid;
 
-	mail_lock_notify_callback_t lock_notify_cb;
+	mail_lock_notify_callback_t *lock_notify_cb;
 	void *lock_notify_context;
 
 	/* these fields are OR'ed to the fields in index header once we
@@ -436,7 +435,7 @@
 int mail_index_try_lock(struct mail_index *index,
 			enum mail_lock_type lock_type);
 void mail_index_set_lock_notify_callback(struct mail_index *index,
-					 mail_lock_notify_callback_t callback,
+					 mail_lock_notify_callback_t *callback,
 					 void *context);
 int mail_index_fsck(struct mail_index *index);
 struct mail_index_header *mail_index_get_header(struct mail_index *index);
@@ -495,7 +494,7 @@
 void mail_index_update_headers(struct mail_index_update *update,
 			       struct istream *input,
                                enum mail_data_field cache_fields,
-			       message_header_callback_t header_cb,
+			       message_header_callback_t *header_cb,
 			       void *context);
 int mail_index_update_cache(struct mail_index *index);
 int mail_index_compress(struct mail_index *index);
--- a/src/lib-index/maildir/maildir-sync.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-index/maildir/maildir-sync.c	Mon Jan 27 03:59:59 2003 +0200
@@ -216,7 +216,7 @@
 	count = index->header->messages_count + 16;
 	pool = pool_alloconly_create("Maildir sync", count*20);
 	files = hash_create(default_pool, pool, index->header->messages_count*2,
-			    str_hash, (hash_cmp_callback_t)strcmp);
+			    str_hash, (hash_cmp_callback_t *)strcmp);
 
 	while ((d = readdir(dirp)) != NULL) {
 		if (d->d_name[0] == '.')
--- a/src/lib-mail/message-content-parser.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-content-parser.c	Mon Jan 27 03:59:59 2003 +0200
@@ -6,8 +6,8 @@
 #include "message-content-parser.h"
 
 void message_content_parse_header(const unsigned char *data, size_t size,
-				  parse_content_callback_t callback,
-				  parse_content_param_callback_t param_cb,
+				  parse_content_callback_t *callback,
+				  parse_content_param_callback_t *param_cb,
 				  void *context)
 {
 	static const enum message_token stop_tokens[] = { ';', TOKEN_LAST };
--- a/src/lib-mail/message-content-parser.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-content-parser.h	Mon Jan 27 03:59:59 2003 +0200
@@ -2,17 +2,17 @@
 #define __MESSAGE_CONTENT_PARSER_H
 
 /* NOTE: name and value aren't \0-terminated. */
-typedef void (*parse_content_callback_t)(const unsigned char *value,
-					 size_t value_len, void *context);
-typedef void (*parse_content_param_callback_t)(const unsigned char *name,
-					       size_t name_len,
-					       const unsigned char *value,
-					       size_t value_len,
-					       int value_quoted, void *context);
+typedef void parse_content_callback_t(const unsigned char *value,
+				      size_t value_len, void *context);
+typedef void parse_content_param_callback_t(const unsigned char *name,
+					    size_t name_len,
+					    const unsigned char *value,
+					    size_t value_len,
+					    int value_quoted, void *context);
 
 void message_content_parse_header(const unsigned char *data, size_t size,
-				  parse_content_callback_t callback,
-				  parse_content_param_callback_t param_cb,
+				  parse_content_callback_t *callback,
+				  parse_content_param_callback_t *param_cb,
 				  void *context);
 
 #endif
--- a/src/lib-mail/message-header-decode.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-header-decode.c	Mon Jan 27 03:59:59 2003 +0200
@@ -46,7 +46,7 @@
 
 static int
 message_header_decode_encoded(const unsigned char *data, size_t *size,
-			      message_header_decode_callback_t callback,
+			      message_header_decode_callback_t *callback,
 			      void *context)
 {
 	const unsigned char *text;
@@ -84,7 +84,7 @@
 }
 
 void message_header_decode(const unsigned char *data, size_t size,
-			   message_header_decode_callback_t callback,
+			   message_header_decode_callback_t *callback,
 			   void *context)
 {
 	size_t pos, start_pos, subsize;
--- a/src/lib-mail/message-header-decode.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-header-decode.h	Mon Jan 27 03:59:59 2003 +0200
@@ -3,15 +3,14 @@
 
 /* Return FALSE if you wish to stop decoding. charset is NULL when it's not
    RFC2047-encoded. */
-typedef int (*message_header_decode_callback_t)(const unsigned char *data,
-						size_t size,
-						const char *charset,
-						void *context);
+typedef int message_header_decode_callback_t(const unsigned char *data,
+					     size_t size, const char *charset,
+					     void *context);
 
 /* Decode RFC2047 encoded words. Call specified function for each
    decoded block. */
 void message_header_decode(const unsigned char *data, size_t size,
-			   message_header_decode_callback_t callback,
+			   message_header_decode_callback_t *callback,
 			   void *context);
 
 #endif
--- a/src/lib-mail/message-parser.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-parser.c	Mon Jan 27 03:59:59 2003 +0200
@@ -23,7 +23,7 @@
 	char *last_content_type;
 	struct message_boundary *boundaries;
 
-	message_header_callback_t callback;
+	message_header_callback_t *callback;
 	void *context;
 };
 
@@ -253,7 +253,7 @@
 }
 
 struct message_part *message_parse(pool_t pool, struct istream *input,
-				   message_header_callback_t callback,
+				   message_header_callback_t *callback,
 				   void *context)
 {
 	struct message_part *part;
@@ -315,7 +315,7 @@
 
 void message_parse_header(struct message_part *part, struct istream *input,
 			  struct message_size *hdr_size,
-			  message_header_callback_t callback, void *context)
+			  message_header_callback_t *callback, void *context)
 {
 	const unsigned char *msg;
 	size_t i, size, parse_size, startpos, missing_cr_count;
--- a/src/lib-mail/message-parser.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-parser.h	Mon Jan 27 03:59:59 2003 +0200
@@ -33,16 +33,16 @@
 
 /* NOTE: name and value aren't \0-terminated. Also called once at end of
    headers with name_len = value_len = 0. */
-typedef void (*message_header_callback_t)(struct message_part *part,
-					  const unsigned char *name,
-					  size_t name_len,
-					  const unsigned char *value,
-					  size_t value_len,
-					  void *context);
+typedef void message_header_callback_t(struct message_part *part,
+				       const unsigned char *name,
+				       size_t name_len,
+				       const unsigned char *value,
+				       size_t value_len,
+				       void *context);
 
 /* callback is called for each field in message header. */
 struct message_part *message_parse(pool_t pool, struct istream *input,
-				   message_header_callback_t callback,
+				   message_header_callback_t *callback,
 				   void *context);
 
 /* Call callback for each field in message header. Fills the hdr_size.
@@ -52,6 +52,6 @@
    body. */
 void message_parse_header(struct message_part *part, struct istream *input,
 			  struct message_size *hdr_size,
-			  message_header_callback_t callback, void *context);
+			  message_header_callback_t *callback, void *context);
 
 #endif
--- a/src/lib-mail/message-tokenize.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-tokenize.c	Mon Jan 27 03:59:59 2003 +0200
@@ -9,7 +9,7 @@
 	const unsigned char *data;
 	size_t size;
 
-	message_tokenize_error_callback_t error_cb;
+	message_tokenize_error_callback_t *error_cb;
 	void *error_context;
 
 	int token;
@@ -43,7 +43,7 @@
 
 struct message_tokenizer *
 message_tokenize_init(const unsigned char *data, size_t size,
-		      message_tokenize_error_callback_t error_cb,
+		      message_tokenize_error_callback_t *error_cb,
 		      void *error_context)
 {
 	struct message_tokenizer *tok;
--- a/src/lib-mail/message-tokenize.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-mail/message-tokenize.h	Mon Jan 27 03:59:59 2003 +0200
@@ -29,17 +29,16 @@
 
    missing_char == '\0': unexpected character at str[pos]
    missing_char != '\0': missing character */
-typedef int (*message_tokenize_error_callback_t)(const unsigned char *str,
-						 size_t pos,
-						 char missing_char,
-						 void *context);
+typedef int message_tokenize_error_callback_t(const unsigned char *str,
+					      size_t pos, char missing_char,
+					      void *context);
 
 /* Initialize message tokenizer. data is parsed until \0 is found, or size
    bytes has been parsed, so it's possible to give (size_t)-1 as size
    if the string is \0 terminated. */
 struct message_tokenizer *
 message_tokenize_init(const unsigned char *data, size_t size,
-		      message_tokenize_error_callback_t error_cb,
+		      message_tokenize_error_callback_t *error_cb,
 		      void *error_context);
 void message_tokenize_deinit(struct message_tokenizer *tok);
 
--- a/src/lib-storage/index/maildir/maildir-list.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-storage/index/maildir/maildir-list.c	Mon Jan 27 03:59:59 2003 +0200
@@ -12,7 +12,7 @@
 #include <sys/stat.h>
 
 struct find_subscribed_context {
-	mailbox_list_callback_t callback;
+	mailbox_list_callback_t *callback;
 	void *context;
 };
 
--- a/src/lib-storage/index/mbox/mbox-list.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-storage/index/mbox/mbox-list.c	Mon Jan 27 03:59:59 2003 +0200
@@ -11,7 +11,7 @@
 #include <sys/stat.h>
 
 struct find_subscribed_context {
-	mailbox_list_callback_t callback;
+	mailbox_list_callback_t *callback;
 	void *context;
 };
 
--- a/src/lib-storage/mail-storage.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-storage/mail-storage.h	Mon Jan 27 03:59:59 2003 +0200
@@ -93,10 +93,9 @@
 struct fetch_context;
 struct search_context;
 
-typedef void (*mailbox_list_callback_t)(struct mail_storage *storage,
-					const char *name,
-					enum mailbox_flags flags,
-					void *context);
+typedef void mailbox_list_callback_t(struct mail_storage *storage,
+				     const char *name, enum mailbox_flags flags,
+				     void *context);
 
 /* All methods returning int return either TRUE or FALSE. */
 struct mail_storage {
@@ -150,7 +149,7 @@
 	/* Execute specified function for all mailboxes matching given
 	   mask. The mask is in RFC2060 LIST format. */
 	int (*find_mailboxes)(struct mail_storage *storage, const char *mask,
-			      mailbox_list_callback_t callback, void *context);
+			      mailbox_list_callback_t *callback, void *context);
 
 	/* Subscribe/unsubscribe mailbox. There should be no error when
 	   subscribing to already subscribed mailbox. Subscribing to
@@ -160,7 +159,8 @@
 
 	/* Exactly like find_mailboxes(), but list only subscribed mailboxes. */
 	int (*find_subscribed)(struct mail_storage *storage, const char *mask,
-			       mailbox_list_callback_t callback, void *context);
+			       mailbox_list_callback_t *callback,
+			       void *context);
 
 	/* Returns mailbox name status */
 	int (*get_mailbox_name_status)(struct mail_storage *storage,
--- a/src/lib-storage/subscription-file/subscription-file.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-storage/subscription-file/subscription-file.c	Mon Jan 27 03:59:59 2003 +0200
@@ -170,7 +170,7 @@
 }
 
 int subsfile_foreach(struct mail_storage *storage, const char *mask,
-		     subsfile_foreach_callback_t callback, void *context)
+		     subsfile_foreach_callback_t *callback, void *context)
 {
         struct imap_match_glob *glob;
 	const char *path, *start, *end, *p, *line;
--- a/src/lib-storage/subscription-file/subscription-file.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib-storage/subscription-file/subscription-file.h	Mon Jan 27 03:59:59 2003 +0200
@@ -4,14 +4,14 @@
 #include "mail-storage.h"
 
 /* Returns FALSE if foreach should be aborted */
-typedef int (*subsfile_foreach_callback_t)(struct mail_storage *storage,
-					   const char *name, void *context);
+typedef int subsfile_foreach_callback_t(struct mail_storage *storage,
+					const char *name, void *context);
 
 int subsfile_set_subscribed(struct mail_storage *storage,
 			    const char *name, int set);
 
 /* Returns -1 if error, 0 if foreach function returned FALSE or 1 if all ok */
 int subsfile_foreach(struct mail_storage *storage, const char *mask,
-		     subsfile_foreach_callback_t callback, void *context);
+		     subsfile_foreach_callback_t *callback, void *context);
 
 #endif
--- a/src/lib/failures.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib/failures.c	Mon Jan 27 03:59:59 2003 +0200
@@ -44,13 +44,13 @@
 static void default_info_handler(const char *format, va_list args);
 
 /* Initialize working defaults */
-static failure_callback_t panic_handler __attr_noreturn__ =
+static failure_callback_t *panic_handler __attr_noreturn__ =
 	default_panic_handler;
-static fatal_failure_callback_t fatal_handler __attr_noreturn__ =
+static fatal_failure_callback_t *fatal_handler __attr_noreturn__ =
 	default_fatal_handler;
-static failure_callback_t error_handler = default_error_handler;
-static failure_callback_t warning_handler = default_warning_handler;
-static failure_callback_t info_handler = default_info_handler;
+static failure_callback_t *error_handler = default_error_handler;
+static failure_callback_t *warning_handler = default_warning_handler;
+static failure_callback_t *info_handler = default_info_handler;
 
 static FILE *log_fd = NULL, *log_info_fd = NULL;
 static char *log_prefix = NULL, *log_stamp_format = NULL;
@@ -243,35 +243,35 @@
 	va_end(args);
 }
 
-void i_set_panic_handler(failure_callback_t callback __attr_noreturn__)
+void i_set_panic_handler(failure_callback_t *callback __attr_noreturn__)
 {
 	if (callback == NULL)
 		callback = default_panic_handler;
         panic_handler = callback;
 }
 
-void i_set_fatal_handler(fatal_failure_callback_t callback __attr_noreturn__)
+void i_set_fatal_handler(fatal_failure_callback_t *callback __attr_noreturn__)
 {
 	if (callback == NULL)
 		callback = default_fatal_handler;
         fatal_handler = callback;
 }
 
-void i_set_error_handler(failure_callback_t callback)
+void i_set_error_handler(failure_callback_t *callback)
 {
 	if (callback == NULL)
 		callback = default_error_handler;
         error_handler = callback;
 }
 
-void i_set_warning_handler(failure_callback_t callback)
+void i_set_warning_handler(failure_callback_t *callback)
 {
 	if (callback == NULL)
 		callback = default_warning_handler;
         warning_handler = callback;
 }
 
-void i_set_info_handler(failure_callback_t callback)
+void i_set_info_handler(failure_callback_t *callback)
 {
 	if (callback == NULL)
 		callback = default_info_handler;
--- a/src/lib/failures.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib/failures.h	Mon Jan 27 03:59:59 2003 +0200
@@ -14,8 +14,8 @@
 
 #define DEFAULT_FAILURE_STAMP_FORMAT "%b %d %H:%M:%S "
 
-typedef void (*failure_callback_t)(const char *, va_list);
-typedef void (*fatal_failure_callback_t)(int status, const char *, va_list);
+typedef void failure_callback_t(const char *, va_list);
+typedef void fatal_failure_callback_t(int status, const char *, va_list);
 
 void i_panic(const char *format, ...) __attr_format__(1, 2) __attr_noreturn__;
 void i_fatal(const char *format, ...) __attr_format__(1, 2) __attr_noreturn__;
@@ -27,11 +27,11 @@
 	__attr_format__(2, 3) __attr_noreturn__;
 
 /* Change failure handlers. Make sure they don't modify errno. */
-void i_set_panic_handler(failure_callback_t callback __attr_noreturn__);
-void i_set_fatal_handler(fatal_failure_callback_t callback __attr_noreturn__);
-void i_set_error_handler(failure_callback_t callback);
-void i_set_warning_handler(failure_callback_t callback);
-void i_set_info_handler(failure_callback_t callback);
+void i_set_panic_handler(failure_callback_t *callback __attr_noreturn__);
+void i_set_fatal_handler(fatal_failure_callback_t *callback __attr_noreturn__);
+void i_set_error_handler(failure_callback_t *callback);
+void i_set_warning_handler(failure_callback_t *callback);
+void i_set_info_handler(failure_callback_t *callback);
 
 /* Send failures to syslog() */
 void i_syslog_panic_handler(const char *fmt, va_list args) __attr_noreturn__;
--- a/src/lib/hash.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib/hash.c	Mon Jan 27 03:59:59 2003 +0200
@@ -47,8 +47,8 @@
 	struct hash_node *nodes;
 	struct hash_node *free_nodes;
 
-	hash_callback_t hash_cb;
-	hash_cmp_callback_t key_compare_cb;
+	hash_callback_t *hash_cb;
+	hash_cmp_callback_t *key_compare_cb;
 };
 
 static int hash_resize(struct hash_table *table, int grow);
@@ -68,7 +68,7 @@
 
 struct hash_table *
 hash_create(pool_t table_pool, pool_t node_pool, size_t initial_size,
-	    hash_callback_t hash_cb, hash_cmp_callback_t key_compare_cb)
+	    hash_callback_t *hash_cb, hash_cmp_callback_t *key_compare_cb)
 {
 	struct hash_table *table;
 
@@ -342,7 +342,7 @@
 	return table->nodes_count;
 }
 
-void hash_foreach(struct hash_table *table, hash_foreach_callback_t callback,
+void hash_foreach(struct hash_table *table, hash_foreach_callback_t *callback,
 		  void *context)
 {
 	struct hash_node *node;
--- a/src/lib/hash.h	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/lib/hash.h	Mon Jan 27 03:59:59 2003 +0200
@@ -2,10 +2,10 @@
 #define __HASH_H
 
 /* Returns hash code. */
-typedef unsigned int (*hash_callback_t)(const void *p);
+typedef unsigned int hash_callback_t(const void *p);
 /* Returns 0 if the pointers are equal. */
-typedef int (*hash_cmp_callback_t)(const void *p1, const void *p2);
-typedef void (*hash_foreach_callback_t)(void *key, void *value, void *context);
+typedef int hash_cmp_callback_t(const void *p1, const void *p2);
+typedef void hash_foreach_callback_t(void *key, void *value, void *context);
 
 /* Create a new hash table. If initial_size is 0, the default value is used.
    If hash_cb or key_compare_cb is NULL, direct hashing/comparing is used.
@@ -15,7 +15,7 @@
    be free'd before hash_destroy() is called. */
 struct hash_table *
 hash_create(pool_t table_pool, pool_t node_pool, size_t initial_size,
-	    hash_callback_t hash_cb, hash_cmp_callback_t key_compare_cb);
+	    hash_callback_t *hash_cb, hash_cmp_callback_t *key_compare_cb);
 void hash_destroy(struct hash_table *table);
 
 /* Remove all nodes from hash table. If free_collisions is TRUE, the
@@ -39,7 +39,7 @@
    call hash_*() functions inside your function, but if you add any
    new nodes, they may or may not be called for in this foreach loop. */
 void hash_foreach(struct hash_table *table,
-		  hash_foreach_callback_t callback, void *context);
+		  hash_foreach_callback_t *callback, void *context);
 /* Stop the active hash_foreach() loop */
 void hash_foreach_stop(void);
 
--- a/src/login/ssl-proxy-openssl.c	Mon Jan 27 03:59:27 2003 +0200
+++ b/src/login/ssl-proxy-openssl.c	Mon Jan 27 03:59:59 2003 +0200
@@ -55,7 +55,7 @@
 		if (proxy->io_plain_read == NULL) {
 			proxy->io_plain_read =
 				io_add(proxy->fd_plain, IO_READ,
-				       (io_callback_t)plain_read, proxy);
+				       (io_callback_t *)plain_read, proxy);
 		}
 	}
 }
@@ -116,7 +116,7 @@
 			if (proxy->io_plain_write == NULL) {
 				proxy->io_plain_write =
 					io_add(proxy->fd_plain, IO_WRITE,
-					       (io_callback_t)plain_write,
+					       (io_callback_t *)plain_write,
 					       proxy);
 			}
 		} else {
@@ -242,8 +242,7 @@
 	}
 }
 
-static void ssl_step(void *context, int fd __attr_unused__,
-		     struct io *io __attr_unused__)
+static void ssl_step(void *context)
 {
         struct ssl_proxy *proxy = context;