0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-31 01:43:02 +08:00

Merge pull request #558 from hintjens/master

stdint.h isn't available on all platforms
This commit is contained in:
Martin Hurton 2013-05-19 02:05:57 -07:00
commit e9e44c6b09
4 changed files with 24 additions and 10 deletions

View File

@ -23,7 +23,7 @@ options. Which peer binds, and which connects, is not relevant.
NOTE: this isn't implemented and not fully defined. The server keypair
needs to be persistent, and it would be sensible to define a format for
this in CurveZMQ
this as a CurveZMQ RFC.
SEE ALSO

View File

@ -27,7 +27,6 @@ extern "C" {
#if !defined _WIN32_WCE
#include <errno.h>
#endif
#include <stdint.h>
#include <stddef.h>
#include <stdio.h>
#if defined _WIN32
@ -53,6 +52,21 @@ extern "C" {
# endif
#endif
/* Define integer types needed for event interface */
#if defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_OPENVMS
# include <inttypes.h>
#elif defined _MSC_VER && _MSC_VER < 1600
# ifndef int32_t
typedef __int32 int32_t;
# endif
# ifndef uint16_t
typedef unsigned __int16 uint16_t;
# endif
#else
# include <stdint.h>
#endif
/******************************************************************************/
/* 0MQ versioning support. */
/******************************************************************************/

View File

@ -20,8 +20,7 @@
#ifndef __ZMQ_MECHANISM_HPP_INCLUDED__
#define __ZMQ_MECHANISM_HPP_INCLUDED__
#include <stdint.h>
#include "stdint.hpp"
#include "options.hpp"
#include "blob.hpp"

View File

@ -125,19 +125,20 @@ int zmq::plain_mechanism_t::hello_command (msg_t *msg_) const
const std::string password = options.plain_password;
zmq_assert (password.length () < 256);
const size_t command_size = 8 + 1 + username.length () +
1 + password.length ();
const size_t command_size = 8 + 1 + username.length ()
+ 1 + password.length ();
const int rc = msg_->init_size (command_size);
errno_assert (rc == 0);
unsigned char *ptr = static_cast <unsigned char *> (msg_->data ());
memcpy (ptr, "HELLO ", 8);
ptr += 8;
*ptr++ = static_cast <unsigned char> (username.length ());
memcpy (ptr, username.c_str (), username.length ());
ptr += username.length ();
*ptr++ = static_cast <unsigned char> (password.length ());
memcpy (ptr, password.c_str (), password.length ());
ptr += password.length ();
@ -155,7 +156,6 @@ int zmq::plain_mechanism_t::process_hello_command (msg_t *msg_)
errno = EPROTO;
return -1;
}
ptr += 8;
bytes_left -= 8;
@ -195,6 +195,7 @@ int zmq::plain_mechanism_t::process_hello_command (msg_t *msg_)
}
// TODO: Add user authentication
// Note: maybe use RFC 27 (ZAP) for this
return 0;
}