~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle-2.0/libdrizzle/drizzle.cc

mergeĀ lp:~marc-isambart/drizzle/libdrizzle-windows-fix

Show diffs side-by-side

added added

removed removed

Lines of Context:
631
631
      con= drizzle_con_create(drizzle, con);
632
632
      if (con == NULL)
633
633
      {
634
 
        (void)close(fd);
 
634
        (void)closesocket(fd);
635
635
        *ret_ptr= DRIZZLE_RETURN_MEMORY;
636
636
        return NULL;
637
637
      }
639
639
      *ret_ptr= drizzle_con_set_fd(con, fd);
640
640
      if (*ret_ptr != DRIZZLE_RETURN_OK)
641
641
      {
642
 
        (void)close(fd);
 
642
        (void)closesocket(fd);
643
643
        return NULL;
644
644
      }
645
645
 
676
676
                       const char *format, ...)
677
677
{
678
678
  size_t size;
 
679
  int written;
679
680
  char *ptr;
680
681
  char log_buffer[DRIZZLE_MAX_ERROR_SIZE];
681
682
  va_list args;
688
689
  ptr++;
689
690
 
690
691
  va_start(args, format);
691
 
  size+= (size_t)vsnprintf(ptr, DRIZZLE_MAX_ERROR_SIZE - size, format, args);
 
692
  written= vsnprintf(ptr, DRIZZLE_MAX_ERROR_SIZE - size, format, args);
692
693
  va_end(args);
693
694
 
 
695
  if (written < 0) size= DRIZZLE_MAX_ERROR_SIZE;
 
696
  else size+= written;
 
697
  if (size >= DRIZZLE_MAX_ERROR_SIZE)
 
698
    size= DRIZZLE_MAX_ERROR_SIZE - 1;
 
699
  log_buffer[size]= 0;
 
700
 
694
701
  if (drizzle->log_fn == NULL)
695
 
  {
696
 
    if (size >= DRIZZLE_MAX_ERROR_SIZE)
697
 
      size= DRIZZLE_MAX_ERROR_SIZE - 1;
698
 
 
699
702
    memcpy(drizzle->last_error, log_buffer, size + 1);
700
 
  }
701
703
  else
702
704
    drizzle->log_fn(log_buffer, DRIZZLE_VERBOSE_ERROR, drizzle->log_context);
703
705
}
716
718
  else
717
719
  {
718
720
    vsnprintf(log_buffer, DRIZZLE_MAX_ERROR_SIZE, format, args);
 
721
    log_buffer[DRIZZLE_MAX_ERROR_SIZE-1]= 0;
719
722
    drizzle->log_fn(log_buffer, verbose, drizzle->log_context);
720
723
  }
721
724
}