TEST: Add test that target reset will release a RESERVE6
CONNECT: export the iscsi_reconnect() function.

There are situations where you may want to trigger an iscsi reconnect
explicitely from an application so make this function exposed to applications.
Limit immediate and unsolicited data to FirstBurstLength

RFC3270 describes in section 12.14 that immediate and unsolicited data
sent from the initiator to the target must not exceed FristBurstLength
bytes in total.
Move iscsi_set_tcp_keepalive after socket creation

Socket options should be set directly after socket creation.
Add debugging framework

This patch adds a user configurable debug level. For testing
it includes connection info and reporting errors.
iSCSI Redirect support

This patch adds support for persistant portals like they are common
to storage arrays with different interfaces or physical members.
Add iscsi_tcp_set_user_timeout function

This patch adds a user configurable option to set the TCP_USER_TIMEOUT
socket option. With this timeout set a broken TCP session is shutdown
after a given timeout even there are unacked packets. SO_KEEPALIVE
seems not to work in this case.
Add backoff mechanism to iscsi_reconnect

This patch adds a linear backoff mechanishm + jitter in case
a reconnect fails. If there is a longer outage this is to
avoid a large amount of simultaneous connects to the storage.
Set SO_KEEPALIVE before TCP_USER_TIMEOUT

For TCP_USER_TIMEOUT to work it seems to be necessary that SO_KEEPALIVE is
enabled. RFC5482 section 4.2 also says that the TCP_USER_TIMEOUT has to be
less than the keepalive timeout. This means less than 30000 ms in the
current libiscsi default settings for TCP keepalives.
Merge pull request #24 from plieven/master

Various patches to libiscsi
Use the literal ISCSI_STATUS_REDIRECT instead of the numeric value
Add setters for TCP keepalive values

This patch adds 3 functions to set the 3 keepalive values TCP_KEEPIDLE, TCP_KEEPCNT
and TCP_KEEPINTVL. The values have to be set after iscsi context creation and are
then configured on the socket on each new connection.
Fix compiler warnings

These patch fixes 3 compiler warnings introduce by my recent patches.
Add various environment variables

This patch allows the following parameters inside libiscsi to be adjusted without code modification:
LIBISCSI_DEBUG
LIBISCSI_TCP_USER_TIMEOUT
LIBISCSI_TCP_KEEPIDLE
LIBISCSI_TCP_KEEPCNT
LIBISCSI_TCP_KEEPINTVL

You can now enable debugging of libiscsi inside e.g. qemu-kvm with
LIBISCSI_DEBUG=3 qemu-kvm -hda iscsi://...
Add iscsi_set_tcp_syncnt function

This patch adds support for setting TCP_SYNCNT to overwrite
the system default values. This allows indirect support
for a configurable connect timeout.

Linux uses a exponential backoff for SYN retries starting
with 1 second.

This means for a value n for TCP_SYNCNT, the connect will
effectively timeout after 2^(n+1)-1 seconds.
Remove accidently left debug message in iscsi_service
Use generic tcp_set_sockopt function for tcp setsockopt operations
Remove redundant code in iscsi_service()
Fix incorrect whitespaces

At a few places there where spaces where tabulators where appropriate
Unify paramters in tcp_set_user_timeout()

Use the same function definition as in the other tcp setters.