SYNOPSIS

#include <sys/types.h>

#include "dpm_api.h"

int dpm_getspacemd (int nbtokens, char **s_tokens, int *nbreplies, struct dpm_space_metadata **spacemd)

DESCRIPTION

dpm_getspacemd gets space metadata.

The input arguments are:

nbtokens

specifies the number of tokens in the request.

s_tokens

specifies an array of tokens returned by previous reservespace requests.

The output arguments are:

nbreplies

will be set to the number of replies in the array of space metadata.

spacemd

will be set to the address of an array of dpm_space_metadata structures allocated by the API. The client application is responsible for freeing the array when not needed anymore.

struct dpm_space_metadata {
	char		s_type;
	char		s_token[CA_MAXDPMTOKENLEN+1];
	uid_t		s_uid;
	gid_t		s_gid;
	char		ret_policy;
	char		ac_latency;
	char		u_token[256];
	char		client_dn[256];
	u_signed64	t_space;	/* Total space */
	u_signed64	g_space;	/* Guaranteed space */
	signed64	u_space;	/* Unused space */
	char		poolname[CA_MAXPOOLNAMELEN+1];
	time_t		a_lifetime;	/* Lifetime assigned */
	time_t		r_lifetime;	/* Remaining lifetime */
	int		nbgids;
	gid_t		*gids;		/* restrict the space to given group(s) */
};

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

EFAULT

s_tokens , nbreplies or spacemd is a NULL pointer.

ENOMEM

Memory could not be allocated for storing the reply.

EINVAL

nbtokens is not strictly positive or the specified tokens are invalid/unknown.

SENOSHOST

Host unknown.

SEINTERNAL

Database error.

SECOMERR

Communication error.