コード例 #1
0
ファイル: ngx_file.c プロジェクト: GYGit/nginx
ssize_t
ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain)
{
    ngx_int_t  rc;

    if (tf->file.fd == NGX_INVALID_FILE) {
        rc = ngx_create_temp_file(&tf->file, tf->path, tf->pool,
                                  tf->persistent, tf->clean, tf->access);

        if (rc != NGX_OK) {
            return rc;
        }

        if (tf->log_level) {
            ngx_log_error(tf->log_level, tf->file.log, 0, "%s %V",
                          tf->warn, &tf->file.name);
        }
    }

#if (NGX_THREADS && NGX_HAVE_PWRITEV)

    if (tf->thread_write) {
        return ngx_thread_write_chain_to_file(&tf->file, chain, tf->offset,
                                              tf->pool);
    }

#endif

    return ngx_write_chain_to_file(&tf->file, chain, tf->offset, tf->pool);
}
コード例 #2
0
ファイル: ngx_file.c プロジェクト: jiayuehua/nginx
int ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain)
{
  int  rc;

  if (tf->file.fd == NGX_INVALID_FILE) {
    rc = ngx_create_temp_file(&tf->file, tf->path, tf->pool,
                  tf->persistent);

    if (rc == NGX_ERROR || rc == NGX_AGAIN) {
      return rc;
    }

    if (!tf->persistent && tf->warn) {
      ngx_log_error(NGX_LOG_WARN, tf->file.log, 0, tf->warn);
    }
  }

  return ngx_write_chain_to_file(&tf->file, chain, tf->offset, tf->pool);
}
コード例 #3
0
ファイル: ngx_file.c プロジェクト: dreamsxin/lmss
ssize_t
ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain)
{
    ngx_int_t  rc;

    if (tf->file.fd == NGX_INVALID_FILE) {
        rc = ngx_create_temp_file(&tf->file, tf->path, tf->pool,
                                  tf->persistent, tf->clean, tf->access);

        if (rc == NGX_ERROR || rc == NGX_AGAIN) {
            return rc;
        }

        if (tf->log_level) {
            ngx_log_error(tf->log_level, tf->file.log, 0, "%s %V",
                          tf->warn, &tf->file.name);
        }
    }

    return ngx_write_chain_to_file(&tf->file, chain, tf->offset, tf->pool);
}