Subj : Perl on_handshake(): @me contains no valid addresses
To   : All
From : Oli
Date : Wed Sep 08 2021 11:37 am

HELP! ;)
I'm trying to use the @me array in on_handshake(), but no matter what I do I always get the error:

"Perl on_handshake(): @me contains no valid addresses"

even with this simple sub:

sub on_handshake
{
 @me;
}

+ 08 Sep 09:45:26 [51014] incoming session with unknown
- 08 Sep 09:45:27 [51014] VER binkd/1.1a-112/Linux binkp/1.1
+ 08 Sep 09:45:27 [51014] addr: 4000:1/1@testnet
+ 08 Sep 09:45:27 [51014] Perl on_handshake(): @me contains no valid addresses
- 08 Sep 09:45:27 [51014] hiding aka 2000:1/2@fakenet

Is this a bug or how do I use @me? The perlhooks documentation says

5) on_handshake()
  - for server called after receiving remote addresses (before addr is sent)
  - best for hide_aka and present_aka logic :-)
  - return non-empty string to abort session with that reason
    otherwise, if @me is defined present @me as our akas


The error message is from perlhooks.c

 if ((me = perl_get_av("me", FALSE)) != NULL) {
   FTN_ADDR addr;
   int n = 0, N = av_len(me) + 1;
   if (N > 0) state->pAddr = xalloc(N*sizeof(FTN_ADDR));
   for (i = 0; i < N; i++) {
     svp = av_fetch(me, i, FALSE);
     if (svp == NULL) continue;
     if (!parse_ftnaddress(SvPV(*svp, len), &addr, cfg->pDomains.first)) continue;
     exp_ftnaddress(&addr, cfg->pAddr, cfg->nAddr, cfg->pDomains.first);
     state->pAddr[n++] = addr;
   }
   state->nAddr = n;
   if (n == 0) Log(LL_WARN, "Perl on_handshake(): @me contains no valid addresses");
 }

---
* Origin: 1995| Invention of the Cookie. The End. (2:280/464.47)