Coder Social home page Coder Social logo

johnforecast / linuxdecnet Goto Github PK

View Code? Open in Web Editor NEW
9.0 4.0 0.0 1.53 MB

DECnet as an external module for Linux

Shell 1.64% Makefile 1.59% C 75.47% Roff 4.06% DIGITAL Command Language 0.47% C++ 16.10% mIRC Script 0.01% Fortran 0.18% Batchfile 0.45% Awk 0.02%

linuxdecnet's Issues

dncopy: SIGABRT on larger files

dncopy will copy smaller files, but larger ones will either hang indefinitely or crash with SIGABRT.

ncp show exec char
Node Volatile Characteristics as of 17-Dec-2023 19:33:54

Executor node = 1.1 (ATR2)

Identification           = Linux DECnet V3.2 on x86_64
Management version       = V4.0.0
Outgoing timer           = 60
NSP version              = V4.0.0
Routing version          = V2.0.0
Type                     = Nonrouting IV
Maximum circuits         = 1
Segment buffer size      = 576

File sizes, copy with a smaller file (ANSI color graphic), VMS 7.3:

ls -l vernon.ans decusutls.zoo 
-rw------- 1 jayjwa users 2012801 Dec 15 01:41 decusutls.zoo
-rw------- 1 jayjwa users   64870 Jul  4 22:28 vernon.ans

jayjwa@atr2 ~/Downloads> dncopy -v -s -m record vernon.ans 'lunast"jayjwa -"::'
Password: 
'/home/jayjwa/Downloads/vernon.ans' copied to 'lunast"jayjwa password"::DUA1:[JAYJWA]VERNON.ANS;1', 41 records
Sent 64870 bytes in 149.61 seconds: 0.42K/s

Larger file (zoo archive from Digiater):

jayjwa@atr2 ~/Downloads [SIGINT]> dncopy -v -s -m block decusutls.zoo 'lunast"jayjwa -"::'
Password: 
Fatal error: glibc detected an invalid stdio handle
fish: Job 5, 'dncopy -v -s -m block decusutls…' terminated by signal SIGABRT (Abort)

On the VMS side, we have a zero length file.

$ dir /since /size

Directory DUA1:[JAYJWA]

DECUSUTLS.ZOO;1            0
NETSERVER.LOG;24           1
NETSERVER.LOG;23           2
VERNON.ANS;1             127

Total of 4 files, 130 blocks.

Sometimes the process will hang for a very long time (10+ minutes) before having to be stopped with Ctrl-C. On the VMS side, sometimes the process has to be STOPped to allow the zero length file to be deleted.

Other times there's a SIGSEGV.

dncopy -v -s -m block evil-kade.sixel 'lunast"jayjwa password"::'
fish: Job 5, 'dncopy -v -s -m block evil-kade…' terminated by signal SIGSEGV (Address boundary error)
jayjwa@atr2 ~/Downloads [SIGSEGV]> ls -l evil-kade.sixel 
-rw------- 1 jayjwa users 393213 Dec 17 14:35 evil-kade.sixel

There's plenty room on that disk so that cannot be the problem.

$ free
Device Name      Volume Label   Type      Used Blocks     Free Blocks      Total
---------------- -------------- ------ --------------- --------------- ---------
LUNAST$DUA0:     OVMSVAXSYS     RA92     2210916 (76%)    730035 (24%)   2940951
LUNAST$DUA1:     VMSUSERS       RA92       56814 ( 2%)   2884137 (98%)   2940951

Totals:                2 mounted disks    1160MB (39%)    1849MB (61%)    3009MB
$ 
LUNAST::JAYJWA 20:00:28   (DCL)   CPU=00:00:04.86 PF=17474 IO=1751 MEM=334

VMS 5.5 system:

