diff -dNur node-0.3.2.orig/Makefile node-0.3.2/Makefile --- node-0.3.2.orig/Makefile 2003-08-23 14:27:27.000000000 +0000 +++ node-0.3.2/Makefile 2016-10-18 20:42:46.112258866 +0000 @@ -1,5 +1,6 @@ all: nodeusers node + CC = gcc LD = gcc CFLAGS = -Wall -Wstrict-prototypes -O2 -g @@ -20,31 +21,31 @@ .c.o: $(CC) $(CFLAGS) -c $< -install: installbin installman installhelp - install -m 755 -o root -g root -d $(VAR_DIR)/node - install -m 644 -o root -g root etc/loggedin $(VAR_DIR)/node +install: installbin installman installhelp installconf + install -m 755 -D -o root -g root -d $(VAR_DIR)/node + install -m 644 -D -o root -g root etc/loggedin $(VAR_DIR)/node @rm -f /usr/bin/node @rm -f /usr/bin/nodeusers installbin: all - install -m 4755 -s -o root -g root node $(SBIN_DIR) - install -m 755 -s -o root -g root nodeusers $(SBIN_DIR) + install -m 4755 -D -s -o root -g root node $(SBIN_DIR)/node + install -m 755 -D -s -o root -g root nodeusers $(SBIN_DIR)/nodeusers installhelp: - install -m 755 -o root -g root -d $(LIB_DIR)/ax25/node/help - install -m 644 -o root -g root etc/help/*.hlp $(LIB_DIR)/ax25/node/help + install -m 755 -D -o root -g root -d $(LIB_DIR)/ax25/node/help + install -m 644 -D -o root -g root etc/help/*.hlp $(LIB_DIR)/ax25/node/help installconf: installhelp - install -m 755 -o root -g root -d $(ETC_DIR) - install -m 600 -o root -g root etc/node.conf $(ETC_DIR) - install -m 600 -o root -g root etc/node.perms $(ETC_DIR) - install -m 600 -o root -g root etc/node.motd $(ETC_DIR) + install -m 755 -D -o root -g root -d $(ETC_DIR) + install -m 600 -D -o root -g root etc/node.conf $(ETC_DIR) + install -m 600 -D -o root -g root etc/node.perms $(ETC_DIR) + install -m 600 -D -o root -g root etc/node.motd $(ETC_DIR) installman: - install -m 644 -o bin -g bin man/nodeusers.1 $(MAN_DIR)/man1 - install -m 644 -o bin -g bin man/node.conf.5 $(MAN_DIR)/man5 - install -m 644 -o bin -g bin man/node.perms.5 $(MAN_DIR)/man5 - install -m 644 -o bin -g bin man/node.8 $(MAN_DIR)/man8 + install -m 644 -D -o root -g root man/nodeusers.1 $(MAN_DIR)/man1/nodeusers.1 + install -m 644 -D -o root -g root man/node.conf.5 $(MAN_DIR)/man5/node.conf.5 + install -m 644 -D -o root -g root man/node.perms.5 $(MAN_DIR)/man5/node.perms.5 + install -m 644 -D -o root -g root man/node.8 $(MAN_DIR)/man8/node.8 clean: rm -f *.o *~ *.bak *.orig diff -dNur node-0.3.2.orig/Makefile.include.in node-0.3.2/Makefile.include.in --- node-0.3.2.orig/Makefile.include.in 1999-04-14 23:50:35.000000000 +0000 +++ node-0.3.2/Makefile.include.in 2016-10-18 20:42:10.973609084 +0000 @@ -2,12 +2,12 @@ ARCH = @ARCH@ # Paths -ETC_DIR = @ETC_DIR@ -SBIN_DIR = @SBIN_DIR@ -BIN_DIR = @BIN_DIR@ -LIB_DIR = @LIB_DIR@ -MAN_DIR = @MAN_DIR@ -VAR_DIR = @VAR_DIR@ +ETC_DIR = $(DESTDIR)@ETC_DIR@ +SBIN_DIR = $(DESTDIR)@SBIN_DIR@ +BIN_DIR = $(DESTDIR)@BIN_DIR@ +LIB_DIR = $(DESTDIR)@LIB_DIR@ +MAN_DIR = $(DESTDIR)@MAN_DIR@ +VAR_DIR = $(DESTDIR)@VAR_DIR@ # Is Zlib available? ZLIB = @ZLIB@ diff -dNur node-0.3.2.orig/command.c node-0.3.2/command.c --- node-0.3.2.orig/command.c 2003-08-23 14:15:14.000000000 +0000 +++ node-0.3.2/command.c 2016-10-18 20:42:10.973609084 +0000 @@ -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); + n_log(L_LOGIN, "%s @ %s logged out: %s", User.call, User.ul_name, reason); free_cmdlist(Nodecmds); Nodecmds = NULL; exit(0); diff -dNur node-0.3.2.orig/config.c node-0.3.2/config.c --- node-0.3.2.orig/config.c 2003-03-06 18:31:11.000000000 +0000 +++ node-0.3.2/config.c 2016-10-18 20:42:10.973609084 +0000 @@ -110,7 +110,7 @@ continue; if (argc != 5) { node_msg("Configuration error"); - log(L_ERROR, "Syntax error in permission file at line %d", n); + n_log(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", + n_log(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]); + n_log(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]); + n_log(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); + n_log(L_ERROR, "Syntax error in config file at line %d: %s", n, line); } if (ret < 0) { fclose(fp); diff -dNur node-0.3.2.orig/configure node-0.3.2/configure --- node-0.3.2.orig/configure 2003-03-06 18:36:50.000000000 +0000 +++ node-0.3.2/configure 2016-10-18 20:42:19.733272472 +0000 @@ -1,7 +1,7 @@ #!/bin/sh ETC_DIR=/etc/ax25 -SBIN_DIR=/usr/sbin +SBIN_DIR=/usr/bin BIN_DIR=/usr/bin LIB_DIR=/usr/lib VAR_DIR=/var/ax25 @@ -47,25 +47,25 @@ HAVENETROM="#undef" HAVEROSE="#undef" - echo -n "Include support for the AX.25 protocol ? [Y/n]: "; read answer - if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ] - then + #echo -n "Include support for the AX.25 protocol ? [Y/n]: "; read answer + #if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ] + #then HAVEAX25="#define" - fi + #fi # - echo -n "Include support for the NetRom protocol ? [Y/n]: "; read answer - if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ] - then - HAVEAX25="#define" + #echo -n "Include support for the NetRom protocol ? [Y/n]: "; read answer + #if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ] + #then + # HAVEAX25="#define" HAVENETROM="#define" - fi + #fi # - echo -n "Include support for the Rose protocol ? [Y/n]: "; read answer - if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ] - then - HAVEAX25="#define" + #echo -n "Include support for the Rose protocol ? [Y/n]: "; read answer + #if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ] + #then + # HAVEAX25="#define" HAVEROSE="#define" - fi + #fi echo "Creating Makefile.include" diff -dNur node-0.3.2.orig/gateway.c node-0.3.2/gateway.c --- node-0.3.2.orig/gateway.c 2003-03-06 21:11:55.000000000 +0000 +++ node-0.3.2/gateway.c 2016-10-18 20:42:10.973609084 +0000 @@ -55,7 +55,8 @@ } sa; struct in_addr inaddr; char call[10], path[20], *cp, *eol; - int ret, retlen = sizeof(int); + int ret = sizeof(int); + socklen_t retlen; int paclen; struct hostent *hp; struct servent *sp; @@ -72,7 +73,7 @@ case AF_ROSE: if (check_perms(PERM_ROSE, 0L) == -1) { node_msg("Permission denied"); - log(L_GW, "Permission denied: rose"); + n_log(L_GW, "Permission denied: rose"); return NULL; } if ((fd = socket(AF_ROSE, SOCK_SEQPACKET, 0)) < 0) { @@ -124,7 +125,7 @@ case AF_NETROM: if (check_perms(PERM_NETROM, 0L) == -1) { node_msg("Permission denied"); - log(L_GW, "Permission denied: netrom"); + n_log(L_GW, "Permission denied: netrom"); return NULL; } if ((fd = socket(AF_NETROM, SOCK_SEQPACKET, 0)) < 0) { @@ -159,7 +160,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]); + n_log(L_GW, "Permission denied: ax.25 port %s", addr[0]); return NULL; } if (ax25_config_get_addr(addr[0]) == NULL) { @@ -241,7 +242,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)); + n_log(L_GW, "Permission denied: telnet %s", print_dl(&User)); close(fd); return NULL; } @@ -310,7 +311,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); + n_log(L_GW, "Failure with %s: %s", print_dl(&User), cp); free(cp); close(fd); return NULL; @@ -339,7 +340,7 @@ escape < 32 ? (escape + 'A' - 1) : escape); node_flush(NodeIo); - log(L_GW, "Connected to %s", print_dl(&User)); + n_log(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 +537,7 @@ axio_end(riop); - log(L_GW, "Disconnected from %s", print_dl(&User)); + n_log(L_GW, "Disconnected from %s", print_dl(&User)); if (stay) { axio_eolmode(NodeIo, EOLMODE_TEXT); @@ -608,10 +609,10 @@ /* * Checksum routine for Internet Protocol family headers (C Version) */ -static unsigned short in_cksum(unsigned char *addr, int len) +static unsigned short in_cksum(char *addr, int len) { register int nleft = len; - register unsigned char *w = addr; + register char *w = addr; register unsigned int sum = 0; unsigned short answer = 0; @@ -670,7 +671,7 @@ int do_ping(int argc, char **argv) { - unsigned char buf[256]; + char buf[256]; struct hostent *hp; struct sockaddr_in to, from; struct in_addr inaddr; @@ -679,8 +680,8 @@ struct timeval tv1, tv2; fd_set fdset; int fd, i, len = sizeof(struct icmphdr); - int salen = sizeof(struct sockaddr); - + socklen_t salen; + if (argc < 2) { node_msg("Usage: ping []"); return 0; diff -dNur node-0.3.2.orig/ipc.c node-0.3.2/ipc.c --- node-0.3.2.orig/ipc.c 2003-08-23 20:23:19.000000000 +0000 +++ node-0.3.2/ipc.c 2016-10-18 20:42:10.973609084 +0000 @@ -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"); + n_log(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)); + n_log(L_ERROR, "ipc_close: Could not remove IPC channel: %s", strerror(errno)); return -1; } return 0; diff -dNur node-0.3.2.orig/node.c node-0.3.2/node.c --- node-0.3.2.orig/node.c 2003-08-24 19:13:06.000000000 +0000 +++ node-0.3.2/node.c 2016-10-18 20:42:10.973609084 +0000 @@ -90,7 +90,7 @@ struct sockaddr_rose srose; struct sockaddr_in sin; } saddr; - int slen = sizeof(saddr); + socklen_t slen = sizeof(saddr); char *p, buf[256], *pw; int paclen; FILE *fp; @@ -104,7 +104,7 @@ signal(SIGPIPE, SIG_IGN); if (ax25_config_load_ports() == 0) { - log(L_ERROR, "No AX.25 port data configured"); + n_log(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)); + n_log(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)); + n_log(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)); + n_log(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); + n_log(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); + n_log(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"); + n_log(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)); + n_log(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); + n_log(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); + n_log(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); + n_log(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); + n_log(L_LOGIN, "%s @ %s logged in", User.call, User.ul_name); while (1) { axio_flush(NodeIo); diff -dNur node-0.3.2.orig/node.h node-0.3.2/node.h --- node-0.3.2.orig/node.h 2003-08-23 13:46:51.000000000 +0000 +++ node-0.3.2/node.h 2016-10-18 20:42:10.973609084 +0000 @@ -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 n_log(int, const char *, ...); extern char *strherror(int); /* in user.c */ diff -dNur node-0.3.2.orig/user.c node-0.3.2/user.c --- node-0.3.2.orig/user.c 1999-04-21 20:38:35.000000000 +0000 +++ node-0.3.2/user.c 2016-10-18 20:42:10.973609084 +0000 @@ -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); + n_log(L_ERROR, "%s: Incorrect size", DATA_NODE_LOGIN_FILE); fclose(f); return; } diff -dNur node-0.3.2.orig/util.c node-0.3.2/util.c --- node-0.3.2.orig/util.c 2003-08-23 13:51:09.000000000 +0000 +++ node-0.3.2/util.c 2016-10-18 20:42:10.973609084 +0000 @@ -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); + n_log(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); + n_log(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); + n_log(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 n_log(int loglevel, const char *fmt, ...) { static int opened = 0; va_list args;