Mostly Harmless

Legacy:LibHTTP/HttpUtil

From Unreal Wiki, The Unreal Engine Documentation Site
< Legacy:LibHTTP
Revision as of 08:15, 19 November 2007 by Sweavo (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Miscelaneous static functions. Part of LibHTTP.

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

Constants[edit]

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[edit]

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[edit]

DateTime[edit]

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

MD5_CTX[edit]

MD5 context

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

xURL[edit]

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[edit]

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