Provided by: libdpm-dev_1.13.0-1_amd64 bug


       dpns_listreplica - list replica entries for a given file


       #include <sys/types.h>
       #include "dpns_api.h"

       struct  dpns_filereplica *dpns_listreplica (const char *path, const char *guid, int flags,
       dpns_list *listp)


       dpns_listreplica lists replica entries for a given file.  This routine returns  a  pointer
       to a structure containing the current replica entry.

       struct dpns_filereplica {
            u_signed64     fileid;
            u_signed64     nbaccesses;
            time_t         atime;         /* last access to replica */
            time_t         ptime;         /* replica pin time */
            char      status;
            char      f_type;        /* 'V' for Volatile, 'P' for Permanent */
            char      poolname[CA_MAXPOOLNAMELEN+1];
            char      host[CA_MAXHOSTNAMELEN+1];
            char      fs[80];
            char      sfn[CA_MAXSFNLEN+1];

       path   specifies the logical pathname.

       guid   specifies the Grid Unique IDentifier.

       flags  may be one of the following constant:

                     the  first  call  must have this flag set to allocate buffers and initialize

                     all the following calls must have this flag set.

                     final call to terminate the list and free resources.


       This routine returns a pointer to a structure containing the current replica entry if  the
       operation  was  successful  or  NULL if all entries have been returned or if the operation
       failed. In the latter case, serrno is set appropriately.


       A C program listing the replicas fo a given sfn could look like:

            int flags;
            dpns_list list;
            struct dpns_filereplica *lp;

            flags = CNS_LIST_BEGIN;
            while ((lp = dpns_listreplica (sfn, NULL, flags, &list)) != NULL) {
                 flags = CNS_LIST_CONTINUE;
                 /* process the entry */
            (void) dpns_listreplica (sfn, NULL, CNS_LIST_END, &list);


       ENOENT       The named file does not exist.

       EACCES       Search permission is denied on a component of the parent directory.

       ENOMEM       Memory could not be allocated for the output buffer.

       EFAULT       path and guid are NULL pointers or listp is a NULL pointer.

       ENOTDIR      A component of path prefix is not a directory.

       EINVAL       The length of guid exceeds CA_MAXGUIDLEN or path and guid are both given  and
                    they point at a different file.

       ENAMETOOLONG The length of path exceeds CA_MAXPATHNAMELEN.

       SENOSHOST    Host unknown.

       SENOSSERV    Service unknown.

       SECOMERR     Communication error.

       ENSNACT      Name server is not running or is being shutdown.


       Castor_limits(4), dpns_addreplica(3)