commit
944a20363f
98
CHANGES.2
98
CHANGES.2
|
@ -1,4 +1,3 @@
|
|||
|
||||
28/11/2008 v1.0.8
|
||||
*notes lost, sorry.
|
||||
|
||||
|
@ -600,7 +599,104 @@ to the README file as well.
|
|||
|
||||
Changed the version in node.h to reflect this security patch.
|
||||
|
||||
21/11/2015 - v2.4
|
||||
|
||||
Made a change to gatway.c in which during an incoming ax.25 connect, if
|
||||
the user gateways out to another node/rose/flex/etc and does NOT request
|
||||
to "s"tay on the node, they will be disconnected from the node upon
|
||||
disconnect at the remote. No termination message from the node will be
|
||||
displayed either as to not conflict with a possible exit message from
|
||||
the remote. If the user DOES request to remain on the node, they will
|
||||
be presented with the return message and a disconnect will also generate
|
||||
a disconnect message. This should make the node a bit more HF friendly.
|
||||
|
||||
Made a change in node.c and in command.c in regards to the prompts.
|
||||
This idea came via Mitch AB4MW. In the main loop, the buffer was already
|
||||
called to flush. By eliminating certain flush routines and only calling
|
||||
them where they're truly required, the functions now have their own
|
||||
buffer flushing and the prompts have their own. This also should help
|
||||
reduce the number of frames required while keeping the prompts themselves
|
||||
intact. I have noticed for quite a while that it was possible to send
|
||||
a colored prompt BUT the ANSI reset code took it's own frame to follow
|
||||
the prompt leaving the user's input in color. While it didn't harm any
|
||||
functionality, it just looked a little sloppy.
|
||||
|
||||
Mitch AB4MW caught a bug in node.c line 330ish where the ansi code was
|
||||
missing the "m" at the end of the sequence. This is fixed. I never noticed
|
||||
this in the terminal (xterm), however it appears to affect others.
|
||||
|
||||
Paul G4APL convinced me on a minor issue where if a user requested his login
|
||||
be password protected that under the condition of NetRom ONLY the logins
|
||||
failed to return any clue that the user properly authenticated in. It appears
|
||||
as if the user is in a hung mode, and they need to break out of the session.
|
||||
While this was not true, I concur that it does appear that way which can be
|
||||
a tad confusing. Of course, if a user did "?" the command list would appear.
|
||||
I made a change in node.c so that ONLY if a user had to password authenticate
|
||||
to an incoming NetRom connect, once they did so the user will now be presented
|
||||
with a "ALIAS:CALL} Welcome." message. If the user does NOT have a password
|
||||
for NetRom, than the standard rules (as per Software2000 spec) apply. Note:
|
||||
I've not only added this for the end user but also in keeping with Software-
|
||||
2000 specs, I can't recall any situation where a user may wish to password
|
||||
his NetRom connections. While this login greeting upon a successful
|
||||
authentication to the remote NetRom node may be out of spec, I had to first
|
||||
ask myself if requiring a password at a remote NetRom node is in spec?
|
||||
Needless to say, in my past conversations with W0RLI (RLI BBS Fame and SK)
|
||||
we've decided that the specs were written with PBBS scripts in mind and
|
||||
that a robot forwarding session needs no extra frames to confuse it... so
|
||||
with that in mind, I can't think of a situation where a user who's call is
|
||||
also their pbbs may want to password themselves so I'm hoping this is a
|
||||
moot issue.
|
||||
|
||||
Many dupe texts found by SP2L, removed. Thanks Tom.
|
||||
|
||||
Added pidfile creation and daemonize routine for axdigi. No longer will you
|
||||
need to load it by calling "/usr/local/sbin/axdigi &", now you may simply
|
||||
call it using "/usr/local/sbin/axdigi".
|
||||
|
||||
Fixed a bug in flexd where if you had to kill it, "killall -TERM flexd"
|
||||
failed... you had to "kill -9 #####" via the process id. Now the killall
|
||||
string will properly work.
|
||||
|
||||
Added a README.flexd file for binary errors in regards to flexd failing to
|
||||
run on some systems. If you manually compile, this will help you if your
|
||||
flexd errors within two cycles of attempting to import remote routes.
|
||||
|
||||
Removed the gzipped status of man pages, did some spell checks to others
|
||||
and added a flexd.8 manpage. This request came to me from Dave at Debian
|
||||
for downstream purposes.
|
||||
|
||||
Considering more folks are beginning to use URONode on HF frequencies such
|
||||
as Net105, I've decided that a 60 second login timer on a 300 baud link may
|
||||
be too slow so I've extended this to a 3 minute login timer. Hopefully a 3
|
||||
minute login process will be long enough for those on HF frequencies to
|
||||
continue to enjoy URONode and the ability to telnet from an incoming ax25
|
||||
connection to say an amprnet connection to a remote URONode elsewhere. While
|
||||
I don't really expect or would imagine folks would route IP via HF (however
|
||||
it *can* be done!) I would think this should help this sort of a scenario
|
||||
so that users don't get logged off before even being able to log on!
|
||||
|
||||
VE1JOT suggested that on busier frequencies where there may be a lot of
|
||||
beaconing that's via digipeated paths, a way to disable the MHeard auto
|
||||
router. Now when running the configure script, you will now be presented
|
||||
with such an option. The problem stems from the MHeard daemon from the
|
||||
ax25-tools package will pick up whatever path is last heard (which is
|
||||
actually correct behavior) but on some of the HF packet nets this will
|
||||
make the MHeard database to overwrite the last path to what may be a
|
||||
direct site. Sysops can do 2 things here in this case now:
|
||||
1) disable the AutoRouter for ax25 during configure.
|
||||
2) adding the remote node into uronode.routes as a direct static route.
|
||||
|
||||
While working on this, I also noticed config.h was a tad sloppy and this
|
||||
got under my skin, so I cleaned this up while I was at it, along with
|
||||
deciding for now to make an official release for the upcoming holiday
|
||||
season. As for a developer's note, I did the above before but did a real
|
||||
bone-headed move and wiped out my email amongst other things by accident.
|
||||
Fortunatey I maintain monthly backups and restored from that. For me this
|
||||
meant minimum recreations of work lost. As for URONode, I only lost the
|
||||
suggestion by VE1JOT and other clean ups.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Known NON-Critical Bugs:
|
||||
Status memory/swap reporting fix
|
||||
|
|
4
INSTALL
4
INSTALL
|
@ -62,7 +62,7 @@ if you use inetd -
|
|||
/etc/inetd.conf could have something like this in it:
|
||||
|
||||
# Listen at telnet port -> URONode
|
||||
uronode stream tcp nowait nobody /usr/local/sbin/uronode uronode
|
||||
uronode stream tcp nowait root /usr/local/sbin/uronode uronode
|
||||
|
||||
if you use xinetd -
|
||||
/etc/xinetd.d/uronode should look like this:
|
||||
|
@ -72,7 +72,7 @@ service uronode
|
|||
disable = no
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
user = nobody
|
||||
user = root
|
||||
server = /usr/local/sbin/uronode
|
||||
wait = no
|
||||
instances = 20
|
||||
|
|
17
Makefile.in
17
Makefile.in
|
@ -55,20 +55,19 @@ installconf: installhelp
|
|||
|
||||
installman:
|
||||
install -m 755 -D -d $(MAN_DIR)/man1 $(MAN_DIR)/man5 $(MAN_DIR)/man8
|
||||
install -m 644 -p man/nodeusers.1.gz $(MAN_DIR)/man1
|
||||
install -m 644 -p man/uronode.conf.5.gz $(MAN_DIR)/man5
|
||||
install -m 644 -p man/uronode.perms.5.gz $(MAN_DIR)/man5
|
||||
install -m 644 -p man/flexd.conf.5.gz $(MAN_DIR)/man5
|
||||
install -m 644 -p man/uronode.8.gz $(MAN_DIR)/man8
|
||||
install -m 644 -p man/axdigi.8.gz $(MAN_DIR)/man8
|
||||
install -m 644 -p man/nodeusers.1 $(MAN_DIR)/man1
|
||||
install -m 644 -p man/uronode.conf.5 $(MAN_DIR)/man5
|
||||
install -m 644 -p man/uronode.perms.5 $(MAN_DIR)/man5
|
||||
install -m 644 -p man/flexd.conf.5 $(MAN_DIR)/man5
|
||||
install -m 644 -p man/uronode.8 $(MAN_DIR)/man8
|
||||
install -m 644 -p man/axdigi.8 $(MAN_DIR)/man8
|
||||
install -m 644 -p man/flexd.8 $(MAN_DIR)/man8
|
||||
|
||||
upgrade: installman
|
||||
install -m 755 -p uronode $(SBIN_DIR)
|
||||
install -m 755 -p nodeusers $(SBIN_DIR)
|
||||
install -m 755 -p flexd $(SBIN_DIR)
|
||||
install -m 755 -p axdigi $(SBIN_DIR)
|
||||
install -m 644 -p uronode.conf $(ETC_DIR)
|
||||
install -m 644 -p uronode.perms $(ETC_DIR)
|
||||
|
||||
clean:
|
||||
rm -f *.o *~ *.bak *.orig make.debug nodeusers uronode flexd axdigi
|
||||
|
@ -93,7 +92,7 @@ flexd: $(FLEXD_OBJS)
|
|||
$(LD) $(LDFLAGS) -o flexd $(FLEXD_OBJS) $(LIBS) $(ZLIB)
|
||||
|
||||
axdigi: $(DIGI_OBJS)
|
||||
$(LD) $(LDFLAGS) -o axdigi $(DIGI_OBJS)
|
||||
$(LD) $(LDFLAGS) -o axdigi $(DIGI_OBJS) $(LIBS)
|
||||
|
||||
ifeq (.depend,$(wildcard .depend))
|
||||
include .depend
|
||||
|
|
54
axdigi.c
54
axdigi.c
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* axdigi: Cross and straight port digipeater program
|
||||
* Copyright (C) 1995 Craig Small VK2XLZ
|
||||
* modificatioins 2012-present Brian N1URO
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -32,7 +33,10 @@
|
|||
/* below added by N1URO */
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <linux/ax25.h>
|
||||
/* added by N1URO */
|
||||
#include <netax25/daemon.h>
|
||||
|
||||
int recv_packet(unsigned char *buf, int size, unsigned char *port);
|
||||
void print_call(unsigned char *buf);
|
||||
|
@ -48,12 +52,26 @@ void get_interfaces(int skt);
|
|||
#define REPEATED 0x80 /* Has-been-repeated bit */
|
||||
#define MAX_PORTS 16
|
||||
#define VERSION "0.2"
|
||||
|
||||
#define AXDIGI_PID_FILE "/var/run/axdigi.pid"
|
||||
int port_count = 0;
|
||||
unsigned char portname[MAX_PORTS][20];
|
||||
unsigned char portcall[MAX_PORTS][8];
|
||||
|
||||
void(*sigterm_defhnd)(int);
|
||||
|
||||
static void quit_handler(int sig)
|
||||
{
|
||||
signal(SIGTERM, SIG_IGN);
|
||||
|
||||
unlink(AXDIGI_PID_FILE);
|
||||
|
||||
// signal(SIGTERM, sigterm_defhnd);
|
||||
signal(SIGTERM, quit_handler);
|
||||
raise(SIGTERM);
|
||||
unlink(AXDIGI_PID_FILE);
|
||||
system("rm -f /var/run/axdigi.pid");
|
||||
return;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
@ -63,12 +81,27 @@ int main(int argc, char *argv[])
|
|||
struct sockaddr sa;
|
||||
int asize;
|
||||
|
||||
|
||||
system("rm -f /var/run/axdigi.pid");
|
||||
|
||||
FILE *pidfile;
|
||||
|
||||
// signal(SIGALRM, alarm_handler);
|
||||
// signal(SIGTERM, term_handler);
|
||||
// signal(SIGPIPE, quit_handler);
|
||||
// signal(SIGQUIT, quit_handler);
|
||||
|
||||
// pidfile = fopen(AXDIGI_PID_FILE, "w");
|
||||
// fprintf(pidfile, "%d\n", (int)getpid());
|
||||
// fclose(pidfile);
|
||||
|
||||
/* Check our huge range of flags */
|
||||
if (argc > 1)
|
||||
{
|
||||
if (strcmp(argv[1], "-v") == 0 || strcmp(argv[1], "-h") ==0)
|
||||
{
|
||||
printf("axdigi version %s. Copyright (C) 1995 Craig Small VK2XLZ\n\n", VERSION);
|
||||
printf("axdigi version %s. Copyright (C) 1995 Craig Small VK2XLZ\n", VERSION);
|
||||
printf("modificatiions 2012-present by Brian N1URO\n\n");
|
||||
printf("axdigi comes with ABSOLUTELY NO WARRANTY.\n");
|
||||
printf("This is free software, and you are welcome to redistribute it\n");
|
||||
printf("under the terms of GNU General Public Licence as published\n");
|
||||
|
@ -76,13 +109,25 @@ int main(int argc, char *argv[])
|
|||
printf("(at your option) any later version.\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Routine to daemonize - added by N1URO */
|
||||
if (!daemon_start(TRUE)) {
|
||||
fprintf(stderr, "Sorry, axdigi cannot become a daemon\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Change to keep code more modern - N1URO */
|
||||
if ((skt = socket(PF_PACKET, SOCK_PACKET, htons(ETH_P_AX25))) == -1)
|
||||
{
|
||||
perror("socket");
|
||||
return(1);
|
||||
}
|
||||
|
||||
pidfile = fopen(AXDIGI_PID_FILE, "w");
|
||||
fprintf(pidfile, "%d\n", (int)getpid());
|
||||
fclose(pidfile);
|
||||
|
||||
get_interfaces(skt);
|
||||
|
||||
while(1)
|
||||
|
@ -107,7 +152,9 @@ int main(int argc, char *argv[])
|
|||
/* printf("Unknown port %s\n", sa.sa_data);*/
|
||||
} /* recv_packet true */
|
||||
} /* while(1) */
|
||||
|
||||
close(skt);
|
||||
// system("rm -f /var/run/axdigi.pid");
|
||||
}
|
||||
|
||||
int recv_packet(unsigned char *buf, int size, unsigned char *port)
|
||||
|
@ -252,4 +299,3 @@ void get_interfaces(int skt)
|
|||
}
|
||||
} /* for */
|
||||
}
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ void node_prompt(const char *fmt, ...)
|
|||
if ((User.ul_type == AF_ROSE) && (check_perms(PERM_ANSI, 0L) != -1)) {
|
||||
axio_printf(NodeIo,"\r\e[01;35m-=>\e[0m \b");
|
||||
}
|
||||
axio_flush(NodeIo);
|
||||
/* axio_flush(NodeIo); */
|
||||
}
|
||||
|
||||
void node_logout(char *reason)
|
||||
|
@ -795,7 +795,7 @@ int do_status(int argc, char **argv)
|
|||
axio_printf(NodeIo,"------------------ ---------- ---------- ---------- ----------\n");
|
||||
axio_printf(NodeIo,"Physical: %-7d kB %-7d kB %-7d kB %3d %%\n", ma, mu, mf, (mu*100)/ma);
|
||||
|
||||
if (!(mem = meminfo()) || mem[meminfo_stotal][meminfo_total] != 0)
|
||||
if (!(mem = meminfo()) || mem[meminfo_stotal][meminfo_total] != 0)
|
||||
{
|
||||
sa = mem[meminfo_stotal][meminfo_total];
|
||||
su = (mem[meminfo_stotal][meminfo_total] - mem[meminfo_sfree][meminfo_total]);
|
||||
|
@ -803,7 +803,7 @@ int do_status(int argc, char **argv)
|
|||
axio_printf(NodeIo,"Swap: %-7d kB %-7d kB %-7d kB %3d %%\n",sa,su,sf,(su*100)/sa);
|
||||
}
|
||||
else
|
||||
/* axio_printf(NodeIo,"Cannot get swap information!\n"); */
|
||||
axio_printf(NodeIo,"Cannot get swap information!\n");
|
||||
axio_printf(NodeIo," ");
|
||||
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
@HAVENETROM@
|
||||
@HAVEZLIB@
|
||||
@HAVEMHEARD@
|
||||
@HAVEAUTOROUTE@
|
||||
@HAVETCPIP@
|
||||
#define PROC_AX25_CALLS_FILE "/proc/net/ax25_calls"
|
||||
|
||||
|
|
|
@ -14,12 +14,13 @@ echo "Cleaning the directory for a fresh configuration..."
|
|||
_sleep 2
|
||||
make distclean > make.debug
|
||||
|
||||
ETC_DIR=/usr/local/etc/ax25
|
||||
SBIN_DIR=/usr/local/sbin
|
||||
BIN_DIR=/usr/local/bin
|
||||
LIB_DIR=/usr/local/lib
|
||||
MAN_DIR=/usr/local/share/man
|
||||
VAR_DIR=/usr/local/var/ax25
|
||||
[ "$ETC_DIR" ] || ETC_DIR=/usr/local/etc/ax25
|
||||
[ "$SBIN_DIR" ] || SBIN_DIR=/usr/local/sbin
|
||||
[ "$BIN_DIR" ] || BIN_DIR=/usr/local/bin
|
||||
[ "$LIB_DIR" ] || LIB_DIR=/usr/local/lib
|
||||
[ "$DATA_DIR" ] || DATA_DIR=/usr/local/share
|
||||
[ "$MAN_DIR" ] || MAN_DIR=/usr/local/share/man
|
||||
[ "$VAR_DIR" ] || VAR_DIR=/usr/local/var/ax25
|
||||
|
||||
echo "Welcome to the configuration utility for URONode. This configure script"
|
||||
echo "will very simply and easily guide you into installling URONode with as"
|
||||
|
@ -81,6 +82,7 @@ fi
|
|||
HAVENETROM="#undef HAVE_NETROM"
|
||||
HAVEROSE="#undef HAVE_ROSE"
|
||||
HAVEMHEARD="#undef HAVE_MHEARD"
|
||||
HAVEAUTOROUTE="#undef HAVE_AUTOROUTE"
|
||||
HAVETCPIP="#undef HAVE_TCPIP"
|
||||
HAVEMOTD="#undef HAVE_MOTD"
|
||||
MOTDPATH=
|
||||
|
@ -139,7 +141,7 @@ fi
|
|||
if [ $? -ne 1 ]
|
||||
then
|
||||
HAVEAX25="#define HAVE_AX25 1"
|
||||
HAVEROSE="#define HAVE_ROSE 1"
|
||||
HAVEROSE="#define HAVE_ROSE 1"
|
||||
fi
|
||||
#
|
||||
# echo -n "Include support for MHeard ports listen ? [Y/n]: "; read answer
|
||||
|
@ -156,6 +158,21 @@ fi
|
|||
HAVEMHEARD="#define HAVE_MHEARD 1"
|
||||
fi
|
||||
#
|
||||
# echo -n "Include support for ax25 AutoRouter ? [Y/n]: "; read answer
|
||||
# if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ]
|
||||
if [ "$NON_INTERACTIVE" = 1 ]
|
||||
then
|
||||
echo "$@" | grep -vqe "--without-autorouter"
|
||||
else
|
||||
whiptail --title "URONode Options:" --yesno "Support AutoRouter?" 7 23
|
||||
fi
|
||||
if [ $? -ne 1 ]
|
||||
then
|
||||
HAVEAX25="#define HAVE_AX25 1"
|
||||
HAVEAUTOROUTE="#define HAVE_AUTOROUTE 1"
|
||||
fi
|
||||
#
|
||||
|
||||
# echo -n "Include support for TCP/IP functions ? [Y/n]: "; read answer
|
||||
# if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ]
|
||||
if [ "$NON_INTERACTIVE" = 1 ]
|
||||
|
@ -184,6 +201,7 @@ sed -e "s~@ARCH@~$ARCH~g; \
|
|||
s~@SBIN_DIR@~$SBIN_DIR~g; \
|
||||
s~@BIN_DIR@~$BIN_DIR~g; \
|
||||
s~@VAR_DIR@~$VAR_DIR~g; \
|
||||
s~@DATA_DIR@~$DATA_DIR~g; \
|
||||
s~@MAN_DIR@~$MAN_DIR~g; \
|
||||
s~@ZLIB@~$ZLIB~g" <Makefile.include.in >Makefile.include
|
||||
|
||||
|
@ -195,11 +213,13 @@ sed -e "s~@ETC_DIR@~$ETC_DIR~g; \
|
|||
s~@BIN_DIR@~$BIN_DIR~g; \
|
||||
s~@VAR_DIR@~$VAR_DIR~g; \
|
||||
s~@MAN_DIR@~$MAN_DIR~g; \
|
||||
s~@DATA_DIR@~$DATA_DIR~g; \
|
||||
s~@HAVEAX25@~$HAVEAX25~g; \
|
||||
s~@HAVEFLEX@~$HAVEFLEX~g; \
|
||||
s~@HAVENETROM@~$HAVENETROM~g; \
|
||||
s~@HAVEROSE@~$HAVEROSE~g; \
|
||||
s~@HAVEMHEARD@~$HAVEMHEARD~g; \
|
||||
s~@HAVEAUTOROUTE@~$HAVEAUTOROUTE~g; \
|
||||
s~@HAVETCPIP@~$HAVETCPIP~g; \
|
||||
s~@HAVEMOTD@~$HAVEMOTD~g; \
|
||||
s~@MOTDPATH@~$MOTDPATH~g; \
|
||||
|
|
|
@ -11,22 +11,24 @@ Last-Update: 2015-10-16
|
|||
_sleep()
|
||||
{
|
||||
[ "$NON_INTERACTIVE" = 1 ] || sleep "$@"
|
||||
@@ -14,12 +14,12 @@
|
||||
@@ -14,13 +14,13 @@
|
||||
_sleep 2
|
||||
make distclean > make.debug
|
||||
|
||||
-ETC_DIR=/usr/local/etc/ax25
|
||||
-SBIN_DIR=/usr/local/sbin
|
||||
-BIN_DIR=/usr/local/bin
|
||||
-LIB_DIR=/usr/local/lib
|
||||
-MAN_DIR=/usr/local/share/man
|
||||
-VAR_DIR=/usr/local/var/ax25
|
||||
+ETC_DIR=/etc/ax25
|
||||
+SBIN_DIR=/usr/sbin
|
||||
+BIN_DIR=/usr/bin
|
||||
+LIB_DIR=/usr/lib
|
||||
+MAN_DIR=/usr/share/man
|
||||
+VAR_DIR=/var/lib/ax25
|
||||
-[ "$ETC_DIR" ] || ETC_DIR=/usr/local/etc/ax25
|
||||
-[ "$SBIN_DIR" ] || SBIN_DIR=/usr/local/sbin
|
||||
-[ "$BIN_DIR" ] || BIN_DIR=/usr/local/bin
|
||||
-[ "$LIB_DIR" ] || LIB_DIR=/usr/local/lib
|
||||
-[ "$DATA_DIR" ] || DATA_DIR=/usr/local/share
|
||||
-[ "$MAN_DIR" ] || MAN_DIR=/usr/local/share/man
|
||||
-[ "$VAR_DIR" ] || VAR_DIR=/usr/local/var/ax25
|
||||
+[ "$ETC_DIR" ] || ETC_DIR=/etc/ax25
|
||||
+[ "$SBIN_DIR" ] || SBIN_DIR=/usr/sbin
|
||||
+[ "$BIN_DIR" ] || BIN_DIR=/usr/bin
|
||||
+[ "$LIB_DIR" ] || LIB_DIR=/usr/lib
|
||||
+[ "$DATA_DIR" ] || DATA_DIR=/usr/share
|
||||
+[ "$MAN_DIR" ] || MAN_DIR=/usr/share/man
|
||||
+[ "$VAR_DIR" ] || VAR_DIR=/var/lib/ax25
|
||||
|
||||
echo "Welcome to the configuration utility for URONode. This configure script"
|
||||
echo "will very simply and easily guide you into installling URONode with as"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
remove-cflags
|
||||
folder-update
|
||||
no-install-gz-manpages
|
||||
install-dir-creation
|
||||
makefile-install-locations
|
||||
|
||||
|
|
9
flexd.c
9
flexd.c
|
@ -117,7 +117,7 @@ void read_conf(void)
|
|||
int download_dest(char *gateway, char *fname)
|
||||
{
|
||||
FILE *tmp;
|
||||
char buffer[1024], port[14], path[AX25_MAX_DIGIS*10];
|
||||
char buffer[256], port[14], path[AX25_MAX_DIGIS*10];
|
||||
char *addr, *commands[10], *dlist[9]; /* Destination + 8 digipeaters */
|
||||
fd_set read_fd;
|
||||
int n, addrlen, cmd_send=0, cmd_ack=0, c, k;
|
||||
|
@ -390,6 +390,7 @@ void quit_handler(int sig)
|
|||
|
||||
signal(SIGTERM, sigterm_defhnd);
|
||||
raise(SIGTERM);
|
||||
return;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
@ -410,7 +411,7 @@ int main(int argc, char *argv[])
|
|||
return 1;
|
||||
}
|
||||
|
||||
signal(SIGTERM, quit_handler);
|
||||
// signal(SIGTERM, quit_handler);
|
||||
pidfile = fopen(FLEXD_PID_FILE, "w");
|
||||
fprintf(pidfile, "%d\n", (int)getpid());
|
||||
fclose(pidfile);
|
||||
|
@ -420,8 +421,8 @@ int main(int argc, char *argv[])
|
|||
signal(SIGHUP, hup_handler);
|
||||
signal(SIGALRM, alarm_handler);
|
||||
sigterm_defhnd = signal(SIGTERM, quit_handler);
|
||||
if (sigterm_defhnd == SIG_ERR)
|
||||
sigterm_defhnd = SIG_DFL;
|
||||
// if (sigterm_defhnd == SIG_ERR)
|
||||
// sigterm_defhnd = SIG_DFL;
|
||||
alarm(poll_time);
|
||||
|
||||
for(;;) pause();
|
||||
|
|
19
gateway.c
19
gateway.c
|
@ -650,7 +650,7 @@ int do_connect(int argc, char **argv)
|
|||
else if (find_node(argv[1], NULL)!=NULL) {
|
||||
family = AF_NETROM;
|
||||
} */
|
||||
|
||||
#ifdef HAVE_AUTOROUTE
|
||||
else if ((ax=find_mheard(argv[1]))!=NULL) { /* Check Mheard database */
|
||||
k=1;
|
||||
/* K2MF supplied code */
|
||||
|
@ -677,11 +677,14 @@ int do_connect(int argc, char **argv)
|
|||
argv[k]=NULL;
|
||||
argc=k;
|
||||
family = AF_AX25;
|
||||
} else { /* Give up */
|
||||
|
||||
}
|
||||
#endif
|
||||
else { /* Give up */
|
||||
if (User.ul_type == AF_NETROM) {
|
||||
axio_printf(NodeIo,"%s} ", NodeId);
|
||||
}
|
||||
axio_printf(NodeIo,"Remote not in Desti, NetRom, or MHeard tables. Retry your entry.");
|
||||
axio_printf(NodeIo,"Remote not found, please retry your entry.");
|
||||
family = AF_UNSPEC;
|
||||
// free_flex_dst(flx);
|
||||
// free_ax_routes(ax);
|
||||
|
@ -771,6 +774,16 @@ int do_connect(int argc, char **argv)
|
|||
}
|
||||
axio_printf(NodeIo,"\nReturning you to the shell... ");
|
||||
} else
|
||||
if ((User.ul_type == AF_AX25) && (!stay)) {
|
||||
axio_flush(NodeIo);
|
||||
axio_end_all();
|
||||
logout_user();
|
||||
ipc_close();
|
||||
node_log(LOGLVL_LOGIN, "%s @ %s logged out", User.call, User.ul_name);
|
||||
free_cmdlist(Nodecmds);
|
||||
Nodecmds = NULL;
|
||||
exit(0);
|
||||
}
|
||||
if (User.ul_type == AF_AX25) {
|
||||
if (check_perms(PERM_ANSI, 0L) != -1) {
|
||||
axio_printf(NodeIo,"\e[01;31m");
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
.TH AXDIGI 8 "28 April 2013" Linux "Linux Programmer's Manual"
|
||||
.SH NAME
|
||||
axdigi \- axdigi file.
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
.B axdigi
|
||||
This executable should be loaded in your startup script with the command:
|
||||
/usr/local/sbin/axdigi (or path to where you installed it). This file enables
|
||||
cross-port digipeating within your linux's ax25 stack.
|
||||
.LP
|
||||
Special Conditions:
|
||||
.B axdigi
|
||||
In order to digipeat, you or the user *must* know your SSID associated
|
||||
with the ifconfig <interface> that is the direct link to the outbound
|
||||
path they wish to digi to. axdigi will handle the appropriate digipeat
|
||||
accordingly. If you have multiple ax25 interfaces, you should somehow
|
||||
list them for the users in the axports description so they will see
|
||||
them when doing an "Interface" command while on URONode. If the user
|
||||
wishes to log off URONode and digi through, then they must use the
|
||||
interface's SSID associated with the OUTBOUND path to their destination.
|
||||
.sp
|
||||
commands are:
|
||||
.TP 14
|
||||
.B C <destination> via <your interface-SSID>
|
||||
If the user heard station A1BCD-7 on your ax0 interface, and that
|
||||
interface's SSID is: W1XYZ-9 (NOT the FlexID of URONode!) then the user
|
||||
would enter:
|
||||
c a1bcd-7 via w1xyz-9
|
||||
even if their inbound interface might be ax1 and it's ifconfig shows
|
||||
your SSID as w1xyz-10!
|
||||
.TP 14
|
||||
.B Detailed information
|
||||
If you have 3 ax25 interfaces ifconfigured as:
|
||||
ax0 - w1xyz-9
|
||||
ax1 - w1xyz-10
|
||||
ax2 - w1xyz-11
|
||||
|
||||
User k2lmn would enter your node via ax2 and they wish to digi to
|
||||
a1bcd-7 which is heard on ax0 they would simply enter:
|
||||
c a1bcd-7 via w1xyz-9 to connect. Axdigi handles the crossport
|
||||
functions. If they tried:
|
||||
c a1bcd-7 via w1xyz-11
|
||||
the connect would fail because it would attempt to digi OUT on your
|
||||
ax2 interface. This may get tricky so expect a need to educate your
|
||||
users on this. Unfortunately, linux lacks native cross-port digipeating
|
||||
at this time so this is a work-around.
|
||||
.SH FILES
|
||||
.LP
|
||||
/usr/local/sbin/axdigi
|
||||
.SH "SEE ALSO"
|
||||
.BR axports (5),
|
||||
.BR ax25 (4).
|
BIN
man/axdigi.8.gz
BIN
man/axdigi.8.gz
Binary file not shown.
|
@ -0,0 +1,28 @@
|
|||
.TH FLEXD 8 "FLEXNET ROUTING DAEMON" Linux "Linux System Managers Manual"
|
||||
.SH NAME
|
||||
flexd \- flexnet routing daemon backend for URONode.
|
||||
.SH SYNOPSIS
|
||||
.B routing daemon
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
.B Flexd
|
||||
is a simple flexnet routing daemon back end. The purpose of this daemon is to
|
||||
import pc/FlexNet destinations into URONode for auto-ax25 routing.
|
||||
.SH COMMANDS
|
||||
There are no commands for flexd. The runtime parameters are in flexd.conf
|
||||
.SH FILES
|
||||
.LP
|
||||
.TP 5
|
||||
.B /usr/local/etc/ax25/flexd.conf
|
||||
flexd configuration file.
|
||||
.br
|
||||
.SH AUTHOR
|
||||
Brian Rogers N1URO <n1uro@n1uro.com>
|
||||
.SH THANKS TO
|
||||
Stefano Noferi IZ5AWZ <iz5awz@radio-gw.cnuce.cnr.it>
|
||||
.br
|
||||
Tomi Manninen OH2BNS <tpmannin@cc.hut.fi>
|
||||
.br
|
||||
Alan Cox GW4PTS <gw4pts@gw4pts.ampr.org>
|
||||
.br
|
||||
Roy PE1RJA <roy@esrac.ele.tue.nl>
|
|
@ -0,0 +1,51 @@
|
|||
.TH FLEXD.CONF 5 "28 April 2013" Linux "Linux Programmer's Manual"
|
||||
.SH NAME
|
||||
flexd.conf \- flexd configuration file.
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
.B flexd.conf
|
||||
file is read by flexd at program startup and is used to modify the
|
||||
behaviour of the robot.
|
||||
.LP
|
||||
The lines within
|
||||
.B flexd.conf
|
||||
must either be a comment line, which starts with a # in the first column, or
|
||||
one of the commands listed below. Commands and arguments are delimited
|
||||
by white space. Arguments can contain white space if they are enclosed
|
||||
in double quotes. Also C-style escapes (\\n, \\x0A, \\012 etc.) are parsed
|
||||
within double quotes.
|
||||
.sp
|
||||
Available configuration commands are:
|
||||
.TP 14
|
||||
.B MyCall <xx#xx>
|
||||
Sets up the callsign AND ssid you wish to use to connect to your flexnet
|
||||
neighbor for destinations import. Do NOT use an ssid of your ax25 interface
|
||||
which you'll be polling from as you may create a loop between your system
|
||||
and the flexnet neighbor.
|
||||
An example: MyCall kb1uuu-13
|
||||
.TP 14
|
||||
.B PollInterval <time/secs>
|
||||
This string tells the robot how many times in SECONDS to poll your flexnet
|
||||
neighbor and import their destination table. In my production environment
|
||||
300 (or 5 minutes) seemed to be fine. I would NOT go below 180 (3 minutes)
|
||||
as you may create more traffic than needed.
|
||||
.TP 14
|
||||
.B FlexGate <xx#xx-##>
|
||||
This is the callsign of your flexnet neighbor. The robot will read this
|
||||
callsign-ssid and attempt a connect to it every ## minutes assigned in
|
||||
PollInterval <time/mins>. Be sure you do NOT configure it to connect to
|
||||
a service linked within the flexnet neighbor such as a BBS! You will NOT
|
||||
receive any destinations to your system that way and the BBS will think
|
||||
you're attempting a feed.
|
||||
.TP 14
|
||||
|
||||
|
||||
|
||||
.SH FILES
|
||||
.LP
|
||||
/usr/local/etc/ax25/flexd.conf
|
||||
.SH "SEE ALSO"
|
||||
.BR uronode (8),
|
||||
.BR uronode.perms (5),
|
||||
.BR axports (5),
|
||||
.BR ax25 (4).
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
.TH NODEUSERS 1 "28 April 1998" Linux "Linux Programmer's Manual"
|
||||
.SH NAME
|
||||
nodeusers \- URONode user information lookup program
|
||||
.SH SYNOPSIS
|
||||
.B nodeusers [-a] [-i] [-l]
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
.B Nodeusers
|
||||
displays information about current URONode users.
|
||||
.SH OPTIONS
|
||||
.TP 10
|
||||
.BI \-a
|
||||
Tells nodeusers to use a plain <CR> as end-of-line. This is useful
|
||||
if nodeusers is called from ax25d.
|
||||
.TP 10
|
||||
.BI \-i
|
||||
Tells nodeusers to use a <CR><LF> pair as end-of-line sequence and also
|
||||
to wait for one line of input before sending the user data. This
|
||||
should be used if nodeusers is used in an internet environment (eg. as
|
||||
a fingerd replacement).
|
||||
.TP 10
|
||||
.BI \-l
|
||||
Enables logging of errors to the system logging facility.
|
||||
.SH FILES
|
||||
.LP
|
||||
.TP 5
|
||||
.B /var/ax25/node/loggedin
|
||||
Database of current users.
|
||||
.SH "SEE ALSO"
|
||||
.BR uronode (8)
|
||||
.SH AUTHOR
|
||||
Brian Rogers N1URO <n1uro@n1uro.com>
|
||||
.br
|
||||
Stefano Noferi IZ5AWZ <iz5awz@radio-ge.cnuce.cnr.it>
|
||||
.br
|
||||
Tomi Manninen OH2BNS <tpmannin@cc.hut.fi>
|
Binary file not shown.
|
@ -0,0 +1,245 @@
|
|||
.TH URONODE 8 "28 April 1998" Linux "Linux System Managers Manual"
|
||||
.SH NAME
|
||||
URONode \- Node front end for AX.25, NET/ROM, Rose and TCP
|
||||
.SH SYNOPSIS
|
||||
.B node
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
.B URONode
|
||||
is a simple node front end, modelled after the node shells of LinuxNode,
|
||||
AWZNode, and Flexnode.
|
||||
.SH COMMANDS
|
||||
The following commands are supported for users of
|
||||
.B URONode:
|
||||
.TP 14
|
||||
.BI ?
|
||||
Give short list of available commands.
|
||||
.TP 14
|
||||
.BI Bye
|
||||
Disconnect user from the node.
|
||||
.TP 14
|
||||
.BI "Connect <call | alias> [s|d] For NETROM"
|
||||
.TP 14
|
||||
.BI "Connect <port> <call> [via <call1> ...] [d|s] For AX.25"
|
||||
.TP 14
|
||||
.BI "Connect <call> <address> [<digi>] [d|s] For ROSE"
|
||||
.TP 14
|
||||
.BI "Connect <destination> [s|d] For FlexNet"
|
||||
.sp 1
|
||||
Initiates an AX25, NET/ROM, ROSE or Flexnet connection to a remote host.
|
||||
If more than two parameters are entered and the second parameter is ten
|
||||
charachers in length then it is interpreted as a ROSE connection,
|
||||
otherwise the first parameter is interpreted as a port name and AX25 is
|
||||
used to make the connection via that port. If only one parameter is given
|
||||
the connection is made searching for the callsign in NET/ROM nodes,
|
||||
in AX25 Fixed links, in FlexNet destinations and last in Mheard database
|
||||
in this order.
|
||||
.sp
|
||||
For a ROSE connection the <address> part must be exactly six or ten digits.
|
||||
If only six digits are supplied, the DNIC (first four digits) default to the
|
||||
local DNIC. The local DNIC is assumed to be that of the first configured
|
||||
Rose port in /etc/ax25/rsports.
|
||||
.sp
|
||||
The user may optionally supply as the last argument a single character
|
||||
which modifies the default behaviour on disconnection of the connection.
|
||||
If a single `s' is entered as the last argument, then when the remote host
|
||||
disconnects you will be returned to this node. If a single `d' is entered as
|
||||
the last argument, you will be disconnected from this node too. The Default
|
||||
behaviour (neither `s' nor `d' entered) is configured in the node configuration
|
||||
file and depends on the sysop preference.
|
||||
.TP 14
|
||||
.BI "CAllbook <call>[@<server>]"
|
||||
Retrieve data about a callsign from an internet-accessible
|
||||
callbook server. The server name can usually be omitted, since
|
||||
the default server configured by the operator is usually
|
||||
valid. The default setting can be overridden by specifying
|
||||
a host name.
|
||||
.TP 14
|
||||
.BI "Escape [<escape string>]"
|
||||
Override the sysop configured default escape character setting. If the Escape
|
||||
command is given without an argument then the current escape character setting
|
||||
is returned to the user. The escape string may be specified using any of the
|
||||
well known codings:
|
||||
.IP
|
||||
.BI "<char>"
|
||||
to enter the escape character in its binary form.
|
||||
.IP
|
||||
.BI "^C"
|
||||
to enter the escape character as a control character value.
|
||||
.IP
|
||||
.BI "NNN"
|
||||
to set the escape character to a Decimal value.
|
||||
.IP
|
||||
.BI "0xNN"
|
||||
to set the escape character to a HexaDecimal value.
|
||||
.IP
|
||||
.BI "0NNN"
|
||||
to set the escape character to an Octal value.
|
||||
.IP
|
||||
.BI "off"
|
||||
to disable the escape character.
|
||||
.TP 14
|
||||
.BI "Finger [<username>][@<hostname>]"
|
||||
Retrieve information about users of a system. If the user
|
||||
name is omitted, shows the users currently logged on the
|
||||
host. If the hostname is omitted, defaults to the local host.
|
||||
.TP 14
|
||||
.BI "Help [<command>]"
|
||||
Give help for the specified command or this text if no
|
||||
command is specified. Commands can not be abbreviated.
|
||||
Use the "?" command to retrieve a list of available commands.
|
||||
.TP 14
|
||||
.BI "HOst <hostname> | <ip address>"
|
||||
Give the Domain Name Service host name information about <hostname> or
|
||||
<ip address>.
|
||||
.TP 14
|
||||
.BI Info
|
||||
Display the version information and the contents of the
|
||||
/usr/local/etc/ax25/uronode.info file, which should describe any aspects
|
||||
of your system that you would like to brag about.
|
||||
.TP 14
|
||||
.BI INTerfaces
|
||||
Display the node's interface schema, most folks often call these "ports".
|
||||
.TP 14
|
||||
.BI "Links [d | n | v | <call>]"
|
||||
Shows the AX25 link table of the local node. The destinations
|
||||
on this list can be reached using the Connect command without
|
||||
knowing the actual network path used (assuming the network is OK).
|
||||
|
||||
The optional parameter d show the AX25 nodes directly linked.
|
||||
The optional parameter n show the AX25 nodes linked connecting
|
||||
another node and passing a string like "C XX0XX".
|
||||
The optional parameter v show the AX25 links via digipeaters.
|
||||
|
||||
You can also specify a destination callsign to get the verbose
|
||||
information for a single destination.
|
||||
.TP 14
|
||||
.BI "Mheard [<portname>]"
|
||||
Give a list of heard AX.25 stations on the specified port.
|
||||
.TP 14
|
||||
.BI "Nodes [* | <node>]"
|
||||
Show the NET/ROM node table of the local host. The nodes on this
|
||||
list can be reached using the Connect command without knowing the
|
||||
actual network path used (assuming the network is OK).
|
||||
.sp
|
||||
The optional argument '*' toggles verbose mode, showing the
|
||||
Obsolescence counter, relative path quality and the port and
|
||||
neighbour node used to reach each node. You can also specify
|
||||
a node callsign to get the verbose information for a single node.
|
||||
In that case a "which" field that tells what route the kernel
|
||||
will use to reach the node is also shown.
|
||||
.TP 14
|
||||
.BI "Ping <host> [<size>]"
|
||||
Check if a host can be reached trough the network by sending
|
||||
an ICMP Echo Request packet to the host and waiting for it to
|
||||
reply. If a reply is received the round-trip-time (RTT)
|
||||
between the local and remote hosts is shown.
|
||||
.sp
|
||||
If an optional length is specified the data portion of the
|
||||
packet is filled with length number of bytes.
|
||||
.TP 14
|
||||
.BI Routes
|
||||
Shows the NET/ROM route table of the local host (eg. the nodes
|
||||
which the local node directly talks with). These nodes are used
|
||||
to reach the other nodes on the node table. Fields shown are:
|
||||
.IP
|
||||
.BI "Link"
|
||||
Is there an AX25 connection active to this node.
|
||||
.IP
|
||||
.BI "Port"
|
||||
Which port is this route on.
|
||||
.IP
|
||||
.BI "Callsign"
|
||||
The callsign of the neighbour node.
|
||||
.IP
|
||||
.BI "Quality"
|
||||
A relative quality for the path (0-255).
|
||||
.IP
|
||||
.BI "Destinations"
|
||||
Number of other nodes reached via this route.
|
||||
.IP
|
||||
.BI "Lock"
|
||||
Is the quality of this route locked by the operator.
|
||||
.IP
|
||||
.BI "QSO"
|
||||
Number of NET/ROM session enties.
|
||||
.TP 14
|
||||
.BI "Telnet <host> [<port>] [<string>] [d|s]"
|
||||
Initiate a telnet session to a remote host using TCP/IP.
|
||||
By default, the telnet command connects to the TCP port 23
|
||||
(allocated for telnet). You can specify another TCP port or
|
||||
a TCP port name.
|
||||
.sp
|
||||
If an optional third argument <string> is given, that string, followed
|
||||
by a CRLF is sent to the remote host right after the connection is
|
||||
established. This is mainly useful for command aliases.
|
||||
.sp
|
||||
If a single `s' is entered as the last parameter, then when
|
||||
the remote host disconnects you will be returned to this node.
|
||||
If a single `d' is entered as the last parameter, you will
|
||||
be disconnected from this node too. Default behaviour (neither
|
||||
`s' nor `d' entered) depends on sysop configuration.
|
||||
.TP 14
|
||||
.BI "MSG <user> <message>"
|
||||
Send a message to another user of the node. The user
|
||||
in question must be in idle state (ie. not connected/connecting
|
||||
anywhere or running a program).
|
||||
.sp
|
||||
If the user has an SSID other than zero, the SSID must be
|
||||
specified. If multiple users are logged in with the same
|
||||
callsign/SSID pair, those who are in idle state, get the message.
|
||||
.TP 14
|
||||
.BI Users
|
||||
Show a list of users currently connected to the local node,
|
||||
where the users are coming from, and what are they doing at the
|
||||
moment.
|
||||
.SH FILES
|
||||
.LP
|
||||
.TP 5
|
||||
.B /usr/local/etc/ax25/uronode.conf
|
||||
URONode configuration file.
|
||||
.br
|
||||
.TP 5
|
||||
.B /usr/local/etc/ax25/uronode.perms
|
||||
URONode permissions file.
|
||||
.br
|
||||
.TP 5
|
||||
.B /usr/local/etc/ax25/uronode.users
|
||||
URONode users settings file.
|
||||
.br
|
||||
.TP 5
|
||||
.B /usr/local/etc/ax25/uronode.motd
|
||||
URONode message of the day file.
|
||||
.br
|
||||
.TP 5
|
||||
.B /usr/local/etc/ax25/uronode.info
|
||||
The response to the 'info' command.
|
||||
This file should be edited to reflect the local configuration.
|
||||
.br
|
||||
.TP 5
|
||||
.B /usr/local/var/ax25/node/loggedin
|
||||
Database of current users.
|
||||
.br
|
||||
.TP 5
|
||||
.B /usr/local/var/ax25/mheard/mheard.dat
|
||||
Information about AX.25 stations heard.
|
||||
.br
|
||||
.TP 5
|
||||
.B /usr/local/var/ax25/node/help/*.hlp
|
||||
The online help files.
|
||||
.SH "SEE ALSO"
|
||||
.BR uronode.conf (5),
|
||||
.BR uronode.perms (5),
|
||||
.BR axports (5),
|
||||
.BR ax25d (8),
|
||||
.BR mheardd (8).
|
||||
.SH AUTHOR
|
||||
Brian Rogers N1URO <n1uro@n1uro.com>
|
||||
.SH THANKS TO
|
||||
Stefano Noferi IZ5AWZ <iz5awz@radio-gw.cnuce.cnr.it>
|
||||
.br
|
||||
Tomi Manninen OH2BNS <tpmannin@cc.hut.fi>
|
||||
.br
|
||||
Alan Cox GW4PTS <gw4pts@gw4pts.ampr.org>
|
||||
.br
|
||||
Roy PE1RJA <roy@esrac.ele.tue.nl>
|
BIN
man/uronode.8.gz
BIN
man/uronode.8.gz
Binary file not shown.
|
@ -0,0 +1,252 @@
|
|||
.TH URONODE.CONF 5 "28 April 1998" Linux "Linux Programmer's Manual"
|
||||
.SH NAME
|
||||
uronode.conf \- URONode configuration file.
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
.B uronode.conf
|
||||
file is read by URONode at program startup and is used to modify the
|
||||
behaviour of the node. The URONode node.conf is no compatible with
|
||||
the LinuxNode file, as it add new entries: FlexId Prompt and PassPromt.
|
||||
.LP
|
||||
The lines within
|
||||
.B uronode.conf
|
||||
must either be a comment line, which starts with a # in the first column, or
|
||||
one of the commands listed below. Commands and arguments are delimited
|
||||
by white space. Arguments can contain white space if they are enclosed
|
||||
in double quotes. Also C-style escapes (\\n, \\x0A, \\012 etc.) are parsed
|
||||
within double quotes. Tabs may also be used for delimiting columns.
|
||||
.sp
|
||||
Available configuration commands are:
|
||||
.TP 14
|
||||
.B Alias <NAme> \(lq<command> [<args...>]\(rq
|
||||
Sets up a command alias. The number of uppercase characters at the
|
||||
beginning of <NAme> specifies how much the user may abbreviate the
|
||||
command. The uppercase part should be long enough to separate the command
|
||||
from other commands starting with the same letters. If there are no
|
||||
uppercase letters in the beginning, the whole name is converted to upper
|
||||
case and user can not abbreviate the command.
|
||||
The command and arguments are subject to
|
||||
.B parameter expansion
|
||||
(see below).
|
||||
.TP 14
|
||||
.B ConnTimeout <timeout>
|
||||
When user is connected to another system via this system and the
|
||||
connection is idle (no data flowing in either direction) for <timeout>
|
||||
seconds the connection is dropped and user disconnected from node.
|
||||
Default is 3600 seconds
|
||||
(1 hour).
|
||||
.TP 14
|
||||
.B Email <your@node.ampr.org>
|
||||
This is your amprnet or commercial email address that's displayed
|
||||
to users on interfaces you require having a password on to access
|
||||
your node, highly suggested on inet interfaces. You may leave
|
||||
off the <>'s. If you do not have an Email line in node.conf
|
||||
then your email address to users will display as (null) and
|
||||
will make you look sloppy :-)
|
||||
.TP 14
|
||||
.B EscapeChar <escape>
|
||||
Specifies the escape character. <escape> should be the decimal
|
||||
representation of the ASCII code of the wanted escape character.
|
||||
Setting escape character to \-1 disables the feature altogether.
|
||||
The default is 20 (ctrl-t).
|
||||
.sp
|
||||
Note that the escape mechanism breaks 8-bit transparency of URONode
|
||||
and you should either disable it or set the no-escape flag in node.perms
|
||||
for the forwarding stations if (compressed) forward is run trough
|
||||
URONode.
|
||||
.TP 14
|
||||
.B ExtCmd <NAme> <flags> <uid> <exec> <args...>
|
||||
.RS
|
||||
.TP 10
|
||||
.B NAme
|
||||
This is the name under which the command appears at nodes command list.
|
||||
The number of uppercase characters at the beginning of <NAme> specifies
|
||||
how much the user may abbreviate the command.
|
||||
The uppercase part should be long enough to separate the command
|
||||
from other commands starting with the same letters. If there are no
|
||||
uppercase letters in the beginning, the whole name is converted to upper
|
||||
case and user can not abbreviate the command.
|
||||
.TP 10
|
||||
.B flags
|
||||
This is a sum of flags that control the way the external
|
||||
command is executed. Currently two flags are implemented:
|
||||
.RS
|
||||
.TP 5
|
||||
.B 1
|
||||
Run command through pipe. Without this flag node just fork()s and exec()s
|
||||
the specified command and then waits for it to terminate. The command must
|
||||
it self be aware about the underlying protocol. It must handle packetising
|
||||
and any end of line conversions. With this flag however node sets up a pipe
|
||||
between it self and the command and handles packetising and end of line
|
||||
conversions for it.
|
||||
.TP 5
|
||||
.B 2
|
||||
Reconnected to flag. If this flag is set, the user gets a reconnected to
|
||||
prompt after the external command is finished.
|
||||
.RE
|
||||
.TP 10
|
||||
.B uid
|
||||
This is the userid that the following command should run under when
|
||||
executing.
|
||||
.TP 10
|
||||
.B exec
|
||||
This is the executable that should be executed.
|
||||
.TP 10
|
||||
.B args...
|
||||
These are the optional arguments that are passed to the executable.
|
||||
The arguments are subject to
|
||||
.SM
|
||||
.B "parameter expansion"
|
||||
(see below).
|
||||
.RE
|
||||
.TP 14
|
||||
.B HiddenPorts <portname> ...
|
||||
Marks <portname> as hidden. Hidden ports are not shown to users in
|
||||
Links, Mheard, Ports and Routes commands and can not be used to make
|
||||
AX.25 downlink connections unless user is specially permitted to do
|
||||
so (see node.perms(5)). Up to 32 hidden ports can be specified with
|
||||
this command.
|
||||
.TP 14
|
||||
.B HostName <hostname>
|
||||
This is the visible hostname of the node. It will be shown at telnet
|
||||
login and in the node welcome message.
|
||||
.TP 14
|
||||
.B IdleTimeout <timeout>
|
||||
After <timeout> seconds of inactivity while waiting for a command user
|
||||
is disconnected from node. Default is 900 seconds (15 mins).
|
||||
.TP 14
|
||||
.B LocalNet <network>
|
||||
Defines a "local" network. Users telneting from hosts in this network
|
||||
are treated separately (see node.perms(5)). <network> is a KA9Q NOS
|
||||
style network address consisting of a dotted quad ip address of the
|
||||
network and a number of significant bits separated by a slash. Note
|
||||
that 127.0.0.0/8 (loopback net) is also considered "local" by default.
|
||||
.TP 14
|
||||
.B LogLevel <loglevel>
|
||||
Specifies what node should log. The available levels are:
|
||||
.RS
|
||||
.TP 5
|
||||
.B 0
|
||||
Don't log anything.
|
||||
.TP 5
|
||||
.B 1
|
||||
Log only critical errors.
|
||||
.TP 5
|
||||
.B 2
|
||||
Log errors and logins/logouts.
|
||||
.TP 5
|
||||
.B 3
|
||||
Log errors, logins/logouts and all gateway commands.
|
||||
.LP
|
||||
Default is to log only critical errors.
|
||||
.RE
|
||||
.TP 14
|
||||
.B NodeId <nodeid>
|
||||
This is the node id that is shown in every message from node. Default
|
||||
is "URONode".
|
||||
.TP 14
|
||||
.B FlexID <flexid>
|
||||
This is typically your ax25 callsign-ssid that links to flexnet and/or
|
||||
to your user interface set by the sysop in ax25d.conf.
|
||||
.TP 14
|
||||
.B RoseID <rosecall@dnic,######>
|
||||
This is your node's rosecall-ssid and your full dnic number typically
|
||||
consisting of your country code, area code, and phone extension. An
|
||||
example is: 3100,860906. The full string would be for this part of
|
||||
the conf file using my config: RoseID n1uro-8@3100860906 or if you do not
|
||||
use rose enter: RoseID none
|
||||
.TP 14
|
||||
.B NrPort <portname>
|
||||
This is the name of the netrom port that is used when making outgoing
|
||||
netrom connects. Normally it should match the portname that is used
|
||||
in ax25d.conf to listen for incoming netrom calls. Default is the first
|
||||
netrom port.
|
||||
.TP 14
|
||||
.B ReConnect on|off
|
||||
ReConnect flag. If this is on, users gatewaying to another host
|
||||
get reconnected to this node after the remote host closes connection.
|
||||
If it's off connection to the user will also be closed. User can
|
||||
override the default behaviour with a single `s' or `d' at the end
|
||||
of the gatewaying command (connect or telnet). Default is off.
|
||||
.TP 14
|
||||
.B Prompt <NodePrompt>
|
||||
This is the prompt string of the node. It's delimited by double quotes.
|
||||
You can use also a "\\n" character for a multi-lines prompt.
|
||||
.TP 14
|
||||
.B PassPrompt <PasswordPrompt>
|
||||
This is the prompt string for sysop password request. It's delimited by
|
||||
double quotes. You can use also a "\\n" character for a multi-lines prompt.
|
||||
.SH PARAMETER EXPANSION
|
||||
.LP
|
||||
The arguments passed to the real command by the Alias and ExtCmd
|
||||
commands are subject to parameter expansion. If a word starts with a %,
|
||||
it is expanded. The following formats are expanded:
|
||||
.TP 14
|
||||
.B %parameter
|
||||
This is substituted with the value of
|
||||
.B parameter
|
||||
.
|
||||
.TP 14
|
||||
.B %{parameter}
|
||||
The same as above.
|
||||
.TP 14
|
||||
.B %{parameter:default}
|
||||
If
|
||||
.B parameter
|
||||
is defined this is susbtituted with the value of it. If not, the default
|
||||
value is substituted. This currently applies only to positional parameters
|
||||
0...9.
|
||||
.LP
|
||||
The following parameters are defined:
|
||||
.LP
|
||||
.TP 8
|
||||
.B 0...9
|
||||
The positional parameters.
|
||||
.TP 8
|
||||
.B U
|
||||
The username (callsign) of the remote station in upper case without the SSID.
|
||||
.TP 8
|
||||
.B u
|
||||
The username (callsign) of the remote station in lower case without the SSID.
|
||||
.TP 8
|
||||
.B S
|
||||
The username (callsign) of the remote station in upper case with the SSID.
|
||||
.TP 8
|
||||
.B s
|
||||
The username (callsign) of the remote station in lower case with the SSID.
|
||||
.TP 8
|
||||
.B P
|
||||
The nodename (callsign) of the remote station (NET/ROM), the portname the
|
||||
user is coming in via (AX.25) or the ip address of the remote host (TCP).
|
||||
In upper case without the SSID.
|
||||
.TP 8
|
||||
.B p
|
||||
The nodename (callsign) of the remote station (NET/ROM), the portname the
|
||||
user is coming in via (AX.25) or the ip address of the remote host (TCP).
|
||||
In lower case without the SSID.
|
||||
.TP 8
|
||||
.B R
|
||||
The nodename (callsign) of the remote station (NET/ROM), the portname the
|
||||
user is coming in via (AX.25) or the ip address of the remote host (TCP).
|
||||
In upper case with the SSID.
|
||||
.TP 8
|
||||
.B r
|
||||
The nodename (callsign) of the remote station (NET/ROM), the portname the
|
||||
user is coming in via (AX.25) or the ip address of the remote host (TCP).
|
||||
In lower case with the SSID.
|
||||
.TP 8
|
||||
.B t
|
||||
The type of the user connection (ax25, netrom, rose, inet, host) in lower case.
|
||||
.TP 8
|
||||
.B T
|
||||
The type of the user connection (ax25, netrom, rose, inet, host) in upper case.
|
||||
.LP
|
||||
Anything else after a % is substituted with a %.
|
||||
.SH FILES
|
||||
.LP
|
||||
/usr/local/etc/ax25/uronode.conf
|
||||
.SH "SEE ALSO"
|
||||
.BR uronode (8),
|
||||
.BR uronode.perms (5),
|
||||
.BR axports (5),
|
||||
.BR ax25 (4).
|
Binary file not shown.
|
@ -0,0 +1,117 @@
|
|||
.TH URONODE.PERMS 5 "28 April 1998" Linux "Linux Programmer's Manual"
|
||||
.SH NAME
|
||||
uronode.perms \- URONode permissions file.
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
.B URONode.perms
|
||||
file is read at program startup with the knowledge of users username
|
||||
(call), connection type (AX.25, NET/ROM, ROSE, TCP/IP), peers IP address
|
||||
(for TCP/IP) and port name (for AX.25). The first entry matching this
|
||||
information is taken and user is asked for password and given permissions
|
||||
according to it.
|
||||
.LP
|
||||
The lines within
|
||||
.B uronode.perms
|
||||
must either be a comment line, which starts with a # in the first column, or
|
||||
a permission entry in the following format, each field being delimited by
|
||||
white space:
|
||||
.sp
|
||||
.RS
|
||||
username type portname password permissions
|
||||
.RE
|
||||
.sp
|
||||
The field descriptions are:
|
||||
.sp
|
||||
.TP 14
|
||||
.B username
|
||||
This is matched against users username (call) without SSID. An asterisk
|
||||
(*) matches any username.
|
||||
.TP 14
|
||||
.B type
|
||||
This is matched against the type of the connection to user.
|
||||
Possible values for this field are:
|
||||
.RS 14
|
||||
.TP
|
||||
.B *
|
||||
matches any type of connection.
|
||||
.TP
|
||||
.B ax25
|
||||
matches users coming in with AX.25 and FlexNet.
|
||||
.TP
|
||||
.B netrom
|
||||
matches users coming in with NET/ROM.
|
||||
.TP
|
||||
.B rose
|
||||
matches users coming in with ROSE.
|
||||
.TP
|
||||
.B local
|
||||
matches TCP/IP connections where users host is in "local" network
|
||||
as defined in uronode.conf(5).
|
||||
.TP
|
||||
.B ampr
|
||||
matches TCP/IP connections where users host is in amprnet (44.0.0.0/8).
|
||||
.TP
|
||||
.B inet
|
||||
matches TCP/IP connections where users host is neither in "local"
|
||||
network nor in amprnet.
|
||||
.TP
|
||||
.B host
|
||||
matches users starting URONode from
|
||||
shell.
|
||||
.RE
|
||||
.TP 14
|
||||
.B portname
|
||||
If user is coming in with AX.25 this field is matched against the
|
||||
local port name the user is coming in via. An asterisk (*) matches
|
||||
any port name.
|
||||
.TP 14
|
||||
.B password
|
||||
If the previous three fields match and this field is not a single
|
||||
asterisk (*) the user is asked for a password. The password is
|
||||
then matched against this field.
|
||||
.TP 14
|
||||
.B permissions
|
||||
This field represents a a bitmask of operations the user is permitted
|
||||
to do. It is a sum of the values listed here:
|
||||
.RS 14
|
||||
.TP
|
||||
.B 1
|
||||
permits logging in even if no other permissions are given.
|
||||
.TP
|
||||
.B 2
|
||||
permits outgoing AX.25 and Flexnet connects.
|
||||
.TP
|
||||
.B 4
|
||||
permits outgoing NET/ROM connects.
|
||||
.TP
|
||||
.B 8
|
||||
permits telneting to hosts in the "local" network as defined in
|
||||
uronode.conf(5).
|
||||
.TP
|
||||
.B 16
|
||||
permits telneting to hosts in amprnet.
|
||||
.TP
|
||||
.B 32
|
||||
permits telneting to hosts neither in the "local" network nor in amprnet.
|
||||
.TP
|
||||
.B 64
|
||||
ANSI Color flag. Enable per interface to allow the user to have ANSI color
|
||||
graphics on their terminal. A "*" for the interface will flag color ON for
|
||||
all interfaces for that callsign. Suggested to leave OFF unless requested
|
||||
by the end user... but looks kewl in a shell terminal.
|
||||
.TP
|
||||
.B 128
|
||||
permits outgoing ROSE connects.
|
||||
.TP
|
||||
.B 256
|
||||
The no-escape flag. Disables the escape mechanism for this user.
|
||||
.TP
|
||||
.RE
|
||||
.SH FILES
|
||||
.LP
|
||||
/usr/local/etc/ax25/uronode.perms
|
||||
.SH "SEE ALSO"
|
||||
.BR uronode (8),
|
||||
.BR uronode.conf (5),
|
||||
.BR axports (5),
|
||||
.BR ax25 (4).
|
Binary file not shown.
17
node.c
17
node.c
|
@ -239,7 +239,7 @@ int main(int argc, char *argv[])
|
|||
if (User.call[0] == 0) {
|
||||
axio_printf(NodeIo,"(%s:uronode) login: ", HostName);
|
||||
axio_flush(NodeIo);
|
||||
alarm(60L); /* 1 min timeout */
|
||||
alarm(180L); /* 3 min timeout */
|
||||
if ((p = axio_getline(NodeIo)) == NULL)
|
||||
node_logout("User disconnected");
|
||||
alarm(0L);
|
||||
|
@ -259,8 +259,8 @@ int main(int argc, char *argv[])
|
|||
node_log(LOGLVL_LOGIN, "Login denied for %s @ %s", User.call, User.ul_name);
|
||||
node_logout("Login denied");
|
||||
} else if (strcmp(pw, "*") != 0) {
|
||||
node_msg("*** Password required! If you don't have a password please email\r\n%s for a password you wish to use.", Email);
|
||||
axio_printf(NodeIo,"\rPassword: ");
|
||||
axio_printf(NodeIo,"*** Password required! If you don't have a password please email\n%s for a password you wish to use.", Email);
|
||||
axio_printf(NodeIo,"\nPassword: ");
|
||||
if (User.ul_type == AF_INET) {
|
||||
axio_tn_will_echo(NodeIo);
|
||||
axio_eolmode(NodeIo, EOLMODE_BINARY);
|
||||
|
@ -272,6 +272,9 @@ int main(int argc, char *argv[])
|
|||
axio_eolmode(NodeIo, EOLMODE_TEXT);
|
||||
/* axio_puts("\n",NodeIo); */
|
||||
}
|
||||
if ((User.ul_type == AF_NETROM) && (strcmp(p, pw) == 0)) {
|
||||
node_msg("%s} Welcome.", NodeId);
|
||||
}
|
||||
if (p == NULL || strcmp(p, pw) != 0) {
|
||||
axio_printf(NodeIo, "\n");
|
||||
if (User.ul_type == AF_NETROM) {
|
||||
|
@ -301,7 +304,7 @@ int main(int argc, char *argv[])
|
|||
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
||||
while (fgets(buf,256, fp) != NULL) axio_puts(buf,NodeIo);
|
||||
axio_printf (NodeIo, "\n");
|
||||
axio_flush(NodeIo);
|
||||
/* axio_flush(NodeIo); */
|
||||
}
|
||||
} else if (User.ul_type == AF_AX25) {
|
||||
if (check_perms(PERM_ANSI, 0L) != -1) {
|
||||
|
@ -311,14 +314,14 @@ int main(int argc, char *argv[])
|
|||
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
||||
while (fgets(buf, 256, fp) != NULL) axio_puts(buf,NodeIo);
|
||||
axio_puts ("\n",NodeIo);
|
||||
axio_flush(NodeIo);
|
||||
/* axio_flush(NodeIo); */
|
||||
}
|
||||
} else if (User.ul_type == AF_ROSE) {
|
||||
node_msg("%s - Welcome to %s", VERSION, RoseId);
|
||||
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
||||
while (fgets(buf, 256, fp) != NULL) axio_puts(buf,NodeIo);
|
||||
axio_puts ("\n",NodeIo);
|
||||
axio_flush(NodeIo);
|
||||
/* axio_flush(NodeIo); */
|
||||
}
|
||||
}
|
||||
lastlog();
|
||||
|
@ -327,7 +330,7 @@ int main(int argc, char *argv[])
|
|||
while (1) { if (User.ul_type != AF_NETROM) {
|
||||
axio_flush(NodeIo);
|
||||
if (check_perms(PERM_ANSI, 0L) != -1) {
|
||||
axio_printf(NodeIo,"\e[01;34");
|
||||
axio_printf(NodeIo,"\e[01;34m");
|
||||
}
|
||||
if (no_password == 2) {
|
||||
node_prompt();
|
||||
|
|
4
node.h
4
node.h
|
@ -1,5 +1,5 @@
|
|||
#define VERSION "URONode v2.3.1"
|
||||
#define COMPILING "February 14, 2015"
|
||||
#define VERSION "URONode v2.4"
|
||||
#define COMPILING "November 21, 2015"
|
||||
|
||||
#define STATE_IDLE 0
|
||||
#define STATE_TRYING 1
|
||||
|
|
21
router.c
21
router.c
|
@ -95,9 +95,24 @@ int do_links(int argc, char **argv)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
// "links r"
|
||||
if ((*argv[1]=='r') && (strlen(argv[1])==1)) {
|
||||
node_msg("ROSE Links:");
|
||||
if (check_perms(PERM_ANSI, 0L) != -1) {
|
||||
axio_printf(NodeIo, "\e[0;m");
|
||||
}
|
||||
axio_printf(NodeIo,"Call Dnic Interf Description\n");
|
||||
axio_printf(NodeIo,"--------- --------- ------- -----------");
|
||||
for(p=axrt;p!=NULL;p=p->next)
|
||||
{ if (*p->conn_type==CONN_TYPE_ROSE) axio_printf(NodeIo,"\n%-9s %-9s %-7s %s", p->dest_call, p->alias, p->dev, p->description); }
|
||||
free_ax_routes(axrt);
|
||||
if (User.ul_type == AF_NETROM) {
|
||||
node_msg("");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
*/
|
||||
/* "links v" */
|
||||
if ((*argv[1]=='v') && (strlen(argv[1])==1)) {
|
||||
node_msg("AX25 Links via digipeaters:");
|
||||
|
|
|
@ -110,7 +110,7 @@ int loadavg(double *av1, double *av5, double *av15) {
|
|||
labels which do not *begin* with digits, though.
|
||||
*/
|
||||
|
||||
#define MAX_ROW 27 /* these are a little liberal for flexibility */
|
||||
#define MAX_ROW 22 /* these are a little liberal for flexibility */
|
||||
#define MAX_COL 2
|
||||
|
||||
unsigned** meminfo(void) {
|
||||
|
|
Loading…
Reference in New Issue