|
From: <wsh...@us...> - 2003-08-26 00:40:04
|
Update of /cvsroot/emc/rcslib/src/cms
In directory sc8-pr-cvs1:/tmp/cvs-serv4684/src/cms
Modified Files:
Tag: wps_multiplat_dev_branch
cmsdiag.cc msghdr.h recvmsgt.c recvmsgt.h sendmsgt.c
sendmsgt.h sokintrf.c tcp_srv.hh udp_srv.cc udp_srv.hh
udpmem.cc
Log Message:
.
Index: cmsdiag.cc
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/cmsdiag.cc,v
retrieving revision 4.34.2.1
retrieving revision 4.34.2.2
diff -C2 -d -r4.34.2.1 -r4.34.2.2
*** cmsdiag.cc 8 Aug 2003 14:21:09 -0000 4.34.2.1
--- cmsdiag.cc 26 Aug 2003 00:39:44 -0000 4.34.2.2
***************
*** 18,26 ****
#endif
! #ifdef WIN32
! #ifndef mingw32
char *winver ();
#endif
- #endif
#include "timer.hh" // etime()
--- 18,24 ----
#endif
! #if defined(WIN32) && (!defined(mingw32) && !defined(HAVE_CONFIG_H))
char *winver ();
#endif
#include "timer.hh" // etime()
***************
*** 156,161 ****
// #ifndef HAVE_UNAME
! #ifdef WIN32
! #ifndef mingw32
char *wvptr = winver ();
if (NULL != wvptr)
--- 154,158 ----
// #ifndef HAVE_UNAME
! #if defined(WIN32) && (!defined(mingw32) && !defined(HAVE_CONFIG_H))
char *wvptr = winver ();
if (NULL != wvptr)
***************
*** 168,172 ****
sysinfo_len += strlen (dpi->host_sysinfo + sysinfo_len);
}
- #endif
#endif
--- 165,168 ----
Index: msghdr.h
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/msghdr.h,v
retrieving revision 4.32
retrieving revision 4.32.2.1
diff -C2 -d -r4.32 -r4.32.2.1
*** msghdr.h 6 Sep 2001 14:32:55 -0000 4.32
--- msghdr.h 26 Aug 2003 00:39:44 -0000 4.32.2.1
***************
*** 3,6 ****
--- 3,49 ----
#define MSGHDR_H
+ #ifdef HAVE_CONFIG_H
+
+ #ifndef RCS_CONFIG_INCLUDE_H
+ #include "rcs_config_include.h"
+ #endif
+
+ #if !defined(HAVE_CADDR_T_TYPE) && !defined(CADDR_T_DEFINED) && !defined(HAVE__CADDR_T)
+ typedef char *caddr_t;
+ #define CADDR_T_DEFINED
+ #endif
+
+ #if !defined(HAVE_STRUCT_IOVEC_TYPE) && !defined(IOVEC_DEFINED)
+ struct iovec
+ {
+ caddr_t iov_base;
+ int iov_len;
+ };
+ typedef struct iovec iovec_t;
+ #define IOVEC_DEFINED
+ #endif
+
+ #if !defined(HAVE_STRUCT_MSGHDR_TYPE) && !defined(MSGHDR_DEFINED)
+ /*
+ * Message header for recvmsg and sendmsg calls.
+ */
+ struct msghdr
+ {
+ caddr_t msg_name; /* optional address */
+ int msg_namelen; /* size of address */
+ struct iovec RCS_FAR *msg_iov; /* scatter/gather array */
+ int msg_iovlen; /* # elements in msg_iov */
+ caddr_t msg_accrights; /* access rights sent/received */
+ int msg_accrightslen;
+ };
+ #define MSGHDR_DEFINED
+ #endif
+
+
+
+ #else
+ /* HAVE_CONFIG_H */
+
+
#include "rcs_defs.hh" /* _Windows */
***************
*** 23,27 ****
#endif
! #if !defined(_Windows) || defined(USE_PCNFS)
#ifndef MSDOS
--- 66,70 ----
#endif
! #if (!defined(_Windows) && !defined(WIN32)) || defined(USE_PCNFS)
#ifndef MSDOS
***************
*** 109,110 ****
--- 152,157 ----
#endif
+ // HAVE_CONFIG_H
+
+ #endif
+ // MSGHDR_H
Index: recvmsgt.c
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/recvmsgt.c,v
retrieving revision 4.33
retrieving revision 4.33.2.1
diff -C2 -d -r4.33 -r4.33.2.1
*** recvmsgt.c 6 May 2003 15:18:15 -0000 4.33
--- recvmsgt.c 26 Aug 2003 00:39:44 -0000 4.33.2.1
***************
*** 1,61 ****
- /* This is neccessary to avoid muliple definitions of fd_set, etc when both
- * RPC via PCNFS and Windows Sockets are to be available. */
- #ifdef USE_PCNFS
- #undef USE_PCNFS
- #endif
-
-
- #include "rcs_defs.hh" /* MSDOS, _Windows */
! #include "recvmsgt.h" /* Forward Prototype */
! #include "_timer.h" /* etime(), etime_disabled */
!
! #if !defined(_Windows) || defined(USE_PCNFS) || defined(gnuwin32)
! #ifdef MSDOS
! #include <tklib.h>
! #else
! #include <sys/types.h> /* u_char etc needed by sys/socket.h */
! /* fd_set, FD_ZERO, FD_SET */
! #include <sys/socket.h> /* stuct msghdr, sendmsg() */
! #ifndef VXWORKS
! #include <sys/time.h> /* struct timeval */
! #else
! #include <sys/times.h> /* struct timeval */
! #include <sockLib.h> /* recvmsg() */
! #endif
! #ifndef _Windows
! #include <unistd.h> /* select() */
! #endif
! #endif
! #else
! #ifdef USE_OLD_WINSOCK
! #include <windows.h>
! #include <winsock.h> /* select(), typedef fd_set, FD_ZERO, FD_SET, struct */
! #else
! #include <winsock2.h>
! #endif
!
! #endif
! #ifndef irix6
! #include <math.h> /* fmod() */
#else
! /*
! Work around for the conflict between the gcc includes and /usr/includes
! on some of our SGI's regarding the definition of initstate()
! */
! extern double fmod (double, double);
#endif
! #include <errno.h> /* errno variable */
! #include <string.h> /* strerror() */
! #include <stdlib.h> /* malloc(), free() */
#include "rcs_prnt.hh" /* rcs_print_error() */
#include "sokintrf.h" /* dl_recvfrom(), dl_select() */
#include "dbg_mem.h" /* DEBUG_FREE,DEBUG_MALLOC,DEBUG_CALLOC */
static long total_bytes_read = 0;
! #if defined(_Windows)
static char RCS_FAR *collection_buffer = NULL;
static long collection_buffer_size = 0;
--- 1,20 ----
! #if HAVE_CONFIG_H
! #include "rcs_config_include.h"
#else
! #include "recvmsgt_no_config.h"
#endif
! #include "recvmsgt.h" /* Forward Prototype */
! #include "_timer.h" /* etime(), etime_disabled */
#include "rcs_prnt.hh" /* rcs_print_error() */
#include "sokintrf.h" /* dl_recvfrom(), dl_select() */
#include "dbg_mem.h" /* DEBUG_FREE,DEBUG_MALLOC,DEBUG_CALLOC */
+ #include "msghdr.h"
static long total_bytes_read = 0;
! #if defined(_Windows) || defined(WIN32)
static char RCS_FAR *collection_buffer = NULL;
static long collection_buffer_size = 0;
***************
*** 93,97 ****
int bytes_read;
int recvmsgt_timed_out = 0;
! #if defined(_Windows)
long required_size, bytes_copied, bytes_to_copy;
int i = 0;
--- 52,56 ----
int bytes_read;
int recvmsgt_timed_out = 0;
! #if defined(_Windows) || defined(WIN32)
long required_size, bytes_copied, bytes_to_copy;
int i = 0;
***************
*** 179,183 ****
}
}
! #if defined(_Windows)
if (_msg_header->msg_iovlen > 1)
{
--- 138,142 ----
}
}
! #if defined(_Windows) || defined(WIN32)
if (_msg_header->msg_iovlen > 1)
{
***************
*** 246,250 ****
free_recvmsg_collection_buffer ()
{
! #if defined(_Windows)
if (NULL != collection_buffer)
{
--- 205,209 ----
free_recvmsg_collection_buffer ()
{
! #if defined(_Windows) || defined(WIN32)
if (NULL != collection_buffer)
{
Index: recvmsgt.h
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/recvmsgt.h,v
retrieving revision 4.32
retrieving revision 4.32.2.1
diff -C2 -d -r4.32 -r4.32.2.1
*** recvmsgt.h 6 Sep 2001 14:32:55 -0000 4.32
--- recvmsgt.h 26 Aug 2003 00:39:44 -0000 4.32.2.1
***************
*** 4,9 ****
#define RECVMSGT_H
#include "rcs_defs.hh" /* MSDOS, _Windows */
!
#ifdef __cplusplus
--- 4,10 ----
#define RECVMSGT_H
+ #ifndef HAVE_CONFIG_H
#include "rcs_defs.hh" /* MSDOS, _Windows */
! #endif
#ifdef __cplusplus
***************
*** 12,16 ****
#endif
! #include "msghdr.h" /* struct msghdr */
int recvmsgt (int fd, struct msghdr *_msg_header, int _flags,
--- 13,17 ----
#endif
! struct msghdr;
int recvmsgt (int fd, struct msghdr *_msg_header, int _flags,
Index: sendmsgt.c
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/sendmsgt.c,v
retrieving revision 4.33
retrieving revision 4.33.2.1
diff -C2 -d -r4.33 -r4.33.2.1
*** sendmsgt.c 6 May 2003 15:18:16 -0000 4.33
--- sendmsgt.c 26 Aug 2003 00:39:44 -0000 4.33.2.1
***************
*** 1,72 ****
!
! /* This is neccessary to avoid muliple definitions of fd_set, etc when both
! * RPC via PCNFS and Windows Sockets are to be available. */
! #ifdef USE_PCNFS
! #undef USE_PCNFS
#endif
-
- #include "rcs_defs.hh" /* MSDOS, _Windows */
#include "dbg_mem.h" // DEBUG_MALLOC, DEBUG_FREE
-
-
#include "sendmsgt.h" /* Forward Prototype */
-
- #include <sys/types.h> /* u_char etc needed by sys/socket.h */
- /* fd_set, FD_ZERO, FD_SET */
-
- #if !defined(DOS_WINDOWS) || defined(gnuwin32)
- #include <sys/socket.h> /* stuct msghdr, sendmsg() */
- #ifndef VXWORKS
- #include <sys/time.h> /* struct timeval */
- #else
- #include <sys/times.h> /* struct timeval */
- #include <sockLib.h> /* sendmsg() */
- #endif
- #ifndef _Windows
- #include <unistd.h> /* select() */
- #endif
- #else
- #if defined(MSDOS) && !defined(WINDOWS)
- #include <tklib.h>
- #include <sys/socket.h> /* stuct msghdr, sendmsg() */
- #include <sys/uio.h> /* stuct iovec */
- #else
- #ifdef USE_OLD_WINSOCK
- #include <winsock.h> /* select(), typedef fd_set, FD_ZERO, FD_SET, struct */
- #else
- #include <winsock2.h>
- #endif
-
- #endif
- #endif
- #ifndef irix6
- #include <math.h> /* fmod() */
- #else
- /*
- Work around for the conflict between the gcc includes and /usr/includes
- on some of our SGI's regarding the definition of initstate()
- */
- extern double fmod (double, double);
- #endif
-
- #include <errno.h> /* errno variable */
- #include <string.h> /* strerror() */
- #include <stdlib.h> /* DEBUG_MALLOC(), free() */
#include "rcs_prnt.hh" /* rcs_print_error() */
#include "sokintrf.h" /* dl_sendto(), dl_select(), dl_WSAGetLastError() */
static long total_bytes_sent = 0;
#define USE_SENDTO
! #if defined(_Windows) && !defined(USE_PCNFS)
#ifndef USE_SENDTO
#define USE_SENDTO
#endif
#endif
-
-
#ifdef USE_SENDTO
--- 1,24 ----
! #if HAVE_CONFIG_H
! #include "rcs_config_include.h"
! #else
! #include "sendmsgt_no_config.h"
#endif
#include "dbg_mem.h" // DEBUG_MALLOC, DEBUG_FREE
#include "sendmsgt.h" /* Forward Prototype */
#include "rcs_prnt.hh" /* rcs_print_error() */
#include "sokintrf.h" /* dl_sendto(), dl_select(), dl_WSAGetLastError() */
+ #include "msghdr.h"
static long total_bytes_sent = 0;
#define USE_SENDTO
! #if ( defined(_Windows) || defined(WIN32)) && !defined(USE_PCNFS)
#ifndef USE_SENDTO
#define USE_SENDTO
#endif
#endif
#ifdef USE_SENDTO
Index: sendmsgt.h
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/sendmsgt.h,v
retrieving revision 4.32
retrieving revision 4.32.2.1
diff -C2 -d -r4.32 -r4.32.2.1
*** sendmsgt.h 6 Sep 2001 14:32:55 -0000 4.32
--- sendmsgt.h 26 Aug 2003 00:39:44 -0000 4.32.2.1
***************
*** 4,8 ****
--- 4,10 ----
#define SENDMSGT_H
+ #ifndef HAVE_CONFIG_H
#include "rcs_defs.hh" /* MSDOS, _Windows */
+ #endif
***************
*** 12,16 ****
#endif
! #include "msghdr.h" /* struct msghdr */
int sendmsgt (int fd, struct msghdr *_msg_header, int _flags,
--- 14,18 ----
#endif
! struct msghdr;
int sendmsgt (int fd, struct msghdr *_msg_header, int _flags,
Index: sokintrf.c
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/sokintrf.c,v
retrieving revision 4.35.2.2
retrieving revision 4.35.2.3
diff -C2 -d -r4.35.2.2 -r4.35.2.3
*** sokintrf.c 22 Aug 2003 20:06:37 -0000 4.35.2.2
--- sokintrf.c 26 Aug 2003 00:39:44 -0000 4.35.2.3
***************
*** 4,7 ****
--- 4,11 ----
#include "rcs_config_include.h"
+ #ifdef WIN32
+ #define USE_WINSOCK
+ #endif
+
#else
#include "sokintrf_no_config.h"
***************
*** 97,101 ****
typedef struct hostent *(RCS_FAR * PTR_TO_GETHOSTBYNAME) (char RCS_FAR *);
extern PTR_TO_GETHOSTBYNAME ptr_to_get_hostbyname;
! #ifdef _WINDOWS
typedef int (RCS_FAR * PTR_TO_WSAISFDSET) (SOCKET, fd_set RCS_FAR *);
extern PTR_TO_WSAISFDSET ptr_to_wsaisfdset;
--- 101,105 ----
typedef struct hostent *(RCS_FAR * PTR_TO_GETHOSTBYNAME) (char RCS_FAR *);
extern PTR_TO_GETHOSTBYNAME ptr_to_get_hostbyname;
! #if defined(_WINDOWS) || defined(WIN32)
typedef int (RCS_FAR * PTR_TO_WSAISFDSET) (SOCKET, fd_set RCS_FAR *);
extern PTR_TO_WSAISFDSET ptr_to_wsaisfdset;
***************
*** 398,402 ****
}
! #ifdef _WINDOWS
int
dl_WSAGetLastError ()
--- 402,406 ----
}
! #if defined(_WINDOWS) || defined(WIN32)
int
dl_WSAGetLastError ()
***************
*** 491,495 ****
#ifndef USE_WINSOCK
#ifndef VXWORKS
! #if defined(MSDOS) && !defined(_Windows)
return tk_ioctl (s, (int) cmd, (int *) argp);
#else
--- 495,499 ----
#ifndef USE_WINSOCK
#ifndef VXWORKS
! #if defined(MSDOS) && (!defined(_Windows) && !defined(WIN32))
return tk_ioctl (s, (int) cmd, (int *) argp);
#else
***************
*** 607,611 ****
dl_inet_netof (struct in_addr addr)
{
! #ifdef WINDOWS
return addr.S_un.S_addr & 0xffffff00;
#else
--- 611,615 ----
dl_inet_netof (struct in_addr addr)
{
! #if defined(WINDOWS) || defined(WIN32)
return addr.S_un.S_addr & 0xffffff00;
#else
***************
*** 624,628 ****
dl_inet_makeaddr (const int net, const int lna)
{
! #ifdef WINDOWS
struct in_addr tempAddress;
tempAddress.S_un.S_addr = ((u_long) net) | ((u_long) lna);
--- 628,632 ----
dl_inet_makeaddr (const int net, const int lna)
{
! #if defined(WINDOWS) || defined(WIN32)
struct in_addr tempAddress;
tempAddress.S_un.S_addr = ((u_long) net) | ((u_long) lna);
Index: tcp_srv.hh
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/tcp_srv.hh,v
retrieving revision 4.33.2.2
retrieving revision 4.33.2.3
diff -C2 -d -r4.33.2.2 -r4.33.2.3
*** tcp_srv.hh 21 Aug 2003 20:24:14 -0000 4.33.2.2
--- tcp_srv.hh 26 Aug 2003 00:39:44 -0000 4.33.2.3
***************
*** 10,13 ****
--- 10,16 ----
class CLIENT_TCP_PORT;
+ struct sockaddr_in;
+ struct timeval;
+
class CMS_SERVER_REMOTE_TCP_PORT:public CMS_SERVER_REMOTE_PORT
{
***************
*** 28,37 ****
int connection_socket;
long connection_port;
! void *ptr_to_server_socket_address;
REMOTE_CMS_REQUEST *request;
char temp_buffer[0x2000];
int current_poll_interval_millis;
int polling_enabled;
! void *ptr_to_select_timeout;
void update_subscriptions ();
void add_subscription_client (int buffer_number, int subscription_type,
--- 31,40 ----
int connection_socket;
long connection_port;
! struct sockaddr_in *ptr_to_server_socket_address;
REMOTE_CMS_REQUEST *request;
char temp_buffer[0x2000];
int current_poll_interval_millis;
int polling_enabled;
! struct timeval *ptr_to_select_timeout;
void update_subscriptions ();
void add_subscription_client (int buffer_number, int subscription_type,
Index: udp_srv.cc
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/udp_srv.cc,v
retrieving revision 4.39.2.1
retrieving revision 4.39.2.2
diff -C2 -d -r4.39.2.1 -r4.39.2.2
*** udp_srv.cc 22 Aug 2003 20:06:37 -0000 4.39.2.1
--- udp_srv.cc 26 Aug 2003 00:39:44 -0000 4.39.2.2
***************
*** 18,21 ****
--- 18,22 ----
#include "timer.hh" // etime(), clk_tck()
#include "_timer.h"
+ #include "msghdr.h" // struct iovec, struct msghdr
class CLIENT_UDP_PORT
***************
*** 59,62 ****
--- 60,73 ----
};
+ class UDP_BROADCAST_DATA
+ {
+ public:
+ int buffer_number;
+ struct sockaddr_in broadcast_address;
+ int broadcast_clnt_port;
+ };
+
+
+
int udp_server_count = 0;
***************
*** 74,88 ****
maxfdpl = 0;
polling_enabled = 0;
! memset (&message_header, 0, sizeof (message_header));
! message_header.msg_name = (caddr_t) NULL;
! message_header.msg_namelen = 0;
! message_header.msg_iov = (struct iovec *) NULL;
! message_header.msg_iovlen = 0;
strcpy (temp_buffer, "UNINITIALIZED");
! memset (&server_socket_address, 0, sizeof (server_socket_address));
! server_socket_address.sin_family = AF_INET;
! server_socket_address.sin_addr.s_addr = dl_htonl (INADDR_ANY);
! server_socket_address.sin_port = 0;
broadcast_subscriptions = 0;
--- 85,110 ----
maxfdpl = 0;
polling_enabled = 0;
! ptr_to_message_header=0;
! ptr_to_select_timeout=0;
! ptr_to_server_socket_address=0;
! ptr_to_broadcast_address=0;
! ptr_to_client_address=0;
!
!
! ptr_to_select_timeout = new struct timeval;
!
! ptr_to_message_header = new struct msghdr;
! memset (ptr_to_message_header, 0, sizeof (struct msghdr));
! ((struct msghdr*)ptr_to_message_header)->msg_name = (caddr_t) NULL;
! ((struct msghdr*)ptr_to_message_header)->msg_namelen = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iov = (struct iovec *) NULL;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 0;
strcpy (temp_buffer, "UNINITIALIZED");
! ptr_to_server_socket_address = new struct sockaddr_in;
! memset (ptr_to_server_socket_address, 0, sizeof (struct sockaddr_in));
! ((struct sockaddr_in*)ptr_to_server_socket_address)->sin_family = AF_INET;
! ((struct sockaddr_in*)ptr_to_server_socket_address)->sin_addr.s_addr = dl_htonl (INADDR_ANY);
! ((struct sockaddr_in*)ptr_to_server_socket_address)->sin_port = 0;
broadcast_subscriptions = 0;
***************
*** 137,140 ****
--- 159,192 ----
subscription_buffers = NULL;
}
+ if(ptr_to_server_socket_address)
+ {
+ delete ptr_to_server_socket_address;
+ ptr_to_server_socket_address=0;
+ }
+ if(ptr_to_client_address)
+ {
+ delete ptr_to_client_address;
+ ptr_to_client_address=0;
+ }
+ if(ptr_to_message_header)
+ {
+ delete ptr_to_message_header;
+ ptr_to_message_header=0;
+ }
+ if(ptr_to_iov2)
+ {
+ delete ptr_to_iov2;
+ ptr_to_iov2=0;
+ }
+ if(ptr_to_broadcast_address)
+ {
+ delete ptr_to_broadcast_address;
+ ptr_to_broadcast_address=0;
+ }
+ if(ptr_to_select_timeout)
+ {
+ delete ptr_to_select_timeout;
+ ptr_to_select_timeout=0;
+ }
}
***************
*** 153,160 ****
CMS_SERVER_REMOTE_UDP_PORT::set_broadcast_address (CMS * _cms)
{
! memset (&broadcast_address, 0, sizeof (broadcast_address));
! broadcast_address.sin_family = AF_INET;
! broadcast_address.sin_addr.s_addr = dl_htonl (INADDR_ANY);
! broadcast_address.sin_port = 0;
char localhostname[80];
if (dl_gethostname (localhostname, 80) < 0)
--- 205,216 ----
CMS_SERVER_REMOTE_UDP_PORT::set_broadcast_address (CMS * _cms)
{
! if(0 == ptr_to_broadcast_address)
! {
! ptr_to_broadcast_address = new struct sockaddr_in;
! }
! memset (ptr_to_broadcast_address, 0, sizeof (struct sockaddr_in));
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_family = AF_INET;
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_addr.s_addr = dl_htonl (INADDR_ANY);
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_port = 0;
char localhostname[80];
if (dl_gethostname (localhostname, 80) < 0)
***************
*** 178,191 ****
}
#ifdef __MSDOS__
! broadcast_address.sin_addr.s_addr =
*((u_long *) broadcast_server_host_entry->h_addr_list[0]);
#else
! broadcast_address.sin_addr.s_addr =
*((int *) broadcast_server_host_entry->h_addr_list[0]);
#endif
! broadcast_address.sin_family = broadcast_server_host_entry->h_addrtype;
#else
! broadcast_address.sin_addr.s_addr = hostGetByName (localhostname);
! if (broadcast_address.sin_addr.s_addr == ERROR)
{
rcs_print_error ("UDPMEM: Couldn't get host address for (%s).\n",
--- 234,247 ----
}
#ifdef __MSDOS__
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_addr.s_addr =
*((u_long *) broadcast_server_host_entry->h_addr_list[0]);
#else
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_addr.s_addr =
*((int *) broadcast_server_host_entry->h_addr_list[0]);
#endif
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_family = broadcast_server_host_entry->h_addrtype;
#else
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_addr.s_addr = hostGetByName (localhostname);
! if (((struct sockaddr_in*)ptr_to_broadcast_address)->sin_addr.s_addr == ERROR)
{
rcs_print_error ("UDPMEM: Couldn't get host address for (%s).\n",
***************
*** 194,200 ****
}
#endif
! broadcast_address.sin_addr.s_addr |= dl_htonl (0xff);
rcs_print_debug (PRINT_SOCKET_CONNECT, "Broadcasting to IP address %s.\n",
! dl_inet_ntoa (broadcast_address.sin_addr));
broadcast_address_set = 1;
}
--- 250,256 ----
}
#endif
! ((struct sockaddr_in*)ptr_to_broadcast_address)->sin_addr.s_addr |= dl_htonl (0xff);
rcs_print_debug (PRINT_SOCKET_CONNECT, "Broadcasting to IP address %s.\n",
! dl_inet_ntoa (((struct sockaddr_in*)ptr_to_broadcast_address)->sin_addr));
broadcast_address_set = 1;
}
***************
*** 227,233 ****
}
! if (server_socket_address.sin_port == 0)
{
! server_socket_address.sin_port =
dl_htons (((u_short) _cms->udp_port_number));
connection_port = _cms->udp_port_number;
--- 283,289 ----
}
! if (((struct sockaddr_in*)ptr_to_server_socket_address)->sin_port == 0)
{
! ((struct sockaddr_in*)ptr_to_server_socket_address)->sin_port =
dl_htons (((u_short) _cms->udp_port_number));
connection_port = _cms->udp_port_number;
***************
*** 248,252 ****
}
UDP_BROADCAST_DATA *broadcast_data = new UDP_BROADCAST_DATA ();
! memcpy (&(broadcast_data->broadcast_address), &broadcast_address,
sizeof (sockaddr_in));
broadcast_data->buffer_number = _cms->buffer_number;
--- 304,308 ----
}
UDP_BROADCAST_DATA *broadcast_data = new UDP_BROADCAST_DATA ();
! memcpy (&(broadcast_data->broadcast_address), ptr_to_broadcast_address,
sizeof (sockaddr_in));
broadcast_data->buffer_number = _cms->buffer_number;
***************
*** 263,267 ****
return 1;
}
! else if (server_socket_address.sin_port ==
dl_htons (((u_short) _cms->udp_port_number)))
{
--- 319,323 ----
return 1;
}
! else if (((struct sockaddr_in*)ptr_to_server_socket_address)->sin_port ==
dl_htons (((u_short) _cms->udp_port_number)))
{
***************
*** 313,317 ****
}
UDP_BROADCAST_DATA *broadcast_data = new UDP_BROADCAST_DATA ();
! memcpy (&(broadcast_data->broadcast_address), &broadcast_address,
sizeof (sockaddr_in));
broadcast_data->buffer_number = _cms->buffer_number;
--- 369,373 ----
}
UDP_BROADCAST_DATA *broadcast_data = new UDP_BROADCAST_DATA ();
! memcpy (&(broadcast_data->broadcast_address), ptr_to_broadcast_address,
sizeof (sockaddr_in));
broadcast_data->buffer_number = _cms->buffer_number;
***************
*** 338,342 ****
{
port_registered = 0;
! if (server_socket_address.sin_port == 0)
{
rcs_print_error ("server can not register on port number 0.\n");
--- 394,398 ----
{
port_registered = 0;
! if (((struct sockaddr_in*)ptr_to_server_socket_address)->sin_port == 0)
{
rcs_print_error ("server can not register on port number 0.\n");
***************
*** 360,365 ****
}
}
! if (dl_bind (connection_socket, (struct sockaddr *) &server_socket_address,
! sizeof (server_socket_address)) < 0)
{
rcs_print_error ("Server can not bind the connection socket.\n");
--- 416,421 ----
}
}
! if (dl_bind (connection_socket, (struct sockaddr *)ptr_to_server_socket_address,
! sizeof (struct sockaddr_in)) < 0)
{
rcs_print_error ("Server can not bind the connection socket.\n");
***************
*** 402,412 ****
exit (-1);
}
! memset (&client_address, 0, sizeof (client_address));
! client_address.sin_family = AF_INET;
! client_address.sin_addr.s_addr = dl_htonl (INADDR_ANY);
! client_address.sin_port = 0;
! message_header.msg_name = (caddr_t) & client_address;
! message_header.msg_namelen = client_addresslen = sizeof (client_address);
request_header_size = 20;
--- 458,469 ----
exit (-1);
}
! ptr_to_client_address = new struct sockaddr_in;
! memset (ptr_to_client_address, 0, sizeof (struct sockaddr_in));
! ((struct sockaddr_in*)ptr_to_client_address)->sin_family = AF_INET;
! ((struct sockaddr_in*)ptr_to_client_address)->sin_addr.s_addr = dl_htonl (INADDR_ANY);
! ((struct sockaddr_in*)ptr_to_client_address)->sin_port = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_name = (caddr_t) ptr_to_client_address;
! ((struct msghdr*)ptr_to_message_header)->msg_namelen = client_addresslen = sizeof (struct sockaddr_in);
request_header_size = 20;
***************
*** 421,437 ****
cms_server_count++;
while (1)
{
! iov2[0].iov_base = temp_buffer;
! iov2[0].iov_len = request_header_size;
! iov2[1].iov_base = (char *) server->write_req.data;
! iov2[1].iov_len = server->maximum_cms_size * 4;
! message_header.msg_iov = iov2;
! message_header.msg_iovlen = 2;
if (polling_enabled)
{
request_length = recvmsgtq (connection_socket,
! &message_header, 0, dtimeout);
if (request_length == 0 && polling_enabled)
{
--- 478,495 ----
cms_server_count++;
+ ptr_to_iov2 = new struct iovec[2];
while (1)
{
! ptr_to_iov2[0].iov_base = temp_buffer;
! ptr_to_iov2[0].iov_len = request_header_size;
! ptr_to_iov2[1].iov_base = (char *) server->write_req.data;
! ptr_to_iov2[1].iov_len = server->maximum_cms_size * 4;
! ((struct msghdr*)ptr_to_message_header)->msg_iov = ptr_to_iov2;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 2;
if (polling_enabled)
{
request_length = recvmsgtq (connection_socket,
! ptr_to_message_header, 0, dtimeout);
if (request_length == 0 && polling_enabled)
{
***************
*** 443,447 ****
{
request_length = recvmsgt (connection_socket,
! &message_header, 0, -1.0);
}
if (request_length < 0)
--- 501,505 ----
{
request_length = recvmsgt (connection_socket,
! ptr_to_message_header, 0, -1.0);
}
if (request_length < 0)
***************
*** 508,513 ****
}
*((u_long *) temp_buffer) = dl_htonl (serial_number); /* used to check for missing or out or order packets */
! iov2[0].iov_base = temp_buffer;
! iov2[0].iov_len = reply_header_size;
switch (request_type)
--- 566,571 ----
}
*((u_long *) temp_buffer) = dl_htonl (serial_number); /* used to check for missing or out or order packets */
! ptr_to_iov2[0].iov_base = temp_buffer;
! ptr_to_iov2[0].iov_len = reply_header_size;
switch (request_type)
***************
*** 530,536 ****
*((u_long *) temp_buffer + 3) = dl_htonl (0); /* write_id */
*((u_long *) temp_buffer + 4) = dl_htonl (0); /* was_read */
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
return;
}
--- 588,594 ----
*((u_long *) temp_buffer + 3) = dl_htonl (0); /* write_id */
*((u_long *) temp_buffer + 4) = dl_htonl (0); /* was_read */
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
return;
}
***************
*** 539,546 ****
*((u_long *) temp_buffer + 1) = dl_htonl (namereply->status);
*((u_long *) temp_buffer + 2) = dl_htonl (name_data_len);
! iov2[1].iov_base = (char *) namereply->name;
! iov2[1].iov_len = name_data_len;
! message_header.msg_iovlen = 2;
! reply_length = sendmsgt (connection_socket, &message_header, 0, -1.0);
if (reply_length != name_data_len + 20)
{
--- 597,604 ----
*((u_long *) temp_buffer + 1) = dl_htonl (namereply->status);
*((u_long *) temp_buffer + 2) = dl_htonl (name_data_len);
! ptr_to_iov2[1].iov_base = (char *) namereply->name;
! ptr_to_iov2[1].iov_len = name_data_len;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 2;
! reply_length = sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
if (reply_length != name_data_len + 20)
{
***************
*** 557,564 ****
int poll_interval_millis = dl_ntohl (*((u_long *) temp_buffer + 4));
int last_read_id = dl_ntohl (*((u_long *) temp_buffer + 5));
! CLIENT_UDP_PORT *new_clnt_port = get_client_port (&client_address);
! memcpy (&(new_clnt_port->client_socket_address), &client_address,
sizeof (struct sockaddr_in));
! memcpy (&(new_clnt_port->reply_message_header), &message_header,
sizeof (struct msghdr));
new_clnt_port->reply_message_header.msg_name =
--- 615,622 ----
int poll_interval_millis = dl_ntohl (*((u_long *) temp_buffer + 4));
int last_read_id = dl_ntohl (*((u_long *) temp_buffer + 5));
! CLIENT_UDP_PORT *new_clnt_port = get_client_port (ptr_to_client_address);
! memcpy (&(new_clnt_port->client_socket_address), ptr_to_client_address,
sizeof (struct sockaddr_in));
! memcpy (&(new_clnt_port->reply_message_header), ptr_to_message_header,
sizeof (struct msghdr));
new_clnt_port->reply_message_header.msg_name =
***************
*** 605,613 ****
*((u_long *) temp_buffer + 1) = dl_htonl (1);
*((u_long *) temp_buffer + 2) = dl_htonl (subscription_id);
! iov2[1].iov_base = 0;
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
reply_length =
! sendmsgt (connection_socket, &(message_header), 0, -1.0);
if (reply_length != 20)
{
--- 663,671 ----
*((u_long *) temp_buffer + 1) = dl_htonl (1);
*((u_long *) temp_buffer + 2) = dl_htonl (subscription_id);
! ptr_to_iov2[1].iov_base = 0;
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
reply_length =
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
if (reply_length != 20)
{
***************
*** 634,640 ****
*((u_long *) temp_buffer + 3) = dl_htonl (0); /* write_id */
*((u_long *) temp_buffer + 4) = dl_htonl (0); /* was_read */
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
return;
}
--- 692,698 ----
*((u_long *) temp_buffer + 3) = dl_htonl (0); /* write_id */
*((u_long *) temp_buffer + 4) = dl_htonl (0); /* was_read */
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
return;
}
***************
*** 643,650 ****
*((u_long *) temp_buffer + 3) = dl_htonl (server->read_reply->write_id);
*((u_long *) temp_buffer + 4) = dl_htonl (server->read_reply->was_read);
! iov2[1].iov_base = (char *) server->read_reply->data;
! iov2[1].iov_len = server->read_reply->size;
! message_header.msg_iovlen = 2;
! reply_length = sendmsgt (connection_socket, &message_header, 0, -1.0);
if (reply_length != server->read_reply->size + 20)
{
--- 701,708 ----
*((u_long *) temp_buffer + 3) = dl_htonl (server->read_reply->write_id);
*((u_long *) temp_buffer + 4) = dl_htonl (server->read_reply->was_read);
! ptr_to_iov2[1].iov_base = (char *) server->read_reply->data;
! ptr_to_iov2[1].iov_len = server->read_reply->size;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 2;
! reply_length = sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
if (reply_length != server->read_reply->size + 20)
{
***************
*** 675,681 ****
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
return;
}
--- 733,739 ----
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
return;
}
***************
*** 686,692 ****
*((u_long *) temp_buffer + 2) =
dl_htonl (server->write_reply->was_read);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
}
break;
--- 744,750 ----
*((u_long *) temp_buffer + 2) =
dl_htonl (server->write_reply->was_read);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
}
break;
***************
*** 703,708 ****
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! iov2[1].iov_len = 0;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
return;
}
--- 761,766 ----
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! ptr_to_iov2[1].iov_len = 0;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
return;
}
***************
*** 711,717 ****
*((u_long *) temp_buffer + 2) =
dl_htonl (server->check_if_read_reply->was_read);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
break;
--- 769,775 ----
*((u_long *) temp_buffer + 2) =
dl_htonl (server->check_if_read_reply->was_read);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
break;
***************
*** 728,733 ****
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! iov2[1].iov_len = 0;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
return;
}
--- 786,791 ----
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! ptr_to_iov2[1].iov_len = 0;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
return;
}
***************
*** 736,742 ****
*((u_long *) temp_buffer + 2) =
dl_htonl (server->get_msg_count_reply->count);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
break;
--- 794,800 ----
*((u_long *) temp_buffer + 2) =
dl_htonl (server->get_msg_count_reply->count);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
break;
***************
*** 752,757 ****
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! iov2[1].iov_len = 0;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
return;
}
--- 810,815 ----
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! ptr_to_iov2[1].iov_len = 0;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
return;
}
***************
*** 760,766 ****
*((u_long *) temp_buffer + 2) =
dl_htonl (server->get_queue_length_reply->queue_length);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
break;
--- 818,824 ----
*((u_long *) temp_buffer + 2) =
dl_htonl (server->get_queue_length_reply->queue_length);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
break;
***************
*** 776,781 ****
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! iov2[1].iov_len = 0;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
return;
}
--- 834,839 ----
dl_htonl ((unsigned long) CMS_SERVER_SIDE_ERROR);
*((u_long *) temp_buffer + 2) = dl_htonl (0); /* was_read */
! ptr_to_iov2[1].iov_len = 0;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
return;
}
***************
*** 784,790 ****
*((u_long *) temp_buffer + 2) =
dl_htonl (server->get_space_available_reply->space_available);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! sendmsgt (connection_socket, &message_header, 0, -1.0);
break;
--- 842,848 ----
*((u_long *) temp_buffer + 2) =
dl_htonl (server->get_space_available_reply->space_available);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1.0);
break;
***************
*** 799,810 ****
*((u_long *) temp_buffer + 1) =
dl_htonl ((u_long) CMS_SERVER_SIDE_ERROR);
! iov2[1].iov_len = 0;
! sendmsgt (connection_socket, &message_header, 0, -1);
return;
}
*((u_long *) temp_buffer + 1) = dl_htonl (server->clear_reply->status);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! //sendmsgt(connection_socket, &message_header, 0, -1);
break;
--- 857,868 ----
*((u_long *) temp_buffer + 1) =
dl_htonl ((u_long) CMS_SERVER_SIDE_ERROR);
! ptr_to_iov2[1].iov_len = 0;
! sendmsgt (connection_socket, ptr_to_message_header, 0, -1);
return;
}
*((u_long *) temp_buffer + 1) = dl_htonl (server->clear_reply->status);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! //sendmsgt(connection_socket, ptr_to_message_header, 0, -1);
break;
***************
*** 816,822 ****
case REMOTE_CMS_CLOSE_CHANNEL_REQUEST_TYPE:
*((u_long *) temp_buffer + 1) = dl_htonl (CMS_CLEAR_OK);
! iov2[1].iov_len = 0;
! message_header.msg_iovlen = 1;
! //sendmsgt(connection_socket, &message_header, 0, -1);
break;
--- 874,880 ----
case REMOTE_CMS_CLOSE_CHANNEL_REQUEST_TYPE:
*((u_long *) temp_buffer + 1) = dl_htonl (CMS_CLEAR_OK);
! ptr_to_iov2[1].iov_len = 0;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 1;
! //sendmsgt(connection_socket, ptr_to_message_header, 0, -1);
break;
***************
*** 1082,1088 ****
if (NULL == subscription_buffers)
{
current_poll_interval_millis = min_poll_interval_millis;
! select_timeout.tv_sec = 30;
! select_timeout.tv_usec = 0;
return;
}
--- 1140,1150 ----
if (NULL == subscription_buffers)
{
+ if(0 == ptr_to_select_timeout)
+ {
+ ptr_to_select_timeout = new struct timeval;
+ }
current_poll_interval_millis = min_poll_interval_millis;
! ((struct timeval*)ptr_to_select_timeout)->tv_sec = 30;
! ((struct timeval*)ptr_to_select_timeout)->tv_usec = 0;
return;
}
***************
*** 1118,1123 ****
{
current_poll_interval_millis = min_poll_interval_millis;
! select_timeout.tv_sec = current_poll_interval_millis / 1000;
! select_timeout.tv_usec = (current_poll_interval_millis % 1000) * 1000;
dtimeout = (current_poll_interval_millis) / 1000.0;
}
--- 1180,1185 ----
{
current_poll_interval_millis = min_poll_interval_millis;
! ((struct timeval*)ptr_to_select_timeout)->tv_sec = current_poll_interval_millis / 1000;
! ((struct timeval*)ptr_to_select_timeout)->tv_usec = (current_poll_interval_millis % 1000) * 1000;
dtimeout = (current_poll_interval_millis) / 1000.0;
}
***************
*** 1129,1134 ****
current_poll_interval_millis++;
}
! select_timeout.tv_sec = current_poll_interval_millis / 1000;
! select_timeout.tv_usec = (long) (ceil (clk_tck () * 1E6));
dtimeout = clk_tck ();
}
--- 1191,1196 ----
current_poll_interval_millis++;
}
! ((struct timeval*)ptr_to_select_timeout)->tv_sec = current_poll_interval_millis / 1000;
! ((struct timeval*)ptr_to_select_timeout)->tv_usec = (long) (ceil (clk_tck () * 1E6));
dtimeout = clk_tck ();
}
***************
*** 1214,1224 ****
buf_info->max_serial_number++;
*((u_long *) temp_buffer) = dl_htonl (buf_info->max_serial_number);
! iov2[0].iov_len = reply_header_size;
! iov2[1].iov_base = (caddr_t) server->read_reply->data;
! iov2[1].iov_len = server->read_reply->size;
! message_header.msg_iovlen = 2;
! message_header.msg_name =
(caddr_t) & (buf_info->broadcast_data->broadcast_address);
! if (sendmsgt (connection_socket, &message_header, 0, dtimeout) < 0)
{
//rcs_print_sys_error(ERRNO_ERROR_SOURCE,"sendmsg error");
--- 1276,1286 ----
buf_info->max_serial_number++;
*((u_long *) temp_buffer) = dl_htonl (buf_info->max_serial_number);
! ptr_to_iov2[0].iov_len = reply_header_size;
! ptr_to_iov2[1].iov_base = (caddr_t) server->read_reply->data;
! ptr_to_iov2[1].iov_len = server->read_reply->size;
! ((struct msghdr*)ptr_to_message_header)->msg_iovlen = 2;
! ((struct msghdr*)ptr_to_message_header)->msg_name =
(caddr_t) & (buf_info->broadcast_data->broadcast_address);
! if (sendmsgt (connection_socket, ptr_to_message_header, 0, dtimeout) < 0)
{
//rcs_print_sys_error(ERRNO_ERROR_SOURCE,"sendmsg error");
***************
*** 1227,1231 ****
(UDP_BUFFER_SUBSCRIPTION_INFO *)
subscription_buffers->get_next ();
! message_header.msg_name = (caddr_t) & client_address;
continue;
}
--- 1289,1293 ----
(UDP_BUFFER_SUBSCRIPTION_INFO *)
subscription_buffers->get_next ();
! ((struct msghdr*)ptr_to_message_header)->msg_name = (caddr_t) ptr_to_client_address;
continue;
}
***************
*** 1357,1361 ****
--- 1419,1428 ----
socket_fd = -1;
subscriptions = NULL;
+ #ifndef WIN32
tid = -1;
pid = -1;
+ #else
+ tid = 0;
+ pid = 0;
+ #endif
}
Index: udp_srv.hh
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/udp_srv.hh,v
retrieving revision 4.33.2.2
retrieving revision 4.33.2.3
diff -C2 -d -r4.33.2.2 -r4.33.2.3
*** udp_srv.hh 22 Aug 2003 20:06:37 -0000 4.33.2.2
--- udp_srv.hh 26 Aug 2003 00:39:44 -0000 4.33.2.3
***************
*** 12,15 ****
--- 12,21 ----
class CLIENT_UDP_PORT;
+ struct sockaddr_in;
+ struct hostent;
+ struct iovec;
+ struct msghdr;
+ struct timeval;
+
class CMS_SERVER_REMOTE_UDP_PORT:public CMS_SERVER_REMOTE_PORT
{
***************
*** 31,47 ****
int connection_socket;
long connection_port;
! struct sockaddr_in server_socket_address;
REMOTE_CMS_REQUEST *request;
char temp_buffer[32];
CMS_SERVER *server;
! struct sockaddr_in client_address;
! struct msghdr message_header;
int client_addresslen;
double polling_period;
! struct iovec iov2[2];
RCS_LINKED_LIST *subscription_buffers;
int current_poll_interval_millis;
int polling_enabled;
! struct timeval select_timeout;
void update_subscriptions ();
void add_subscription_client (int buffer_number, int subdiv,
--- 37,53 ----
int connection_socket;
long connection_port;
! struct sockaddr_in *ptr_to_server_socket_address;
REMOTE_CMS_REQUEST *request;
char temp_buffer[32];
CMS_SERVER *server;
! struct sockaddr_in *ptr_to_client_address;
! struct msghdr *ptr_to_message_header;
int client_addresslen;
double polling_period;
! struct iovec *ptr_to_iov2;
RCS_LINKED_LIST *subscription_buffers;
int current_poll_interval_millis;
int polling_enabled;
! struct timeval *ptr_to_select_timeout;
void update_subscriptions ();
void add_subscription_client (int buffer_number, int subdiv,
***************
*** 59,63 ****
int request_header_size;
int reply_header_size;
! struct sockaddr_in broadcast_address;
int broadcast_address_set;
void set_broadcast_address (CMS *);
--- 65,69 ----
int request_header_size;
int reply_header_size;
! struct sockaddr_in *ptr_to_broadcast_address;
int broadcast_address_set;
void set_broadcast_address (CMS *);
***************
*** 66,77 ****
#endif
int broadcast_subscriptions;
- };
-
- class UDP_BROADCAST_DATA
- {
- public:
- int buffer_number;
- struct sockaddr_in broadcast_address;
- int broadcast_clnt_port;
};
--- 72,75 ----
Index: udpmem.cc
===================================================================
RCS file: /cvsroot/emc/rcslib/src/cms/udpmem.cc,v
retrieving revision 4.37.2.1
retrieving revision 4.37.2.2
diff -C2 -d -r4.37.2.1 -r4.37.2.2
*** udpmem.cc 22 Aug 2003 20:06:37 -0000 4.37.2.1
--- udpmem.cc 26 Aug 2003 00:39:44 -0000 4.37.2.2
***************
*** 23,26 ****
--- 23,27 ----
// FIONREAD
+ #include "msghdr.h" // struct iovec, msghdr
class UDPMEM_NONPORT_INTERNALS
|