From b4ccc4c8dec3b4421f5f644424103eb0274d446a Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 21 Jan 2007 23:56:48 +0000 Subject: Check socket address to get the dynamic PSM and channel values --- test/l2test.c | 12 ++++++++++++ test/rctest.c | 14 +++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/l2test.c b/test/l2test.c index c7155e73..733c0524 100644 --- a/test/l2test.c +++ b/test/l2test.c @@ -370,6 +370,18 @@ static void do_listen(void (*handler)(int sk)) goto error; } + /* Check for socket address */ + memset(&addr, 0, sizeof(addr)); + optlen = sizeof(addr); + + if (getsockname(sk, (struct sockaddr *) &addr, &optlen) < 0) { + syslog(LOG_ERR, "Can't get socket name: %s (%d)", + strerror(errno), errno); + goto error; + } + + psm = btohs(addr.l2_psm); + syslog(LOG_INFO, "Waiting for connection on psm %d ...", psm); while(1) { diff --git a/test/rctest.c b/test/rctest.c index ff3b50e8..80117d23 100644 --- a/test/rctest.c +++ b/test/rctest.c @@ -206,7 +206,19 @@ static void do_listen(void (*handler)(int sk)) goto error; } - syslog(LOG_INFO,"Waiting for connection on channel %d ...", channel); + /* Check for socket address */ + memset(&addr, 0, sizeof(addr)); + optlen = sizeof(addr); + + if (getsockname(sk, (struct sockaddr *) &addr, &optlen) < 0) { + syslog(LOG_ERR, "Can't get socket name: %s (%d)", + strerror(errno), errno); + goto error; + } + + channel = addr.rc_channel; + + syslog(LOG_INFO, "Waiting for connection on channel %d ...", channel); while(1) { memset(&addr, 0, sizeof(addr)); -- cgit