Initialize the Git repository for the project "goldap"
Adding .project to git
Many changes !
Delete old files
Stable version 0.1: we can read a simple LDAP bind request
Refactoring: no more proxy to a copy of the asn1 library.
Now the asn1 needed functions are direcly part of the goldap library.
I have left the comments and copyrights information.
Added tests: reading bind request messages
NEW FEATURE: the LDAP Proxy ! It will dump any LDAP transmission between a client and a server !
Git ignore bin, pkg and .project
Refactoring:
- removed the anonymous functions in the calls to Bytes.ParseSequence
- added the dedicated methods Read"Object"Components

Added:
- BindResponse
- UnbindRequest
Lot of changes:

Bytes.ParseSequence renamed to Bytes.ParseSubBytes
It's more reflecting the reality: we are parsing a sub-part of the byte slice, but not always a "sequence"

New type of functions: "ReadTagged..."
It is similar to the "Read..." functions but it gets two additional parameters "class" and "tag".
The fact is that we often parse some types (for example OCTETSTRING) which universal tag if hidden by a context specific tag.
The "Read" functions still exist but will call the "ReadTagged" function with a "universal" class and default type tag value.

New error type: LdapError

Error handling: concatenate the name of the current function when forwarding an error, thus building a stack trace.
This will have to improved. Lot of places still have the default behavior "if err != nil { return err }"

New type of method: "Read...Components"
In the ASN1 vocabulary, "COMPONENTS OF" means the fields of a structure.
When calling "Bytes.ParseSubBytes" we call a "Read...Components" method which will fill the object attributes.

New request parsing: the SearchRequest !
That was hard, it's a very complex type. All the previous listed changes are a consequence of this implementation.
Currently only one unit test is present, I'll add some more when testing.
New message type: SearchResultEntry
New operation: SearchResultDone
Updated the LDAP Proxy: now the proxy reads each LDAP message one by one.
We read the first byte to decode the tag and length, then we read exactly
"length" bytes of the LDAP message SEQUENCE
MILESTONE 1.0 !
All LDAP request are handled, now we have to test ...
Trying to improve perfs:
- ParseTagAndLength now returns a pointer
- "make"ing slices of 10 capacity for attributes, to reduce the number
of slice resizing
- added cpu_ondemand.sh and cpu_performance.sh to switch the processor
performance behavior
- the proxy now simply dumps the messages without further message, it's
usefull for writing the new main.go
- new main.go loop 10^x times, decode a client-server LDAP conversation
- added xtime.sh to compute and print perfs of a binary
Profiling: pass the tagAndLength by value instead of reference
Improving perf: passing Bytes object by value instead of reference
Add .sh perf tools
Merge branch 'v1.0-perf'