This patch prevents warnings like this one by renaming log() to log_msg():
node.h:119:13: warning: conflicting types for built-in function ‘log’ [enabled by default]

--- node-0.3.2.orig/util.c
+++ node-0.3.2/util.c
@@ -29,7 +29,7 @@
 //	fprintf(stderr, "fd=%d flag=%d 0%lo -> 0%lo\n", fd, flag, oldflags, newflags);
 
 	if (fcntl(fd, F_SETFL, newflags) == -1) {
-		log(LOG_ERR, "node_set_nonblock: fnctl(%lo,%lo): %m", fd, newflags);
+		log_msg(LOG_ERR, "node_set_nonblock: fnctl(%lo,%lo): %m", fd, newflags);
 		logout("fcntl failed");
 	}
 
@@ -39,7 +39,7 @@
 static int set_fd_flags(int fd, int flags)
 {
 	if (fcntl(fd, F_SETFL, flags) == -1) {
-		log(LOG_ERR, "node_set_fd_flags: fnctl(%d,&d): %m", fd, flags);
+		log_msg(LOG_ERR, "node_set_fd_flags: fnctl(%d,&d): %m", fd, flags);
 		logout("fcntl failed");
 	}
 
@@ -158,7 +158,7 @@
 	/* return original blocking state */
 	set_fd_flags(NodeIo->ofd, flags);
 
-	log(L_ERROR, buf);
+	log_msg(L_ERROR, buf);
 }
 
 char *print_node(const char *alias, const char *call)
@@ -208,7 +208,7 @@
 	return err;
 }
 
