예제 #1
0
파일: db.c 프로젝트: agilebarbecue/csync2
void* csync_db_begin(const char *err, const char *fmt, ...)
{
	db_stmt_p stmt = NULL;
	char *sql;
	va_list ap;
	int rc, busyc = 0;
	char *ppTail; 
	va_start(ap, fmt);
	VASPRINTF(&sql, fmt, ap);
	va_end(ap);

	in_sql_query++;
	csync_db_maybegin();

	csync_debug(2, "SQL: %s\n", sql);
	while (1) {
	        rc = db_prepare_stmt(db, sql, &stmt, &ppTail);
		if ( rc != DB_BUSY ) break;
		if (busyc++ > get_dblock_timeout()) { db = 0; csync_fatal(DEADLOCK_MESSAGE); }
		csync_debug(2, "Database is busy, sleeping a sec.\n");
		sleep(1);
	}

	if ( rc != DB_OK && err )
		csync_fatal("Database Error: %s [%d]: %s on executing %s\n", err, rc, db_errmsg(db), sql);
	free(sql);

	return stmt;
}
예제 #2
0
파일: libckpool.c 프로젝트: nullivex/ckpool
/* We use a weak function as a simple printf within the library that can be
 * overridden by however the outside executable wishes to do its logging. */
void __attribute__((weak)) logmsg(int __maybe_unused loglevel, const char *fmt, ...)
{
	va_list ap;
	char *buf;

	va_start(ap, fmt);
	VASPRINTF(&buf, fmt, ap);
	va_end(ap);

	printf("%s\n", buf);
	free(buf);
}
예제 #3
0
파일: util.c 프로젝트: gcsgithub/blib
char    *newstr(char *fmt,...)
{
    va_list args;
    char    *dynstr;
    size_t  slen;
    
    if (!fmt) {
        fmt="";	// just in case they pass a null pointer
    }
    va_start(args,fmt);
    slen = VASPRINTF(&dynstr, fmt,args);
    va_end(args);
    if ( dynstr  == (char *) NULL ) {
        fprintf(stderr,"#BLIB:  Out of memory allocating string %s size %llu\n", fmt,(llu_t) slen);
        errno = ENOMEM;
        exit(errno);
    }
    return(dynstr);
}
예제 #4
0
파일: axfr.c 프로젝트: corretgecom/mydns-ng
/* static void axfr_error(TASK *, const char *, ...) __attribute__ ((__noreturn__)); */
static void
axfr_error(TASK *t, const char *fmt, ...) {
  va_list	ap; 
  char		*msg = NULL;

  if (t) {
    task_output_info(t, NULL);
  } else {
    va_start(ap, fmt);
    VASPRINTF(&msg, fmt, ap);
    va_end(ap);

    Warnx("%s", msg);
    RELEASE(msg);
  }

  sockclose(t->fd);

  _exit(EXIT_FAILURE);
  /* NOTREACHED */
}