jayjwa@atr2 ~/Downloads> dncopy -v -s -m block rodent.ans 'kushal"system -"::'
Password: 
fish: Job 5, 'dncopy -v -s -m block rodent.an…' terminated by signal SIGSEGV (Address boundary error)
jayjwa@atr2 ~/Downloads [SIGSEGV]> zsh
jayjwa@atr2 ~/Downloads % dncopy -v -s -m block rodent.ans 'kushal"system -"::'
Password: 
zsh: segmentation fault  dncopy -v -s -m block rodent.ans 'kushal"system -"::'

This happens with VMS 5.5 and 7.3 both. A file around 400k or larger seems to trip it. This small text file is fine:

jayjwa@atr2 ~/Downloads [SIGSEGV]> dncopy -v -s -m record o38jy31usa.txt 'lunast"jayjwa -"::'
Password: 
'/home/jayjwa/Downloads/o38jy31usa.txt' copied to 'lunast"jayjwa password"::DUA1:[JAYJWA]O38JY31USA.TXT;1', 213 records
Sent 15662 bytes in 0.17 seconds: 88.24K/s

glibc-2.38. Although my kernel is newer now (6.6.6) I don't think that's an issue as everything that worked before still works now. Unfortunately, my password ends up in a packet trace so I'll have to set up another test if a packet capture is needed.

dnlogin/sethost terminal misbehavings

Though I've seen this behavior for awhile, I've been hesitant to report it as I was not sure it was a local issue or not. Now, with 4 ways (telnet, rlogin, LAT, dnlogin/sethost) to remote login to a VMS node, I think I can say with some degree of certainty something is off with dnlogin/sethost's terminal handling. This behavior is noticeable with various utilities, such as Kermit, MAIL, the edit/tpu (EVE) editor, or even (see test at the end) CREATE.

Consider a correctly working terminal via TELNET:

$ show term
Terminal: _TNA3:      Device_Type: VT100         Owner: JAYJWA
Remote Port Info: Host: atr2.lan Port: 34088

   Input:    9600     LFfill:  0      Width:  80      Parity: None
   Output:   9600     CRfill:  0      Page:   23      

Terminal Characteristics:
   Interactive        Echo               Type_ahead         No Escape
   No Hostsync        TTsync             Lowercase          Tab
   Wrap               Scope              No Remote          No Eightbit
   Broadcast          No Readsync        No Form            Fulldup
   No Modem           No Local_echo      No Autobaud        Hangup
   No Brdcstmbx       No DMA             No Altypeahd       Set_speed
   No Commsync        Line Editing       Insert editing     No Fallback
   No Dialup          No Secure server   No Disconnect      No Pasthru
   No Syspassword     No SIXEL Graphics  No Soft Characters No Printer Port
   Numeric Keypad     ANSI_CRT           No Regis           No Block_mode
   Advanced_video     No Edit_mode       DEC_CRT            No DEC_CRT2
   No DEC_CRT3        No DEC_CRT4        No DEC_CRT5        No Ansi_Color
   VMS Style Input

A correctly working terminal via llogin (LAT):

$ show term
Terminal: _LTA5007:   Device_Type: VT100         Owner: JAYJWA
LAT Server/Port: ATR2//dev/pts/11

   Input:    9600     LFfill:  0      Width:  80      Parity: None
   Output:   9600     CRfill:  0      Page:   23      

Terminal Characteristics:
   Interactive        Echo               Type_ahead         No Escape
   No Hostsync        TTsync             Lowercase          Tab
   Wrap               Scope              No Remote          No Eightbit
   Broadcast          No Readsync        No Form            Fulldup
   No Modem           No Local_echo      No Autobaud        Hangup
   No Brdcstmbx       No DMA             No Altypeahd       Set_speed
   No Commsync        Line Editing       Insert editing     No Fallback
   No Dialup          No Secure server   No Disconnect      No Pasthru
   No Syspassword     No SIXEL Graphics  No Soft Characters No Printer Port
   Numeric Keypad     ANSI_CRT           No Regis           No Block_mode
   Advanced_video     No Edit_mode       DEC_CRT            No DEC_CRT2
   No DEC_CRT3        No DEC_CRT4        No DEC_CRT5        No Ansi_Color
   VMS Style Input

