amount.c 810 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. #include <u.h>
  10. #include <libc.h>
  11. #include <auth.h>
  12. #include "authlocal.h"
  13. int
  14. amount(int fd, char *mntpt, int flags, char *aname)
  15. {
  16. int rv, afd;
  17. AuthInfo *ai;
  18. afd = fauth(fd, aname);
  19. if(afd >= 0){
  20. ai = auth_proxy(afd, amount_getkey, "proto=p9any role=client");
  21. if(ai != nil)
  22. auth_freeAI(ai);
  23. }
  24. rv = mount(fd, afd, mntpt, flags, aname, 'M');
  25. if(afd >= 0)
  26. close(afd);
  27. return rv;
  28. }