PORT_Assert( ssl_Have1stHandshakeLock(ss) );
PORT_Assert( ss->opt.noLocks || ssl_Have1stHandshakeLock(ss) );
ssl2_SendClientFinishedMessage(sslSocket *ss){    SECStatus        rv    = SECSuccess;    int              sent;    PRUint8    msg[1 + SSL_CONNECTIONID_BYTES];    PORT_Assert( ssl_Have1stHandshakeLock(ss) );    ssl_GetXmitBufLock(ss);    /***************************************/    if (ss->sec.ci.sentFinished == 0) {	ss->sec.ci.sentFinished = 1;	SSL_TRC(3, ("%d: SSL[%d]: sending client-finished",		    SSL_GETPID(), ss->fd));	msg[0] = SSL_MT_CLIENT_FINISHED;	PORT_Memcpy(msg+1, ss->sec.ci.connectionID, 	            sizeof(ss->sec.ci.connectionID));	DUMP_MSG(29, (ss, msg, 1 + sizeof(ss->sec.ci.connectionID)));	sent = (*ss->sec.send)(ss, msg, 1 + sizeof(ss->sec.ci.connectionID), 0);	rv = (sent >= 0) ? SECSuccess : (SECStatus)sent;    }    ssl_ReleaseXmitBufLock(ss);    /***************************************/    return rv;}