convert.c
上传用户:lampled
上传日期:2007-01-07
资源大小:94k
文件大小:1k
源码类别:

Web服务器

开发平台:

Unix_Linux

  1. /* Copyright (C) 1995, 1996 by Sven Berkvens (sven@stack.nl) */
  2. #include "config.h"
  3. #include <pwd.h>
  4. #include <stdio.h>
  5. #include <sys/stat.h>
  6. #include "httpd.h"
  7. #include "local.h"
  8. #include "string.h"
  9. extern const char *
  10. convertpath DECL1C(char *, orig)
  11. {
  12. static char buffer[XS_PATH_MAX];
  13. const struct passwd *userinfo;
  14. char person[32];
  15. if (!strncmp(orig, "/~", 2))
  16. {
  17. strncpy(person, orig + 2, 31);
  18. person[31] = 0;
  19. strtok(person, "/");
  20. if (!(userinfo = getpwnam(person)))
  21. strcpy(buffer, "UNKNOWN_USER");
  22. else if (transform_user_dir(buffer, userinfo, 0))
  23. strcpy(buffer, "PERMISSION_DENIED");
  24. strncat(buffer, orig + 3 + strlen(person), XS_PATH_MAX - 64);
  25. } else
  26. strncpy(buffer, orig, XS_PATH_MAX - 1);
  27. buffer[XS_PATH_MAX - 1] = 0;
  28. return(buffer);
  29. }