Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all bug

NAME

       httpd_util - Miscellaneous utility functions to be used when implementing
         Erlang web server API modules.

DESCRIPTION

       This  module  provides  the  Erlang  web  server  API module programmer with miscellaneous
       utility functions.

EXPORTS

       convert_request_date(DateString) -> ErlDate|bad_date

              Types:

                 DateString = string()
                 ErlDate = {{Year,Month,Date},{Hour,Min,Sec}}
                 Year = Month = Date = Hour = Min = Sec = integer()

              convert_request_date/1 converts DateString to the Erlang  date  format.  DateString
              must be in one of the three date formats defined in RFC 2616.

       create_etag(FileInfo) -> Etag

              Types:

                 FileInfo = file_info()
                 Etag = string()

              create_etag/1  calculates  the  Etag  for  a  file  from its size and time for last
              modification. FileInfo is a record defined in kernel/include/file.hrl.

       day(NthDayOfWeek) -> DayOfWeek

              Types:

                 NthDayOfWeek = 1-7
                 DayOfWeek = string()

              day/1 converts the day of the week (NthDayOfWeek)  from  an  integer  (1-7)  to  an
              abbreviated string, that is:

              1 = "Mon", 2 = "Tue", ..., 7 = "Sat".

       decode_hex(HexValue) -> DecValue

              Types:

                 HexValue = DecValue = string()

              Converts the hexadecimal value HexValue into its decimal equivalent (DecValue).

       flatlength(NestedList) -> Size

              Types:

                 NestedList = list()
                 Size = integer()

              flatlength/1  computes  the  size of the possibly nested list NestedList, which can
              contain binaries.

       hexlist_to_integer(HexString) -> Number

              Types:

                 Number = integer()
                 HexString = string()

              hexlist_to_integer converts the hexadecimal value of HexString to an integer.

       integer_to_hexlist(Number) -> HexString

              Types:

                 Number = integer()
                 HexString = string()

              integer_to_hexlist/1 returns a string representing Number in a hexadecimal form.

       lookup(ETSTable,Key) -> Result
       lookup(ETSTable,Key,Undefined) -> Result

              Types:

                 ETSTable = ets_table()
                 Key = term()
                 Result = term() | undefined | Undefined
                 Undefined = term()

              lookup extracts {Key,Value} tuples from ETSTable and returns the  Value  associated
              with  Key.  If ETSTable is of type bag, only the first Value associated with Key is
              returned. lookup/2 returns undefined and lookup/3 returns Undefined if no Value  is
              found.

       lookup_mime(ConfigDB,Suffix)
       lookup_mime(ConfigDB,Suffix,Undefined) -> MimeType

              Types:

                 ConfigDB = ets_table()
                 Suffix = string()
                 MimeType = string() | undefined | Undefined
                 Undefined = term()

              lookup_mime  returns  the  MIME  type  associated  with  a  specific file suffix as
              specified in the file mime.types (located in the  config directory).

       lookup_mime_default(ConfigDB,Suffix)
       lookup_mime_default(ConfigDB,Suffix,Undefined) -> MimeType

              Types:

                 ConfigDB = ets_table()
                 Suffix = string()
                 MimeType = string() | undefined | Undefined
                 Undefined = term()

              lookup_mime_default returns the MIME type associated with a specific file suffix as
              specified  in  the  mime.types  file  (located  in  the   config  directory). If no
              appropriate association is found, the value of DefaultType is returned.

       message(StatusCode,PhraseArgs,ConfigDB) -> Message

              Types:

                 StatusCode = 301 | 400 | 403 | 404 | 500 | 501 | 504
                 PhraseArgs = term()
                 ConfigDB = ets_table
                 Message = string()

              message/3 returns an informative HTTP 1.1 status string in  HTML.  Each  StatusCode
              requires a specific PhraseArgs:

                301:
                  string(): A URL pointing at the new document position.

                400 | 401 | 500:
                  none (no PhraseArgs).

                403 | 404:
                  string(): A Request-URI as described in RFC 2616.

                501:
                  {Method,RequestURI,HTTPVersion}: The HTTP Method, Request-URI, and HTTP-Version
                  as defined in RFC 2616.

                504:
                  string(): A string describing why the service was unavailable.

       month(NthMonth) -> Month

              Types:

                 NthMonth = 1-12
                 Month = string()

              month/1 converts the month NthMonth as an integer (1-12) to an abbreviated  string,
              that is:

              1 = "Jan", 2 = "Feb", ..., 12 = "Dec".

       multi_lookup(ETSTable,Key) -> Result

              Types:

                 ETSTable = ets_table()
                 Key = term()
                 Result = [term()]

              multi_lookup  extracts  all  {Key,Value}  tuples  from  an ETSTable and returns all
              Values associated with Key in a list.

       reason_phrase(StatusCode) -> Description

              Types:

                 StatusCode = 100| 200 | 201 | 202 | 204 | 205 | 206 | 300 | 301 | 302  |  303  |
                 304  | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 410 411 | 412 | 413 | 414 415 |
                 416 | 417 | 500 | 501 | 502 | 503 | 504 | 505
                 Description = string()

              reason_phrase returns Description of an HTTP 1.1 StatusCode, for  example,  200  is
              "OK" and 201 is "Created". For more information, see RFC 2616.

       rfc1123_date() -> RFC1123Date
       rfc1123_date({{YYYY,MM,DD},{Hour,Min,Sec}}) -> RFC1123Date

              Types:

                 YYYY = MM = DD = Hour = Min = Sec = integer()
                 RFC1123Date = string()

              rfc1123_date/0 returns the current date in RFC 1123 format. rfc_date/1 converts the
              date in the Erlang format to the RFC 1123 date format.

       split(String,RegExp,N) -> SplitRes

              Types:

                 String = RegExp = string()
                 SplitRes = {ok, FieldList} | {error, errordesc()}
                 Fieldlist = [string()]
                 N = integer

              split/3  splits  String  in  N  chunks  using  RegExp.  split/3  is  equivalent  to
              regexp:split/2  with  the  exception that N defines the maximum number of fields in
              FieldList.

       split_script_path(RequestLine) -> Splitted

              Types:

                 RequestLine = string()
                 Splitted = not_a_script | {Path, PathInfo, QueryString}
                 Path = QueryString = PathInfo = string()

              split_script_path/1 is equivalent  to  split_path/1  with  one  exception.  If  the
              longest  possible  path  is  not  a  regular, accessible, and executable file, then
              not_a_script is returned.

       split_path(RequestLine) -> {Path,QueryStringOrPathInfo}

              Types:

                 RequestLine = Path = QueryStringOrPathInfo = string()

              split_path/1 splits RequestLine in a file reference (Path), and a QueryString or  a
              PathInfo  string as specified in RFC 2616. A QueryString is isolated from Path with
              a question mark (?) and PathInfo with a slash (/). In the case  of  a  QueryString,
              everything  before ? is a Path and everything after ? is a QueryString. In the case
              of a PathInfo, RequestLine is scanned from left-to-right on the  hunt  for  longest
              possible  Path  being  a file or a directory. Everything after the longest possible
              Path, isolated with a /, is regarded as PathInfo. The  resulting  Path  is  decoded
              using decode_hex/1 before delivery.

       strip(String) -> Stripped

              Types:

                 String = Stripped = string()

              strip/1  removes any leading or trailing linear white space from the string. Linear
              white space is to be read as horizontal tab or space.

       suffix(FileName) -> Suffix

              Types:

                 FileName = Suffix = string()

              suffix/1 is equivalent to filename:extension/1 with the exception  that  Suffix  is
              returned without a leading dot (.).

SEE ALSO

       httpd(3erl)