TIP: Click on subject to list as thread! ANSI
echo: binkd
to: All
from: Oli
date: 2021-09-08 11:37:00
subject: Perl on_handshake(): @me

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)

SOURCE: echomail via QWK@pharcyde.org

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.