libwww problem with connect()

Hello,
 
I have a problem with an internal bank API that in turn uses libwww for its connection between the client and the server.
 
My setup is as follows:
    SunOS szur0039dap 5.8 Generic_117000-05 sun4us sparc FJSV,GPUSC-M
    CC from SUNWspro v8
    libwww 5.4.0
    Compiled as 32 bit
    Also using ACE/TAO for communications with otehr systems in the same process:
 
The client uses the link "  <http://fusiongateway.swissbank.com/dqeservlet/dqegateway> http://fusiongateway.swissbank.com/dqeservlet/dqegateway" to connect.
 
My big program, in which I'm trying to upgrade the internal bank API doesn't work; the "connect()" call in HTTCP.c fails. I the wrote a small test program (that also uses CORBA) to see if it works there (and it does).
 
I have truss-ed the 2 process. As you can see from the output included below, one doesn work and results in a close plus my log of "Caught unknown exception" while the one that works goes on to POST the HTTP reques.
 
As far as I can tell both sockets get created OK and in the same way. The only obvious difference is that the one that doesn't work is always above 20 (22 or 26) and the one that does work is below 15 (12 or 14).
 
ANY HELP WOULD BE GREATLY APPRECIATED.
 
Many thanks in advance,
Andrei Lenkei
 
Here is the truss output: 
 
DOESN'T WORK(big program):
 
24020: time()      = 1121183516
24020: time()      = 1121183516
24020: door_info(12, 0xFA1FE320)   = 0
24020: door_call(12, 0xFA1FE308)   = 0
24020: time()      = 1121183516
24020: so_socket(2, 2, 6, "", 1)   = 26
24020: setsockopt(26, 6, 1, 0xFA2005D8, 4, 1)  = 0
24020: fcntl(26, F_GETFL, 0x00000000)   = 2
24020: fstat64(26, 0xFA200470)    = 0
24020: getsockopt(26, 65535, 8192, 0xFA200570, 0xFA200568, 0) = 0
24020: fstat64(26, 0xFA200470)    = 0
24020: getsockopt(26, 65535, 8192, 0xFA200570, 0xFA20056C, 0) = 0
24020: setsockopt(26, 65535, 8192, 0xFA200570, 4, 0) = 0
24020: fcntl(26, F_SETFL, 0x00000082)   = 0
24020: getsockopt(26, 65535, 4097, 0xFA200498, 0xFA200490, 1) = 0
24020: brk(0x05ACF1E0)     = 0
24020: brk(0x05AD71E0)     = 0
24020: connect(26, 0x05A8D5F4, 16, 1)   Err#150 EINPROGRESS
24020:  AF_INET  name = 151.191.59.25  port = 80
24020: close(26)     = 0
24020: close(26)     Err#9 EBADF
24020: lseek(1, 0, SEEK_CUR)    = 16399
24020: write(1, " C a u g h t   C U n k n".., 31) = 31
24020: lseek(1, 0, SEEK_CUR)    = 16430
24020: lseek(1, 0, SEEK_CUR)    = 16430
24020: write(1, " C o u l d   n o t   p o".., 82) = 82
24020: lseek(1, 0, SEEK_CUR)    = 16512
24020: lseek(1, 0, SEEK_CUR)    = 16512
24020: write(1, "\n", 1)    = 1
24020: lseek(1, 0, SEEK_CUR)    = 16513
24020: lseek(1, 0, SEEK_CUR)    = 16513
24020: lseek(1, 0, SEEK_CUR)    = 16513
24020: write(1, " d o n e .", 5)   = 5
24020: lseek(1, 0, SEEK_CUR)    = 16518
24020: lseek(1, 0, SEEK_CUR)    = 16518
24020: write(1, "\n", 1)    = 1
24020: lseek(1, 0, SEEK_CUR)    = 16519
24020: lseek(1, 0, SEEK_CUR)    = 16519
24020: time()      = 1121183516
 
WORKS(smaller program):
 
24679: time()      = 1121183922
24679: time()      = 1121183922
24679: door_info(11, 0xFFBEA2D8)   = 0
24679: door_call(11, 0xFFBEA2C0)   = 0
24679: time()      = 1121183922
24679: so_socket(2, 2, 6, "", 1)   = 14
24679: setsockopt(14, 6, 1, 0xFFBEC590, 4, 1)  = 0
24679: fcntl(14, F_GETFL, 0x00000000)   = 2
24679: fstat64(14, 0xFFBEC428)    = 0
24679: getsockopt(14, 65535, 8192, 0xFFBEC528, 0xFFBEC520, 0) = 0
24679: fstat64(14, 0xFFBEC428)    = 0
24679: getsockopt(14, 65535, 8192, 0xFFBEC528, 0xFFBEC524, 0) = 0
24679: setsockopt(14, 65535, 8192, 0xFFBEC528, 4, 0) = 0
24679: fcntl(14, F_SETFL, 0x00000082)   = 0
24679: getsockopt(14, 65535, 4097, 0xFFBEC450, 0xFFBEC448, 1) = 0
24679: brk(0x00CDEBF0)     = 0
24679: brk(0x00CE6BF0)     = 0
24679: connect(14, 0x00C9D4DC, 16, 1)   Err#150 EINPROGRESS
24679:  AF_INET  name = 151.191.59.25  port = 80
24679: poll(0xFFBEC6D0, 1, -1)    = 1
24679: connect(14, 0x00C9D4DC, 16, 1)   Err#133 EISCONN
24679:  AF_INET  name = 151.191.59.25  port = 80
24679: write(14, " P O S T   / d q e s e r".., 546) = 546
24679: read(14, 0x00C9D770, 32768)   Err#11 EAGAIN
24679: poll(0xFFBEC6D0, 1, 20)    = 0
24679: write(14, " x9CB594EB nD3 014C7 _ %".., 445) = 445
24679: poll(0xFFBEC6D0, 1, -1)    = 1
24679: read(14, " H T T P / 1 . 1   1 0 0".., 32768) = 25
24679: time()      = 1121183922
24679: read(14, 0x00C9D770, 32768)   Err#11 EAGAIN
24679: poll(0xFFBEC6D0, 1, -1)    = 1
24679: read(14, " H T T P / 1 . 1   2 0 0".., 32768) = 1032
24679: brk(0x00CE6BF0)     = 0
 

__________________________________________
   UBS AG, Investment Bank
   Andrei Lenkei
   IT Risk
   Europastrasse 2, CH-8152 Opfikon,
   Switzerland

 Ubinet:1923-9-4436
   Fax:            +41 1 239 39 24
   Mob:         +41 79 370 41 24
   Mailto:      andrei.lenkei@ubs.com


 


Visit our website at http://www.ubs.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.

Received on Wednesday, 13 July 2005 08:24:32 UTC