Rlogin is similar to the above two (example omitted for brevity). Dnlogin session with terminal problems:

$ show term
Terminal: _RTA1:      Device_Type: VT200_Series  Owner: JAYJWA
Remote Port Info: ATR2::Linux0000

   Input:    9600     LFfill:  0      Width:  80      Parity: None
   Output:   9600     CRfill:  0      Page:   23      

Terminal Characteristics:
   Interactive        Echo               Type_ahead         No Escape
   No Hostsync        TTsync             Lowercase          Tab
   Wrap               Scope              No Remote          Eightbit
   Broadcast          No Readsync        No Form            Fulldup
   No Modem           No Local_echo      No Autobaud        No Hangup
   No Brdcstmbx       No DMA             No Altypeahd       Set_speed
   No Commsync        Line Editing       Insert editing     No Fallback
   No Dialup          No Secure server   No Disconnect      No Pasthru
   No Syspassword     No SIXEL Graphics  No Soft Characters No Printer Port
   Numeric Keypad     ANSI_CRT           No Regis           No Block_mode
   Advanced_video     No Edit_mode       DEC_CRT            No DEC_CRT2
   No DEC_CRT3        No DEC_CRT4        No DEC_CRT5        No Ansi_Color
   VMS Style Input

$ eve linetest.txt

                                                      ;H[End of file]K22;H;7m Buffer: LINETEST.TXT                                | Write | Insert | Forward m
KK22A

Properly working mail editing via rlogin session (note lines):

$ mail

MAIL> send             
To:     atr2::jayjwa
Subj:   Mail from rlogin session
Enter your message below. Press CTRL/Z when complete, or CTRL/C to quit:
Line one.
Line two.
Line three.
 Exit 

MAIL>

dnlogin mail session keeps overwriting message space (note "Line three"):

$ mail

MAIL> send
To:     atr2::jayjwa
Subj:   Testing mail from dnlogin session
Line three.message below. Press CTRL/Z when complete, or CTRL/C to quit:

MAIL>

It is not possible to change the term type to vt100 like the working examples:

$ set term /device_type=VT100
$ show term
Terminal: _RTA1:      Device_Type: VT200_Series  Owner: JAYJWA
Remote Port Info: ATR2::Linux0000

Strange behavior with Kermit, via dnlogin, not present with LAT login (note echos):
DUA1:[JAYJWA] C-Kermit>sshhooww vveerrssiioonn

The easiest way to test this is likely with CREATE.
xterm VAX 5.5 dnlogin:

$ create dnlinetest.txt
Line three.linetest.txt

$ type dnlinetest.txt  
Line one.
Line two.
Line three.

xterm VAX 5.5 llogin (LAT):

$ create lllinetest.txt
Line one.
Line two.
Line three.
 Exit 

$ type lllinetest.txt
Line one.
Line two.
Line three.

xterm dnlogin VAX 7.3:

$ create dnlinetest.txt
Line three.nlinetest.txt

$ type dnlinetest.txt
Line one.
Line two.
Line three.

xterm telnet VAX 7.3:

$ create tlinetest.txt
Line one.
Line two.
Line three.
 Exit 

$ type tlinetest.txt
Line one.
Line two.
Line three.

All tests from the same UXterm ( xterm -class UXTerm -u8 -fg bisque1 -bg black -fn -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso10646-1 -bc +ai -132 +cm -j -kt vt220 +mesg +si) (TERM=xterm) and Tmux (TERM=sixel-tmux). The same behavior occurs with no Tmux. While Xterm is most likely the most "DECnet friendly", the same occurs with Urxvt (TERM=rxvt-unicode), or even just "xterm" (TERM=xterm).

phoned: 100% CPU usage even when not directly in use

phoned seems to pick up even when it's not being called. Consider:

