From 20b4796d5b0348d28803282c563fb10f6126c41e Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 9 Nov 2000 16:31:33 +0000 Subject: [PATCH] if the server does not supply the beacon address then supply it in the repeater --- src/ca/repeater.c | 66 ++++------------------------------------------- src/ca/service.c | 7 +---- 2 files changed, 6 insertions(+), 67 deletions(-) diff --git a/src/ca/repeater.c b/src/ca/repeater.c index ea0aa3e9f..e942c2f89 100644 --- a/src/ca/repeater.c +++ b/src/ca/repeater.c @@ -38,67 +38,6 @@ * to all CA client processes that have subscribed. * * -<<<<<<< repeater.c -======= - * Modification Log: - * ----------------- - * .01 060691 joh Took out 4 byte count at message begin to - * in preparation for SPARC alignment - * .02 042892 joh No longer checking the status from free - * since it varies from OS to OS - * .03 042892 joh made local routines static - * .04 072392 joh set reuse addr socket option so that - * the repeater will restart if it gets killed - * .05 072392 joh no longer needs to loop waiting for the timeout - * to expire because of the change introduced - * in .04 - * .06 120492 joh removed unnecessary includes - * .07 120992 joh now uses dll list routines - * .08 102993 joh toggle set sock opt to set - * .09 070195 joh discover client has vanished by connecting its - * datagram socket (and watching for ECONNREFUSED) - * - * $Log$ - * Revision 1.47 1998/09/29 20:50:37 jhill - * more robust in situations wherelocal IP cant be determined - * - * Revision 1.46 1998/09/24 21:22:54 jhill - * conn.c - * - * Revision 1.45 1998/06/16 00:58:12 jhill - * attach to winsock when its a static build - * - * Revision 1.44 1998/05/29 00:03:20 jhill - * allow CA to run systems w/o local interface query capabilities (ie cygwin32) - * - * Revision 1.43 1998/04/15 21:58:29 jhill - * fixed the doc - * - * Revision 1.42 1998/02/27 01:04:03 jhill - * fixed benign WIN32 message from overwritten errno - * - * Revision 1.41 1998/02/05 22:34:33 jhill - * dont delete client if send returns ECONNREFUSED - * - * Revision 1.40 1997/08/04 23:37:15 jhill - * added beacon anomaly flag init/allow ip 255.255.255.255 - * - * Revision 1.39 1997/04/23 17:05:09 jhill - * pc port changes - * - * Revision 1.38 1996/11/02 00:51:04 jhill - * many pc port, const in API, and other changes - * - * Revision 1.37 1996/09/04 20:02:32 jhill - * fixed gcc warning - * - * Revision 1.36 1996/07/12 00:40:48 jhill - * fixed client disconnect problem under solaris - * - * Revision 1.32.6.1 1996/07/12 00:39:59 jhill - * fixed client disconnect problem under solaris ->>>>>>> 1.50 - * */ /* @@ -255,6 +194,11 @@ void epicsShareAPI ca_repeater() continue; } } + else if(ntohs(pMsg->m_cmmd) == CA_PROTO_RSRV_IS_UP){ + if ( pMsg->m_available == 0u ) { + pMsg->m_available = from.sin_addr.s_addr; + } + } } else if(size == 0){ register_new_client(&local, &from); diff --git a/src/ca/service.c b/src/ca/service.c index 7eae6b2c7..981cf8cf3 100644 --- a/src/ca/service.c +++ b/src/ca/service.c @@ -730,12 +730,7 @@ const struct sockaddr_in *pnet_addr * field is set to the server's IP address). */ ina.sin_family = AF_INET; - if (piiu->curMsg.m_available != htonl(INADDR_ANY)) { - ina.sin_addr.s_addr = piiu->curMsg.m_available; - } - else { - ina.sin_addr = pnet_addr->sin_addr; - } + ina.sin_addr.s_addr = piiu->curMsg.m_available; if (piiu->curMsg.m_count != 0) { ina.sin_port = htons (piiu->curMsg.m_count); }