P10CFGD(1)

πŸ“¦ version 1.1, in debian bookworm, ubuntu jammy, ubuntu noble

✨ P10CFGD ✨

okay bestie, gather round, because today we're talking about p10cfgd β€” the remote configuration daemon for the Gracilis PackeTen πŸ’– it's giving vintage networking, it's giving 1993, and honestly? it ate.

🌸 SYNOPSIS 🌸

p10cfgd [IP_PORT]

Copyright (c) 1993 by Colorado Digital Eclectics (CODE)

All rights reserved.


πŸ’… DESCRIPTION πŸ’…

so Rmtcfgd is a server program that sends configuration files over to a Gracilis PackeTen πŸ“‘ it can run in the background, or it can be run by inetd β€” dealer's choice, no wrong answers.

If you want p10cfgd to be run by inetd, you gotta add this line to /etc/services:

rmtcfg    1236/tcp  # Remote Configuration of PackeTen

and then add this to /etc/inetd.conf:

# Remote configuration service for PackeTen
rmtcfg  stream  tcp  nowait  root  /usr/bin/p10cfgd  p10cfgd

P10cfgd normally does not need the IP_PORT parameter, no cap. It just listens for connections on IP Port 1236 as the default, like the main character it is πŸ’β€β™€οΈ

The program sends the file requested by the client (the one that connects on the IP Port) on a line by line basis. The only input it expects from the client is the file name. Once the file has been sent, the connection gets closed. and the requested file must live in the directory /etc/p10cfgd πŸ“

Rmtcfgd keeps a log of everything it does in /var/log/p10cfgd.log πŸ“ program startup and all connections get logged in that file with GMT time stamps, and the file is opened in append mode. lowkey obsessive, highkey useful.

So the protocol the PackeTen uses is very simple, and I'm obsessed with it actually:

  1. The PackeTen opens a tcp connection to port 1236 on a host system.
  2. Once the connection is made, the PackeTen sends the name of the file it wants to the host.
  3. The host then opens that file and sends it line by line to the PackeTen until all the lines have been sent.

The files being transferred must be plain text files, and each line must have at least one character in addition to the newline at the end ⚠️ no empty-line nonsense allowed.

Here's the fun part though β€” P10cfgd replaces all blank lines with lines that contain two spaces. So if you actually want to send a blank line (say, to stop loading part of a LocalInfo file), you place an underscore _ at the beginning of the line. The entire contents of the line will be deleted, and a blank line will be sent to the client 🫢

At the end of the file, the server sends a time command:

time MMDDYYHHMM

...with the UTC time on the server. This will either set the time on the PackeTen, or add a time stamp to the LocalInfo file. Then the server closes the connection. bye bestie πŸ‘‹


The remote configuration command used on the PackeTen is:

rmtcfg <server_host> <filename> [options]

The valid options are:

     -t  <timeout in seconds>  default is 60 sec
     -p  <IP port #>           default is 1236
     -i                     the file is for LocalInfo
     -h  <secondary server>    if the primary does not answer

The rmtcfg commands would be placed into the EEPROM on the PackeTen so that they'd be executed during a reboot πŸ” and the info stored in the EEPROM should include enough information to set the PackeTen up so it can communicate with the primary and the secondary server. That means commands to set MYCALL and the IP_ADDRESS, to attach an interface to the channel with the server, routing information, and so forth β€” the whole glow-up routine ✨

Here's a sample EEPROM configuration for a PackeTen, empire.wd0fhg.ampr.org [44.32.0.32], that gets its configuration from a remote system winfree.n3eua.ampr.org [44.32.0.2], over a 9600 baud ax25 path:

# first the general setup of the PackeTen
ee hostname gw.wd0fhg
ee sitename empire
ee ipaddr  44.32.0.32
ee mycall WD0FHG
# Then we attach a 9600 ax25 interface as ax1
ee attach sync302 1 hdx ax25 ax1 8192 256 9600 ext ext nrzi
# and set the default route to send every thing out ax1
ee route add default ax1 44.32.0.1
ee password sure-thing
#
# Now we will ask for the remainder of the setup
# from the server winfree.n3eua.ampr.org [44.32.0.2]
# Note that we have a secondary server available at
# [44.20.0.195] that would be used if winfree is down.
# first the Local Information file
ee com 0 rmtcfg 44.32.0.2 empire.info -i -h 44.20.0.195
# and then the remaining configuration command file
ee com 1 rmtcfg 44.32.0.2 empire.cfg -h 44.20.0.195
#
ee save
#    end-of-eeprom setup

and a lil origin story for you: Rmtcfgd started life as the simple server program in PERL by Larry Wall and R.L. Schwartz, published by ORA,Inc. 🧚 the lore is real.


🌈 ENVIRONMENT 🌈

No environment variables are used. that's it, that's the whole section πŸ’€

πŸŽ€ FILES πŸŽ€

  • /etc/p10cfgd/* β€” files that can be accessed remotely
  • /var/log/p10cfgd.log β€” p10cfgd log file

⭐ AUTHOR ⭐

John Conner, WD0FHG, conner@empire.com hacked on by Bdale Garbee, N3EUA, bdale@gag.com.

πŸ¦‹ SEE ALSO πŸ¦‹

Gracilis, Inc. PackeTen Manual and NOS User's Manual

πŸ”₯ DIAGNOSTICS πŸ”₯

Complains if it can't open a file to remote client and to log file. valid of it honestly, I'd complain too πŸ’€


and that's the whole page bestie, you're officially a p10cfgd girlie now πŸ’…

this was 7th Edition, dated July 29, 1993 β€” yeah it's vintage, it's retro, it's iconic, periodt πŸŽ€βœ¨

πŸ“¦ where this page comes from