Best practices for GCD-based socket I/O with SSL support?