Imported Upstream version 2.4
This commit is contained in:
parent
4013fe89db
commit
0ed015b5b0
98
CHANGES.2
98
CHANGES.2
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
28/11/2008 v1.0.8
|
28/11/2008 v1.0.8
|
||||||
*notes lost, sorry.
|
*notes lost, sorry.
|
||||||
|
|
||||||
|
@ -600,7 +599,104 @@ to the README file as well.
|
||||||
|
|
||||||
Changed the version in node.h to reflect this security patch.
|
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:
|
Known NON-Critical Bugs:
|
||||||
Status memory/swap reporting fix
|
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:
|
/etc/inetd.conf could have something like this in it:
|
||||||
|
|
||||||
# Listen at telnet port -> URONode
|
# 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 -
|
if you use xinetd -
|
||||||
/etc/xinetd.d/uronode should look like this:
|
/etc/xinetd.d/uronode should look like this:
|
||||||
|
@ -72,7 +72,7 @@ service uronode
|
||||||
disable = no
|
disable = no
|
||||||
socket_type = stream
|
socket_type = stream
|
||||||
protocol = tcp
|
protocol = tcp
|
||||||
user = nobody
|
user = root
|
||||||
server = /usr/local/sbin/uronode
|
server = /usr/local/sbin/uronode
|
||||||
wait = no
|
wait = no
|
||||||
instances = 20
|
instances = 20
|
||||||
|
|
17
Makefile.in
17
Makefile.in
|
@ -55,20 +55,19 @@ installconf: installhelp
|
||||||
|
|
||||||
installman:
|
installman:
|
||||||
install -m 755 -D -d $(MAN_DIR)/man1 $(MAN_DIR)/man5 $(MAN_DIR)/man8
|
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/nodeusers.1 $(MAN_DIR)/man1
|
||||||
install -m 644 -p man/uronode.conf.5.gz $(MAN_DIR)/man5
|
install -m 644 -p man/uronode.conf.5 $(MAN_DIR)/man5
|
||||||
install -m 644 -p man/uronode.perms.5.gz $(MAN_DIR)/man5
|
install -m 644 -p man/uronode.perms.5 $(MAN_DIR)/man5
|
||||||
install -m 644 -p man/flexd.conf.5.gz $(MAN_DIR)/man5
|
install -m 644 -p man/flexd.conf.5 $(MAN_DIR)/man5
|
||||||
install -m 644 -p man/uronode.8.gz $(MAN_DIR)/man8
|
install -m 644 -p man/uronode.8 $(MAN_DIR)/man8
|
||||||
install -m 644 -p man/axdigi.8.gz $(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
|
upgrade: installman
|
||||||
install -m 755 -p uronode $(SBIN_DIR)
|
install -m 755 -p uronode $(SBIN_DIR)
|
||||||
install -m 755 -p nodeusers $(SBIN_DIR)
|
install -m 755 -p nodeusers $(SBIN_DIR)
|
||||||
install -m 755 -p flexd $(SBIN_DIR)
|
install -m 755 -p flexd $(SBIN_DIR)
|
||||||
install -m 755 -p axdigi $(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:
|
clean:
|
||||||
rm -f *.o *~ *.bak *.orig make.debug nodeusers uronode flexd axdigi
|
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)
|
$(LD) $(LDFLAGS) -o flexd $(FLEXD_OBJS) $(LIBS) $(ZLIB)
|
||||||
|
|
||||||
axdigi: $(DIGI_OBJS)
|
axdigi: $(DIGI_OBJS)
|
||||||
$(LD) $(LDFLAGS) -o axdigi $(DIGI_OBJS)
|
$(LD) $(LDFLAGS) -o axdigi $(DIGI_OBJS) $(LIBS)
|
||||||
|
|
||||||
ifeq (.depend,$(wildcard .depend))
|
ifeq (.depend,$(wildcard .depend))
|
||||||
include .depend
|
include .depend
|
||||||
|
|
54
axdigi.c
54
axdigi.c
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* axdigi: Cross and straight port digipeater program
|
* axdigi: Cross and straight port digipeater program
|
||||||
* Copyright (C) 1995 Craig Small VK2XLZ
|
* Copyright (C) 1995 Craig Small VK2XLZ
|
||||||
|
* modificatioins 2012-present Brian N1URO
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -32,7 +33,10 @@
|
||||||
/* below added by N1URO */
|
/* below added by N1URO */
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <signal.h>
|
||||||
#include <linux/ax25.h>
|
#include <linux/ax25.h>
|
||||||
|
/* added by N1URO */
|
||||||
|
#include <netax25/daemon.h>
|
||||||
|
|
||||||
int recv_packet(unsigned char *buf, int size, unsigned char *port);
|
int recv_packet(unsigned char *buf, int size, unsigned char *port);
|
||||||
void print_call(unsigned char *buf);
|
void print_call(unsigned char *buf);
|
||||||
|
@ -48,12 +52,26 @@ void get_interfaces(int skt);
|
||||||
#define REPEATED 0x80 /* Has-been-repeated bit */
|
#define REPEATED 0x80 /* Has-been-repeated bit */
|
||||||
#define MAX_PORTS 16
|
#define MAX_PORTS 16
|
||||||
#define VERSION "0.2"
|
#define VERSION "0.2"
|
||||||
|
#define AXDIGI_PID_FILE "/var/run/axdigi.pid"
|
||||||
int port_count = 0;
|
int port_count = 0;
|
||||||
unsigned char portname[MAX_PORTS][20];
|
unsigned char portname[MAX_PORTS][20];
|
||||||
unsigned char portcall[MAX_PORTS][8];
|
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[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
@ -63,12 +81,27 @@ int main(int argc, char *argv[])
|
||||||
struct sockaddr sa;
|
struct sockaddr sa;
|
||||||
int asize;
|
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 */
|
/* Check our huge range of flags */
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
{
|
{
|
||||||
if (strcmp(argv[1], "-v") == 0 || strcmp(argv[1], "-h") ==0)
|
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("axdigi comes with ABSOLUTELY NO WARRANTY.\n");
|
||||||
printf("This is free software, and you are welcome to redistribute it\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");
|
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");
|
printf("(at your option) any later version.\n");
|
||||||
return 0;
|
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 */
|
/* Change to keep code more modern - N1URO */
|
||||||
if ((skt = socket(PF_PACKET, SOCK_PACKET, htons(ETH_P_AX25))) == -1)
|
if ((skt = socket(PF_PACKET, SOCK_PACKET, htons(ETH_P_AX25))) == -1)
|
||||||
{
|
{
|
||||||
perror("socket");
|
perror("socket");
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pidfile = fopen(AXDIGI_PID_FILE, "w");
|
||||||
|
fprintf(pidfile, "%d\n", (int)getpid());
|
||||||
|
fclose(pidfile);
|
||||||
|
|
||||||
get_interfaces(skt);
|
get_interfaces(skt);
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
|
@ -107,7 +152,9 @@ int main(int argc, char *argv[])
|
||||||
/* printf("Unknown port %s\n", sa.sa_data);*/
|
/* printf("Unknown port %s\n", sa.sa_data);*/
|
||||||
} /* recv_packet true */
|
} /* recv_packet true */
|
||||||
} /* while(1) */
|
} /* while(1) */
|
||||||
|
|
||||||
close(skt);
|
close(skt);
|
||||||
|
// system("rm -f /var/run/axdigi.pid");
|
||||||
}
|
}
|
||||||
|
|
||||||
int recv_packet(unsigned char *buf, int size, unsigned char *port)
|
int recv_packet(unsigned char *buf, int size, unsigned char *port)
|
||||||
|
@ -252,4 +299,3 @@ void get_interfaces(int skt)
|
||||||
}
|
}
|
||||||
} /* for */
|
} /* for */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ void node_prompt(const char *fmt, ...)
|
||||||
if ((User.ul_type == AF_ROSE) && (check_perms(PERM_ANSI, 0L) != -1)) {
|
if ((User.ul_type == AF_ROSE) && (check_perms(PERM_ANSI, 0L) != -1)) {
|
||||||
axio_printf(NodeIo,"\r\e[01;35m-=>\e[0m \b");
|
axio_printf(NodeIo,"\r\e[01;35m-=>\e[0m \b");
|
||||||
}
|
}
|
||||||
axio_flush(NodeIo);
|
/* axio_flush(NodeIo); */
|
||||||
}
|
}
|
||||||
|
|
||||||
void node_logout(char *reason)
|
void node_logout(char *reason)
|
||||||
|
@ -795,7 +795,7 @@ int do_status(int argc, char **argv)
|
||||||
axio_printf(NodeIo,"------------------ ---------- ---------- ---------- ----------\n");
|
axio_printf(NodeIo,"------------------ ---------- ---------- ---------- ----------\n");
|
||||||
axio_printf(NodeIo,"Physical: %-7d kB %-7d kB %-7d kB %3d %%\n", ma, mu, mf, (mu*100)/ma);
|
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];
|
sa = mem[meminfo_stotal][meminfo_total];
|
||||||
su = (mem[meminfo_stotal][meminfo_total] - mem[meminfo_sfree][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);
|
axio_printf(NodeIo,"Swap: %-7d kB %-7d kB %-7d kB %3d %%\n",sa,su,sf,(su*100)/sa);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* axio_printf(NodeIo,"Cannot get swap information!\n"); */
|
axio_printf(NodeIo,"Cannot get swap information!\n");
|
||||||
axio_printf(NodeIo," ");
|
axio_printf(NodeIo," ");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
@HAVENETROM@
|
@HAVENETROM@
|
||||||
@HAVEZLIB@
|
@HAVEZLIB@
|
||||||
@HAVEMHEARD@
|
@HAVEMHEARD@
|
||||||
|
@HAVEAUTOROUTE@
|
||||||
@HAVETCPIP@
|
@HAVETCPIP@
|
||||||
#define PROC_AX25_CALLS_FILE "/proc/net/ax25_calls"
|
#define PROC_AX25_CALLS_FILE "/proc/net/ax25_calls"
|
||||||
|
|
||||||
|
|
|
@ -14,12 +14,13 @@ echo "Cleaning the directory for a fresh configuration..."
|
||||||
_sleep 2
|
_sleep 2
|
||||||
make distclean > make.debug
|
make distclean > make.debug
|
||||||
|
|
||||||
ETC_DIR=/usr/local/etc/ax25
|
[ "$ETC_DIR" ] || ETC_DIR=/usr/local/etc/ax25
|
||||||
SBIN_DIR=/usr/local/sbin
|
[ "$SBIN_DIR" ] || SBIN_DIR=/usr/local/sbin
|
||||||
BIN_DIR=/usr/local/bin
|
[ "$BIN_DIR" ] || BIN_DIR=/usr/local/bin
|
||||||
LIB_DIR=/usr/local/lib
|
[ "$LIB_DIR" ] || LIB_DIR=/usr/local/lib
|
||||||
MAN_DIR=/usr/local/share/man
|
[ "$DATA_DIR" ] || DATA_DIR=/usr/local/share
|
||||||
VAR_DIR=/usr/local/var/ax25
|
[ "$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 "Welcome to the configuration utility for URONode. This configure script"
|
||||||
echo "will very simply and easily guide you into installling URONode with as"
|
echo "will very simply and easily guide you into installling URONode with as"
|
||||||
|
@ -81,6 +82,7 @@ fi
|
||||||
HAVENETROM="#undef HAVE_NETROM"
|
HAVENETROM="#undef HAVE_NETROM"
|
||||||
HAVEROSE="#undef HAVE_ROSE"
|
HAVEROSE="#undef HAVE_ROSE"
|
||||||
HAVEMHEARD="#undef HAVE_MHEARD"
|
HAVEMHEARD="#undef HAVE_MHEARD"
|
||||||
|
HAVEAUTOROUTE="#undef HAVE_AUTOROUTE"
|
||||||
HAVETCPIP="#undef HAVE_TCPIP"
|
HAVETCPIP="#undef HAVE_TCPIP"
|
||||||
HAVEMOTD="#undef HAVE_MOTD"
|
HAVEMOTD="#undef HAVE_MOTD"
|
||||||
MOTDPATH=
|
MOTDPATH=
|
||||||
|
@ -139,7 +141,7 @@ fi
|
||||||
if [ $? -ne 1 ]
|
if [ $? -ne 1 ]
|
||||||
then
|
then
|
||||||
HAVEAX25="#define HAVE_AX25 1"
|
HAVEAX25="#define HAVE_AX25 1"
|
||||||
HAVEROSE="#define HAVE_ROSE 1"
|
HAVEROSE="#define HAVE_ROSE 1"
|
||||||
fi
|
fi
|
||||||
#
|
#
|
||||||
# echo -n "Include support for MHeard ports listen ? [Y/n]: "; read answer
|
# echo -n "Include support for MHeard ports listen ? [Y/n]: "; read answer
|
||||||
|
@ -156,6 +158,21 @@ fi
|
||||||
HAVEMHEARD="#define HAVE_MHEARD 1"
|
HAVEMHEARD="#define HAVE_MHEARD 1"
|
||||||
fi
|
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
|
# echo -n "Include support for TCP/IP functions ? [Y/n]: "; read answer
|
||||||
# if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ]
|
# if [ "$answer" = "Y" -o "$answer" = "y" -o "$answer" = "" ]
|
||||||
if [ "$NON_INTERACTIVE" = 1 ]
|
if [ "$NON_INTERACTIVE" = 1 ]
|
||||||
|
@ -184,6 +201,7 @@ sed -e "s~@ARCH@~$ARCH~g; \
|
||||||
s~@SBIN_DIR@~$SBIN_DIR~g; \
|
s~@SBIN_DIR@~$SBIN_DIR~g; \
|
||||||
s~@BIN_DIR@~$BIN_DIR~g; \
|
s~@BIN_DIR@~$BIN_DIR~g; \
|
||||||
s~@VAR_DIR@~$VAR_DIR~g; \
|
s~@VAR_DIR@~$VAR_DIR~g; \
|
||||||
|
s~@DATA_DIR@~$DATA_DIR~g; \
|
||||||
s~@MAN_DIR@~$MAN_DIR~g; \
|
s~@MAN_DIR@~$MAN_DIR~g; \
|
||||||
s~@ZLIB@~$ZLIB~g" <Makefile.include.in >Makefile.include
|
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~@BIN_DIR@~$BIN_DIR~g; \
|
||||||
s~@VAR_DIR@~$VAR_DIR~g; \
|
s~@VAR_DIR@~$VAR_DIR~g; \
|
||||||
s~@MAN_DIR@~$MAN_DIR~g; \
|
s~@MAN_DIR@~$MAN_DIR~g; \
|
||||||
|
s~@DATA_DIR@~$DATA_DIR~g; \
|
||||||
s~@HAVEAX25@~$HAVEAX25~g; \
|
s~@HAVEAX25@~$HAVEAX25~g; \
|
||||||
s~@HAVEFLEX@~$HAVEFLEX~g; \
|
s~@HAVEFLEX@~$HAVEFLEX~g; \
|
||||||
s~@HAVENETROM@~$HAVENETROM~g; \
|
s~@HAVENETROM@~$HAVENETROM~g; \
|
||||||
s~@HAVEROSE@~$HAVEROSE~g; \
|
s~@HAVEROSE@~$HAVEROSE~g; \
|
||||||
s~@HAVEMHEARD@~$HAVEMHEARD~g; \
|
s~@HAVEMHEARD@~$HAVEMHEARD~g; \
|
||||||
|
s~@HAVEAUTOROUTE@~$HAVEAUTOROUTE~g; \
|
||||||
s~@HAVETCPIP@~$HAVETCPIP~g; \
|
s~@HAVETCPIP@~$HAVETCPIP~g; \
|
||||||
s~@HAVEMOTD@~$HAVEMOTD~g; \
|
s~@HAVEMOTD@~$HAVEMOTD~g; \
|
||||||
s~@MOTDPATH@~$MOTDPATH~g; \
|
s~@MOTDPATH@~$MOTDPATH~g; \
|
||||||
|
|
9
flexd.c
9
flexd.c
|
@ -117,7 +117,7 @@ void read_conf(void)
|
||||||
int download_dest(char *gateway, char *fname)
|
int download_dest(char *gateway, char *fname)
|
||||||
{
|
{
|
||||||
FILE *tmp;
|
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 */
|
char *addr, *commands[10], *dlist[9]; /* Destination + 8 digipeaters */
|
||||||
fd_set read_fd;
|
fd_set read_fd;
|
||||||
int n, addrlen, cmd_send=0, cmd_ack=0, c, k;
|
int n, addrlen, cmd_send=0, cmd_ack=0, c, k;
|
||||||
|
@ -390,6 +390,7 @@ void quit_handler(int sig)
|
||||||
|
|
||||||
signal(SIGTERM, sigterm_defhnd);
|
signal(SIGTERM, sigterm_defhnd);
|
||||||
raise(SIGTERM);
|
raise(SIGTERM);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
@ -410,7 +411,7 @@ int main(int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
signal(SIGTERM, quit_handler);
|
// signal(SIGTERM, quit_handler);
|
||||||
pidfile = fopen(FLEXD_PID_FILE, "w");
|
pidfile = fopen(FLEXD_PID_FILE, "w");
|
||||||
fprintf(pidfile, "%d\n", (int)getpid());
|
fprintf(pidfile, "%d\n", (int)getpid());
|
||||||
fclose(pidfile);
|
fclose(pidfile);
|
||||||
|
@ -420,8 +421,8 @@ int main(int argc, char *argv[])
|
||||||
signal(SIGHUP, hup_handler);
|
signal(SIGHUP, hup_handler);
|
||||||
signal(SIGALRM, alarm_handler);
|
signal(SIGALRM, alarm_handler);
|
||||||
sigterm_defhnd = signal(SIGTERM, quit_handler);
|
sigterm_defhnd = signal(SIGTERM, quit_handler);
|
||||||
if (sigterm_defhnd == SIG_ERR)
|
// if (sigterm_defhnd == SIG_ERR)
|
||||||
sigterm_defhnd = SIG_DFL;
|
// sigterm_defhnd = SIG_DFL;
|
||||||
alarm(poll_time);
|
alarm(poll_time);
|
||||||
|
|
||||||
for(;;) pause();
|
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) {
|
else if (find_node(argv[1], NULL)!=NULL) {
|
||||||
family = AF_NETROM;
|
family = AF_NETROM;
|
||||||
} */
|
} */
|
||||||
|
#ifdef HAVE_AUTOROUTE
|
||||||
else if ((ax=find_mheard(argv[1]))!=NULL) { /* Check Mheard database */
|
else if ((ax=find_mheard(argv[1]))!=NULL) { /* Check Mheard database */
|
||||||
k=1;
|
k=1;
|
||||||
/* K2MF supplied code */
|
/* K2MF supplied code */
|
||||||
|
@ -677,11 +677,14 @@ int do_connect(int argc, char **argv)
|
||||||
argv[k]=NULL;
|
argv[k]=NULL;
|
||||||
argc=k;
|
argc=k;
|
||||||
family = AF_AX25;
|
family = AF_AX25;
|
||||||
} else { /* Give up */
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else { /* Give up */
|
||||||
if (User.ul_type == AF_NETROM) {
|
if (User.ul_type == AF_NETROM) {
|
||||||
axio_printf(NodeIo,"%s} ", NodeId);
|
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;
|
family = AF_UNSPEC;
|
||||||
// free_flex_dst(flx);
|
// free_flex_dst(flx);
|
||||||
// free_ax_routes(ax);
|
// free_ax_routes(ax);
|
||||||
|
@ -771,6 +774,16 @@ int do_connect(int argc, char **argv)
|
||||||
}
|
}
|
||||||
axio_printf(NodeIo,"\nReturning you to the shell... ");
|
axio_printf(NodeIo,"\nReturning you to the shell... ");
|
||||||
} else
|
} 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 (User.ul_type == AF_AX25) {
|
||||||
if (check_perms(PERM_ANSI, 0L) != -1) {
|
if (check_perms(PERM_ANSI, 0L) != -1) {
|
||||||
axio_printf(NodeIo,"\e[01;31m");
|
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) {
|
if (User.call[0] == 0) {
|
||||||
axio_printf(NodeIo,"(%s:uronode) login: ", HostName);
|
axio_printf(NodeIo,"(%s:uronode) login: ", HostName);
|
||||||
axio_flush(NodeIo);
|
axio_flush(NodeIo);
|
||||||
alarm(60L); /* 1 min timeout */
|
alarm(180L); /* 3 min timeout */
|
||||||
if ((p = axio_getline(NodeIo)) == NULL)
|
if ((p = axio_getline(NodeIo)) == NULL)
|
||||||
node_logout("User disconnected");
|
node_logout("User disconnected");
|
||||||
alarm(0L);
|
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_log(LOGLVL_LOGIN, "Login denied for %s @ %s", User.call, User.ul_name);
|
||||||
node_logout("Login denied");
|
node_logout("Login denied");
|
||||||
} else if (strcmp(pw, "*") != 0) {
|
} 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,"*** Password required! If you don't have a password please email\n%s for a password you wish to use.", Email);
|
||||||
axio_printf(NodeIo,"\rPassword: ");
|
axio_printf(NodeIo,"\nPassword: ");
|
||||||
if (User.ul_type == AF_INET) {
|
if (User.ul_type == AF_INET) {
|
||||||
axio_tn_will_echo(NodeIo);
|
axio_tn_will_echo(NodeIo);
|
||||||
axio_eolmode(NodeIo, EOLMODE_BINARY);
|
axio_eolmode(NodeIo, EOLMODE_BINARY);
|
||||||
|
@ -272,6 +272,9 @@ int main(int argc, char *argv[])
|
||||||
axio_eolmode(NodeIo, EOLMODE_TEXT);
|
axio_eolmode(NodeIo, EOLMODE_TEXT);
|
||||||
/* axio_puts("\n",NodeIo); */
|
/* 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) {
|
if (p == NULL || strcmp(p, pw) != 0) {
|
||||||
axio_printf(NodeIo, "\n");
|
axio_printf(NodeIo, "\n");
|
||||||
if (User.ul_type == AF_NETROM) {
|
if (User.ul_type == AF_NETROM) {
|
||||||
|
@ -301,7 +304,7 @@ int main(int argc, char *argv[])
|
||||||
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
||||||
while (fgets(buf,256, fp) != NULL) axio_puts(buf,NodeIo);
|
while (fgets(buf,256, fp) != NULL) axio_puts(buf,NodeIo);
|
||||||
axio_printf (NodeIo, "\n");
|
axio_printf (NodeIo, "\n");
|
||||||
axio_flush(NodeIo);
|
/* axio_flush(NodeIo); */
|
||||||
}
|
}
|
||||||
} else if (User.ul_type == AF_AX25) {
|
} else if (User.ul_type == AF_AX25) {
|
||||||
if (check_perms(PERM_ANSI, 0L) != -1) {
|
if (check_perms(PERM_ANSI, 0L) != -1) {
|
||||||
|
@ -311,14 +314,14 @@ int main(int argc, char *argv[])
|
||||||
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
||||||
while (fgets(buf, 256, fp) != NULL) axio_puts(buf,NodeIo);
|
while (fgets(buf, 256, fp) != NULL) axio_puts(buf,NodeIo);
|
||||||
axio_puts ("\n",NodeIo);
|
axio_puts ("\n",NodeIo);
|
||||||
axio_flush(NodeIo);
|
/* axio_flush(NodeIo); */
|
||||||
}
|
}
|
||||||
} else if (User.ul_type == AF_ROSE) {
|
} else if (User.ul_type == AF_ROSE) {
|
||||||
node_msg("%s - Welcome to %s", VERSION, RoseId);
|
node_msg("%s - Welcome to %s", VERSION, RoseId);
|
||||||
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
if ((fp = fopen(HAVEMOTD, "r")) != NULL) {
|
||||||
while (fgets(buf, 256, fp) != NULL) axio_puts(buf,NodeIo);
|
while (fgets(buf, 256, fp) != NULL) axio_puts(buf,NodeIo);
|
||||||
axio_puts ("\n",NodeIo);
|
axio_puts ("\n",NodeIo);
|
||||||
axio_flush(NodeIo);
|
/* axio_flush(NodeIo); */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lastlog();
|
lastlog();
|
||||||
|
@ -327,7 +330,7 @@ int main(int argc, char *argv[])
|
||||||
while (1) { if (User.ul_type != AF_NETROM) {
|
while (1) { if (User.ul_type != AF_NETROM) {
|
||||||
axio_flush(NodeIo);
|
axio_flush(NodeIo);
|
||||||
if (check_perms(PERM_ANSI, 0L) != -1) {
|
if (check_perms(PERM_ANSI, 0L) != -1) {
|
||||||
axio_printf(NodeIo,"\e[01;34");
|
axio_printf(NodeIo,"\e[01;34m");
|
||||||
}
|
}
|
||||||
if (no_password == 2) {
|
if (no_password == 2) {
|
||||||
node_prompt();
|
node_prompt();
|
||||||
|
|
4
node.h
4
node.h
|
@ -1,5 +1,5 @@
|
||||||
#define VERSION "URONode v2.3.1"
|
#define VERSION "URONode v2.4"
|
||||||
#define COMPILING "February 14, 2015"
|
#define COMPILING "November 21, 2015"
|
||||||
|
|
||||||
#define STATE_IDLE 0
|
#define STATE_IDLE 0
|
||||||
#define STATE_TRYING 1
|
#define STATE_TRYING 1
|
||||||
|
|
21
router.c
21
router.c
|
@ -95,9 +95,24 @@ int do_links(int argc, char **argv)
|
||||||
}
|
}
|
||||||
return 0;
|
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" */
|
/* "links v" */
|
||||||
if ((*argv[1]=='v') && (strlen(argv[1])==1)) {
|
if ((*argv[1]=='v') && (strlen(argv[1])==1)) {
|
||||||
node_msg("AX25 Links via digipeaters:");
|
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.
|
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
|
#define MAX_COL 2
|
||||||
|
|
||||||
unsigned** meminfo(void) {
|
unsigned** meminfo(void) {
|
||||||
|
|
Loading…
Reference in New Issue