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