Commit 8293b317 authored by unknown's avatar unknown
Browse files

[PATCH] WL#3704 mgmapi timeouts: Add bool timeout flag to Streams

Index: ndb-work/storage/ndb/include/util/InputStream.hpp
===================================================================


storage/ndb/include/util/InputStream.hpp:
  WL#3704 mgmapi timeouts: Add bool timeout flag to Streams
storage/ndb/include/util/OutputStream.hpp:
  WL#3704 mgmapi timeouts: Add bool timeout flag to Streams
storage/ndb/src/common/util/InputStream.cpp:
  WL#3704 mgmapi timeouts: Add bool timeout flag to Streams
storage/ndb/src/common/util/OutputStream.cpp:
  WL#3704 mgmapi timeouts: Add bool timeout flag to Streams
storage/ndb/src/mgmsrv/Services.cpp:
  WL#3704 mgmapi timeouts: Add bool timeout flag to Streams
storage/ndb/test/ndbapi/testMgm.cpp:
  WL#3704 mgmapi timeouts: Add bool timeout flag to Streams
parent 45f698c5
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -50,10 +50,14 @@ class SocketInputStream : public InputStream {
  NDB_SOCKET_TYPE m_socket;
  unsigned m_timeout_ms;
  bool m_startover;
  bool m_timedout;
public:
  SocketInputStream(NDB_SOCKET_TYPE socket, unsigned read_timeout_ms = 1000);
  virtual ~SocketInputStream() {}
  char* gets(char * buf, int bufLen);
  bool timedout() { return m_timedout; };
  void reset_timeout() { m_timedout= false; };

};

#endif
+3 −0
Original line number Diff line number Diff line
@@ -45,9 +45,12 @@ public:
class SocketOutputStream : public OutputStream {
  NDB_SOCKET_TYPE m_socket;
  unsigned m_timeout_ms;
  bool m_timedout;
public:
  SocketOutputStream(NDB_SOCKET_TYPE socket, unsigned write_timeout_ms = 1000);
  virtual ~SocketOutputStream() {}
  bool timedout() { return m_timedout; };
  void reset_timeout() { m_timedout= false; };

  int print(const char * fmt, ...);
  int println(const char * fmt, ...);
+6 −0
Original line number Diff line number Diff line
@@ -38,10 +38,13 @@ SocketInputStream::SocketInputStream(NDB_SOCKET_TYPE socket,
  : m_socket(socket) {
  m_startover= true;
  m_timeout_ms = read_timeout_ms;
  m_timedout= false;
}

char*
SocketInputStream::gets(char * buf, int bufLen) {
  if(timedout())
    return 0;
  assert(bufLen >= 2);
  int offset= 0;
  if(m_startover)
@@ -63,7 +66,10 @@ SocketInputStream::gets(char * buf, int bufLen) {
  m_startover= true;

  if(res == -1)
  {
    m_timedout= true;
    return 0;
  }

  return buf;
}
+17 −0
Original line number Diff line number Diff line
@@ -45,21 +45,38 @@ SocketOutputStream::SocketOutputStream(NDB_SOCKET_TYPE socket,
				       unsigned write_timeout_ms){
  m_socket = socket;
  m_timeout_ms = write_timeout_ms;
  m_timedout= false;
}

int
SocketOutputStream::print(const char * fmt, ...){
  va_list ap;

  if(timedout())
    return -1;

  va_start(ap, fmt);
  const int ret = vprint_socket(m_socket, m_timeout_ms, fmt, ap);
  va_end(ap);

  if (errno==ETIMEDOUT)
    m_timedout= true;

  return ret;
}
int
SocketOutputStream::println(const char * fmt, ...){
  va_list ap;

  if(timedout())
    return -1;

  va_start(ap, fmt);
  const int ret = vprintln_socket(m_socket, m_timeout_ms, fmt, ap);
  va_end(ap);

  if (errno==ETIMEDOUT)
    m_timedout= true;

  return ret;
}
+6 −1
Original line number Diff line number Diff line
@@ -1642,6 +1642,11 @@ MgmApiSession::get_mgmd_nodeid(Parser_t::Context &ctx,
{
  m_output->println("get mgmd nodeid reply");
  m_output->println("nodeid:%u",m_mgmsrv.getOwnNodeId());
  if(ERROR_INSERTED(1))
  {
    NdbSleep_SecSleep(10);
  }

  m_output->println("");
}

Loading