New upstream version 2.8
This commit is contained in:
		
							parent
							
								
									fa52d5a185
								
							
						
					
					
						commit
						e5129d408c
					
				
							
								
								
									
										35
									
								
								CHANGES.3
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								CHANGES.3
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -298,6 +298,41 @@ Thanks to Han for reporting this.
 | 
			
		|||
While working on new node W1WCG, I noticed some code clean up in node.c
 | 
			
		||||
There's still a lot more to do especially with ANSI.
 | 
			
		||||
 | 
			
		||||
15/06/2017 - v2.8
 | 
			
		||||
In gateway.c I cleaned up the do_ping routing slightly. I was going to add
 | 
			
		||||
a default timer but instead decided to let the user hit enter for their own
 | 
			
		||||
"timer" of sorts. Users are also now instructed on the node to hit enter
 | 
			
		||||
in order to abort a ping.
 | 
			
		||||
 | 
			
		||||
Cleaned up do_nodes so now if there's a slime trail node, rather than prefix
 | 
			
		||||
it with a colon ":", now it will display ##TEMP: instead. This was sorta
 | 
			
		||||
bugging me on just how to handle these. While I was at it, I made a 
 | 
			
		||||
modification to gateway.c so if a user tried to "C ##TEMP" it instructs the
 | 
			
		||||
end user to use the callsign-ssid. I can't think of any other node that does
 | 
			
		||||
this.
 | 
			
		||||
 | 
			
		||||
Thanks to Dave Hibbard (at Debian) for pointing out a dropped "t" in the word
 | 
			
		||||
"software" in flexd.c when the -v switch is used.
 | 
			
		||||
 | 
			
		||||
Cleaned up some prompt routines including the ipv4/ipv6 login sequences.
 | 
			
		||||
Before (especially with ipv6) if a callsign had no permissions to login via
 | 
			
		||||
the internet they were never informed how to gain access - they were simply
 | 
			
		||||
denied. I found this to somewhat make the node a bit unfriendly. Fixed.
 | 
			
		||||
 | 
			
		||||
With all the chatter on the 44-net list about IPv6, I've decided to get my
 | 
			
		||||
block active for further testing. In doing so, I noticed that if a user
 | 
			
		||||
telnetted in via IPv6 and made a NetRom connect out, the node failed to
 | 
			
		||||
inform them that they were connected... fixed.
 | 
			
		||||
 | 
			
		||||
As of this writing there's no outboud telnet or dns functions for IPv6
 | 
			
		||||
but that's not to say it's not in the works. Personally, I don't see a
 | 
			
		||||
true need for IPv6 outbound for amateur radio as the amprnet is going
 | 
			
		||||
quite strong however that's not to say things may not change either. If
 | 
			
		||||
anything, IPv6 through an HE.net tunnel works as slick as the amprnet
 | 
			
		||||
does with the exception of how it handles dynamic clients. Other than 
 | 
			
		||||
that, it does appear to tunnel through your ISP filters as amprnet
 | 
			
		||||
does which is a plus.
 | 
			
		||||
 | 
			
		||||
----------- Note on SystemD --------
 | 
			
		||||
In uronode.socket, you'll notice the line:
 | 
			
		||||
ListenStream=0.0.0.0:3694
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								command.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								command.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -99,10 +99,10 @@ void node_prompt(const char *fmt, ...)
 | 
			
		|||
   axio_printf(NodeIo,"\r\e[01;35m-=>\e[0m  \b");
 | 
			
		||||
  }
 | 
			
		||||
  if ((User.ul_type ==AF_INET6)  && (check_perms(PERM_ANSI, 0L) == -1)) {
 | 
			
		||||
    axio_printf(NodeIo, "\nSystemD - %s@%s: ",User.call, HostName);
 | 
			
		||||
    axio_printf(NodeIo, "\n%s@%s-IPv6: ",User.call, HostName);
 | 
			
		||||
  }
 | 
			
		||||
  if ((User.ul_type ==AF_INET6)  && (check_perms(PERM_ANSI, 0L) != -1)) {
 | 
			
		||||
    axio_printf(NodeIo, "\n\e[01;31mSystemD \e[0m- \e[01;34m%s@\e[0m%s: ",User.call, HostName);
 | 
			
		||||
    axio_printf(NodeIo, "\n\e[01;34m%s\e[0m@\e[01;31m%s\e[0m-\e[01;33mIPv6\e[0m: ",User.call, HostName);
 | 
			
		||||
  }
 | 
			
		||||
