Cannot call CFStreamCreatePairWithSocket on Linux


(Pushkar N Kulkarni) #1

Just to add to that:

Pushkar N Kulkarni,

IBM Runtimes

Simplicity is prerequisite for reliability - Edsger W. Dijkstra

I am wondering if this would hamper the implementation of NSStream, NSInputStream and NSOutputStream for Linux.

Hello all,

While attempting a simple Swift client-server program on Linux using CFSocket, I tried to create CFReadStream and CFWriteStream instances using CFStreamCreatePairWithSocket(:::). The program compiles and links but it crashes with this:

2016-03-15 10:30:17.791 Client[21389:5a501740] CoreFoundation: failed to dynamically link symbol _CFSocketStreamCreatePair

2016-03-15 10:30:17.791 Client[21389:5a501740] CoreFoundation: failed to dynamically link symbol _CFErrorCreateWithStreamError

2016-03-15 10:30:17.791 Client[21389:5a501740] CoreFoundation: failed to dynamically link symbol _CFStreamErrorFromCFError

I see that these symbols are dynamically linked from CFNetwork which, I guess, doesn’t exist on Linux (so there is no lookup for these symbols on Linux).

Does this qualify to be a CFStream limitation on Linux?

Thanks in advance for your time!

Pushkar N Kulkarni,

IBM Runtimes

Simplicity is prerequisite for reliability - Edsger W. Dijkstra

···

To: swift-corelibs-dev@swift.org
From: Pushkar N Kulkarni/India/IBM
Date: 03/15/2016 08:24PM
Subject: Cannot call CFStreamCreatePairWithSocket on Linux

-----Pushkar N Kulkarni/India/IBM wrote: -----


(Tony Parker) #2

Hi Pushkar,

Yes, this is used by “getStreamsToHostWithName”. I think we’ll have to come up with a replacement implementation here, either by starting with the old CFNetwork open source code or writing our own.

- Tony

···

On Mar 15, 2016, at 8:00 AM, Pushkar N Kulkarni via swift-corelibs-dev <swift-corelibs-dev@swift.org> wrote:

Just to add to that:

I am wondering if this would hamper the implementation of NSStream, NSInputStream and NSOutputStream for Linux.

Pushkar N Kulkarni,
IBM Runtimes

Simplicity is prerequisite for reliability - Edsger W. Dijkstra

-----Pushkar N Kulkarni/India/IBM wrote: -----
To: swift-corelibs-dev@swift.org <mailto:swift-corelibs-dev@swift.org>
From: Pushkar N Kulkarni/India/IBM
Date: 03/15/2016 08:24PM
Subject: Cannot call CFStreamCreatePairWithSocket on Linux

Hello all,

While attempting a simple Swift client-server program on Linux using CFSocket, I tried to create CFReadStream and CFWriteStream instances using CFStreamCreatePairWithSocket(_:_:_:_). The program compiles and links but it crashes with this:

2016-03-15 10:30:17.791 Client[21389:5a501740] CoreFoundation: failed to dynamically link symbol _CFSocketStreamCreatePair

2016-03-15 10:30:17.791 Client[21389:5a501740] CoreFoundation: failed to dynamically link symbol _CFErrorCreateWithStreamError

2016-03-15 10:30:17.791 Client[21389:5a501740] CoreFoundation: failed to dynamically link symbol _CFStreamErrorFromCFError

I see that these symbols are dynamically linked from CFNetwork which, I guess, doesn't exist on Linux (so there is no lookup for these symbols on Linux).

Does this qualify to be a CFStream limitation on Linux?

Thanks in advance for your time!

Pushkar N Kulkarni,
IBM Runtimes

Simplicity is prerequisite for reliability - Edsger W. Dijkstra

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev