• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/Security-55471.14.18/sec/SOSCircle/SecureObjectSync/

Lines Matching refs:peer

118  M: Manifest of peer p
185 /* This message is sent to each peer that joins a circle and can also be sent
186 as a form of ACK to confirm that the local peer is in sync with the peer
188 CFDataRef SOSEngineCreateManifestDigestMessage(SOSEngineRef engine, SOSPeerRef peer, CFErrorRef *error) {
231 CFDataRef SOSEngineCreateManifestMessage(SOSEngineRef engine, SOSPeerRef peer, CFErrorRef *error) {
278 message from a peer that is not in sync with us yet. */
279 CFDataRef SOSEngineCreateManifestAndObjectsMessage(SOSEngineRef engine, SOSPeerRef peer, CFErrorRef *error) {
281 peer has a manifest that corresponds to peers real manifest.
282 we send everything in our datasource that's not in peers manifest already to peer.
292 peerManifest = SOSPeerCopyManifest(peer, error);
323 CFDataRef peerDigest = SOSPeerCopyManifestDigest(peer, error);
340 /* Record the peers new manifest assuming that peer will accept all the
342 SOSPeerSetManifest(peer, manifest, error);
533 M: Manifest of peer p
536 SOSPeerRef peer,
540 CFDataRef peerDigest = SOSPeerCopyManifestDigest(peer, NULL);
544 /* Our dataSources manifest and that of the peer are equal, we are in sync. */
546 /* The last known digest we had for peer already matched the digest peer
548 message to peer. */
551 /* Our peer just sent us a manifest digest that matches our own, but the digest
552 we have for the peer (if any) doesn't match that. Peer must have the same
556 bool ok = SOSPeerSetManifest(peer, manifest, error);
559 /* Since we got lucky and happen to have the same digest as our peer, we
560 send back an ack to ensure our peer ends up knowning our manifest as well. */
561 reply = SOSEngineCreateManifestDigestMessage(engine, peer, error);
566 /* We know peer's current manifest is correct (the computed digest
567 matches the passed in one) but peer and our dataSource
568 are not in sync. Send the deltas to peer. */
569 reply = SOSEngineCreateManifestAndObjectsMessage(engine, peer, error);
571 /* Our peer has no digest yet, or the manifestDigest peer just sent
572 us doesn't match the digest of the manifest we think peer has.
573 We need to get peer to tell us their manifest, to do so we sent
575 reply = SOSEngineCreateManifestMessage(engine, peer, error);
583 /* M: Manifest of peer p
585 static CFDataRef SOSEngineCopyManifestReply(SOSEngineRef engine, SOSPeerRef peer,
590 SOSPeerSetManifest(peer, manifest, error);
591 CFDataRef peerManifestDigest = SOSPeerCopyManifestDigest(peer, error);
596 /* We're in sync, optionally send peer an ack. */
597 reply = SOSEngineCreateManifestDigestMessage(engine, peer, error);
599 /* Send peer the objects it is missing from our manifest. */
600 reply = SOSEngineCreateManifestAndObjectsMessage(engine, peer, error);
610 SOSPeerRef peer,
639 L: Manifest of local peer.
640 M: Manifest of peer p.
646 SOSPeerRef peer,
658 if (!SOSEngineProccesObjects(engine, peer, digest, removals, additions, objects, error)) {
659 secerror("peer: %@ SOSEngineProccesObjects(): %@", SOSPeerGetID(peer), *error);
668 if (SOSPeerSetManifest(peer, peerManifest, error)) {
670 if (!SOSEngineProccesObjects(engine, peer, digest, removals, additions, objects, error)) {
671 secerror("peer: %@ SOSEngineProccesObjects(): %@", SOSPeerGetID(peer), *error);
674 CFDataRef peerDigest = SOSPeerCopyManifestDigest(peer, error);
676 /* Depending on whether after proccess objects we still have objects that need to be sent back to peer we respond with our digestManifest or with a manifestAndObjectsMessage. */
679 reply = SOSEngineCreateManifestDigestMessage(engine, peer, error);
681 reply = SOSEngineCreateManifestAndObjectsMessage(engine, peer, error);
689 secerror("Received peer: %@ sent bad message: %@", SOSPeerGetID(peer), *error);
690 /* We failed to compute peer's digest, let's tell him ours again and hope for a retransmission. */
692 reply = SOSEngineCreateManifestDigestMessage(engine, peer, error);
698 reply = SOSEngineCreateManifestMessage(engine, peer, error);
706 /* Handle incoming message from peer p. Return false if there was an error, true otherwise. */
707 bool SOSEngineHandleMessage(SOSEngineRef engine, SOSPeerRef peer,
710 SOSManifestRef oldPeerManifest = SOSPeerCopyManifest(peer, NULL);
722 reply = SOSEngineCopyManifestDigestReply(engine, peer, digest, error);
732 reply = SOSEngineCopyManifestReply(engine, peer, manifest, error);
745 reply = SOSEngineCopyManifestAndObjectsReply(engine, peer, peerManifestDigest, removals, additions, objects, error);
761 ok = SOSPeerSendMessage(peer, reply, error);
763 SOSPeerSetManifest(peer, oldPeerManifest, NULL);
765 secnotice("engine", "%@", SOSPeerGetID(peer));
771 bool SOSEngineSyncWithPeer(SOSEngineRef engine, SOSPeerRef peer, bool force,
774 SOSManifestRef oldPeerManifest = SOSPeerCopyManifest(peer, NULL);
776 require_quiet(SOSPeerCanSendMessage(peer), exit);
777 CFDataRef peerDigest = SOSPeerCopyManifestDigest(peer, NULL);
783 /* We are in sync with peer already. */
786 something to our peer no matter what to break the symmmetry. */
787 reply = SOSEngineCreateManifestDigestMessage(engine, peer, error);
792 /* We have have a digest for peer's manifest and it doesn't
793 match our current digest, so send deltas to peer. */
794 reply = SOSEngineCreateManifestAndObjectsMessage(engine, peer, error);
797 /* We have no digest for peer yet, send our manifest digest to peer,
799 reply = SOSEngineCreateManifestDigestMessage(engine, peer, error);
807 ok = SOSPeerSendMessage(peer, reply, error);
809 SOSPeerSetManifest(peer, oldPeerManifest, NULL);
813 secnotice("engine", "%@", SOSPeerGetID(peer));