28/11/2008 v1.0.8 *notes lost, sorry. 27/05/2009 v1.0.9 **production copy stolen. See LICENSE for who did this and my response. 11/05/2013 v2.0 Clean up of some code... I had a copy of 1.0.8 from 2008 I recovered. I did have a version 1.0.9 in production but can't seem to locate it for some reason so starting from memory using 1.0.8. Thanks to Brett WA7V for supplying me with some teaser code :-) Updated version! We're on 2.0... finally! (yea, big news right? Maybe not!) Moved the "Who" commmand to the list of basic internal node commands. I can't recall why on earth I had it defined with MOTD. Perhaps it may come to me later but for now I can't recall. I may have to move it somewhere else, but I believe it has to do something with logging features or something along those lines. For now, you need to define MOTD as a compile selective to have the defined. Fixed the sysop shell warning, this needed to be a tad more specific in my point of view... then again who am I? Also cleaned up the return prompt as it could be confusing if the incoming connection was done via NetRom. I removed the default FlexNet Identifier out. Now it just says: "Welcome back.". In regards to the "Who" command; I see what was going on here and where I left off with it! Logging and the "Who" command pretty much go hand in hand - so they're combined. The initial design of FlexNode was to have a MOTD based off of the logging of when the user last was on, otherwise if they did not exist, push the "new user" screen to them. The down and dirty quick fix is to simply remove it from netrom connections into the system! Who cares if you get a MOTD on a flex/ax25 or a telnet connect into the system! With the above said, I changed the sequence of "configure" to ask if the sysop/admin wishes to log user connects into the system. In the future I will either move this to be included with protocols or I may simply hard code it in as a defaulted option, and move the "Who" command as being defined into TCP/IP functions. For now, it's hard coded in as a selected option but will NOT display for NetRom connects. While I was at it, I changed some of the routines in the configure script. Nothing major but did improve upon a few things. While doing this, and running "make upgrade" I noticed that flexd.conf was being overwritten! OUCH! I'm surprised this went on for as long as it did. I *think* I did this to force people to add the new lines in flexd.conf that K2BJG/SK had asked me to do. Created a man page for flexd.conf(5)! I'm surprised no one asked me why this was missing! It explains further how to create the file. Keep in mind, this also works on Xnet as well as Flexnet. If this doesn't help you figure out how to create this file or edit the sample one... I don't honestly know what to tell you. In doing such, it also forced me to change the generated Makefile so that "install upgrade" and "install man" installs it. Changed the licensing! This is (I'll admit) very personal and _must_ remain as is! I could fill a TB hard disk with reasons and debates as to why it's no longer GPL code. Please insure you are in an area where you can use this code. Thank you. Fixed an ANSI bug I had in the "Users" command which was driving me nuts! On NetRom, it would change the prompt to magenta which it shouldn't. What I did as a fix was to force a removal of ANSI on the prompt for NetRom based connects... simple enough. There may be other ANSIs for me to fix and I'll cross those bridges when I get to them. Found another in gateway.c and fixed the netrom ANSI to properly reflect that once a connection was made, it was "systems GO" (green) without changing the Node's ID string. Created a COLORS file which somewhat explains the hows/whys of not only how I came up with a schema, but when it should and should NOT be used. It may also be used as a quick reference guide for the local sysop. It's a nice little cheat sheet one may print and keep near their keyboard if they want. Added text to both the colors.hlp and help.hlp file for a users better understanding of the color schema and how to gain colors to their terminal if they so choose to have it. See my wishlist below for more information on where I wish to go with this. Added an item to the Wish List located further below in this file. With so many spend-thrifty hams, do I really need to go through the code and match it with the most up-to-date version(s) of GCC for compiling? I originally developed the code using GCC version 2.95, now I'm compiling it on version 4.2.4 and it's not showing any errors during compile. If you have a specific version of GCC you're using, please submit that and proper hardware for me to run it on and I'll be more than happy to march forward :-) Changed the inactivity timeout message so that it does NOT show the FlexNet node call and gives a more specific message as to why the user was disconnected. This was a call I originally edited and have now cleaned up in node.c. There may be more of such messages. I can only test so much and for so long :) Made some more ANSI cleanups - in regards to Status and Users commands. I had them as magenta and they should only be bright white as they don't fit into any real category except for local system informations. For these I had to make routine changes as well as ANSI changes in user.c and in command.c. Also fixed the ANSI for version in NetRom. It currently had none. This was done in command.c. Also cleaned up Links and Routes ANSI in command.c and other places where needed. Originally I had the Routes as yellow which even though it points the ax25-interface that NetRom is encapsulated under, it's really more for NetRom "route"-ing... so changed it to cyan to keep with the schema. Found a disaster in ANSI routines for the Links command and the variant switches along with it! The ANSI ran to the table which I did not want to have happen and I believe I was very diligent in cleaning this up in ver 1.0.8 or 1.0.9. In any event, I recall doing this and now I have repeated my work... thus taken time away from more important tasks *sigh*. These were worked in router.c. I also cleaned up other places where ANSI ran over other strings that it shouldn't, and where it may have engaged prior to where it should. Such instances are when it would highlight over the Node-ID string (ex: MYNODE:mycall-5}). This really made my skin crawl and I *know* I fixed this before... who knows perhaps I made a cleaner routine than I had. I recall doing a LOT of code clean-up, and it appears I need to revisit this again. When I'm done, hopefully I can get rid of a few hundred lines of code that's simply commented out for testing purposes only. The sizes of your binaries should not be affected by this and I believe I've been diligent to clean up the configure script to somewhat automate this process for you. This task will be excessively time consuming! If anything it'd be an excuse for a maintenance release! Fixed a minor routine in ipc.c in regards to the Msg command. I deliberately did NOT add ANSI to this because in a way the Msg command I feel is a tad intrusive such as with an instant message, however I did clean up how an incoming message was handled to the recipient. It now (in my opinion) shows a cleaner screen. I found Craig Small's old axdigi code and made an elf compile. In layman's terms, it's a static binary and should run as-is for you. This binary claims to be fully automagic in regards to crossport digipeating unless you make changes to your interfaces in which you should restart it. This binary also should NOT require /etc/ax25/axdigi.conf anymore. I have the other binary so if you think you need it, let me know. Added an install for axdigi in Makefile.in under "install bin". Previously this file was not included, now it is. I may write a shell script to launch the daemons for you... keep an eye on this file for further info! 26/05/2013 v2.1 Fixed a bug in gateway.c where the finger "stop" ansi was white instead of red (for stop). This was one I missed not having proper routing yet to fully test. Thanks Brett WA7V for the link!! Made another change in gateway.c in regards to the handling of the flexnet destinations listing when using Flex/AX25 ONLY. There is a reason for this (believe it or not) and that's in the shell and netrom interfaces they both begin the destinations list with the string "Flexnet Destinations:". This may cause neighbor URONode/AWZNode/etc systems using flexd to improperly parse flexnet destinations from each other. At the moment, I don't have the facilities to properly test this but am hoping to work something out. Thanks to Bob K2JJT, I added an include for socket.h in ipc.c. While I never saw any errors here, I don't believe I've ever tested or compiled on a Slackware system... Bob uses Slack. K2JJT reported adding this to ipc.c helped him fix issues with his compile as it was griping about AF_NETROM. Adding it here made no difference so since it helps Slackware I'm all for being multi-distro compatable as much as humanly possible. In reviewing 2.0 changes, it had me look more into the shell function for sysops. I made a change that more defines which shell you may be in when you do a 'w' or a 'who' in a linux shell via the node. This was changed in system.c Made a patch to node.c where if called from a shell, it would coredump. Now, if it's called from a shell it simply exits back to the shell prompt. I believe the same is in other "node" variants to which the documentation directs the local sysop not to call the node from a prompt, however KI6ZHD felt this was an issue. Being harmless in nature to the function of my design I felt it wasn't harmful to add it in. This patch was provided by David Ranch KI6ZHD. Thanks to him for providing this, and eliminating any accidental core files on your hard drives, and to Steven, K6SPI for coding the patch. Thanks to David KI6ZHD for motivating me to do something I wanted to do but put it way on the back burner, and to Barry K2MF for his elite C skills. MHeard now will only print up to the 20 most recent heards. With the initial routine, it would just dump either the global list heard or if the user selected a specific interface the entire list for that interface. At first, it worked fine for telnet and/or ax25/flex connections but in NetRom it was double spacing. This was fixed by me. I chose 20 to leave room for system headers and prompt returns. In a standard 80x25 terminal screen, with a full listing, this should fill the entire screen without a need for the end user to scroll up and should help keep some traffic down on a busy network. Made a change in gateway.c to eliminate the "trying state" message only in NetRom when trying to connect to a remote NetRom node. This should keep the node more in compliance with Software2000 specifications. There was chatter within the BPQ32 user group on Yahoo that URONode was not releasing any keep-alive timers. Please, this is NOT the duty of a node Front End to control what the native protocol stack is designed to do. This is totally sysop configurable. To flag this I strongly suggest the following be added to your scripts: echo "600000" > /proc/sys/net/ax25/ax0/idle_timeout echo "600000" > /proc/sys/net/ax25/ax1/idle_timeout echo "600000" > /proc/sys/net/ax25/ax2/idle_timeout and so on... one line for each ax25 interface. This will break the keep-alive virtual circuit Netrom AND IP will use for transport, and thus break your IP as well. If you're running IP through an ax25 interface I suggest you leave this defaulted to 0 (disabled). Rewrote the auto-find routine in gateway.c in do_connect so that first order of preference for connects searches the destis table from flexd BEFORE checking the netrom nodes and mheard tables, THEN it will search for the destination in the netrom nodes if not found in the destis table and prior to searching the mheard list. If you don't use flexnet, then this shouldn't be an issue for you. As of this time, I'm unsure if this would create any bugs if you don't define FlexNet during the configure procedure. If it does, please file a report on the online forum at https://www.n1uro.net/forum for me! Made some changes in util.c and gateway.c in regards to duplicate ax25 route connection attempts. If you attempt to connect twice through the same path, same call, etc, to clarify the error handling. This was something I worked with K2MF on in regards to MFNOS. This does not mean you can't make a connect on the same interface you came in on, you will get a loop warning but the connect will attempt. If you connect from the node, and try to connect to , loop back into the node, and try to connect to the same again, you will NOT be allowed to connect. URONode will tell you that a duplicate connection is not allowed. Cleaned up the do_routes routine in command.c. Shortened "Quality" to "Qual" and renamed "Destinations" to "Nodes". After all, netrom doesn't really use "Destinations", that's more a flexnet thing. Still more cleanup to do in there *sigh*. While I was at the do_routes, I noticed missing ansi in do_routes and do_nodes. This has been fixed (and was previously in 1.0.10). I also cleaned up the ansi routine in do_destinations in router.c to match that of the netrom counterpart routines in command.c. Again, this was done in 1.0.10 *double sigh*. Rather than include an i686 elf of Craig Small's axdigi cross-port digipeater which probably would NOT work on a Raspberry PI, I added it into the Makefile by default. I also added an additional routine in the configure script to check to insure that this file is made. I also had to update axdigi.c so that it wouldn't error on the newer (as if I run newer ha!) gcc. This was done for strcpy so that it wouldn't produce errors as it does. I suspect in the "OLD" days of linux/gcc it may have been OK as I consider Craig to be one of the "village elders" of the packet system on linux. Added a man page for axdigi. READ THIS VERY CAREFULLY!! To digi through linux you *must* know some specific information and you might have to educate your users on how exactly to cross-port digi through you if they intend to do such. It's not something normally visible to them! I may add a node-help file on digi...but for now please study the man page on how. It works and works very slick as I've been testing it for a couple of months. Mheard also will learn digi paths and use them to connect to digipeated nodes if need be. Cleaned up do_nodes in command.c. Shortened Quality to Qual, and the equivilant of Obs. This will use less chars per line when doing a node or node * . I've been wanting to do this but saved it for one of those rainy day things. Guess today was that rainy day? Cleaned up more code and hope to have it finished before 2.1's final release. So far I'm doing flexd.c at this point. FYI; code cleanup will be a 2-fold process. First; I'll be formatting each file so it's at a level of consistency. Second, things I have commented out for testing that aren't needed may be permanently removed. I may leave a few things in in case someone desires to say add a 'Welcome." message to netrom (which is NOT Software2000 compliant!). Speaking of which, I see I introduced a bug when ANSI is defined for a specific user which violates Software2000 specs. I believe I did this as a fail-safe in the prompt routine however now I see it's not needed with all the other ANSI cleanups I've done. This change (deletion) was done in node.c where I forced a shutoff of ANSI upon NetRom connects only, as NetRom does not display the MOTD. I rewrote a bit of the reconnect string. The "reconnect" in uronode.conf should be set to OFF. All connections with the exception of NetRom WILL reconnect. NetRom defaults to off, however with the {S|D} flags you may manually request you stay connected. Eventually I will remove this flag in the file so it will become moot. Please change it now to OFF! This was done in gateway.c. Previously, these flags were moot in NetRom connects. With the default to OFF, this keeps the NetRom in URONode Software2000 compliant. A NetRom disconnect should *never* send any text back whether it's a user or robot/script. Now a user can request staying connected to URONode from a incoming NetRom connection. For clarity sake, this only affects the user IF they connect INTO URONode via NetRom. The "S" flag works for ax25/Flex/NetRom outbound connects. A user connecting INTO URONode via ax25/Flex/IP will still automatically be reconnected after an outbound connect. N1UAN reports make install fails to install the config files. He's correct. Changed Makefile.in so that "make install" also includes make installconf which run by itself will install just the config files for /etc/ax25. I'm also working on changing the configure script to have some "eye candy". This will be a continuing work in progress. You'll see it as it comes. You will need the package "whiptail" in order to see this new configuration routine. I don't know if this is standard amongst ALL distributions, however I do know it comes default in debian and debian based systems. If this *is* too much of an issue, I'll revert back to the old method. Almost forgot about an ANSI bug in extcmd.c where if you created an external command in the node and the user was in via NetRom, when the node issued "Welcome back." the ansi did NOT clear the color. I found this in ver 2.0 and thought I fixed it, apparently not (age catching up to me?) In any event, this is now fixed and working properly again. Since most people don't use the +512 Color flags I'm sure it was missed. Found a non-critical bug in cmdparse.s in regards to running external commands - where it would automatically input a line feed before it executed the command. This was the only routine which did this. A routine like this really got under my skin and I was determined to find and fix this finally... this was a routine I never changed, and that was halted today (28 July 2013). Instead of totally removing this line of code, I changed it to now display "Executing command... " and where ANSI is defined, it is, naturally, green. Found a non-critical bug in the Info command where it would show as the first string to the user: "Help command for help" then it would push the uronode.info file. This is very wrong. While the Info command does use the routine of do_help in command.c, Info is an independent internal command and this should not have occurred. This is now fixed with ANSI if permissions display ANSI. Updated the outdated INSTALL text document. It had some now misleading pieces of information in it as some paths and make options have been changed. Since no one has said anything to this, I'll assume no one RTFM? (not surprised! email me and say in the subject line: surprise! if you do!) Went through the example config files and heavily commented them so for new installs, it explains each line more specifically in hopes less misconfigured systems will be created. I also found some typos as to man page references - fixed. Also updated some of the help files in regards to the new changes in relation to the "stay" sub command when connecting out from URONode. Note: in node.c I modified the pre-provided segfault patch to now push text to the local console instructing the local sysop or user what/how to properly execute the node. This will (I hope) force some RTFM to occur. Syslog logging was also added in the event this occurs. Actually, after thinking about this, I figured I'd dummy it up a bit and have it launch a login anyway. This depends that the local administrator/sysop -properly configures their box- and does the following: 1 - add a line in /etc/services to point tcp/3694 to uronode 2 - add uronode as a service in inetd or xinetd 3 - insure you have a local telnet client on the box 4 - enjoy! You will be reminded about this during the login, and syslog will reflect a local console login as well.I strongly urge you not to open 2 shells and tail your syslog in one while you try to run URONode from the console. Wink Cleaned up a minor routine in do_nodes which lays in command.c where under an incoming NetRom connect, a user who did "Nodes" received an extra line feed if the columns were all equal at 4 per row. This was a bit under my skin... fixed/changed. While I was at it, I changed the output string when doing "Nodes *" from 'Nodes:' to "Detailed nodes listing:' which actually makes more sense since it is a detailed list. Fixed a minor bug in the way the prompts were handled under certain telnet clients. This was reported also by Marius Petrescu yo2loj. Under telnet, I added a carriage return (/r) along with the line feed (/n). Thank you Marius for the report. Slightly rewrote the way meminfo() was being handled. While I may have created a bug in 2.4 and lower kernels, this now should work in 2.6 and higher kernels. I guess the phrase "if it's not broke don't fix it" doesn't apply anymore? FINALLY - split the CHANGES file into a new page!! This makes it easier for me to input the change notes instead of having to scroll down for 30 seconds Smile Call me lazy but don't call me late for supper! 04/09/2013 v2.2 Made multiple .c file edits to reflect the new libax25-devel .h files. Currently these were pointing to the older kernel_*.h files and on newer linux systems was preventing compile. Now URONode should work fine. Added Marius Petrescu to the URONode team! With his c version of ripv2d, Marius will (and already has) make a huge impact on the future of URONode! Welcome Marius to the team! Made a reflection of this in the configure script. Marius brought to my attention the issue in the log timer routine where it was forcing 32-bit. He supplied code to fix this in both system.c and flexd.c. While in discussions, Marius brought it to my attention that Ubuntu (and this includes Mint and any other Ubuntu backed distributions) where they run as he calls it a "fortified libc6" which segfaults on every (what it thinks is suspicious) buffer accesseD to prevent overflows however this libc6 itself causes buffer overflowing. Why on earth did the Ubuntu team ever do this?? Anyway, we're investigating how we're going to handle this issue. I personally have verified URONode to compile and work on the new kernel 3.x series on Debian and Fedora. In "fixing" the prompt bug earlier reported by Marius, I made an error in the non-ANSI telnet prompt where the (/r) was also chopping off the first letter of a callsign! OOPS! This was reported by Ted K1YON. Fixed. ** Key news of this release: ROSE is a LOT more user friendly, AND it also has the ability to display color screens to the end user. This now means that URONode is an 8-prompt system! 4 main prompts, and 4 color prompts. The prompt system is designed to show the end user what protocol/method they used to connect into URONode with. Also proper SSIDs are displayed to match that of how the end user connected. I did this because seeing other nodes, they don't and when (as a user) connect into, for example, a NetRom node who's ssid is -12 and the node displays something -=totally=- different, I often wonder if I connected to the proper node. The new prompt schema is: telnet : user@.ampr.org:/uronode$ netrom : - this keeps in spec with Software2000 flex/ax25: => rose : -=> Each matches with its own colors as well if you run the ansi flag. The goodbye message for rose is also different than it is for flex/ax25 and telnet links. The new RoseID flag is used as a personalized message to the remote user to say a nice goodbye, and to remind them of your Rose information. The (V)ersion command also has a rose column added to show the remote user your rose information. An example of this is included in the uronode.conf.5 man page. With such, a new uronode.conf file string called RoseID has been created. Details are in the file. You must keep the single quotes ' ' around the string for it to display properly. You have been warned. Also, I've added a default ExtCmd called ROSe so those who connect remotely can get rose addresses for now. I'm sure I'll be changing this in the future. Also, I decided to eliminate the permissions flag for use of hidden interfaces. Reason being is if a sysop flags an interface to be hidden, they did so for a specific reason. With that, I moved the ANSI flag from 512 in it's place to 64. This was also changed in the man page uronode.perms.5. In regards to PBBS forwarding, I -=URGE=- you to read BBS.txt. Since there's no need for me to rewrite it, please heed my warning here. This is not something critical, just informational to help you improve your link with URONode systems. Fixed a cosmetic bug in regards to windows->linux emulation where when logging in, sentences were not getting properly wrapped. This was done in node.c. Other emulations such as PuTTY do not give you in windows full linux-type emulation. Higher profile programs such as SecureCRT will. For a free/shareware program I suggest MobiXterm. This also gives you a raw Xserver emulated screen. Of course, there are no issues if you use a standard linux console. Added a .pid file to flexd, code supplied by Jaroslav, OK2JRQ and other patches such as installer edits, etc. The only patches he supplied that I have yet to add is the install location patch, and one he feels is good for non-interactive. Source installs need to be interactive, if not you would not be compliling - just my honest opinion. I can see in the case of a possible distro package this may not be desired. The distros for now can hash that out on their own. Many more cosmetic bugs fixed/changed. Moreso in ROSE but I did find a few others in there which needed my attention. I have noticed windows terminal based programs such as PuTTY have an issue determining \n based line feeds vs \r carriage returns in C code. This mainly seems to affect the various 8 prompts. It seems if I put both in the code, Windows is happy but *nx may issue an added line-feed. I had thought I cleaned these all up but I introduced a couple old ones and some new ones with the ROSE work. 01/10/2014 -2.2 released! 02/10/2014 - 2.2.1 Improperly packaged an old flexd.c! This one should compile. This is NOT the one I want, I've been fighting with flexd for a while now. uronode.conf may not update. If it does, you will need to redo yours from scratch. Look at the one in the etc/ directory in the source and add the line for RoseId. This is required. Thanks for the above reports from VE1JOT and SP2LOB. Removed the need to have quotes around the RoseId string in URONode.conf. I found it unneccessary to have to do this. Keep the string togther ex: callsign-ssid@1000,200000 now is fine. I also find this cleaner. 12/10/2014 - v5.1 URONode release ver 51 is out!.. um.. I mean its main developer *sigh* 21/12/2014 - v2.3 Added Bob Tenty ve3tok to the development team and created a subversion server. Please welcome Bob to the team! Bob Tenty ve3tok reports when NOT using the official ax25 packages and on Ubuntu, the node when compiled natively may buffer overflow. He made changes to buffers in gateway.c, router.c, and flexd.c which prevent this. I have incorporated these changes and there's no ill effect on non Ubuntu distros. Fixed a bug I introduced into the ROSE ansi prompt where it wasn't executing a proper \n because I inadvertantly removed it. Restored. Fixed a warning in the axdigi code. Now that I'm on a more modern system I can fix these things as now I can see them better. This was also brought to my attention by Tomasz SP2L... thanks Tomasz! Figured out a way to compile and have it NOT segfault under Ubuntu. While I'll admit for the time being it's somewhat of a hack, but it *does* work for Ubuntu. There are warnings on Ubuntu compiles that don't exist on other platforms - interesting to say the least - but I think I see a relation between the warnings and the pervious Makefile. The prior statement is being left in as a comment deliberately as I hope to try and revert back to the previous method. **IMPORTANT: Per distro downstreams, I've been asked to change the paths of the URONode installs. Now your uronode and binaries will be placed in /usr/local/sbin instead of /usr/sbin. Config files will be in /usr/local/etc/ax25 instead of /usr/ax25/. Node files will now be in /usr/local/var/ax25/node or flexd instead of /var/ax25/node or flexd. If you're a thrifty ham such as myself, you'll already have symlinks created for easier management, so that /etc/ax25 is symlinked into /usr/local/etc/ax25 and so forth. Local files I can think of that would need editing if you use my standard config: /usr/local/bin/ax25 /etc/xinetd.d/uronode /etc/xinetd.d/telnet (?) /etc/ax25/ax25d.conf Added a compile flag to keep Ubuntu happy. This and other routines were at the suggestions of YO2LOJ and VE3TOK. SYSop command does NOT spawn a shell anymore. This is due to the changes with the UNIX98 file system. I'm debating on whether or not I wish to continue to keep this or possibly eliminate this (for possible security reasons). I see both PROs and CONs with it. Note: this ONLY affects those systems which force the use of /dev/ptmx in which one needs to use SOCAT to create static /dev/tty*# and /dev/pty*# pipes. This only affects the Kernel 3-series in which the older /dev/pty# system is no longer used and a master ptyx is used. I did notice UBUNTU made changes to their libraries last year (2013) in which URONode compiled but failed to execute any direct disk read/write routines. In any event, they fixed this bug late fall 2014 (at least in 12.0.4LTS). One of the nice things about Ubuntu doing this is that you can add a line in your grub configuration to have the kernel create a number of satic pseudo terminals upon boot. Debian, however, breaks this ruleset. I contacted my downstream and he hasn't responded. This would help a sysop gain a shell... however also creates a possible backdoor. Edited gateway.c so that the callsign-ssid is force altered on outbound ax25 connect requests regardless of how the inbound connect was initiated. VE1JOT reports that when a user telnets in, and gateway ax25 connects out, the callsign-0 is kept. This should be altered to a -15. This was always true when inbound connects were ax25 and also outbound connects the same. VE1JOT reports this is troublesome, and in some cases causing DM frames to occur. While I tested this and found this not to be true on my own system, I did make a code adjustment to handle this. Fixed a bug in config.h which may cause flexd not to find the proper config lines. When I changed file paths I missed a couple. Now the system as a whole should be consistant in regards to config files. Removed the need for MyGate and MyRange in flexd.conf! This was added by the request of K2BJG/SK so that the flexgate itself would be listed. Actually it is in the LINKS file. Unfortunately when trying to connect to a listed flexgate, it would try to digi via itself! Not good. While I was at it, I also increased the buffer from 512 to 1024. This may help with those gates that insist on making L A R G E MOTDs. 14/02/2015 - v2.3.1 Happy Valentine's day to the one we all love: Our Compilers! This is a critical security patch! I URGE you *all* to recompile. If anything, hopefully you've all patched your systems against GHOST. For those who wish to test their system I have a tool on my ftp site which can do this for you. Through Paul G4APL, Andy G0HXT reported a condition on Ubuntu-based systems in which a user may enter a malformed NetRom connect string into URONode and the node will buffer overflow. I fixed this in gateway.c limiting the string for searching connects on the first parameter. Also changed the error output to the user so that they may know the error may be their own. Made edits to all the man pages and the INSTALL file as suggested by Tomasz SP2L. I also grepped for certain strings in other files and made a change 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. --- see CHANGES.1 for prior changes, or CHANGES.3 for the latest changes.