#V001.0
#               DECnet hosts file
#
#Node           Node            Name            Node    Line    Line
#Type           Address         Tag             Name    Tag     Device
#-----          -------         -----           -----   -----   ------
executor	1.1		name            ATR2    line	br0
node		1.10 		name		DTSR
node		1.11 		name		KIRIN
node		1.12		name		KUSHAL
node		1.13 		name		TEOSTR
node		1.14 		name		LUNAST
node		1.15		name		NERGIG

Phoning from VMS nodes KUSHAL (%phone lunast::system) to LUNAST ($phone answer) should not involve Linux node ATR2, yet phoned hits 100% CPU use and stays up, even though it is not in use. It's not enough to slow the system significantly, but it is noticeable.

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
32171 nobody    20   0    3036   2036   1908 S 100.0   0.0   0:30.49 phoned

At this point, phoned has to be pkill'd and restarted, even after the nodes are done with the call. Another phone will produce the same results. phoned is fine - as long as it doesn't see phone traffic on the LAN that isn't meant for it. phone to the Linux node works as expected. Another example:

32479 nobody 20 0 3036 1536 1536 S 100.0 0.0 1:04.01 phoned

There's nothing noteworthy in the logs, just that phoned is starting. No matter what the VMS nodes are doing, it shouldn't put the CPU to 100% on the Linux node since it's not actually involved.

/usr/local/bin/node lunast
lunast has address 1.14
/usr/local/bin/node kushal
kushal has address 1.12

The packet capture shows the Linux node as well, 1.1.
phoned-100.pcap.gz

The same type of situation might be happening with ctermd as well, but for now let's look at phoned. This is decnet 3.0.4.

Packaging issues

I'm creating a Slackbuild script (packaging) for Slackware. I've noticed a few minor issues. They may affect people packaging the source for other distros as well.

  • Non-executable solibs
    Shared libraries are usually mode 0755 (but still work otherwise). You can see some being installed 644 here:
~/p/s/d/L/dnprogs (master)> find . -name Makefile -exec grep -H 'install -m 0644 $(STRIP
BIN) $(SHAREDLIB)' '{}' ';'
./libdaemon/Makefile:	install -m 0644 $(STRIPBIN) $(SHAREDLIB) $(libprefix)$(libdir)
./libdap/Makefile:	install -m 0644 $(STRIPBIN) $(SHAREDLIB) $(libprefix)$(libdir)
./libdnet/Makefile:	install -m 0644 $(STRIPBIN) $(SHAREDLIB) $(libprefix)$(libdir)/$(SHAREDLIB)
./librms/Makefile:	install -m 0644 $(STRIPBIN) $(SHAREDLIB) $(libprefix)$(libdir)
  • node
    https://nodejs.org/en Node.Js is a popular Javascript runtime environment, likely to be installed on many people's systems. This is the case with Slackware. It has a /usr/bin/node binary. When Linux DECnet is packaged, it will likely be based on /usr and clobber node with node.
usr/
usr/bin/
usr/bin/dncopy
usr/bin/dndel
usr/bin/dndir
usr/bin/dnetcat
usr/bin/dnetstat
usr/bin/dnlogin
usr/bin/dnping
usr/bin/dnsubmit
usr/bin/dntask
usr/bin/dts
usr/bin/node
usr/bin/phone
usr/bin/sethost

With a nod to nslookup, and keeping with the "dn" prefix, suggest to rename node to dnlookup along with its corresponding man page. Renaming the program would avoid this situation, and bring its name in line with its work-alike, nslookup.

  • phone
    When I built the project for release, I used make RELEASE=1 in the dnprogs subdir. Surprisingly, this resulted in phone not running. It seems when RELEASE is defined, GTK checks are skipped, and phone builds without GUI.

Built without RELEASE=1:

