maildirgetquota.c
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:1k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. /*
  2. ** Copyright 1998 - 2000 Double Precision, Inc.
  3. ** See COPYING for distribution information.
  4. */
  5. #include "maildirgetquota.h"
  6. #include "maildirmisc.h"
  7. #if HAVE_UNISTD_H
  8. #include <unistd.h>
  9. #endif
  10. #include <stdlib.h>
  11. #include <string.h>
  12. #include <fcntl.h>
  13. #include <sys/types.h>
  14. #include <sys/stat.h>
  15. int maildir_getquota(const char *dir, char buf[QUOTABUFSIZE])
  16. {
  17. char *p;
  18. struct stat stat_buf;
  19. int n;
  20. int l;
  21. p=(char *)malloc(strlen(dir)+sizeof("/maildirfolder"));
  22. if (!p) return (-1);
  23. strcat(strcpy(p, dir), "/maildirfolder");
  24. if (stat(p, &stat_buf) == 0)
  25. {
  26. strcat(strcpy(p, dir), "/..");
  27. n=maildir_getquota(p, buf);
  28. free(p);
  29. return (n);
  30. }
  31. strcat(strcpy(p, dir), "/maildirsize");
  32. n=maildir_safeopen(p, O_RDONLY, 0);
  33. free(p);
  34. if (n < 0) return (n);
  35. if ((l=read(n, buf, QUOTABUFSIZE-1)) < 0)
  36. {
  37. close(n);
  38. return (-1);
  39. }
  40. close(n);
  41. for (n=0; n<l; n++)
  42. if (buf[n] == 'n') break;
  43. buf[n]=0;
  44. return (0);
  45. }