示例#1
0
int pn_do_init(pn_dispatcher_t *disp)
{
  pn_sasl_t *sasl = disp->context;
  pn_bytes_t mech;
  pn_bytes_t recv;
  int err = pn_scan_args(disp, "D.[sz]", &mech, &recv);
  if (err) return err;
  sasl->remote_mechanisms = pn_strndup(mech.start, mech.size);
  sasl->recv_data = pn_bytes_dup(recv.size, recv.start);
  sasl->rcvd_init = true;
  return 0;
}
示例#2
0
// Received Server side
int pn_do_init(pn_transport_t *transport, uint8_t frame_type, uint16_t channel, pn_data_t *args, const pn_bytes_t *payload)
{
  pni_sasl_t *sasl = transport->sasl;
  pn_bytes_t mech;
  pn_bytes_t recv;
  int err = pn_data_scan(args, "D.[sz]", &mech, &recv);
  if (err) return err;
  sasl->selected_mechanism = pn_strndup(mech.start, mech.size);

  pni_process_init(transport, sasl->selected_mechanism, &recv);

  return 0;
}