Provided by: aolserver4-dev_4.5.1-18.1_amd64 bug

NAME

       Ns_SetUrlToFileProc,  Ns_UrlIsDir,  Ns_UrlIsFile,  Ns_UrlToFile  -  URL  to  file  mapping
       procedures

SYNOPSIS

       #include "ns.h"

       void
       Ns_SetUrlToFileProc(char *server, Ns_UrlToFileProc *procPtr)

       int
       Ns_UrlIsDir(char *server, char *url)

       int
       Ns_UrlIsFile(char *server, char *url)

       int
       Ns_UrlToFile(Ns_DString *dsPtr, char *server, char *url)
_________________________________________________________________

DESCRIPTION

       These functions map URL paths to real files and directories. They  are  normally  used  to
       determine whether a given URL has a corresponding file or directory and to return the real
       filesystem path that corresponds to the URL.

       Ns_SetUrlToFileProc(server, procPtr)

              Set a pointer to a custom routine to use in place of Ns_UrlToFile.

       Ns_UrlIsDir(server, url)

              Construct a directory name by appending the URL  to  the  current  AOLserver  pages
              directory  for  the  specified  server.  Return  NS_TRUE  if  the directory exists;
              NS_FALSE otherwise.

       Ns_UrlIsFile(server, url)

              Construct a file name by appending the URL to the current AOLserver pages directory
              for  the specified server. Return NS_TRUE if the file exists and is a regular file;
              NS_FALSE otherwise.

              Example:

              /* IsFile - Simple request to determine if an URL is a file. */
              int
              IsFile(Ns_Conn *conn, void *ctx)
              {
                  int isfile;
                  char *server;

                  server = Ns_ConnServer(conn);
                  isfile = Ns_UrlIsFile(server, conn->request->url);
                  if (isfile) {
                      Ns_ConnReturnNotice(conn, 200, "File", NULL);
                  } else {
                      Ns_ConnReturnNotice(conn, 200, "Not a File", NULL);
                  }
                  return NS_OK;
              }

       Ns_UrlToFile(dsPtr, server, url)

              The Ns_UrlToFile function writes the full path name of the  file  corresponding  to
              the  given  URL.  The  result  is appended to the Ns_DString. The function does not
              check that the file exists or is readable by the AOLserver process.  This  function
              returns a status of NS_OK or NS_ERROR.

              Normally  this  prepends the pageroot to the URL path. If you have created your own
              custom routine and used Ns_SetUrlToFileProc to point to it, your routine is  called
              instead.  This  could be used to create, for example, a module that takes the given
              URL and maps it to a file in a different way than the default Ns_UrlToFile routine.

              Example:

              /* A simple page fetch request function. */
              int
              SimpleFetch(Ns_Conn *conn, void *ctx)
              {
                  Ns_DString ds;
                  FILE fp;
                  char *server;
                  Ns_DStringInit(&ds);

                  server = Ns_ConnServer(conn);
                  Ns_UrlToFile(&ds, server, conn->request->url);
                  fp = fopen(ds.string, "r");
                  Ns_ConnSendOpenFp(conn, fp, -1);
                  fclose(fp);
                  Ns_DStringFree(&ds);
                  return NS_OK;
              }

SEE ALSO

       nsd(1), info(n)

KEYWORDS