jayjwa@atr2 ~/p/s/d/L/d/phone (master)> ldd phone
        linux-vdso.so.1 (0x00007ffff7fc4000)
        libpanelw.so.6 => /lib64/libpanelw.so.6 (0x00007ffff7f76000)
        libncurses.so.6 => /lib64/libncurses.so.6 (0x00007ffff7f4a000)
        libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007ffff7f16000)
        libdnet.so.3 => /usr/lib64/libdnet.so.3 (0x00007ffff7f0d000)
        libgtk-1.2.so.0 => /usr/lib64/libgtk-1.2.so.0 (0x00007ffff7d87000)
        libgdk-1.2.so.0 => /usr/lib64/libgdk-1.2.so.0 (0x00007ffff7d43000)
        libgmodule-1.2.so.0 => /usr/lib64/libgmodule-1.2.so.0 (0x00007ffff7d3c000)
        libglib-1.2.so.0 => /usr/lib64/libglib-1.2.so.0 (0x00007ffff7d0b000)
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007ffff7cf8000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007ffff7ce4000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007ffff7ba4000)
        libm.so.6 => /lib64/libm.so.6 (0x00007ffff7abb000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff7800000)
        libncursesw.so.6 => /lib64/libncursesw.so.6 (0x00007ffff7a7d000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff7a78000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007ffff7a50000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7fc6000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007ffff7a4b000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007ffff7a41000)

(working)

Built with make RELEASE=1:

jayjwa@atr2 ~/p/s/d/L/d/phone (master)> ldd phone
        linux-vdso.so.1 (0x00007ffff7fc4000)
        libpanelw.so.6 => /lib64/libpanelw.so.6 (0x00007ffff7f76000)
        libncurses.so.6 => /lib64/libncurses.so.6 (0x00007ffff7f4a000)
        libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007ffff7f16000)
        libdnet.so.3 => /usr/lib64/libdnet.so.3 (0x00007ffff7f0d000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff7c00000)
        libncursesw.so.6 => /lib64/libncursesw.so.6 (0x00007ffff7ed1000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff7eca000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7fc6000)

%fish: Job 1, './phone' terminated by signal SIGSEGV (Address boundary error)
%
 Program received signal SIGSEGV, Segmentation fault.
(gdb) bt
#0  0x00007ffff7f6c47e in ?? () from /lib64/libncurses.so.6
#1  0x00007ffff7f6c981 in wresize () from /lib64/libncurses.so.6
#2  0x0000000000402bf9 in rearrange_windows ()
#3  0x0000000000402cca in new_talk_window ()
#4  0x0000000000403a21 in ncurses_run ()
#5  0x00000000004026b2 in main ()
(gdb)

(not working)
That is, the TUI phone doesn't seem to run while the GUI one does. Slackware updated ncurses not too long ago (though I only used the GUI phone before), so maybe that's the issue. I thought I'd poinit it out.

Can't reboot RPi with LinuxDECnet installed

HW: RPi 4B 2GB memory, USB boot
SW: Debian 12 (bookworm), clean install from Raspbian.com image
Kernel: 6.1.0-rpi4-rpi-v8

DECnet installed and working. On reboot, get a loop of messages:

unregister_netdevice: waiting for eth0 to become free. Usage count = 2
eth0 selects TX queue 0, but real number of TX queues is 0

stopping decnet3.service before reboot doesn't help.

If decnet3.service is not enabled, and not started, reboot proceeds

Build error: incompatible pointer type (dapfs_statfs) on 6.6.32

It was fine on 6.6.30. Something changed?

dapfs.c: At top level:
dapfs.c:594:21: error: initialization of ‘int (*)(const char *, struct statvfs *)' from incompatible pointer type ‘int (*)(const char *, struct statfs *)' [-Wincompatible-pointer-types]
  594 |         .statfs   = dapfs_statfs,
      |                     ^~~~~~~~~~~~
