I have written a function as follows:
public bool setCookie(
string name,
string value,
long maxAgeInSeconds = long.min,
string expiresOnGMTDate=null,
string path=null,
string domain=null,
bool secure=false
) shared{
// if headers are sent already, leave
if( headersSent ) return false;
// name cannot be empty
if( (name is null) || (name.length <= 0) ) return false;
writeln(
"Name: ", name,
" Max Age: ", maxAgeInSeconds,
" Expires null: ", (expiresOnGMTDate == null),
" Path equals null: ", (path == null),
" Domain null: ", (domain is null)
);
return true;
}
Here is the testing code:
responseObject.setCookie( "A", "B" );
auto now = std.datetime.Clock.currTime().toSimpleString();
//writeln("Now |", now, "|");
responseObject.setCookie( "Response Time", now );
Here is the results:
Name: A Max Age: -9223372036854775808 Expires null: true Path
equals null: true Domain null: true
Name: Response Time Max Age: -9223372036854775808 Expires null:
true Path equals null: false Domain null: false
I don't know what is happening though, somehow path and domain
parameters in second use of function are not null even I haven't
given any value to them.
If I uncomment the "writeln" line in test code, it turns normal.
I am so much confused right now. What is happening here?