mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-13 02:42:58 +01:00
Merge pull request #413 from Quuxplusone/static-analysis
Various bugfixes found by compiling with extra warnings
This commit is contained in:
commit
4a43a0d074
10
src/ctx.cpp
10
src/ctx.cpp
@ -353,7 +353,15 @@ zmq::endpoint_t zmq::ctx_t::find_endpoint (const char *addr_)
|
|||||||
return endpoint;
|
return endpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
void zmq::ctx_t::monitor_event (zmq::socket_base_t *socket_, int event_, va_list args_)
|
void zmq::ctx_t::monitor_event (zmq::socket_base_t *socket_, int event_, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start (event_, args);
|
||||||
|
va_monitor_event (socket_, event_, args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
|
||||||
|
void zmq::ctx_t::va_monitor_event (zmq::socket_base_t *socket_, int event_, va_list args_)
|
||||||
{
|
{
|
||||||
if (monitor_fn != NULL) {
|
if (monitor_fn != NULL) {
|
||||||
zmq_event_data_t data;
|
zmq_event_data_t data;
|
||||||
|
@ -97,7 +97,8 @@ namespace zmq
|
|||||||
|
|
||||||
// Monitoring specific
|
// Monitoring specific
|
||||||
int monitor (zmq_monitor_fn *monitor_);
|
int monitor (zmq_monitor_fn *monitor_);
|
||||||
void monitor_event (zmq::socket_base_t *socket_, int event_, va_list args_);
|
void monitor_event (zmq::socket_base_t *socket_, int event_, ...);
|
||||||
|
void va_monitor_event (zmq::socket_base_t *socket_, int event_, va_list args_);
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
term_tid = 0,
|
term_tid = 0,
|
||||||
|
@ -35,7 +35,7 @@ namespace zmq
|
|||||||
enum {retired_fd = (fd_t)(~0)};
|
enum {retired_fd = (fd_t)(~0)};
|
||||||
#else
|
#else
|
||||||
typedef SOCKET fd_t;
|
typedef SOCKET fd_t;
|
||||||
enum {retired_fd = INVALID_SOCKET};
|
enum {retired_fd = (fd_t)INVALID_SOCKET};
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
typedef int fd_t;
|
typedef int fd_t;
|
||||||
|
@ -190,7 +190,7 @@ void zmq::pipe_t::rollback ()
|
|||||||
void zmq::pipe_t::flush ()
|
void zmq::pipe_t::flush ()
|
||||||
{
|
{
|
||||||
// If terminate() was already called do nothing.
|
// If terminate() was already called do nothing.
|
||||||
if (state == terminated && state == double_terminated)
|
if (state == terminated || state == double_terminated)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// The peer does not exist anymore at this point.
|
// The peer does not exist anymore at this point.
|
||||||
|
@ -290,10 +290,15 @@ void zmq::session_base_t::monitor_event (int event_, ...)
|
|||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start (args, event_);
|
va_start (args, event_);
|
||||||
socket->monitor_event (event_, args);
|
va_monitor_event (event_, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void zmq::session_base_t::va_monitor_event (int event_, va_list args)
|
||||||
|
{
|
||||||
|
socket->va_monitor_event (event_, args);
|
||||||
|
}
|
||||||
|
|
||||||
void zmq::session_base_t::process_plug ()
|
void zmq::session_base_t::process_plug ()
|
||||||
{
|
{
|
||||||
if (connect)
|
if (connect)
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#define __ZMQ_SESSION_BASE_HPP_INCLUDED__
|
#define __ZMQ_SESSION_BASE_HPP_INCLUDED__
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include "own.hpp"
|
#include "own.hpp"
|
||||||
#include "io_object.hpp"
|
#include "io_object.hpp"
|
||||||
@ -67,6 +68,7 @@ namespace zmq
|
|||||||
void terminated (zmq::pipe_t *pipe_);
|
void terminated (zmq::pipe_t *pipe_);
|
||||||
|
|
||||||
void monitor_event (int event_, ...);
|
void monitor_event (int event_, ...);
|
||||||
|
void va_monitor_event (int event_, va_list args);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -1001,6 +1001,11 @@ void zmq::socket_base_t::monitor_event (int event_, ...)
|
|||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start (args, event_);
|
va_start (args, event_);
|
||||||
get_ctx ()->monitor_event (this, event_, args);
|
va_monitor_event(event, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void zmq::socket_base_t::monitor_event (int event_, va_list args)
|
||||||
|
{
|
||||||
|
get_ctx ()->va_monitor_event (this, event_, args);
|
||||||
|
}
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include "own.hpp"
|
#include "own.hpp"
|
||||||
#include "array.hpp"
|
#include "array.hpp"
|
||||||
@ -102,6 +103,7 @@ namespace zmq
|
|||||||
void unlock();
|
void unlock();
|
||||||
|
|
||||||
void monitor_event (int event_, ...);
|
void monitor_event (int event_, ...);
|
||||||
|
void va_monitor_event (int event_, va_list args);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -294,12 +294,12 @@ int zmq::tcp_address_t::resolve_interface (const char *interface_,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Use the first result.
|
// Use the first result.
|
||||||
|
zmq_assert (res != NULL);
|
||||||
zmq_assert ((size_t) (res->ai_addrlen) <= sizeof (address));
|
zmq_assert ((size_t) (res->ai_addrlen) <= sizeof (address));
|
||||||
memcpy (&address, res->ai_addr, res->ai_addrlen);
|
memcpy (&address, res->ai_addr, res->ai_addrlen);
|
||||||
|
|
||||||
// Cleanup getaddrinfo after copying the possibly referenced result.
|
// Cleanup getaddrinfo after copying the possibly referenced result.
|
||||||
if (res)
|
freeaddrinfo (res);
|
||||||
freeaddrinfo (res);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -598,11 +598,9 @@ const bool zmq::tcp_address_mask_t::match_address (const struct sockaddr *ss, co
|
|||||||
}
|
}
|
||||||
if (address_mask < mask) mask = address_mask;
|
if (address_mask < mask) mask = address_mask;
|
||||||
|
|
||||||
int full_bytes = mask / 8;
|
size_t full_bytes = mask / 8;
|
||||||
if (full_bytes) {
|
if (memcmp(our_bytes, their_bytes, full_bytes))
|
||||||
if (memcmp(our_bytes, their_bytes, full_bytes))
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t last_byte_bits = (0xffU << (8 - (mask % 8))) & 0xffU;
|
uint8_t last_byte_bits = (0xffU << (8 - (mask % 8))) & 0xffU;
|
||||||
if (last_byte_bits) {
|
if (last_byte_bits) {
|
||||||
|
@ -486,9 +486,11 @@ int zmq_recviov (void *s_, iovec *a_, size_t *count_, int flags_)
|
|||||||
}
|
}
|
||||||
zmq::socket_base_t *s = (zmq::socket_base_t *) s_;
|
zmq::socket_base_t *s = (zmq::socket_base_t *) s_;
|
||||||
|
|
||||||
size_t count = (int) *count_;
|
size_t count = *count_;
|
||||||
int nread = 0;
|
int nread = 0;
|
||||||
bool recvmore = true;
|
bool recvmore = true;
|
||||||
|
|
||||||
|
*count_ = 0;
|
||||||
|
|
||||||
for (size_t i = 0; recvmore && i < count; ++i) {
|
for (size_t i = 0; recvmore && i < count; ++i) {
|
||||||
// Cheat! We never close any msg
|
// Cheat! We never close any msg
|
||||||
|
Loading…
Reference in New Issue
Block a user