More functions needed in Ethernet library

As I am working on a ftp server for Arduino Due, I need 2 functions actually unavailable in the Ethernet library:

First one, to know if a client is connected to a server.
Actually EthernetServer::available() do the work but as it wait for data after detecting the connection, it blocks in case their no immediately a character sent by client, as this is the case in ftp protocol.
So I add EthernetServer::connected() to EthernetServer.h and EthernetServer.cpp :

EthernetClient EthernetServer::connected()
{
  accept();
  for( int sock = 0; sock < MAX_SOCK_NUM; sock++ )
  {
    EthernetClient client(sock);
    if( EthernetClass::_server_port[sock] == _port &&
        (client.status() == SnSR::ESTABLISHED ||
         client.status() == SnSR::CLOSE_WAIT))
      return client;
  }
  return EthernetClient(MAX_SOCK_NUM);
}

Second, once connected, we need to know periodically if client is still connected.
I add EthernetClient::isConnected() to EthernetClient.h and EthernetClient.cpp:

int EthernetClient::isConnected() 
{
  if( _sock == MAX_SOCK_NUM )
    return 0;
  if( status() == SnSR::ESTABLISHED )
    return 1;
  return 0;
}

This functions give me good result, but I am not an expert!
So, I wish to know if my approach is correct, and in that case, if this would be possible to add them to the official library.

The first I would make a bit different

EthernetClient EthernetServer::connected()
{
  accept();
  for( int sock = 0; sock < MAX_SOCK_NUM; sock++ )
  {
    if ( EthernetClass::_server_port[sock] == _port)
    {
      EthernetClient client(sock);  // client is only needed when above condition is met
      if (client.status() == SnSR::ESTABLISHED || client.status() == SnSR::CLOSE_WAIT)
          return client;
  }
  return EthernetClient(MAX_SOCK_NUM);
}

the second can be simpler:

int EthernetClient::isConnected() 
{
  if( status() == SnSR::ESTABLISHED )
    return 1;
  return 0;  // all other cases
}

Thank you, Rob, for your suggestions! I apply your change for EthernetServer::connected() . It works well About the second function, I realise there is already a function EthernetClient::connected() that seems to be more complete than the one I add. I modify my program using it and it seems to work too. Can you explain me the difference?

I just create a new post about my ftp server project: http://forum.arduino.cc/index.php?topic=182382.0 And the code is in GitHub: http://github.com/gallegojm/Arduino-Ftp-Server Any suggestion would be great