Socket.st
changeset 1029 5906977e62f0
parent 1010 603216bbf89a
child 1035 5b0605675dc6
equal deleted inserted replaced
1028:5ca34e5c38b2 1029:5906977e62f0
  4446      partners host after an accept."
  4446      partners host after an accept."
  4447 
  4447 
  4448     ^ peerName
  4448     ^ peerName
  4449 !
  4449 !
  4450 
  4450 
       
  4451 getSocketAdress
       
  4452 "
       
  4453     implemented for swazoo project primitive code cant load as extension
       
  4454     answer the my own address (I am bound to this address).
       
  4455     Note that this address may change after connect or accept.
       
  4456 "
       
  4457 
       
  4458     |socketAddress error|
       
  4459 
       
  4460     filePointer isNil ifTrue:[
       
  4461         ^ self errorNotOpen
       
  4462     ].
       
  4463     socketAddress := ByteArray new:16.
       
  4464 
       
  4465 %{
       
  4466 #ifndef NO_SOCKET
       
  4467     OBJ t = __INST(filePointer);
       
  4468     int sock;
       
  4469     int sockaddr_size;
       
  4470     int ret;
       
  4471 
       
  4472     if (!__isNonNilObject(socketAddress) ||
       
  4473         (__intVal(__ClassInstPtr(__qClass(socketAddress))->c_flags) & ARRAYMASK) != BYTEARRAY) {
       
  4474         error = @symbol(badArgument1);
       
  4475         goto err;
       
  4476     }
       
  4477     sockaddr_size = __byteArraySize(socketAddress);
       
  4478 
       
  4479     sock = fileno(__FILEVal(t));
       
  4480     ret = getsockname(sock, (struct sockaddr *)__byteArrayVal(socketAddress), &sockaddr_size);
       
  4481     if (ret < 0) {
       
  4482         DBGPRINTF(("SOCKET: getsocketname failed errno=%d\n", errno));
       
  4483         error = __MKSMALLINT(errno);
       
  4484     }
       
  4485 err:;
       
  4486 #else /* NO_SOCKET */
       
  4487     error = @symbol(notImplemented);
       
  4488 #endif /* NO_SOCKET */
       
  4489 %}.
       
  4490     error notNil ifTrue:[
       
  4491         ^ self errorReporter reportOn:error
       
  4492     ].
       
  4493     ^ socketAddress copyFrom:5 to:8
       
  4494 !
       
  4495 
  4451 isActive
  4496 isActive
  4452     "return true, if the receiver has a connection"
  4497     "return true, if the receiver has a connection"
  4453 
  4498 
  4454     ^ filePointer notNil
  4499     ^ filePointer notNil
  4455 !
  4500 !
  5069 ! !
  5114 ! !
  5070 
  5115 
  5071 !Socket class methodsFor:'documentation'!
  5116 !Socket class methodsFor:'documentation'!
  5072 
  5117 
  5073 version
  5118 version
  5074     ^ '$Header: /cvs/stx/stx/libbasic2/Socket.st,v 1.160 2002-01-30 15:55:50 cg Exp $'
  5119     ^ '$Header: /cvs/stx/stx/libbasic2/Socket.st,v 1.161 2002-03-20 09:21:11 penk Exp $'
  5075 ! !
  5120 ! !