/*  axio_flush(NodeIo); */
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -119,6 +119,15 @@ void node_logout(char *reason)
 | 
			
		|||
      axio_printf(NodeIo, "\e[0;m");
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (User.ul_type == AF_INET6) {
 | 
			
		||||
    if (check_perms(PERM_ANSI, 0L) != -1) {
 | 
			
		||||
      axio_printf(NodeIo, "\e[03;36m");
 | 
			
		||||
    }
 | 
			
		||||
    axio_printf(NodeIo, "Thank you %s, for connecting to the \n%s URONode IPv6 packet shell.\n", User.call, HostName);
 | 
			
		||||
    if (check_perms(PERM_ANSI, 0L) != -1) {
 | 
			
		||||
      axio_printf(NodeIo, "\e[0;m");
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (User.ul_type == AF_NETROM) {
 | 
			
		||||
    axio_printf(NodeIo,"");
 | 
			
		||||
  } 
 | 
			
		||||
| 
						 | 
				
			
			@ -662,6 +671,8 @@ int do_nodes(int argc, char **argv)
 | 
			
		|||
    }
 | 
			
		||||
    if ((User.ul_type == AF_NETROM) && (i % 4) != 0) {
 | 
			
		||||
	node_msg("");
 | 
			
		||||
    } else
 | 
			
		||||
    if ((User.ul_type != AF_NETROM) && (i % 4) == 0) {
 | 
			
		||||
    }
 | 
			
		||||
    free_proc_nr_nodes(list);
 | 
			
		||||
    return 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -981,7 +992,7 @@ int nuser_list(int argc, char **argv)
 | 
			
		|||
      break;
 | 
			
		||||
 | 
			
		||||
    case AF_INET6:
 | 
			
		||||
       sprintf(buf, "\nTelnet6 (%.9s @ SystemD)", u.call);
 | 
			
		||||
       sprintf(buf, "\nTelnet6 (%.9s @ IPv6)", u.call);
 | 
			
		||||
       break;
 | 
			
		||||
 | 
			
		||||
    case AF_UNSPEC:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								flexd.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								flexd.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -413,7 +413,7 @@ int main(int argc, char *argv[])
 | 
			
		|||
           printf("FlexD version %s.\n\r", VERSION);
 | 
			
		||||
	   printf("Copywrite (c) 2000-2003 by Roy PE1RJA and Stefano IZ5AWZ\n\r");
 | 
			
		||||
           printf("Copywrite (c) 2003 - present by Brian Rogers - N1URO.\n\r");
 | 
			
		||||
           printf("FlexD is free sofware and you are welcome to redistribute it\n\r");
 | 
			
		||||
           printf("FlexD is free software and you are welcome to redistribute it\n\r");
 | 
			
		||||
           printf("under the terms of GNU General Public Licence as published\n\r");
 | 
			
		||||
           printf("by Free Software Foundation; either version 2 of the License, or\n\r");
 | 
			
		||||
           printf("(at your option) any later version.\n\r");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								gateway.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								gateway.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -271,6 +271,7 @@ static ax25io *connect_to(char **addr, int family, int escape, int compr)
 | 
			
		|||
    /*    else node_msg("Trying %s on %s... Type <RETURN> to abort", User.dl_name, User.dl_port); */
 | 
			
		||||
    break;
 | 
			
		||||
#endif
 | 
			
		||||
  case AF_INET6:
 | 
			
		||||
  case AF_INET:
 | 
			
		||||
    if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
 | 
			
		||||
      node_perror("connect_to: socket", errno);
 | 
			
		||||
| 
						 | 
				
			
			@ -493,7 +494,7 @@ static ax25io *connect_to(char **addr, int family, int escape, int compr)
 | 
			
		|||
	  if (check_perms(PERM_ANSI, 0L) != -1) {
 | 
			
		||||
	    axio_printf(NodeIo,"\e[01;32m");
 | 
			
		||||
	  }
 | 
			
		||||
	  if (User.ul_type == AF_INET) {
 | 
			
		||||
	  if ((User.ul_type == AF_INET) || (User.ul_type == AF_INET6)) {
 | 
			
		||||
	    axio_printf(NodeIo,"Virtual circuit established to %s\n", User.dl_name);
 | 
			
		||||
	  }
 | 
			
		||||
	  if (User.ul_type == AF_NETROM) {
 | 
			
		||||
| 
						 | 
				
			
			@ -701,7 +702,12 @@ int do_connect(int argc, char **argv)
 | 
			
		|||
      if (User.ul_type == AF_NETROM) {
 | 
			
		||||
	axio_printf(NodeIo,"%s} ", NodeId);
 | 
			
		||||
      }
 | 
			
		||||
      axio_printf(NodeIo,"%s not found, please retry your entry.", argv[1]);
 | 
			
		||||
 | 
			
		||||
      if (strcmp(argv[1], "##TEMP") == 0) {
 | 
			
		||||
         axio_printf(NodeIo,"%s is not connectable. Use the callsign-ssid.", argv[1]);
 | 
			
		||||
         } else {
 | 
			
		||||
      axio_printf(NodeIo,"%s not found. Please retry your entry.", argv[1]);
 | 
			
		||||
      }
 | 
			
		||||
      family = AF_UNSPEC;
 | 
			
		||||
      //      free_flex_dst(flx);
 | 
			
		||||
      //      free_ax_routes(ax);
 | 
			
		||||
| 
						 | 
				
			
			@ -789,7 +795,7 @@ int do_connect(int argc, char **argv)
 | 
			
		|||
    if (check_perms(PERM_ANSI, 0L) != -1) {
 | 
			
		||||
      axio_printf(NodeIo,"\e[01;31m");
 | 
			
		||||
    }
 | 
			
		||||
    axio_printf(NodeIo,"\nReturning you to the shell... ");
 | 
			
		||||
    axio_printf(NodeIo,"Returning you to the shell...");
 | 
			
		||||
  } else
 | 
			
		||||
      if ((User.ul_type == AF_AX25) && (!stay)) {
 | 
			
		||||
  axio_flush(NodeIo);
 | 
			
		||||
| 
						 | 
				
			
			@ -1033,6 +1039,12 @@ int do_ping(int argc, char **argv)
 | 
			
		|||
    node_perror("do_ping: socket", errno);
 | 
			
		||||
    return 0;
 | 
			
		||||
  }
 | 
			
		||||
  if (check_perms(PERM_ANSI, 0L) != -1) {
 | 
			
		||||
    axio_printf(NodeIo,"\e[01;32mPing engaged, hit <ENTER> to abort.\n\e[0m");
 | 
			
		||||
  }
 | 
			
		||||
  if (check_perms(PERM_ANSI, 0L) == -1) {
 | 
			
		||||
    axio_printf(NodeIo, "Ping engaged, hit <ENTER> to abort.\n");
 | 
			
		||||
  }
 | 
			
		||||
  if (check_perms(PERM_ANSI, 0L) != -1) {
 | 
			
		||||
    axio_printf(NodeIo,"\e[01;35mICMP Echo request sent to: \e[0m");
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								node.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								node.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -9,7 +9,8 @@
 | 
			
		|||
#include <sys/socket.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <arpa/inet.h>
 | 
			
		||||
 | 
			
		||||
//IPv6
 | 
			
		||||
#include <netdb.h>
 | 
			
		||||
#include <netax25/ax25.h>
 | 
			
		||||
#include <netrose/rose.h>
 | 
			
		||||
#include <netax25/axlib.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -194,8 +195,8 @@ int main(int argc, char *argv[])
 | 
			
		|||
      /*			axio_flush(NodeIo); */
 | 
			
		||||
      if(NodeIo!=NULL)
 | 
			
		||||
	axio_flush(NodeIo);
 | 
			
		||||
	if (system("telnet 127.0.0.1 3694") < 0 ) {                        /* VE3TOK - 18Nov2014, return value */
 | 
			
		||||
           syslog(LOG_DEBUG, "Can't \"execute telnet 127.0.0.1 3694\"");
 | 
			
		||||
	if (system("telnet localhost 3694") < 0 ) {                        /* VE3TOK - 18Nov2014, return value */
 | 
			
		||||
           syslog(LOG_DEBUG, "Can't \"execute telnet ::1 or 127.0.0.1 3694\"");
 | 
			
		||||
           return 1;
 | 
			
		||||
        }
 | 
			
		||||
	node_log(LOGLVL_ERROR,"Closing console telnet session.", -1);
 | 
			
		||||
| 
						 | 
				
			
			@ -256,6 +257,7 @@ int main(int argc, char *argv[])
 | 
			
		|||
  }
 | 
			
		||||
  if ((pw = read_perms(&User, saddr.sin.sin_addr.s_addr)) == NULL) {
 | 
			
		||||
    node_msg("Sorry, I'm not allowed to talk to you.");
 | 
			
		||||
    axio_printf(NodeIo,"*** Password required! If you don't have a password please email\n%s for a password you wish to use.\n", Email);
 | 
			
		||||
    node_log(LOGLVL_LOGIN, "Login denied for %s @ %s", User.call, User.ul_name);
 | 
			
		||||
    node_logout("Login denied");
 | 
			
		||||
  } 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								node.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								node.h
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
#define VERSION                "URONode v2.7"
 | 
			
		||||
#define COMPILING	       "June 1, 2017"
 | 
			
		||||
#define VERSION                "URONode v2.8"
 | 
			
		||||
#define COMPILING	       "November 23, 2017"
 | 
			
		||||
 | 
			
		||||
#define STATE_IDLE	0
 | 
			
		||||
#define STATE_TRYING	1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								router.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								router.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -206,9 +206,9 @@ int do_dest(int argc, char **argv)
 | 
			
		|||
    }
 | 
			
		||||
    if ((i % 4) != 0) axio_printf(NodeIo,""); 
 | 
			
		||||
    free_flex_dst(fdst);
 | 
			
		||||
    if (User.ul_type == AF_NETROM) {
 | 
			
		||||
      node_msg("");
 | 
			
		||||
    }
 | 
			
		||||
//    if (User.ul_type == AF_NETROM) {
 | 
			
		||||
//      node_msg("");
 | 
			
		||||
//    }
 | 
			
		||||
    return 0;
 | 
			
		||||
  }
 | 
			
		||||
  if ((flgt=read_flex_gt()) == NULL) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								util.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								util.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -79,9 +79,10 @@ char *print_node(const char *alias, const char *call)
 | 
			
		|||
  static char node[17];
 | 
			
		||||
 | 
			
		||||
  sprintf(node, "%s%s%s",
 | 
			
		||||
	  !strcmp(alias, "*") ? "" : alias,
 | 
			
		||||
	  !strcmp(call, "*") ? "" : ":", call);
 | 
			
		||||
  
 | 
			
		||||
	  !strcmp(alias, "*") ? "##TEMP:" : alias,
 | 
			
		||||
	  !strcmp(alias, "*") ? "" : ":",
 | 
			
		||||
//	  !strcmp(call, "*") ? "" : call);
 | 
			
		||||
	  call);
 | 
			
		||||
  return node;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue