mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-29 08:39:42 +08:00
Merge pull request #558 from hintjens/master
stdint.h isn't available on all platforms
This commit is contained in:
commit
e9e44c6b09
@ -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
|
||||
|
@ -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. */
|
||||
/******************************************************************************/
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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 ());
|
||||
|
||||
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;
|
||||
|
||||
@ -194,7 +194,8 @@ int zmq::plain_mechanism_t::process_hello_command (msg_t *msg_)
|
||||
return -1;
|
||||
}
|
||||
|
||||
// TODO: Add user authentication
|
||||
// TODO: Add user authentication
|
||||
// Note: maybe use RFC 27 (ZAP) for this
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user