<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- httpd_util</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/inets-5.9.2.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>inets</strong><br><strong>Reference Manual</strong><br><small>Version 5.9.2</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p> <ul class="flipMenu"> <li id="no" title="inets " expanded="false">inets<ul> <li><a href="inets.html"> Top of manual page </a></li> <li title="services-0"><a href="inets.html#services-0">services/0</a></li> <li title="services_info-0"><a href="inets.html#services_info-0">services_info/0</a></li> <li title="service_names-0"><a href="inets.html#service_names-0">service_names/0</a></li> <li title="start-0"><a href="inets.html#start-0">start/0</a></li> <li title="start-1"><a href="inets.html#start-1">start/1</a></li> <li title="stop-0"><a href="inets.html#stop-0">stop/0</a></li> <li title="start-2"><a href="inets.html#start-2">start/2</a></li> <li title="start-3"><a href="inets.html#start-3">start/3</a></li> <li title="stop-2"><a href="inets.html#stop-2">stop/2</a></li> </ul> </li> <li id="no" title="ftp " expanded="false">ftp<ul> <li><a href="ftp.html"> Top of manual page </a></li> <li title="account-2"><a href="ftp.html#account-2">account/2</a></li> <li title="append-2"><a href="ftp.html#append-2">append/2</a></li> <li title="append-3"><a href="ftp.html#append-3">append/3</a></li> <li title="append_bin-3"><a href="ftp.html#append_bin-3">append_bin/3</a></li> <li title="append_chunk-2"><a href="ftp.html#append_chunk-2">append_chunk/2</a></li> <li title="append_chunk_start-2"><a href="ftp.html#append_chunk_start-2">append_chunk_start/2</a></li> <li title="append_chunk_end-1"><a href="ftp.html#append_chunk_end-1">append_chunk_end/1</a></li> <li title="cd-2"><a href="ftp.html#cd-2">cd/2</a></li> <li title="close-1"><a href="ftp.html#close-1">close/1</a></li> <li title="delete-2"><a href="ftp.html#delete-2">delete/2</a></li> <li title="formaterror-1"><a href="ftp.html#formaterror-1">formaterror/1</a></li> <li title="lcd-2"><a href="ftp.html#lcd-2">lcd/2</a></li> <li title="lpwd-1"><a href="ftp.html#lpwd-1">lpwd/1</a></li> <li title="ls-1"><a href="ftp.html#ls-1">ls/1</a></li> <li title="ls-2"><a href="ftp.html#ls-2">ls/2</a></li> <li title="mkdir-2"><a href="ftp.html#mkdir-2">mkdir/2</a></li> <li title="nlist-1"><a href="ftp.html#nlist-1">nlist/1</a></li> <li title="nlist-2"><a href="ftp.html#nlist-2">nlist/2</a></li> <li title="open-1"><a href="ftp.html#open-1">open/1</a></li> <li title="open-2"><a href="ftp.html#open-2">open/2</a></li> <li title="pwd-1"><a href="ftp.html#pwd-1">pwd/1</a></li> <li title="pwd-1"><a href="ftp.html#pwd-1">pwd/1</a></li> <li title="recv-2"><a href="ftp.html#recv-2">recv/2</a></li> <li title="recv-3"><a href="ftp.html#recv-3">recv/3</a></li> <li title="recv_bin-2"><a href="ftp.html#recv_bin-2">recv_bin/2</a></li> <li title="recv_chunk_start-2"><a href="ftp.html#recv_chunk_start-2">recv_chunk_start/2</a></li> <li title="recv_chunk-1"><a href="ftp.html#recv_chunk-1">recv_chunk/1</a></li> <li title="rename-3"><a href="ftp.html#rename-3">rename/3</a></li> <li title="rmdir-2"><a href="ftp.html#rmdir-2">rmdir/2</a></li> <li title="send-2"><a href="ftp.html#send-2">send/2</a></li> <li title="send-3"><a href="ftp.html#send-3">send/3</a></li> <li title="send_bin-3"><a href="ftp.html#send_bin-3">send_bin/3</a></li> <li title="send_chunk-2"><a href="ftp.html#send_chunk-2">send_chunk/2</a></li> <li title="send_chunk_start-2"><a href="ftp.html#send_chunk_start-2">send_chunk_start/2</a></li> <li title="send_chunk_end-1"><a href="ftp.html#send_chunk_end-1">send_chunk_end/1</a></li> <li title="type-2"><a href="ftp.html#type-2">type/2</a></li> <li title="user-3"><a href="ftp.html#user-3">user/3</a></li> <li title="user-4"><a href="ftp.html#user-4">user/4</a></li> <li title="quote-2"><a href="ftp.html#quote-2">quote/2</a></li> </ul> </li> <li id="no" title="tftp " expanded="false">tftp<ul> <li><a href="tftp.html"> Top of manual page </a></li> <li title="start-1"><a href="tftp.html#start-1">start/1</a></li> <li title="read_file-3"><a href="tftp.html#read_file-3">read_file/3</a></li> <li title="write_file-3"><a href="tftp.html#write_file-3">write_file/3</a></li> <li title="info-1"><a href="tftp.html#info-1">info/1</a></li> <li title="info-1"><a href="tftp.html#info-1">info/1</a></li> <li title="info-1"><a href="tftp.html#info-1">info/1</a></li> <li title="change_config-2"><a href="tftp.html#change_config-2">change_config/2</a></li> <li title="change_config-2"><a href="tftp.html#change_config-2">change_config/2</a></li> <li title="change_config-2"><a href="tftp.html#change_config-2">change_config/2</a></li> <li title="start-0"><a href="tftp.html#start-0">start/0</a></li> <li title="prepare-6"><a href="tftp.html#prepare-6">prepare/6</a></li> <li title="open-6"><a href="tftp.html#open-6">open/6</a></li> <li title="read-1"><a href="tftp.html#read-1">read/1</a></li> <li title="write-2"><a href="tftp.html#write-2">write/2</a></li> <li title="abort-3"><a href="tftp.html#abort-3">abort/3</a></li> <li title="error_msg-2"><a href="tftp.html#error_msg-2">error_msg/2</a></li> <li title="warning_msg-2"><a href="tftp.html#warning_msg-2">warning_msg/2</a></li> <li title="info_msg-2"><a href="tftp.html#info_msg-2">info_msg/2</a></li> </ul> </li> <li id="no" title="httpc " expanded="false">httpc<ul> <li><a href="httpc.html"> Top of manual page </a></li> <li title="request-1"><a href="httpc.html#request-1">request/1</a></li> <li title="request-2"><a href="httpc.html#request-2">request/2</a></li> <li title="request-4"><a href="httpc.html#request-4">request/4</a></li> <li title="request-5"><a href="httpc.html#request-5">request/5</a></li> <li title="cancel_request-1"><a href="httpc.html#cancel_request-1">cancel_request/1</a></li> <li title="cancel_request-2"><a href="httpc.html#cancel_request-2">cancel_request/2</a></li> <li title="set_options-1"><a href="httpc.html#set_options-1">set_options/1</a></li> <li title="set_options-2"><a href="httpc.html#set_options-2">set_options/2</a></li> <li title="get_options-1"><a href="httpc.html#get_options-1">get_options/1</a></li> <li title="get_options-2"><a href="httpc.html#get_options-2">get_options/2</a></li> <li title="stream_next-1"><a href="httpc.html#stream_next-1">stream_next/1</a></li> <li title="store_cookies-2"><a href="httpc.html#store_cookies-2">store_cookies/2</a></li> <li title="store_cookies-3"><a href="httpc.html#store_cookies-3">store_cookies/3</a></li> <li title="cookie_header-1"><a href="httpc.html#cookie_header-1">cookie_header/1</a></li> <li title="cookie_header-2"><a href="httpc.html#cookie_header-2">cookie_header/2</a></li> <li title="cookie_header-3"><a href="httpc.html#cookie_header-3">cookie_header/3</a></li> <li title="reset_cookies-0"><a href="httpc.html#reset_cookies-0">reset_cookies/0</a></li> <li title="reset_cookies-1"><a href="httpc.html#reset_cookies-1">reset_cookies/1</a></li> <li title="which_cookies-0"><a href="httpc.html#which_cookies-0">which_cookies/0</a></li> <li title="which_cookies-1"><a href="httpc.html#which_cookies-1">which_cookies/1</a></li> <li title="which_sessions-0"><a href="httpc.html#which_sessions-0">which_sessions/0</a></li> <li title="which_sessions-1"><a href="httpc.html#which_sessions-1">which_sessions/1</a></li> <li title="info-0"><a href="httpc.html#info-0">info/0</a></li> <li title="info-1"><a href="httpc.html#info-1">info/1</a></li> </ul> </li> <li id="no" title="httpd " expanded="false">httpd<ul> <li><a href="httpd.html"> Top of manual page </a></li> <li title="info-1"><a href="httpd.html#info-1">info/1</a></li> <li title="info-2"><a href="httpd.html#info-2">info/2</a></li> <li title="info-2"><a href="httpd.html#info-2">info/2</a></li> <li title="info-3"><a href="httpd.html#info-3">info/3</a></li> <li title="reload_config-2"><a href="httpd.html#reload_config-2">reload_config/2</a></li> <li title="Module:do-1"><a href="httpd.html#Module:do-1">Module:do/1</a></li> <li title="Module:load-2"><a href="httpd.html#Module:load-2">Module:load/2</a></li> <li title="Module:store-2"><a href="httpd.html#Module:store-2">Module:store/2</a></li> <li title="Module:remove-1"><a href="httpd.html#Module:remove-1">Module:remove/1</a></li> <li title="parse_query-1"><a href="httpd.html#parse_query-1">parse_query/1</a></li> </ul> </li> <li id="no" title="httpd_conf " expanded="false">httpd_conf<ul> <li><a href="httpd_conf.html"> Top of manual page </a></li> <li title="check_enum-2"><a href="httpd_conf.html#check_enum-2">check_enum/2</a></li> <li title="clean-1"><a href="httpd_conf.html#clean-1">clean/1</a></li> <li title="custom_clean-3"><a href="httpd_conf.html#custom_clean-3">custom_clean/3</a></li> <li title="is_directory-1"><a href="httpd_conf.html#is_directory-1">is_directory/1</a></li> <li title="is_file-1"><a href="httpd_conf.html#is_file-1">is_file/1</a></li> <li title="make_integer-1"><a href="httpd_conf.html#make_integer-1">make_integer/1</a></li> </ul> </li> <li id="no" title="httpd_socket " expanded="false">httpd_socket<ul> <li><a href="httpd_socket.html"> Top of manual page </a></li> <li title="deliver-3"><a href="httpd_socket.html#deliver-3">deliver/3</a></li> <li title="peername-2"><a href="httpd_socket.html#peername-2">peername/2</a></li> <li title="resolve-0"><a href="httpd_socket.html#resolve-0">resolve/0</a></li> </ul> </li> <li id="loadscrollpos" title="httpd_util " expanded="true">httpd_util<ul> <li><a href="httpd_util.html"> Top of manual page </a></li> <li title="convert_request_date-1"><a href="httpd_util.html#convert_request_date-1">convert_request_date/1</a></li> <li title="create_etag-1"><a href="httpd_util.html#create_etag-1">create_etag/1</a></li> <li title="decode_hex-1"><a href="httpd_util.html#decode_hex-1">decode_hex/1</a></li> <li title="day-1"><a href="httpd_util.html#day-1">day/1</a></li> <li title="flatlength-1"><a href="httpd_util.html#flatlength-1">flatlength/1</a></li> <li title="hexlist_to_integer-1"><a href="httpd_util.html#hexlist_to_integer-1">hexlist_to_integer/1</a></li> <li title="integer_to_hexlist-1"><a href="httpd_util.html#integer_to_hexlist-1">integer_to_hexlist/1</a></li> <li title="lookup-2"><a href="httpd_util.html#lookup-2">lookup/2</a></li> <li title="lookup-3"><a href="httpd_util.html#lookup-3">lookup/3</a></li> <li title="lookup_mime-2"><a href="httpd_util.html#lookup_mime-2">lookup_mime/2</a></li> <li title="lookup_mime-3"><a href="httpd_util.html#lookup_mime-3">lookup_mime/3</a></li> <li title="lookup_mime_default-2"><a href="httpd_util.html#lookup_mime_default-2">lookup_mime_default/2</a></li> <li title="lookup_mime_default-3"><a href="httpd_util.html#lookup_mime_default-3">lookup_mime_default/3</a></li> <li title="message-3"><a href="httpd_util.html#message-3">message/3</a></li> <li title="month-1"><a href="httpd_util.html#month-1">month/1</a></li> <li title="multi_lookup-2"><a href="httpd_util.html#multi_lookup-2">multi_lookup/2</a></li> <li title="reason_phrase-1"><a href="httpd_util.html#reason_phrase-1">reason_phrase/1</a></li> <li title="rfc1123_date-0"><a href="httpd_util.html#rfc1123_date-0">rfc1123_date/0</a></li> <li title="rfc1123_date-2"><a href="httpd_util.html#rfc1123_date-2">rfc1123_date/2</a></li> <li title="split-3"><a href="httpd_util.html#split-3">split/3</a></li> <li title="split_script_path-1"><a href="httpd_util.html#split_script_path-1">split_script_path/1</a></li> <li title="split_path-1"><a href="httpd_util.html#split_path-1">split_path/1</a></li> <li title="strip-1"><a href="httpd_util.html#strip-1">strip/1</a></li> <li title="suffix-1"><a href="httpd_util.html#suffix-1">suffix/1</a></li> </ul> </li> <li id="no" title="mod_alias " expanded="false">mod_alias<ul> <li><a href="mod_alias.html"> Top of manual page </a></li> <li title="default_index-2"><a href="mod_alias.html#default_index-2">default_index/2</a></li> <li title="path-3"><a href="mod_alias.html#path-3">path/3</a></li> <li title="real_name-3"><a href="mod_alias.html#real_name-3">real_name/3</a></li> <li title="real_script_name-3"><a href="mod_alias.html#real_script_name-3">real_script_name/3</a></li> </ul> </li> <li id="no" title="mod_auth " expanded="false">mod_auth<ul> <li><a href="mod_auth.html"> Top of manual page </a></li> <li title="add_user-2"><a href="mod_auth.html#add_user-2">add_user/2</a></li> <li title="add_user-5"><a href="mod_auth.html#add_user-5">add_user/5</a></li> <li title="add_user-6"><a href="mod_auth.html#add_user-6">add_user/6</a></li> <li title="delete_user-2"><a href="mod_auth.html#delete_user-2">delete_user/2</a></li> <li title="delete_user-3"><a href="mod_auth.html#delete_user-3">delete_user/3</a></li> <li title="delete_user-4"><a href="mod_auth.html#delete_user-4">delete_user/4</a></li> <li title="get_user-2"><a href="mod_auth.html#get_user-2">get_user/2</a></li> <li title="get_user-3"><a href="mod_auth.html#get_user-3">get_user/3</a></li> <li title="get_user-4"><a href="mod_auth.html#get_user-4">get_user/4</a></li> <li title="list_users-1"><a href="mod_auth.html#list_users-1">list_users/1</a></li> <li title="list_users-2"><a href="mod_auth.html#list_users-2">list_users/2</a></li> <li title="list_users-3"><a href="mod_auth.html#list_users-3">list_users/3</a></li> <li title="add_group_member-3"><a href="mod_auth.html#add_group_member-3">add_group_member/3</a></li> <li title="add_group_member-4"><a href="mod_auth.html#add_group_member-4">add_group_member/4</a></li> <li title="add_group_member-5"><a href="mod_auth.html#add_group_member-5">add_group_member/5</a></li> <li title="delete_group_member-3"><a href="mod_auth.html#delete_group_member-3">delete_group_member/3</a></li> <li title="delete_group_member-4"><a href="mod_auth.html#delete_group_member-4">delete_group_member/4</a></li> <li title="delete_group_member-5"><a href="mod_auth.html#delete_group_member-5">delete_group_member/5</a></li> <li title="list_group_members-2"><a href="mod_auth.html#list_group_members-2">list_group_members/2</a></li> <li title="list_group_members-3"><a href="mod_auth.html#list_group_members-3">list_group_members/3</a></li> <li title="list_group_members-4"><a href="mod_auth.html#list_group_members-4">list_group_members/4</a></li> <li title="list_groups-1"><a href="mod_auth.html#list_groups-1">list_groups/1</a></li> <li title="list_groups-2"><a href="mod_auth.html#list_groups-2">list_groups/2</a></li> <li title="list_groups-3"><a href="mod_auth.html#list_groups-3">list_groups/3</a></li> <li title="delete_group-2"><a href="mod_auth.html#delete_group-2">delete_group/2</a></li> <li title="delete_group-4"><a href="mod_auth.html#delete_group-4">delete_group/4</a></li> <li title="update_password-5"><a href="mod_auth.html#update_password-5">update_password/5</a></li> <li title="update_password-6"><a href="mod_auth.html#update_password-6">update_password/6</a></li> </ul> </li> <li id="no" title="mod_esi " expanded="false">mod_esi<ul> <li><a href="mod_esi.html"> Top of manual page </a></li> <li title="deliver-2"><a href="mod_esi.html#deliver-2">deliver/2</a></li> <li title="Module:Function-3"><a href="mod_esi.html#Module:Function-3">Module:Function/3</a></li> <li title="Module:Function-2"><a href="mod_esi.html#Module:Function-2">Module:Function/2</a></li> </ul> </li> <li id="no" title="mod_security " expanded="false">mod_security<ul> <li><a href="mod_security.html"> Top of manual page </a></li> <li title="list_auth_users-1"><a href="mod_security.html#list_auth_users-1">list_auth_users/1</a></li> <li title="list_auth_users-2"><a href="mod_security.html#list_auth_users-2">list_auth_users/2</a></li> <li title="list_auth_users-2"><a href="mod_security.html#list_auth_users-2">list_auth_users/2</a></li> <li title="list_auth_users-3"><a href="mod_security.html#list_auth_users-3">list_auth_users/3</a></li> <li title="list_blocked_users-1"><a href="mod_security.html#list_blocked_users-1">list_blocked_users/1</a></li> <li title="list_blocked_users-2"><a href="mod_security.html#list_blocked_users-2">list_blocked_users/2</a></li> <li title="list_blocked_users-2"><a href="mod_security.html#list_blocked_users-2">list_blocked_users/2</a></li> <li title="list_blocked_users-3"><a href="mod_security.html#list_blocked_users-3">list_blocked_users/3</a></li> <li title="block_user-4"><a href="mod_security.html#block_user-4">block_user/4</a></li> <li title="block_user-5"><a href="mod_security.html#block_user-5">block_user/5</a></li> <li title="unblock_user-2"><a href="mod_security.html#unblock_user-2">unblock_user/2</a></li> <li title="unblock_user-3"><a href="mod_security.html#unblock_user-3">unblock_user/3</a></li> <li title="unblock_user-3"><a href="mod_security.html#unblock_user-3">unblock_user/3</a></li> <li title="unblock_user-4"><a href="mod_security.html#unblock_user-4">unblock_user/4</a></li> <li title="event-4"><a href="mod_security.html#event-4">event/4</a></li> <li title="event-5"><a href="mod_security.html#event-5">event/5</a></li> </ul> </li> <li id="no" title="http_uri " expanded="false">http_uri<ul> <li><a href="http_uri.html"> Top of manual page </a></li> <li title="scheme_defaults-0"><a href="http_uri.html#scheme_defaults-0">scheme_defaults/0</a></li> <li title="parse-1"><a href="http_uri.html#parse-1">parse/1</a></li> <li title="parse-2"><a href="http_uri.html#parse-2">parse/2</a></li> <li title="encode-1"><a href="http_uri.html#encode-1">encode/1</a></li> <li title="decode-1"><a href="http_uri.html#decode-1">decode/1</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <!-- refpage --><center><h1>httpd_util</h1></center> <h3>MODULE</h3> <div class="REFBODY">httpd_util</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">Miscellaneous utility functions to be used when implementing Erlang Web server API modules.</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p>This module provides the Erlang Web Server API module programmer with miscellaneous utility functions.</p> <a name="convert_request_date"></a> </p></div> <h3>EXPORTS</h3> <p><a name="convert_request_date-1"><span class="bold_code">convert_request_date(DateString) -> ErlDate|bad_date</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">DateString = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">ErlDate = {{Year,Month,Date},{Hour,Min,Sec}}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Year = Month = Date = Hour = Min = Sec = integer()</span><br> </div> </div> <div class="REFBODY"><p> <p><span class="code">convert_request_date/1</span> converts <span class="code">DateString</span> to the Erlang date format. DateString must be in one of the three date formats that is defined in the RFC 2616.</p> <a name="create_etag"></a> </p></div> <p><a name="create_etag-1"><span class="bold_code">create_etag(FileInfo) -> Etag</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">FileInfo = file_info()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Etag = string()</span><br> </div> </div> <div class="REFBODY"><p> <p><span class="code">create_etag/1</span> calculates the Etag for a file, from its size and time for last modification. fileinfo is a record defined in <span class="code">kernel/include/file.hrl</span></p> <a name="decode_hex"></a> </p></div> <p><a name="decode_hex-1"><span class="bold_code">decode_hex(HexValue) -> DecValue</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">HexValue = DecValue = string()</span><br> </div> </div> <div class="REFBODY"><p> <p>Converts the hexadecimal value <span class="code">HexValue</span> into its decimal equivalent (<span class="code">DecValue</span>).</p> <a name="day"></a> </p></div> <p><a name="day-1"><span class="bold_code">day(NthDayOfWeek) -> DayOfWeek</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">NthDayOfWeek = 1-7</span><br> </div> <div class="REFTYPES"> <span class="bold_code">DayOfWeek = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="day"></a> <p><span class="code">day/1</span> converts the day of the week (<span class="code">NthDayOfWeek</span>) as an integer (1-7) to an abbreviated string, that is: </p> <p>1 = "Mon", 2 = "Tue", ..., 7 = "Sat".</p> <a name="flatlength"></a> </p></div> <p><a name="flatlength-1"><span class="bold_code">flatlength(NestedList) -> Size</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">NestedList = list()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Size = integer()</span><br> </div> </div> <div class="REFBODY"><p> <a name="flatlength"></a> <p><span class="code">flatlength/1</span> computes the size of the possibly nested list <span class="code">NestedList</span>. Which may contain binaries.</p> <a name="hexlist_to_integer"></a> </p></div> <p><a name="hexlist_to_integer-1"><span class="bold_code">hexlist_to_integer(HexString) -> Number</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Number = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">HexString = string()</span><br> </div> </div> <div class="REFBODY"><p> <p><span class="code">hexlist_to_integer</span> Convert the Hexadecimal value of HexString to an integer.</p> <a name="integer_to_hexlist"></a> </p></div> <p><a name="integer_to_hexlist-1"><span class="bold_code">integer_to_hexlist(Number) -> HexString</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Number = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">HexString = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="integer_to_hexlist"></a> <p><span class="code">integer_to_hexlist/1</span> Returns a string that represents the Number in a Hexadecimal form.</p> <a name="lookup"></a> </p></div> <p><a name="lookup-2"><span class="bold_code">lookup(ETSTable,Key) -> Result</span></a><br><a name="lookup-3"><span class="bold_code">lookup(ETSTable,Key,Undefined) -> Result</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">ETSTable = ets_table()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Key = term()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Result = term() | undefined | Undefined</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Undefined = term()</span><br> </div> </div> <div class="REFBODY"><p> <p><span class="code">lookup</span> extracts <span class="code">{Key,Value}</span> tuples from <span class="code">ETSTable</span> and returns the <span class="code">Value</span> associated with <span class="code">Key</span>. If <span class="code">ETSTable</span> is of type <span class="code">bag</span> only the first <span class="code">Value</span> associated with <span class="code">Key</span> is returned. <span class="code">lookup/2</span> returns <span class="code">undefined</span> and <span class="code">lookup/3</span> returns <span class="code">Undefined</span> if no <span class="code">Value</span> is found.</p> <a name="lookup_mime"></a> </p></div> <p><a name="lookup_mime-2"><span class="bold_code">lookup_mime(ConfigDB,Suffix)</span></a><br><a name="lookup_mime-3"><span class="bold_code">lookup_mime(ConfigDB,Suffix,Undefined) -> MimeType</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">ConfigDB = ets_table()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Suffix = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">MimeType = string() | undefined | Undefined</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Undefined = term()</span><br> </div> </div> <div class="REFBODY"><p> <a name="lookup_mime"></a> <p><span class="code">lookup_mime</span> returns the mime type associated with a specific file suffix as specified in the <span class="code">mime.types</span> file (located in the config directory).</p> <a name="lookup_mime_default"></a> </p></div> <p><a name="lookup_mime_default-2"><span class="bold_code">lookup_mime_default(ConfigDB,Suffix)</span></a><br><a name="lookup_mime_default-3"><span class="bold_code">lookup_mime_default(ConfigDB,Suffix,Undefined) -> MimeType</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">ConfigDB = ets_table()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Suffix = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">MimeType = string() | undefined | Undefined</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Undefined = term()</span><br> </div> </div> <div class="REFBODY"><p> <a name="lookup_mime_default"></a> <p><span class="code">lookup_mime_default</span> returns the mime type associated with a specific file suffix as specified in the <span class="code">mime.types</span> file (located in the config directory). If no appropriate association can be found the value of DefaultType is returned.</p> <a name="message"></a> </p></div> <p><a name="message-3"><span class="bold_code">message(StatusCode,PhraseArgs,ConfigDB) -> Message</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">StatusCode = 301 | 400 | 403 | 404 | 500 | 501 | 504</span><br> </div> <div class="REFTYPES"> <span class="bold_code">PhraseArgs = term()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">ConfigDB = ets_table</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Message = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="message"></a> <p><span class="code">message/3</span> returns an informative HTTP 1.1 status string in HTML. Each <span class="code">StatusCode</span> requires a specific <span class="code">PhraseArgs</span>: </p> <dl> <dt><strong><span class="code">301</span></strong></dt> <dd> <span class="code">string()</span>: A URL pointing at the new document position.</dd> <dt><strong><span class="code">400 | 401 | 500</span></strong></dt> <dd> <span class="code">none</span> (No <span class="code">PhraseArgs</span>)</dd> <dt><strong><span class="code">403 | 404</span></strong></dt> <dd> <span class="code">string()</span>: A <span class="code">Request-URI</span> as described in RFC 2616.</dd> <dt><strong><span class="code">501</span></strong></dt> <dd> <span class="code">{Method,RequestURI,HTTPVersion}</span>: The HTTP <span class="code">Method</span>, <span class="code">Request-URI</span> and <span class="code">HTTP-Version</span> as defined in RFC 2616.</dd> <dt><strong><span class="code">504</span></strong></dt> <dd> <span class="code">string()</span>: A string describing why the service was unavailable.</dd> </dl> <a name="month"></a> </p></div> <p><a name="month-1"><span class="bold_code">month(NthMonth) -> Month</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">NthMonth = 1-12</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Month = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="month"></a> <p><span class="code">month/1</span> converts the month <span class="code">NthMonth</span> as an integer (1-12) to an abbreviated string, that is: </p> <p>1 = "Jan", 2 = "Feb", ..., 12 = "Dec".</p> <a name="multi_lookup"></a> </p></div> <p><a name="multi_lookup-2"><span class="bold_code">multi_lookup(ETSTable,Key) -> Result</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">ETSTable = ets_table()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Key = term()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Result = [term()]</span><br> </div> </div> <div class="REFBODY"><p> <p><span class="code">multi_lookup</span> extracts all <span class="code">{Key,Value}</span> tuples from an <span class="code">ETSTable</span> and returns <strong>all</strong><span class="code">Values</span> associated with the <span class="code">Key</span> in a list.</p> <a name="reason%20phrase"></a> </p></div> <p><a name="reason_phrase-1"><span class="bold_code">reason_phrase(StatusCode) -> Description</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">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</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Description = string()</span><br> </div> </div> <div class="REFBODY"><p> <p><span class="code">reason_phrase</span> returns the <span class="code">Description</span> of an HTTP 1.1 <span class="code">StatusCode</span>, for example 200 is "OK" and 201 is "Created". Read RFC 2616 for further information.</p> <a name="rfc1123_date"></a> </p></div> <p><a name="rfc1123_date-0"><span class="bold_code">rfc1123_date() -> RFC1123Date</span></a><br><a name="rfc1123_date-2"><span class="bold_code">rfc1123_date({{YYYY,MM,DD},{Hour,Min,Sec}}}) -> RFC1123Date</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">YYYY = MM = DD = Hour = Min =Sec = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">RFC1123Date = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="rfc1123_date"></a> <p><span class="code">rfc1123_date/0</span> returns the current date in RFC 1123 format. <span class="code">rfc_date/1</span> converts the date in the Erlang format to the RFC 1123 date format.</p> <a name="split"></a> </p></div> <p><a name="split-3"><span class="bold_code">split(String,RegExp,N) -> SplitRes</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">String = RegExp = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">SplitRes = {ok, FieldList} | {error, errordesc()}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Fieldlist = [string()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">N = integer</span><br> </div> </div> <div class="REFBODY"><p> <a name="split"></a> <p><span class="code">split/3</span> splits the <span class="code">String</span> in <span class="code">N</span> chunks using the <span class="code">RegExp</span>. <span class="code">split/3</span> is is equivalent to <span class="code">regexp:split/2</span> with one exception, that is <span class="code">N</span> defines the number of maximum number of fields in the <span class="code">FieldList</span>.</p> <a name="split_script_path"></a> </p></div> <p><a name="split_script_path-1"><span class="bold_code">split_script_path(RequestLine) -> Splitted</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">RequestLine = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Splitted = not_a_script | {Path, PathInfo, QueryString}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Path = QueryString = PathInfo = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="split_script_path"></a> <p><span class="code">split_script_path/1</span> is equivalent to <span class="code">split_path/1</span> with one exception. If the longest possible path is not a regular, accessible and executable file <span class="code">not_a_script</span> is returned.</p> <a name="split_path"></a> </p></div> <p><a name="split_path-1"><span class="bold_code">split_path(RequestLine) -> {Path,QueryStringOrPathInfo}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">RequestLine = Path = QueryStringOrPathInfo = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="split_path"></a> <p><span class="code">split_path/1</span> splits the <span class="code">RequestLine</span> in a file reference (<span class="code">Path</span>) and a <span class="code">QueryString</span> or a <span class="code">PathInfo</span> string as specified in RFC 2616. A <span class="code">QueryString</span> is isolated from the <span class="code">Path</span> with a question mark (<span class="code">?</span>) and <span class="code">PathInfo</span> with a slash (/). In the case of a <span class="code">QueryString</span>, everything before the <span class="code">?</span> is a <span class="code">Path</span> and everything after a <span class="code">QueryString</span>. In the case of a <span class="code">PathInfo</span> the <span class="code">RequestLine</span> is scanned from left-to-right on the hunt for longest possible <span class="code">Path</span> being a file or a directory. Everything after the longest possible <span class="code">Path</span>, isolated with a <span class="code">/</span>, is regarded as <span class="code">PathInfo</span>. The resulting <span class="code">Path</span> is decoded using <span class="code">decode_hex/1</span> before delivery.</p> <a name="strip"></a> </p></div> <p><a name="strip-1"><span class="bold_code">strip(String) -> Stripped</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">String = Stripped = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="strip"></a> <p><span class="code">strip/1</span> removes any leading or trailing linear white space from the string. Linear white space should be read as horizontal tab or space.</p> <a name="suffix"></a> </p></div> <p><a name="suffix-1"><span class="bold_code">suffix(FileName) -> Suffix</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">FileName = Suffix = string()</span><br> </div> </div> <div class="REFBODY"><p> <a name="suffix"></a> <p><span class="code">suffix/1</span> is equivalent to <span class="code">filename:extension/1</span> with one exception, that is <span class="code">Suffix</span> is returned without a leading dot (<span class="code">.</span>). </p> </p></div> <h3><a name="id87103">SEE ALSO</a></h3> <div class="REFBODY"> <a name="see_also"></a> <p><span class="bold_code"><a href="httpd.html">httpd(3)</a></span></p> </div> </div> <div class="footer"> <hr> <p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>