Trying to fix connectivity tool.
This commit is contained in:
+1
-1
@@ -15,7 +15,7 @@ MOC_DIR = mocs
|
|||||||
OBJECTS_DIR = obj
|
OBJECTS_DIR = obj
|
||||||
DEFINES += PREFIX=\"$${PREFIX}\"
|
DEFINES += PREFIX=\"$${PREFIX}\"
|
||||||
QT -= core gui
|
QT -= core gui
|
||||||
QMAKE_CXXFLAGS += -std=gnu++0x
|
#QMAKE_CXXFLAGS += -std=gnu++0x
|
||||||
#PRECOMPILED_HEADER = src/pch_lib.h
|
#PRECOMPILED_HEADER = src/pch_lib.h
|
||||||
|
|
||||||
INCLUDEPATH += . \
|
INCLUDEPATH += . \
|
||||||
|
|||||||
+19
-11
@@ -33,10 +33,12 @@ using namespace std;
|
|||||||
using boost::asio::ip::tcp;
|
using boost::asio::ip::tcp;
|
||||||
namespace po = boost::program_options;
|
namespace po = boost::program_options;
|
||||||
|
|
||||||
|
|
||||||
|
#define BUF_SIZE 1024
|
||||||
// Global receive buffer
|
// Global receive buffer
|
||||||
boost::array<char, 512> recBuf;
|
boost::array<char, BUF_SIZE> recBuf;
|
||||||
size_t recBufPos = 0;
|
size_t recBufPos = 0;
|
||||||
boost::array<char, 512> sendBuf;
|
boost::array<char, BUF_SIZE> sendBuf;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
net_packet_print_to_string(const void *buffer, size_t size, void *packetStr)
|
net_packet_print_to_string(const void *buffer, size_t size, void *packetStr)
|
||||||
@@ -51,9 +53,11 @@ xer_encode(&asn_DEF_PokerTHMessage, msg, XER_F_BASIC, &net_packet_print_to_strin
|
|||||||
cout << packetString << endl;*/
|
cout << packetString << endl;*/
|
||||||
|
|
||||||
PokerTHMessage_t *
|
PokerTHMessage_t *
|
||||||
receiveMessage(tcp::socket &socket, bool recursed = false)
|
receiveMessage(tcp::socket &socket)
|
||||||
{
|
{
|
||||||
PokerTHMessage_t *msg = NULL;
|
PokerTHMessage_t *msg = NULL;
|
||||||
|
do
|
||||||
|
{
|
||||||
asn_dec_rval_t retVal = ber_decode(0, &asn_DEF_PokerTHMessage, (void **)&msg, recBuf.data(), recBufPos);
|
asn_dec_rval_t retVal = ber_decode(0, &asn_DEF_PokerTHMessage, (void **)&msg, recBuf.data(), recBufPos);
|
||||||
if(retVal.code == RC_OK)
|
if(retVal.code == RC_OK)
|
||||||
{
|
{
|
||||||
@@ -71,14 +75,9 @@ receiveMessage(tcp::socket &socket, bool recursed = false)
|
|||||||
{
|
{
|
||||||
// Free the partially decoded message (if applicable).
|
// Free the partially decoded message (if applicable).
|
||||||
ASN_STRUCT_FREE(asn_DEF_PokerTHMessage, msg);
|
ASN_STRUCT_FREE(asn_DEF_PokerTHMessage, msg);
|
||||||
if (!recursed)
|
recBufPos += socket.receive(boost::asio::buffer(recBuf.c_array() + recBufPos, BUF_SIZE - recBufPos));
|
||||||
{
|
|
||||||
recBufPos += socket.receive(boost::asio::buffer(recBuf.c_array() + recBufPos, 512 - recBufPos));
|
|
||||||
return receiveMessage(socket, true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return msg = NULL;
|
|
||||||
}
|
}
|
||||||
|
} while (recBufPos < BUF_SIZE && msg != NULL);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +87,7 @@ sendMessage(tcp::socket &socket, PokerTHMessage_t *msg)
|
|||||||
bool retVal = false;
|
bool retVal = false;
|
||||||
if (msg)
|
if (msg)
|
||||||
{
|
{
|
||||||
asn_enc_rval_t e = der_encode_to_buffer(&asn_DEF_PokerTHMessage, msg, sendBuf.data(), 512);
|
asn_enc_rval_t e = der_encode_to_buffer(&asn_DEF_PokerTHMessage, msg, sendBuf.data(), BUF_SIZE);
|
||||||
if (e.encoded != -1)
|
if (e.encoded != -1)
|
||||||
{
|
{
|
||||||
socket.send(boost::asio::buffer(sendBuf.data(), e.encoded));
|
socket.send(boost::asio::buffer(sendBuf.data(), e.encoded));
|
||||||
@@ -102,6 +101,8 @@ sendMessage(tcp::socket &socket, PokerTHMessage_t *msg)
|
|||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
// Check command line options.
|
// Check command line options.
|
||||||
po::options_description desc("Allowed options");
|
po::options_description desc("Allowed options");
|
||||||
desc.add_options()
|
desc.add_options()
|
||||||
@@ -367,6 +368,13 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
perfTimer.restart();
|
perfTimer.restart();
|
||||||
gsasl_done(authContext);
|
gsasl_done(authContext);
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
cout << "Exception caught" << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user