System information
Fixed the Ethernet demultiplexor to handle incoming SAP and SNAP packets with the size field set for 1500. This
problem only affected raw Ethernet sockets. (r. 2952858).
Implemented support for an application to send and receive ICMP echo packets for a normal user with no
administrative privileges. Instead of opening a raw IP socket like this: socket(PF_INET, SOCK_RAW,
IPPROTO_ICMP), you can now open a non-privileged datagram oriented socket: socket(PF_INET, SOCK_DGRAM,
IPPROTO_ICMP). (r. 2655317).
Back to top
CFNetwork
CFNetwork provides various network facilities using Core Foundation data types and calling conventions. Most notably, it
provides facilities for building and processing HTTP requests, building and using various kinds of direct socket
connections, and advertising or discovering network services shared via Rendezvous. It is available as part of the Core
Services framework.
Added a comment to "CFSocketStream.h" to clarify that the TLS/SSL setting can be negotiated upwards after a
stream has been opened. (r. 2915430).
CFReadStreamOpen no longer fails if the first character of the host name is a digit (for example, "3ps.go.com"). (r.
2891527).
Added support for SOCK v5 firewalls. (r. 2833743).
Added support for SOCK v4 firewalls. (r. 2833740).
Added CFNetwork APIs to browse for and register services using Rendezvous. See "CFNetwork/CFNetServices.h" for
more information. (r. 2833543).
Previously CFNetwork would always send the port number in the "Host" header when requesting a URL. That caused
problems for some servers. Now CFNetwork only puts the port number in the "Host" header if it's not 80. (r.
2825110).
An HTTP stream can now accept its payload data from a stream. (r. 2706564).
Added support for persistent HTTP connections. (r. 2705578).
Added support for HTTP digest authentication. (r. 2705542).
Fixed a bug related to asynchronous downloads. CFNetwork was occasionally signalling that bytes were available
when they weren't. This happened most often when the client calls CFReadStreamRead multiple times in response to
a single signal of kCFStreamEventHasBytesAvailable. (r. 2973276).
CFNetwork now returns an error, as opposed to crashing, if you pass it a request with high-bit set characters. (r.
2969566).
Fixed a problem where passing a bad host name to CFNetwork would sometimes cause it to crash. (r. 2923325).
Fixed a bug that caused CFReadStreamCopyProperty to return NULL intermittently when asking for the property
kCFStreamPropertyHTTPResponseHeader. (r. 2916653).
Fixed a bug that caused CFReadStreamRead to hang. (r. 2915455).
HTTP headers transmitted at the end of a chunked response are now properly picked up and added to the response
headers; before, they were misparsed and could cause crashes. (r. 2912738).
Fixed an incompatibility with web servers that expect three CRLF pairs after a request whose Content-Length
header is 0. (r. 2896595).
Fixed a problem where CFNetwork would consider %00 in the host name portion of the URL to be the end of the
URL. (r. 2890529).
Fixed an HTTP/1.1 problem where the server responds with a 100-continue response, but CFNetwork would not
continue. This is most common when sending POST requests. (r. 2851403).
Fixed a problem that could cause the kCFStreamEventHasBytesAvailable event to be delivered after the
kCFStreamEventEndEncountered event. (r. 2840545).
Back to top
DHCP and BOOTP
DHCP and BOOTP servers provide automated network address configuration services. This section discusses changes in Mac
OS X's facilities for accessing DHCP and BOOTP servers.
Changes have been implemented to support interfaces being removed from the network. (r. 2879871).