示例#1
0
static grpc_error *check_peer_locked(grpc_exec_ctx *exec_ctx,
                                     security_handshaker *h) {
  tsi_peer peer;
  tsi_result result = tsi_handshaker_extract_peer(h->handshaker, &peer);
  if (result != TSI_OK) {
    return grpc_set_tsi_error_result(
        GRPC_ERROR_CREATE("Peer extraction failed"), result);
  }
  grpc_security_connector_check_peer(exec_ctx, h->connector, peer,
                                     &h->auth_context, &h->on_peer_checked);
  return GRPC_ERROR_NONE;
}
示例#2
0
文件: handshake.c 项目: nerdrew/grpc
static void check_peer(grpc_exec_ctx *exec_ctx, grpc_security_handshake *h) {
    tsi_peer peer;
    tsi_result result = tsi_handshaker_extract_peer(h->handshaker, &peer);

    if (result != TSI_OK) {
        security_handshake_done(
            exec_ctx, h, grpc_set_tsi_error_result(
                GRPC_ERROR_CREATE("Peer extraction failed"), result));
        return;
    }
    grpc_security_connector_check_peer(exec_ctx, h->connector, peer,
                                       on_peer_checked, h);
}
示例#3
0
static void check_peer(grpc_secure_transport_setup *s) {
  grpc_security_status peer_status;
  tsi_peer peer;
  tsi_result result = tsi_handshaker_extract_peer(s->handshaker, &peer);

  if (result != TSI_OK) {
    gpr_log(GPR_ERROR, "Peer extraction failed with error %s",
            tsi_result_to_string(result));
    secure_transport_setup_done(s, 0);
    return;
  }
  peer_status = grpc_security_connector_check_peer(s->connector, peer,
                                                   on_peer_checked, s);
  if (peer_status == GRPC_SECURITY_ERROR) {
    gpr_log(GPR_ERROR, "Peer check failed.");
    secure_transport_setup_done(s, 0);
    return;
  } else if (peer_status == GRPC_SECURITY_OK) {
    on_peer_checked(s, peer_status);
  }
}