| Index: net/third_party/nss/ssl/ssl.h
|
| diff --git a/net/third_party/nss/ssl/ssl.h b/net/third_party/nss/ssl/ssl.h
|
| index 03535f3c6a940af276bd75b18a6841955c60c47a..debfbfb1b71c63bae70f72e2b7775d59cf657c8d 100644
|
| --- a/net/third_party/nss/ssl/ssl.h
|
| +++ b/net/third_party/nss/ssl/ssl.h
|
| @@ -157,14 +157,53 @@ SSL_IMPORT SECStatus SSL_OptionSetDefault(PRInt32 option, PRBool on);
|
| SSL_IMPORT SECStatus SSL_OptionGetDefault(PRInt32 option, PRBool *on);
|
| SSL_IMPORT SECStatus SSL_CertDBHandleSet(PRFileDesc *fd, CERTCertDBHandle *dbHandle);
|
|
|
| +/* SSLNextProtoCallback is called, during the handshake, when the server has
|
| + * sent a Next Protocol Negotiation extension. |protos| and |protosLen| define
|
| + * a buffer which contains the server's advertisement. This data is guaranteed
|
| + * to be well formed per the NPN spec. |protoOut| is a buffer provided by the
|
| + * caller, of length 255 (the maximum allowed by the protocol).
|
| + * On successful return, the protocol to be announced to the server will be in
|
| + * |protoOut| and its length in |protoOutLen|. */
|
| +typedef SECStatus (PR_CALLBACK *SSLNextProtoCallback)(
|
| + void *arg,
|
| + PRFileDesc *fd,
|
| + const unsigned char* protos,
|
| + unsigned int protosLen,
|
| + unsigned char* protoOut,
|
| + unsigned int* protoOutLen);
|
| +
|
| +/* SSL_SetNextProtoCallback sets a callback function to handle Next Protocol
|
| + * Negotiation. It causes a client to advertise NPN. */
|
| +SSL_IMPORT SECStatus SSL_SetNextProtoCallback(PRFileDesc *fd,
|
| + SSLNextProtoCallback callback,
|
| + void *arg);
|
| +
|
| +/* SSL_SetNextProtoNego can be used as an alternative to
|
| + * SSL_SetNextProtoCallback. It also causes a client to advertise NPN and
|
| + * installs a default callback function which selects the first supported
|
| + * protocol in server-preference order. If no matching protocol is found it
|
| + * selects the first supported protocol.
|
| + *
|
| + * The supported protocols are specified in |data| in wire-format (8-bit
|
| + * length-prefixed). For example: "\010http/1.1\006spdy/2". */
|
| SSL_IMPORT SECStatus SSL_SetNextProtoNego(PRFileDesc *fd,
|
| const unsigned char *data,
|
| - unsigned short length);
|
| + unsigned int length);
|
| +/* SSL_GetNextProto can be used after a handshake on a socket where
|
| + * SSL_SetNextProtoNego was called to retrieve the result of the Next Protocol
|
| + * negotiation.
|
| + *
|
| + * state is set to one of the SSL_NEXT_PROTO_* constants. The negotiated
|
| + * protocol, if any, is written into buf, which must be at least buf_len bytes
|
| + * long. If the negotiated protocol is longer than this, it is truncated. The
|
| + * number of bytes copied is written into *length. */
|
| SSL_IMPORT SECStatus SSL_GetNextProto(PRFileDesc *fd,
|
| int *state,
|
| unsigned char *buf,
|
| - unsigned *length,
|
| - unsigned buf_len);
|
| + unsigned int *length,
|
| + unsigned int buf_len);
|
| +
|
| +// TODO(wtc): it may be a good idea to define these as an enum type.
|
| #define SSL_NEXT_PROTO_NO_SUPPORT 0 /* No peer support */
|
| #define SSL_NEXT_PROTO_NEGOTIATED 1 /* Mutual agreement */
|
| #define SSL_NEXT_PROTO_NO_OVERLAP 2 /* No protocol overlap found */
|
|
|