#include "rcs_defs.hh"#include "sokintrf.h"#include "udp_opts.hh"#include "rcs_prnt.hh"Include dependency graph for udp_opts.cc:

Go to the source code of this file.
Functions | |
| int | set_udp_socket_options (int socket_fd) |
| int RCS_EXPORT | make_udp_socket_nonblocking (int socket_fd) |
| int RCS_EXPORT | make_udp_socket_blocking (int socket_fd) |
| int RCS_EXPORT | make_udp_socket_broadcast (int socket_fd) |
|
|
Definition at line 31 of file udp_opts.cc. 00032 {
00033 if (socket_fd <= 0)
00034 {
00035 return -1;
00036 }
00037 int optval = 1;
00038 if (dl_setsockopt (socket_fd, SOL_SOCKET, SO_REUSEADDR,
00039 (char *) &optval, sizeof (optval)) < 0)
00040 {
00041 rcs_print_error (" Can`t set a socket option.\n");
00042 #ifndef UNDER_CE
00043 rcs_print_error ("errno = %d = %s\n", errno, strerror (errno));
00044 #endif
00045 return -1;;
00046 }
00047 #if 0
00048 if (-1 == fcntl (socket_fd, F_SETFL, O_NDELAY))
00049 {
00050 rcs_print_error ("Couldn's set flag for no delay on socket.\n");
00051 }
00052 #endif
00053 return (0);
00054 }
|
|
|
Definition at line 58 of file udp_opts.cc. 00059 {
00060 #ifdef _Windows
00061 unsigned long long_arg = 1;
00062 if (dl_ioctlsocket (socket_fd, FIONBIO, &long_arg) < 0)
00063 {
00064 rcs_print_error ("Can't set socket to non-blocking.");
00065 }
00066 #else
00067 #ifndef VXWORKS
00068 #ifdef MSDOS
00069 int int_arg = 1;
00070 if (-1 == tk_ioctl (socket_fd, FIONBIO, &int_arg))
00071 {
00072 rcs_print_error ("Can't set socket to non-blocking. : %d %s\n",
00073 tk_geterrno (socket_fd), tk_sperror ());
00074 return -1;
00075 }
00076 #else
00077
00078
00079 #if defined(O_NDELAY) && !defined(O_NONBLOCK)
00080 if (-1 == fcntl (socket_fd, F_SETFL, O_NDELAY))
00081 {
00082 rcs_print_error ("Couldn's set flag for no delay on socket.\n");
00083 return -1;
00084 }
00085 #endif
00086 #ifdef O_NONBLOCK
00087 if (-1 == fcntl (socket_fd, F_SETFL, O_NONBLOCK))
00088 {
00089 rcs_print_error ("Couldn's set flag for non-blocking on socket.\n");
00090 return -1;
00091 }
00092 #endif
00093 #endif
00094 #else
00095 // VXWORKS
00096 if (-1 == ioctl (socket_fd, FIONBIO, 1))
00097 {
00098 rcs_print_error ("Couldn's set flag for non-blocking on socket.\n");
00099 return -1;
00100 }
00101 #endif
00102 #endif
00103 return (0);
00104 }
|
|
|
Definition at line 108 of file udp_opts.cc. 00109 {
00110 #ifdef _Windows
00111 unsigned long long_arg = 0;
00112 if (dl_ioctlsocket (socket_fd, FIONBIO, &long_arg) < 0)
00113 {
00114 rcs_print_error ("Can't set socket to non-blocking.");
00115 }
00116 #else
00117 #ifndef VXWORKS
00118 #ifdef MSDOS
00119 int int_arg = 0;
00120 if (-1 == tk_ioctl (socket_fd, FIONBIO, &int_arg))
00121 {
00122 rcs_print_error ("Can't set socket to non-blocking. : %d %s\n",
00123 tk_geterrno (socket_fd), tk_sperror ());
00124 return -1;
00125 }
00126 #else
00127
00128
00129 #if defined(O_NONBLOCK) || defined(O_NDELAY)
00130 int val = fcntl (socket_fd, F_GETFL, 0);
00131 if (val < 0)
00132 {
00133 rcs_print_error ("fcntl error %d %s\n", errno, strerror (errno));
00134 return -1;
00135 }
00136 #ifdef O_NONBLOCK
00137 val &= ~O_NONBLOCK;
00138 #endif
00139 #ifdef O_NDELAY
00140 val &= ~O_NDELAY;
00141 #endif
00142 if (fcntl (socket_fd, F_SETFL, val) < 0)
00143 {
00144 rcs_print_error ("Couldn's set flag for blocking on socket.: %d,%s\n",
00145 errno, strerror (errno));
00146 return -1;
00147 }
00148 #endif
00149 #endif
00150
00151 #else
00152 // VXWORKS
00153 if (-1 == ioctl (socket_fd, FIONBIO, 0))
00154 {
00155 rcs_print_error ("Couldn's set flag for non-blocking on socket.\n");
00156 return -1;
00157 }
00158 #endif
00159 #endif
00160 return (0);
00161 }
|
|
|
Definition at line 166 of file udp_opts.cc. 00167 {
00168 if (socket_fd <= 0)
00169 {
00170 return -1;
00171 }
00172 int optval = 1;
00173 if (dl_setsockopt (socket_fd, SOL_SOCKET, SO_BROADCAST,
00174 (char *) &optval, sizeof (optval)) < 0)
00175 {
00176 rcs_print_error ("setsockopt(%d,SOL_SOCKET,SO_\n");
00177 #ifndef UNDER_CE
00178 rcs_print_error ("errno = %d = %s\n", errno, strerror (errno));
00179 #endif
00180 return -1;;
00181 }
00182 return 0;
00183 }
|
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001