/*
- * $Id: afs.c,v 1.15 2003-01-24 07:08:42 didg Exp $
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
*/
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif /* HAVE_UNISTD_H */
+#include <sys/stat.h>
#include "globals.h"
#include "directory.h"
#include "volume.h"
#include "misc.h"
+#include "unix.h"
-afs_getvolspace( vol, bfree, btotal, bsize )
-struct vol *vol;
-VolSpace *bfree, *btotal;
-u_int32_t *bsize;
+int afs_getvolspace(struct vol *vol, VolSpace *bfree, VolSpace *btotal, uint32_t *bsize)
{
struct ViceIoctl vi;
struct VolumeStatus *vs;
if ( vs->PartBlocksAvail > 0 ) {
if ( vs->MaxQuota != 0 ) {
+#ifdef min
+#undef min
+#endif
#define min(x,y) (((x)<(y))?(x):(y))
free = min( vs->MaxQuota - vs->BlocksInUse, vs->PartBlocksAvail );
} else {
return( AFP_OK );
}
-afp_getdiracl(obj, ibuf, ibuflen, rbuf, rbuflen )
-AFPObj *obj;
-char *ibuf, *rbuf;
-int ibuflen, *rbuflen;
+int afp_getdiracl(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
{
struct ViceIoctl vi;
struct vol *vol;
struct dir *dir;
struct path *path;
- u_int32_t did;
- u_int16_t vid;
+ uint32_t did;
+ uint16_t vid;
ibuf += 2;
memcpy( &vid, ibuf, sizeof( vid ));
if (( path = cname( vol, dir, &ibuf )) == NULL ) {
*rbuflen = 0;
- return afp_errno;
+ return get_afp_errno(AFPERR_PARAM);
}
if ( *path->m_name != '\0' ) {
*rbuflen = 0;
#undef accessmode
#endif
-afsmode( path, ma, dir, st )
-char *path;
-struct maccess *ma;
-struct dir *dir;
-struct stat *st;
+void afsmode(const struct volume *vol, char *path, struct maccess *ma, struct dir *dir, struct stat *st)
{
struct ViceIoctl vi;
char buf[ 1024 ];
return;
}
- accessmode( path, &ma, dir, st );
+ accessmode(vol, path, ma, dir, st );
return;
}
/*
* cmd | 0 | vid | did | pathtype | pathname | 0 | acl
*/
-afp_setdiracl(obj, ibuf, ibuflen, rbuf, rbuflen )
-AFPObj *obj;
-char *ibuf, *rbuf;
-int ibuflen, *rbuflen;
+int afp_setdiracl(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
{
struct ViceIoctl vi;
struct vol *vol;
struct dir *dir;
char *iend;
struct path *path;
- u_int32_t did;
- u_int16_t vid;
+ uint32_t did;
+ uint16_t vid;
*rbuflen = 0;
iend = ibuf + ibuflen;
if (( path = cname( vol, dir, &ibuf )) == NULL ) {
*rbuflen = 0;
- return afp_errno;
+ return get_afp_errno(AFPERR_PARAM);
}
if ( *path->m_name != '\0' ) {
*rbuflen = 0;
extern C_Block seskey;
extern Key_schedule seskeysched;
-afp_afschangepw(obj, ibuf, ibuflen, rbuf, rbuflen )
-AFPObj *obj;
-char *ibuf, *rbuf;
-int ibuflen, *rbuflen;
+int afp_afschangepw(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
{
char name[ MAXKTCNAMELEN ], instance[ MAXKTCNAMELEN ];
char realm[ MAXKTCREALMLEN ];
char oldpw[ 9 ], newpw[ 9 ];
int len, rc;
- u_int16_t clen;
+ uint16_t clen;
struct ktc_encryptionKey oldkey, newkey;
struct ktc_token adtok;
struct ubik_client *conn;