21 #if defined (ZMQ_HAVE_WINDOWS) 22 # include <winsock2.h> 23 # include <ws2tcpip.h> 25 # define close closesocket 27 # include <arpa/inet.h> 37 for(
int i = 0; i < 2; i++) {
48 uint16_t
event = *(uint16_t *) (data);
66 int rc = recv(fd, buffer + received, bytes - received, 0);
69 assert(received <= bytes);
70 if (received == bytes)
break;
76 const uint8_t zmtp_greeting[33] = { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0x7f, 3, 0,
'N',
'U',
'L',
'L', 0 };
78 memset(buffer, 0,
sizeof(buffer));
79 memcpy(buffer, zmtp_greeting,
sizeof(zmtp_greeting));
81 int rc = send(fd, buffer, 64, 0);
86 const uint8_t zmtp_ready[43] = {
87 4, 41, 5,
'R',
'E',
'A',
'D',
'Y', 11,
'S',
'o',
'c',
'k',
'e',
't',
'-',
'T',
'y',
'p',
'e',
88 0, 0, 0, 6,
'D',
'E',
'A',
'L',
'E',
'R', 8,
'I',
'd',
'e',
'n',
't',
'i',
't',
'y',
92 memset(buffer, 0,
sizeof(buffer));
93 memcpy(buffer, zmtp_ready, 43);
94 rc = send(fd, buffer, 43, 0);
102 const char *secret_key;
103 const char *public_key;
104 const char *server_key;
107 secret_key =
"JTKVSB%%)wK0E.X)V>+}o?pNmC{O&4W4b!Ni{Lh6";
108 public_key =
"rq:rM>}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7";
112 secret_key =
"D:)Q[IlAW!ahhC2ac:9*A}h:p?([4%wOTJ%JR%cs";
113 public_key =
"Yne@$w-vo<fVvi]a<NY6T1ed:M$fCG*[IaLV{hID";
114 server_key =
"rq:rM>}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7";
126 prep_server_socket(
void * ctx,
int set_heartbeats,
int is_curve,
void ** server_out,
void ** mon_out)
146 rc =
zmq_bind (server,
"tcp://127.0.0.1:5556");
158 rc =
zmq_connect (server_mon,
"inproc://monitor-dealer");
161 *server_out = server;
162 *mon_out = server_mon;
177 void * server, * server_mon;
180 struct sockaddr_in ip4addr;
183 ip4addr.sin_family = AF_INET;
184 ip4addr.sin_port = htons (5556);
185 #if defined (ZMQ_HAVE_WINDOWS) && (_WIN32_WINNT < 0x0600) 186 ip4addr.sin_addr.s_addr = inet_addr (
"127.0.0.1");
188 inet_pton(AF_INET,
"127.0.0.1", &ip4addr.sin_addr);
191 s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
192 rc = connect (s, (
struct sockaddr*) &ip4addr,
sizeof ip4addr);
232 void * server, * server_mon, *client;
236 assert(client != NULL);
285 void * server, * server_mon;
void msleep(int milliseconds)
ZMQ_EXPORT int zmq_setsockopt(void *s, int option, const void *optval, size_t optvallen)
#define ZMQ_CURVE_SERVERKEY
#define ZMQ_EVENT_CONNECTED
ZMQ_EXPORT void * zmq_ctx_new(void)
#define ZMQ_CURVE_SECRETKEY
#define ZMQ_HEARTBEAT_IVL
void setup_test_environment(void)
static void recv_with_retry(int fd, char *buffer, int bytes)
#define ZMQ_CURVE_PUBLICKEY
static void test_heartbeat_ttl(void)
static void setup_curve(void *socket, int is_server)
static void prep_server_socket(void *ctx, int set_heartbeats, int is_curve, void **server_out, void **mon_out)
ZMQ_EXPORT void * zmq_msg_data(zmq_msg_t *msg)
ZMQ_EXPORT void * zmq_socket(void *, int type)
ZMQ_EXPORT int zmq_socket_monitor(void *s, const char *addr, int events)
#define ZMQ_EVENT_DISCONNECTED
static void test_heartbeat_notimeout(int is_curve)
ZMQ_EXPORT int zmq_connect(void *s, const char *addr)
#define ZMQ_HEARTBEAT_TTL
ZMQ_EXPORT int zmq_close(void *s)
ZMQ_EXPORT int zmq_msg_recv(zmq_msg_t *msg, void *s, int flags)
ZMQ_EXPORT int zmq_msg_more(zmq_msg_t *msg)
#define ZMQ_EVENT_ACCEPTED
static void mock_handshake(int fd)
ZMQ_EXPORT int zmq_bind(void *s, const char *addr)
ZMQ_EXPORT int zmq_ctx_term(void *context)
static int get_monitor_event(void *monitor)
static void test_heartbeat_timeout(void)
ZMQ_EXPORT int zmq_msg_init(zmq_msg_t *msg)