~eday/gearmand/fixes

« back to all changes in this revision

Viewing changes to libgearman/gearman.c

  • Committer: Eric Day
  • Date: 2009-09-26 16:54:44 UTC
  • Revision ID: eday@oddments.org-20090926165444-g2rbeci54p14gjsh
Removed list add/del macros from libgearman. Moved error_set to gearman.c since first arg is a gearman struct (following OO guidelines).

Show diffs side-by-side

added added

removed removed

Lines of Context:
229
229
  con->recv_data_size= 0;
230
230
  con->recv_data_offset= 0;
231
231
  con->gearman= gearman;
232
 
  GEARMAN_LIST_ADD(gearman->con, con,)
 
232
 
 
233
  if (gearman->con_list != NULL)
 
234
    gearman->con_list->prev= con;
 
235
  con->next= gearman->con_list;
 
236
  con->prev= NULL;
 
237
  gearman->con_list= con;
 
238
  gearman->con_count++;
 
239
 
233
240
  con->context= NULL;
234
241
  con->addrinfo= NULL;
235
242
  con->addrinfo_next= NULL;
283
290
  if (con->protocol_context != NULL && con->protocol_context_free_fn != NULL)
284
291
    (*con->protocol_context_free_fn)(con, (void *)con->protocol_context);
285
292
 
286
 
  GEARMAN_LIST_DEL(con->gearman->con, con,)
 
293
  if (con->gearman->con_list == con)
 
294
    con->gearman->con_list= con->next;
 
295
  if (con->prev != NULL)
 
296
    con->prev->next= con->next;
 
297
  if (con->next != NULL)
 
298
    con->next->prev= con->prev;
 
299
  con->gearman->con_count--;
287
300
 
288
301
  if (con->options & GEARMAN_CON_PACKET_IN_USE)
289
302
    gearman_packet_free(&(con->packet));
557
570
  packet->gearman= gearman;
558
571
 
559
572
  if (!(gearman->options & GEARMAN_DONT_TRACK_PACKETS))
560
 
    GEARMAN_LIST_ADD(gearman->packet, packet,)
 
573
  {
 
574
    if (gearman->packet_list != NULL)
 
575
      gearman->packet_list->prev= packet;
 
576
    packet->next= gearman->packet_list;
 
577
    packet->prev= NULL;
 
578
    gearman->packet_list= packet;
 
579
    gearman->packet_count++;
 
580
  }
561
581
 
562
582
  packet->args= NULL;
563
583
  packet->data= NULL;
621
641
  }
622
642
 
623
643
  if (!(packet->gearman->options & GEARMAN_DONT_TRACK_PACKETS))
624
 
    GEARMAN_LIST_DEL(packet->gearman->packet, packet,)
 
644
  {
 
645
    if (packet->gearman->packet_list == packet)
 
646
      packet->gearman->packet_list= packet->next;
 
647
    if (packet->prev != NULL)
 
648
      packet->prev->next= packet->next;
 
649
    if (packet->next != NULL)
 
650
      packet->next->prev= packet->prev;
 
651
    packet->gearman->packet_count--;
 
652
  }
625
653
 
626
654
  if (packet->options & GEARMAN_PACKET_ALLOCATED)
627
655
    free(packet);
633
661
    gearman_packet_free(gearman->packet_list);
634
662
}
635
663
 
 
664
/*
 
665
 * Local package functions.
 
666
 */
 
667
void gearman_error_set(gearman_st *gearman, const char *function,
 
668
                       const char *format, ...)
 
669
{
 
670
  size_t length;
 
671
  char *ptr;
 
672
  char log_buffer[GEARMAN_MAX_ERROR_SIZE];
 
673
  va_list arg;
 
674
 
 
675
  va_start(arg, format);
 
676
 
 
677
  length= strlen(function);
 
678
 
 
679
  /* Copy the function name and : before the format */
 
680
  ptr= memcpy(log_buffer, function, length);
 
681
  ptr+= length;
 
682
  ptr[0]= ':';
 
683
  ptr++;
 
684
 
 
685
  length= (size_t)vsnprintf(ptr, GEARMAN_MAX_ERROR_SIZE - length - 1, format,
 
686
                            arg);
 
687
 
 
688
  if (gearman->log_fn == NULL)
 
689
    memcpy(gearman->last_error, log_buffer, length);
 
690
  else
 
691
  {
 
692
    (*(gearman->log_fn))(log_buffer, GEARMAN_VERBOSE_FATAL,
 
693
                         (void *)(gearman)->log_context);
 
694
  }
 
695
 
 
696
  va_end(arg);
 
697
}
 
698
 
636
699
gearman_return_t gearman_parse_servers(const char *servers,
637
700
                                       gearman_parse_server_fn *function,
638
701
                                       const void *context)