[
https://issues.apache.org/jira/browse/AXIS2C-1109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Supun Kamburugamuva resolved AXIS2C-1109.
-----------------------------------------
Resolution: Fixed
Fixed in the SVN head. Revision 666996. Thanks Pim.
> axutil_network_handler_open_socket incorrectly assumes that all legal
> descriptors are >=0
> -----------------------------------------------------------------------------------------
>
> Key: AXIS2C-1109
> URL: https://issues.apache.org/jira/browse/AXIS2C-1109
> Project: Axis2-C
> Issue Type: Bug
> Affects Versions: 1.3.0
> Environment: windows xp, VS.2005
> Reporter: Pim Philipse
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> The line
> if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
> does not work as expected under Windows, since winsock socket() returns
> INVALID_SOCKET on error, which happens to be 0.
> As a result, the next call to winsock fails, which is most confusing when
> trying to resolve a problem.
> Additionally, the error reporting is very terse. I have added a diagnostic
> function that gives the specific error (under windows):
> #define ERRBUFSIZE 300
> void
> get_socket_error(char *buf)
> {
> LPVOID lpMsgBuf;
> int rc = WSAGetLastError();
> sprintf( buf, "Winsock error %d: ", rc );
> FormatMessage(
> FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
> NULL,
> rc,
> MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
> (LPTSTR) &lpMsgBuf,
> 0,
> NULL
> );
> strncat( buf, (char*)lpMsgBuf, ERRBUFSIZE - strlen( buf ) - 1 );
> LocalFree( lpMsgBuf );
> }
> and then the error handling is invoked as, f.e.:
> if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == AXIS2_INVALID_SOCKET)
> /*nnn AF_INET is not defined in sys/socket.h but PF_INET*/
> {
> char buf[ERRBUFSIZE];
> AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
> get_socket_error(buf);
> AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, buf);
> return AXIS2_INVALID_SOCKET;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]