-void log(int loglevel, const char *fmt, ...)
+void log_msg(int loglevel, const char *fmt, ...)
 {
 	static int opened = 0;
 	va_list args;
--- node-0.3.2.orig/gateway.c
+++ node-0.3.2/gateway.c
@@ -72,7 +72,7 @@
 	case AF_ROSE:
 		if (check_perms(PERM_ROSE, 0L) == -1) {
 			node_msg("Permission denied");
-			log(L_GW, "Permission denied: rose");
+			log_msg(L_GW, "Permission denied: rose");
 			return NULL;
 		}
 		if ((fd = socket(AF_ROSE, SOCK_SEQPACKET, 0)) < 0) {
@@ -124,7 +124,7 @@
 	case AF_NETROM:
 		if (check_perms(PERM_NETROM, 0L) == -1) {
 			node_msg("Permission denied");
-			log(L_GW, "Permission denied: netrom");
+			log_msg(L_GW, "Permission denied: netrom");
 			return NULL;
 		}
 		if ((fd = socket(AF_NETROM, SOCK_SEQPACKET, 0)) < 0) {
@@ -159,7 +159,7 @@
 	case AF_AX25:
 		if (check_perms(PERM_AX25, 0L) == -1 || (is_hidden(addr[0]) && check_perms(PERM_HIDDEN, 0L) == -1)) {
 			node_msg("Permission denied");
-			log(L_GW, "Permission denied: ax.25 port %s", addr[0]);
+			log_msg(L_GW, "Permission denied: ax.25 port %s", addr[0]);
 			return NULL;
 		}
 		if (ax25_config_get_addr(addr[0]) == NULL) {
@@ -241,7 +241,7 @@
 		eol = INET_EOL;
 		if (check_perms(PERM_TELNET, sa.in.sin_addr.s_addr) == -1) {
 			node_msg("Permission denied");
-			log(L_GW, "Permission denied: telnet %s", print_dl(&User));
+			log_msg(L_GW, "Permission denied: telnet %s", print_dl(&User));
 			close(fd);
 			return NULL;
 		}
@@ -310,7 +310,7 @@
 				cp = strdup(strerror(ret));
 				strlwr(cp);
 				node_msg_block("Failure with %s: %s", print_dl(&User), cp);
-				log(L_GW, "Failure with %s: %s", print_dl(&User), cp);
+				log_msg(L_GW, "Failure with %s: %s", print_dl(&User), cp);
 				free(cp);
 				close(fd);
 				return NULL;
@@ -339,7 +339,7 @@
 				escape < 32 ? (escape + 'A' - 1) : escape);
 	node_flush(NodeIo);
 
-	log(L_GW, "Connected to %s", print_dl(&User));
+	log_msg(L_GW, "Connected to %s", print_dl(&User));
 
 	if ((riop = axio_init(fd, fd, paclen, eol)) == NULL) {
 		node_perror("connect_to: Initializing I/O failed", errno);
@@ -536,7 +536,7 @@
 
 	axio_end(riop);
 
-	log(L_GW, "Disconnected from %s", print_dl(&User));
+	log_msg(L_GW, "Disconnected from %s", print_dl(&User));
 
 	if (stay) {
 		axio_eolmode(NodeIo, EOLMODE_TEXT);
--- node-0.3.2.orig/config.c
+++ node-0.3.2/config.c
@@ -110,7 +110,7 @@
 			continue;
 		if (argc != 5) {
 			node_msg("Configuration error");
-			log(L_ERROR, "Syntax error in permission file at line %d", n);
+			log_msg(L_ERROR, "Syntax error in permission file at line %d", n);
 			break;
 		}
 		if (strcmp(argv[0], "*") && strcasecmp(argv[0], up->call))
@@ -227,7 +227,7 @@
 	EscChar = get_escape(argv[1]);
 	if (EscChar < -1 || EscChar > 255) {
 		node_msg("Configuration error");
-		log(L_ERROR, "do_escapechar: Invalid escape character %s",
+		log_msg(L_ERROR, "do_escapechar: Invalid escape character %s",
 		    argv[1]);
 		return -2;
 	}
@@ -304,7 +304,7 @@
 	for (i = 1; i < argc && i < 31; i++) {
 		if (ax25_config_get_dev(argv[i]) == NULL) {
 			node_msg("Configuration error");
-			log(L_ERROR, "do_hiddenports: invalid port %s", argv[i]);
+			log_msg(L_ERROR, "do_hiddenports: invalid port %s", argv[i]);
 			return -2;
 		}
 		HiddenPorts[i - 1] = strdup(argv[i]);
@@ -339,7 +339,7 @@
 	new->flags = atoi(argv[2]);
 	if ((pw = getpwnam(argv[3])) == NULL) {
 		node_msg("Configuration error");
-		log(L_ERROR, "do_extcmd: Unknown user %s", argv[3]);
+		log_msg(L_ERROR, "do_extcmd: Unknown user %s", argv[3]);
 		return -2;
 	}
 	new->uid = pw->pw_uid;
@@ -409,7 +409,7 @@
 		ret = cmdparse(cfg_cmds, line);
 		if (ret == -1) {
 			node_msg("Configuration error");
-			log(L_ERROR, "Syntax error in config file at line %d: %s", n, line);
+			log_msg(L_ERROR, "Syntax error in config file at line %d: %s", n, line);
 		}
 		if (ret < 0) {
 			fclose(fp);
--- node-0.3.2.orig/node.c
+++ node-0.3.2/node.c
@@ -104,7 +104,7 @@
 	signal(SIGPIPE, SIG_IGN);
 
 	if (ax25_config_load_ports() == 0) {
-		log(L_ERROR, "No AX.25 port data configured");
+		log_msg(L_ERROR, "No AX.25 port data configured");
 		return 1;
 	}
 	nr_config_load_ports();
@@ -112,7 +112,7 @@
 
 	if (getpeername(STDOUT_FILENO, (struct sockaddr *)&saddr, &slen) == -1) {
 		if (errno != ENOTSOCK) {
-			log(L_ERROR, "getpeername: %s", strerror(errno));
+			log_msg(L_ERROR, "getpeername: %s", strerror(errno));
 			return 1;
 		}
 		User.ul_type = AF_UNSPEC;
@@ -123,7 +123,7 @@
 	case AF_AX25:
 		strcpy(User.call, ax25_ntoa(&saddr.sax.fsa_ax25.sax25_call));
 		if (getsockname(STDOUT_FILENO, (struct sockaddr *)&saddr.sax, &slen) == -1) {
-			log(L_ERROR, "getsockname: %s", strerror(errno));
+			log_msg(L_ERROR, "getsockname: %s", strerror(errno));
 			return 1;
 		}
 		strcpy(User.ul_name, ax25_config_get_port(&saddr.sax.fsa_digipeater[0]));
@@ -134,7 +134,7 @@
 		strcpy(User.call, ax25_ntoa(&saddr.sax.fsa_ax25.sax25_call));
 		strcpy(User.ul_name, ax25_ntoa(&saddr.sax.fsa_digipeater[0]));
 		if (getsockname(STDOUT_FILENO, (struct sockaddr *)&saddr.sax, &slen) == -1) {
-			log(L_ERROR, "getsockname: %s", strerror(errno));
+			log_msg(L_ERROR, "getsockname: %s", strerror(errno));
 			return 1;
 		}
 		strcpy(User.ul_port, nr_config_get_port(&saddr.sax.fsa_ax25.sax25_call));
@@ -155,7 +155,7 @@
 	case AF_UNSPEC:
 		strcpy(User.ul_name, "local");
 		if ((p = get_call(getuid())) == NULL) {
-			log(L_ERROR, "No uid->callsign association found", -1);
+			log_msg(L_ERROR, "No uid->callsign association found", -1);
 			return 1;
 		}
 		strcpy(User.call, p);
@@ -163,14 +163,14 @@
 		p = UNSPEC_EOL;
 		break;
 	default:
-		log(L_ERROR, "Unsupported address family %d", User.ul_type);
+		log_msg(L_ERROR, "Unsupported address family %d", User.ul_type);
 		return 1;
 	}
 
 	NodeIo = axio_init(STDIN_FILENO, STDOUT_FILENO, paclen, p);
 
 	if (NodeIo == NULL) {
-		log(L_ERROR, "Error initializing I/O");
+		log_msg(L_ERROR, "Error initializing I/O");
 		return 1;
 	}
 #ifdef HAVE_ZLIB_H
@@ -201,7 +201,7 @@
 			strncpy(User.ul_name, hp->h_name, 31);
 			User.ul_name[31] = 0;
 		} else
-			log(L_ERROR, "gethostbyaddr: %s", strherror(h_errno));
+			log_msg(L_ERROR, "gethostbyaddr: %s", strherror(h_errno));
 	}
 
 	User.state = STATE_LOGIN;
@@ -224,13 +224,13 @@
 
 	if (check_call(User.call) == -1) {
 		node_msg("Invalid callsign");
-		log(L_LOGIN, "Invalid callsign %s @ %s", User.call, User.ul_name);
+		log_msg(L_LOGIN, "Invalid callsign %s @ %s", User.call, User.ul_name);
 		logout("Invalid callsign");
 	}
 
 	if ((pw = read_perms(&User, saddr.sin.sin_addr.s_addr)) == NULL) {
 		node_msg("Sorry, I'm not allowed to talk to you...");
-		log(L_LOGIN, "Login denied for %s @ %s", User.call, User.ul_name);
+		log_msg(L_LOGIN, "Login denied for %s @ %s", User.call, User.ul_name);
 		logout("Login denied");
 	} else if (strcmp(pw, "*") != 0) {
 		nputs("Password: ");
@@ -248,7 +248,7 @@
 		if (p == NULL || strcmp(p, pw) != 0) {
 			nputs("\n");
 			node_msg("Login failed");
-			log(L_LOGIN, "Login failed for %s @ %s", User.call, User.ul_name);
+			log_msg(L_LOGIN, "Login failed for %s @ %s", User.call, User.ul_name);
 			logout("Login failed");
 		}
 	}
@@ -266,7 +266,7 @@
 
 	put_prompt();
 
-	log(L_LOGIN, "%s @ %s logged in", User.call, User.ul_name);
+	log_msg(L_LOGIN, "%s @ %s logged in", User.call, User.ul_name);
 
 	while (1) {
 		axio_flush(NodeIo);
--- node-0.3.2.orig/user.c
+++ node-0.3.2/user.c
@@ -37,7 +37,7 @@
 	}
 	if (statbuf.st_size % sizeof(struct user) != 0) {
 		node_msg("%s: Incorrect size", DATA_NODE_LOGIN_FILE);
-		log(L_ERROR, "%s: Incorrect size", DATA_NODE_LOGIN_FILE);
+		log_msg(L_ERROR, "%s: Incorrect size", DATA_NODE_LOGIN_FILE);
 		fclose(f);
 		return;
 	}
--- node-0.3.2.orig/ipc.c
+++ node-0.3.2/ipc.c
@@ -32,7 +32,7 @@
 		nprintf("\n%s %s\n", NodeId, buf.mtext);
 		node_flush(NodeIo);
 	} else
-		log(L_ERROR, "usr2_handler: Caught SIGUSR2, but couldn't receive a message");
+		log_msg(L_ERROR, "usr2_handler: Caught SIGUSR2, but couldn't receive a message");
 
 	signal(SIGUSR2, usr2_handler); /* Restore handler */
 }
@@ -90,7 +90,7 @@
 	
 	if (ipc_id != -1)	/* Remove the IPC channel */
 		if (msgctl(ipc_id, IPC_RMID, &buf) == -1) {
-			log(L_ERROR, "ipc_close: Could not remove IPC channel: %s", strerror(errno));
+			log_msg(L_ERROR, "ipc_close: Could not remove IPC channel: %s", strerror(errno));
 			return -1;
 		}
 	return 0;
--- node-0.3.2.orig/command.c
+++ node-0.3.2/command.c
@@ -59,7 +59,7 @@
 	axio_end_all();
 	logout_user();
 	ipc_close();
-	log(L_LOGIN, "%s @ %s logged out: %s", User.call, User.ul_name, reason);
+	log_msg(L_LOGIN, "%s @ %s logged out: %s", User.call, User.ul_name, reason);
 	free_cmdlist(Nodecmds);
 	Nodecmds = NULL;
 	exit(0);
--- node-0.3.2.orig/node.h
+++ node-0.3.2/node.h
@@ -116,7 +116,7 @@
 extern char *print_node(const char *, const char *);
 extern char *print_dl(struct user *);
 extern int put_prompt(void);
-extern void log(int, const char *, ...);
+extern void log_msg(int, const char *, ...);
 extern char *strherror(int);
 
 /* in user.c */
