~ubuntu-branches/debian/sid/gearmand/sid

« back to all changes in this revision

Viewing changes to libgearman/connection.cc

  • Committer: Package Import Robot
  • Author(s): Stig Sandbeck Mathisen
  • Date: 2012-05-01 20:43:47 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20120501204347-qaifvvjkktvc9upu
Tags: 0.32-1
* Imported Upstream version 0.32
* Remove spelling patch included upstream
* Remove documentation patch, we do not rebuild documentation
* Remove memcached patch, fixed upstream
* Use dh_autoreconf
* Use copyright format 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
173
173
  recv_buffer_size(0),
174
174
  recv_data_size(0),
175
175
  recv_data_offset(0),
176
 
  universal(universal_arg)
 
176
  universal(universal_arg),
 
177
  _recv_packet(NULL)
177
178
{
178
179
  options.ready= false;
179
180
  options.packet_in_use= false;
200
201
  addrinfo= NULL;
201
202
  addrinfo_next= NULL;
202
203
  send_buffer_ptr= send_buffer;
203
 
  recv_packet= NULL;
204
204
  recv_buffer_ptr= recv_buffer;
205
205
  host[0]= 0;
206
206
}
386
386
  send_data_offset= 0;
387
387
 
388
388
  recv_state= GEARMAN_CON_RECV_UNIVERSAL_NONE;
389
 
  if (recv_packet)
390
 
  {
391
 
    gearman_packet_free(recv_packet);
392
 
    recv_packet= NULL;
393
 
  }
 
389
  free_recv_packet();
394
390
 
395
391
  recv_buffer_ptr= recv_buffer;
396
392
  recv_buffer_size= 0;
397
393
}
398
394
 
 
395
void gearman_connection_st::free_recv_packet()
 
396
{
 
397
  if (_recv_packet)
 
398
  {
 
399
    gearman_packet_free(recv_packet());
 
400
    _recv_packet= NULL;
 
401
  }
 
402
}
 
403
 
399
404
void gearman_connection_st::reset_addrinfo()
400
405
{
401
406
  if (addrinfo)
502
507
    send_data_size= packet_arg.data_size;
503
508
 
504
509
    /* If this is NULL, then gearman_connection_send_data function will be used. */
505
 
    if (not packet_arg.data)
 
510
    if (packet_arg.data == NULL)
506
511
    {
507
512
      send_state= GEARMAN_CON_SEND_UNIVERSAL_FLUSH_DATA;
508
513
      return GEARMAN_SUCCESS;
802
807
      return NULL;
803
808
    }
804
809
 
805
 
    recv_packet= gearman_packet_create(universal, &packet_arg);
806
 
    if (recv_packet == NULL)
 
810
    _recv_packet= gearman_packet_create(universal, &packet_arg);
 
811
    if (_recv_packet == NULL)
807
812
    {
808
813
      ret= GEARMAN_MEMORY_ALLOCATION_FAILURE;
809
814
      return NULL;
816
821
    {
817
822
      if (recv_buffer_size > 0)
818
823
      {
819
 
        size_t recv_size= gearman_packet_unpack(*recv_packet,
 
824
        size_t recv_size= gearman_packet_unpack(*(recv_packet()),
820
825
                                                recv_buffer_ptr,
821
826
                                                recv_buffer_size, ret);
822
827
        recv_buffer_ptr+= recv_size;
865
870
 
866
871
    assert(packet_arg.universal);
867
872
    packet_arg.data= gearman_malloc((*packet_arg.universal), packet_arg.data_size);
868
 
    if (not packet_arg.data)
 
873
    if (packet_arg.data == NULL)
869
874
    {
870
875
      ret= GEARMAN_MEMORY_ALLOCATION_FAILURE;
871
876
      close_socket();
891
896
    break;
892
897
  }
893
898
 
894
 
  gearman_packet_st *tmp_packet_arg= recv_packet;
895
 
  recv_packet= NULL;
 
899
  gearman_packet_st *tmp_packet_arg= recv_packet();
 
900
  set_recv_packet(NULL);
896
901
 
897
902
  return tmp_packet_arg;
898
903
}
966
971
 
967
972
        if (gearman_universal_is_non_blocking(universal))
968
973
        {
969
 
          gearman_gerror(universal, GEARMAN_IO_WAIT);
970
 
          ret= GEARMAN_IO_WAIT;
 
974
          ret= gearman_gerror(universal, GEARMAN_IO_WAIT);
971
975
          return 0;
972
976
        }
973
977