Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-304

MongoDB Handshake protocol

    • Type: Icon: New Feature New Feature
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      NODE-765 Done 2.2.5
      PYTHON-1119 Done 3.4
      PHPC-757 Done 1.2.0-alpha2, 1.2.0
      PERL-649 Done 1.6.0
      CXX-981 Won't Fix
      JAVA-2266 Done 3.4.0
      SCALA-252 Done
      RUBY-1136 Done 2.4.0
      CSHARP-1730 Done 2.4
      RUST-1 Fixed 0.9.0-alpha
      MOTOR-227 Fixed 2.0
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion NODE-765 Done 2.2.5 PYTHON-1119 Done 3.4 PHPC-757 Done 1.2.0-alpha2, 1.2.0 PERL-649 Done 1.6.0 CXX-981 Won't Fix JAVA-2266 Done 3.4.0 SCALA-252 Done RUBY-1136 Done 2.4.0 CSHARP-1730 Done 2.4 RUST-1 Fixed 0.9.0-alpha MOTOR-227 Fixed 2.0

      https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst

      TL;DR: Every socket connecting to MongoDB MUST issue isMaster announcing itself to the server with the following pseudo document.
      There is also new connection URI field appname the user can provide (client.application.name) which the server will write out in its logs and profile entries, making correlating server log entries to respective applications trivial.

      isMaster({
          client: {
              /* OPTIONAL. If present, the "name" is REQUIRED */
              application: {
                  name: "<string>"
              },
              /* REQUIRED, including all sub fields */
              driver: {
                  name: "<string>",
                  version: "<string>"
              },
              /* REQUIRED */
              os: {
                  type: "<string>",         /* REQUIRED */
                  name: "<string>",         /* OPTIONAL */
                  architecture: "<string>", /* OPTIONAL */
                  version: "<string>"       /* OPTIONAL */
              },
              /* OPTIONAL */
              platform: "<string>"
          }
      })
      

            Assignee:
            bjori Hannes Magnusson
            Reporter:
            rathi.gnanasekaran Rathi Gnanasekaran
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: