From 1494d211a6e52ef4e076477e5d1f1f74d8a8e19a Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Tue, 30 Apr 2002 00:55:12 +0000 Subject: [PATCH] avoided large bss --- src/ca/repeater.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ca/repeater.cpp b/src/ca/repeater.cpp index 516c65056..4f6830858 100644 --- a/src/ca/repeater.cpp +++ b/src/ca/repeater.cpp @@ -77,8 +77,6 @@ static tsDLList < repeaterClient > client_list; epicsSingleton < tsFreeList < repeaterClient, 0x20 > > repeaterClient::pFreeList; -static char buf [MAX_UDP_RECV]; - static const unsigned short PORT_ANY = 0u; typedef struct { @@ -463,6 +461,9 @@ void ca_repeater () osiSockAddr from; unsigned short port; makeSocketReturn msr; + char * pBuf; + + pBuf = new char [MAX_UDP_RECV]; assert ( osiSockAttach() ); @@ -482,16 +483,17 @@ void ca_repeater () fprintf ( stderr, "%s: Unable to create repeater socket because %d=\"%s\" - fatal\n", __FILE__, msr.errNumber, msr.pErrStr); osiSockRelease (); + delete [] pBuf; exit(0); } sock = msr.sock; - debugPrintf ( ( "CA Repeater: Attached and initialized\n" ) ); + debugPrintf ( ( "CA Repeater: Attached and initialized\n" ) ); - while ( true ) { + while ( true ) { osiSocklen_t from_size = sizeof ( from ); - size = recvfrom ( sock, buf, sizeof (buf), 0, + size = recvfrom ( sock, pBuf, MAX_UDP_RECV, 0, &from.sa, &from_size ); if ( size < 0 ) { int errnoCpy = SOCKERRNO; @@ -509,7 +511,7 @@ void ca_repeater () continue; } - caHdr *pMsg = (caHdr *) buf; + caHdr * pMsg = ( caHdr * ) pBuf; /* * both zero length message and a registration message