Legacy:LibHTTP/HttpUtil

From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 08:15, 19 November 2007 by Sweavo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Miscelaneous static functions. Part of LibHTTP.

Contains various algorithms, under which Base64 encoding and MD5 hash generation. MD5 code by Petr Jelinek.

Constants

TOKEN_HASH = "#"
URL delimiter
TOKEN_PATH = "/"
URL delimiter
TOKEN_PORT = ":"
URL delimiter
TOKEN_PROTOCOL = "://"
URL delimiter; to seperate protocol from the rest
TOKEN_QUERY = "?"
URL delimiter
TOKEN_USER = "@"
URL delimiter
TOKEN_USERPASS = ":"
URL delimiter; to seperate the user and pass from the url
URL_ESCAPE = "%"
URL escape token

Properties

string DayNamesLong[7]
names of the days, 0 = sunday
string DayNamesShort[7]
names of the days, 0 = sunday
int LOGDATA
int LOGERR
int LOGINFO
int LOGWARN
string MonthNames[13]
month names to use for date string generation
int MonthOffsetLeap[13]
days offsets for each month
int MonthOffset[13]
days offsets for each month

Structures

DateTime

int day
int hour
int minute
int month
int second
int weekday
int year

MD5_CTX

MD5 context

array<byte> buffer
input buffer
array<int> count
number of bits, modulo 2^64 (lsb first)
array<int> state
state (ABCD)

xURL

a better URL structure that contains all elements

string hash
the part after the #, without the leading #
string hostname
the hostname
string location
the location field, all from the hostname up to the query or hash string, includes leading /
string password
possible password that was in the url
int port
the port number specified in the URL
string protocol
protocol used, like http://, https://, ftp://. But without the '://' part. (ignore the space between the two slashes, it's required because of a bug in UE2)
string query
the part after the ?, without the leading ?
string username
username that was provided in the URL

Functions

int AdvSplit(string input, string delim, out array<string> elm, optional string quoteChar )
Split a string with quotes, quotes may appear anywhere in the string, escape the quote char with a \ to use a literal.
Qoutes are removed from the result, and escaped quotes are used as normal quotes.
array<string> Base64Decode(array<string> indata )
Decode a base64 encoded string
array<string> Base64Encode(array<string> indata, out array<string> B64Lookup )
base64 encode an input array
Base64EncodeLookupTable(out array<string> LookupTable )
Generate the base 64 encode lookup table
string basename(string filename )
get the base filename
int daysInYear(int year )
returns the number of days in a year
string DecToHex(int dec, int size )
convert a decimal to hexadecimal notation
string dirname(string filename )
get the dirname of a filename, with traling slash
int getPortByProtocol(string protocol )
return the default port based on the protocol
int HexToDec(string hexcode )
convert a hexadecimal number to the integer counterpart
string HTTPResponseCode(int code )
return the description of a HTTP response code
bool isLeapYear(int year )
returns if year is a leap year
int leapsThruEndOf(int y )
Logf(name Comp, coerce string message, optional int level, optional coerce string Param1, optional coerce string Param2 )
Write a log entry
MD5Decode(out array<int> output, array<byte> input, int len )
MD5Encode(out array<byte> output, array<int> input, int len )
MD5Final(out array<byte> digest, out MD5_CTX context )
finalize the MD5 context
MD5Init(out MD5_CTX context )
initialize the MD5 context
MD5Move(string src, int srcindex, out array<byte> buffer, int bufindex, int len )
string MD5String(string str )
return the MD5 of the input string
string MD5StringArray(array<string> stra, optional string Concat )
Return the MD5 of the input string array. Concat is added after each line.
MD5Transform(out array<int> Buf, array<byte> block )
MD5Update(out MD5_CTX Context, string Data, int inputLen )
update MD5 context
bool parseUrl(string inURL, out xURL outURL )
parses the inURL to an xURL structure, return true when succesful
string RawUrlDecode(string instring, optional bool bIgnorePlus )
This will decode URL encoded elements. If bIgnorePlus is set to true '+' will not be changed to a space
string RawUrlEncode(string instring )
Encode special characters, you should not use this function, it's slow and not secure, so try to avoid it.
This is replace the following characters: ";", "/", "?", ":", "@", "&", "=", "+", ",", "$" and " "
ReplaceChar(out string instring, string from, string to )
replace part of a string
int ROTATE_LEFT(int x, int n )
int stringToTimestamp(string datestring, optional int TZoffset )
Parse a string to a timestamp

The date string is formatted as: Wdy, DD-Mon-YYYY HH:MM:SS GMT
TZoffset is the local offset to GMT

int timestamp(int year, int mon, int day, int hour, int min, int sec )
Create a UNIX timestamp.
Warning: Assumes info is passed in GMT. So make sure you correct the timezone if you are going to send a timestamp generated with this function to an other server.
DateTime timestampToDatetime(int timestamp )
converts a timestamp to a DateTime record
string timestampToString(int timestamp, optional string Timezone, optional string format )
convert a timestamp into a string.
Format can be one of the following strings:
"822", "1123" : RFC 822, updated by RFC 1123 (default), timezone is the TZ CODE
"850", "1036" : RFC 850, obsoleted by RFC 1036, timezone is the TZ CODE
"2822" : RFC 2822, timezone is a +0000 like string
"asctime": ANSI C's asctime() format, timezone is an integer that will increment the hour
string Trim(coerce string S )
Trim leading and trailing spaces
float TZtoOffset(string TZ )
Converts a timezone code to an offset.
string xURLtoLocation(xURL inURL, optional bool bIncludePassword )
convert a xURL to a location string, just the location+query+hash
string xURLtoString(xURL inURL, optional bool bIncludePassword )
converts a xURL to a string. bIncludePassword defaults to false