dapfs.c:594:21: note: (near initialization for ‘dapfs_oper.statfs')
dapfs.c:76:18: warning: ‘RFM_STMCR' defined but not used [-Wunused-const-variable=]
   76 | static const int RFM_STMCR = 6;
      |                  ^~~~~~~~~
dapfs.c:74:18: warning: ‘RFM_STM' defined but not used [-Wunused-const-variable=]
   74 | static const int RFM_STM = 4;
      |                  ^~~~~~~
dapfs.c:73:18: warning: ‘RFM_VFC' defined but not used [-Wunused-const-variable=]
   73 | static const int RFM_VFC = 3;
      |                  ^~~~~~~
dapfs.c:72:18: warning: ‘RFM_VAR' defined but not used [-Wunused-const-variable=]
   72 | static const int RFM_VAR = 2;
      |                  ^~~~~~~
dapfs.c:71:18: warning: ‘RFM_FIX' defined but not used [-Wunused-const-variable=]
   71 | static const int RFM_FIX = 1;
      |                  ^~~~~~~
dapfs.c:70:18: warning: ‘RFM_UDF' defined but not used [-Wunused-const-variable=]
   70 | static const int RFM_UDF = 0; // RMS RFM values from fab.h
      |                  ^~~~~~~
dapfs.c:69:18: warning: ‘RFM_DEFAULT' defined but not used [-Wunused-const-variable=]
   69 | static const int RFM_DEFAULT = -1; // Use RMS defaults
      |                  ^~~~~~~~~~~
dapfs.c:67:18: warning: ‘RAT_NONE' defined but not used [-Wunused-const-variable=]
   67 | static const int RAT_NONE = 0;
      |                  ^~~~~~~~
dapfs.c:63:18: warning: ‘RAT_DEFAULT' defined but not used [-Wunused-const-variable=]
   63 | static const int RAT_DEFAULT = -1; // Use RMS defaults
      |                  ^~~~~~~~~~~
make[1]: *** [<builtin>: dapfs.o] Error 1
make[1]: Leaving directory '/usr/src/LinuxDECnet/dnprogs/dapfs'
make: *** [Makefile:27: all] Error 2

Latest git as of this writing, gcc 14.1.0, Linux 6.6.32.

FAL (new) network operation not supported on file copy

FAL (new, in the fal sub directory), will allow file listing from OpenVMS 7.3 to Linux

$ dir atr2"jayjwa password"::
  
Directory ATR2"jayjwa password"::
  
/home/jayjwa/Desktop/                   /home/jayjwa/Downloads/
/home/jayjwa/EnergyMech/                /home/jayjwa/GKrellM-skins/
/home/jayjwa/GNUstep/                   /home/jayjwa/Gophie/
/home/jayjwa/Narghiles.txt              /home/jayjwa/News/
...

but will not copy files back into Linux:

$ copy VERNON.ANS atr2"jayjwa password"::
%COPY-E-OPENOUT, error opening ATR2"jayjwa password"::[]VERNON.ANS;1 as output
-RMS-F-SUPPORT, network operation not supported
-FAL-F-RFM, record format field rejected
%COPY-W-NOTCOPIED, DUA1:[JAYJWA]VERNON.ANS;1 not copied

FAL (old, in the fal-old sub directory) will allow both file listing and copying without error.

$ copy VERNON.ANS atr2"jayjwa password"::
$ dir atr2"jayjwa password"::

Directory ATR2"jayjwa password"::HOME:[JAYJWA]

DESKTOP.DIR;1       DOWNLOADS.DIR;1     ENERGYMECH.DIR;1    GKRELLM-SKINS.DIR;1
GNUSTEP.DIR;1       GOPHIE.DIR;1        NARGHILES.TXT;1     NEWS.DIR;1
...
TOOLS.DIR;1         UUCP.DIR;1          VERNON.ANS;1        VMS_INSTALL.LOG;1
...

Non-working dnetd.conf FAL line:
FAL 17 Y,N none fal -vv
working (changed out binary):
FAL 17 Y,N none fal.old -vv

VMSmail hangs or garbles messages

x86_64 AMD Ryzen 5, Linux Slackware (current), 6.5.5 (kernel.org)
Sendmail 8.17.2

Network layout:

Node                     HWtype  HWaddress           Flags  MTU        Iface
ATR2                     loop    AA:00:04:00:01:04   ---    65533      lo
NERGIG                   ether   AA:00:04:00:0F:04   ---    1498       br0
LUNAST                   ether   AA:00:04:00:0E:04   ---    1498       br0
TEOSTR                   ether   AA:00:04:00:0D:04   ---    1498       br0
KUSHAL                   ether   AA:00:04:00:0C:04   ---    1498       br0
KIRIN                    ?       AA:00:04:00:0B:04   ---    0          0001498

OpenVMS 7.3 on [lunast]ra:

jayjwa@atr2 /u/s/L/d/mail> rsh -4 lunast show net

Product:  DECNET        Node:  LUNAST               Address(es):  1.14
Product:  TCP/IP        Node:  lunast.lan           Address(es):  192.168.20.3

Sending from VMS sometimes hangs, forcing ctrl-Y exit.

$ mail

MAIL> send
To:	atr2::jayjwa
Subj:	Test of mail from VMS to Linux
Enter your message below. Press CTRL/Z when complete, or CTRL/C to quit:
As the subject states...
 Exit 
 Cancel 

 Interrupt

A connection shows but nothing in the maillog. Debug info shows dnetd sees the connection.

Active DECnet sockets (servers and established)
Proto  Local Address            Foreign Address          Dir State         Accept mode
 decnet *::PHONE                 *::*                     IN  LISTEN        IMMED
decnet ATR2::FAL                KUSHAL::SYSTEM               CLOSED        
decnet ATR2::MAIL               LUNAST::JAYJWA               ESTABLISHED   
decnet ATR2::FAL                KIRIN::SYSTEM                CLOSED        
decnet ATR2::FAL                KIRIN::SYSTEM                CLOSED

2023-10-29T20:51:10.699694-04:00 atr2 dnetd[21015]: Connection from: LUNAST::jayjwa
2023-10-29T20:51:10.703538-04:00 atr2 vmsmaild[7104]: got local user: JAYJWA

From Linux to VMS (.com added to hostname to defeat spambots), mail never arrives:

mailx -s "Test of mail from Linux to OpenVMS" 'lunast::jayjwa <vmsmail>'
To: "lunast::jayjwa" <[email protected]>
Subject: Test of mail from Linux to OpenVMS

Testing from Linux to VMS...
^D
-------
(Preliminary) Envelope contains:
To: "lunast::jayjwa" <[email protected]>
Subject: Test of mail from Linux to OpenVMS
Send this message [yes/no, empty: recompose]? yes


$ mail

MAIL> dir
%MAIL-E-NOTEXIST, folder MAIL does not exist

MAIL> 
LUNAST::JAYJWA 21:02:23 MAIL      CPU=00:00:01.14 PF=11124 IO=165 MEM=761
MAIL>

What Sendmail thinks about it:

2023-10-29T21:01:23.162164-04:00 atr2 sendmail[7614]: 39U11Nis007614: from=jayjwa, size=182, class=0, nrcpts=1, msgid=<[email protected]>, relay=jayjwa@localhost
2023-10-29T21:01:23.227555-04:00 atr2 sm-mta[7616]: NOQUEUE: connect from jayjwa@localhost [127.0.0.1]
2023-10-29T21:01:23.228467-04:00 atr2 sm-mta[7616]: 39U11Nhu007616: Milter (milter-regex): init success to negotiate
2023-10-29T21:01:23.228471-04:00 atr2 sm-mta[7616]: 39U11Nhu007616: Milter: connect to filters
2023-10-29T21:01:23.320282-04:00 atr2 sm-mta[7616]: tls_srv_features=(null), relay=localhost [127.0.0.1]
2023-10-29T21:01:23.320287-04:00 atr2 sm-mta[7616]: tls_srv_features=empty, stat=0, relay=localhost [127.0.0.1]
2023-10-29T21:01:23.339944-04:00 atr2 sendmail[7614]: STARTTLS=client, relay=[127.0.0.1], version=TLSv1.3, verify=OK, cipher=TLS_AES_256_GCM_SHA384, bits=256/256
2023-10-29T21:01:23.340925-04:00 atr2 sm-mta[7616]: STARTTLS=server, relay=jayjwa@localhost [127.0.0.1], version=TLSv1.3, verify=OK, cipher=TLS_AES_256_GCM_SHA384, bits=256/256
2023-10-29T21:01:23.427944-04:00 atr2 sm-mta[7616]: ruleset=trust_auth, [email protected], relay=jayjwa@localhost [127.0.0.1], reject=550 5.7.1 <[email protected]>... not authenticated
2023-10-29T21:01:23.504374-04:00 atr2 sm-mta[7616]: 39U11Nhv007616: from=<[email protected]>, size=419, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTPS, daemon=MTA, relay=jayjwa@localhost [127.0.0.1]
2023-10-29T21:01:23.504398-04:00 atr2 sm-mta[7616]: 39U11Nhv007616: Milter accept: message
2023-10-29T21:01:23.539542-04:00 atr2 sendmail[7614]: 39U11Nis007614: [email protected], ctladdr=jayjwa (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30182, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (39U11Nhv007616 Message accepted for delivery)
2023-10-29T21:01:23.773353-04:00 atr2 sm-mta[7619]: 39U11Nhv007616: to=|/usr/local/sbin/sendvmsmail, ctladdr=<[email protected]> (197/12), delay=00:00:00, xdelay=00:00:00, mailer=prog, pri=30694, dsn=2.0.0, stat=Sent
2023-10-29T21:01:23.814437-04:00 atr2 sm-mta[7619]: 39U11Nhv007616: done; delay=00:00:00, ntries=1

I don't think the "not authenticated" bit matters. I can send mail from here to a Solaris host and from there back.

jayjwa@atr2 ~> mailx -s "Test of mail to Solaris" [email protected]
To: [email protected]
Subject: Test of mail to Solaris

To show that mail is working...
^D
-------
(Preliminary) Envelope contains:
To: [email protected]
Subject: Test of mail to Solaris
Send this message [yes/no, empty: recompose]? yes

Trying 192.168.20.5...
Connected to kulve.lan.
Escape character is '^]'.


SunOS 5.9

login: jayjwa
Password: 
Last login: Sat Oct 28 21:10:26 from atr2:2
Sun Microsystems Inc.   SunOS 5.9       Generic May 2002
You have new mail.
[21:25 jayjwa@kulve:~ >] mailx                                       [pts/5 hst:1]
mailx version 5.0 Sat Apr  6 14:57:29 PST 2002  Type ? for help.
"/var/mail/jayjwa": 1 message 1 new
>N  1 jayjwa             Sun Oct 29 21:24   22/909   Test of mail to Solaris
? 

In other words, SMTP mail is working. Sometimes the DEC mail arrives with headers only but no body. Here is one with no body (also from OpenVMS 7.3 but another node):

jayjwa@atr2 ~> mailx
mailx version v14.9.24.  Type `?' for help
/var/spool/mail/jayjwa: 2 messages 1 new
 O  1 Mail System Intern 2023-10-29 19:17   13/536   DON'T DELETE THIS MESSAGE -
▸N  2 KIRIN::USER   2023-10-29 21:10   20/758   I hope this one gets thru..
? 2
[-- Message  2 -- 20 lines, 758 bytes --]:
Date: Sun, 29 Oct 2023 21:10:39 -0400
Message-Id: <[email protected]>
From: [email protected] (KIRIN::USER )
Subject: I hope this one gets thru...
To: [email protected]
Cc: [email protected]

--
?

Notice the subject landed in the CC, and the body landed in the Subject. The "forward" file is set up as per instructions.

cat /var/spool/vmsmail/.forward 
  |/usr/local/sbin/sendvmsmail
grep vmsmail /etc/passwd
  vmsmail:x:197:12:VMS/DECNET mail gateway user:/var/spool/vmsmail:/bin/ksh

There's no vmsmail.conf (not needed) and dnetd.conf is mostly default except for the Mirror object.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.