SYNOPSIS

#include <sys/types.h>

#include "dpns_api.h"

int dpns_setfsize (const char *path, struct dpns_fileid *file_uniqueid, u_signed64 filesize)

int dpns_setfsizec (const char *path, struct dpns_fileid *file_uniqueid, u_signed64 filesize, const char *csumtype, char *csumvalue)

DESCRIPTION

dpns_setfsize sets the filesize for a regular file; set also the last modification time to the current time. This function should only be called by the stager after the last write operation has been performed on the file. The file can be identified by path name or by file_uniqueid. If both are specified, file_uniqueid is used.

path

specifies the logical pathname relative to the current DPNS directory or the full DPNS pathname.

csumtype

specifies the type of checksum. Valid types are:

CS

standard 32 bits checksum

AD

Adler 32 bits checksum

MD

MD5 128 bits checksum

RETURN VALUE

This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.

ERRORS

ENOENT

A component of path prefix does not exist or path is a null pathname.

EACCES

Search permission is denied on a component of the path prefix or the caller effective user ID does not match the owner ID of the file or write permission on the file itself is denied.

EFAULT

path and file_uniqueid are NULL pointers.

ENOTDIR

A component of path prefix is not a directory.

EISDIR

The file is not a regular file.

EINVAL

The length of the csumtype exceeds 2 or csumtype is an unknown type or the length of the csumvalue exceeds 32.

ENAMETOOLONG

The length of path exceeds CA_MAXPATHLEN or the length of a path component exceeds CA_MAXNAMELEN.

SENOSHOST

Host unknown.

SENOSSERV

Service unknown.

SECOMERR

Communication error.

ENSNACT

Name server is not running or is being shutdown.

RELATED TO dpns_setfsize…

AUTHOR

LCG Grid Deployment Team