Logo Search packages:      
Sourcecode: g2ipmsg version File versions  Download package

int ipmsg_send_getpubkey ( const udp_con_t *  con,
const char *  ipaddr 
)

IPMSGのIPMSG_GETPUBKEYパケットを送出する.

Parameters:
[in] con UDPコネクション情報
[in] ipaddr 送信先IPアドレス
Return values:
0 正常終了
-EINVAL 引数異常
IPMSG_GETPUBKEY パケット形式
  • メッセージ部: 暗号化ケイパビリティ(16進)を文字列で表した数値
  • 拡張部 : なし

Definition at line 2476 of file protocol.c.

References IPMSG_PROTOCOL_MSG_NO_EXTENSION, IPMSG_PROTOCOL_PKTNUM_AUTO, ipmsg_send_packet(), and pcrypt_crypt_generate_getpubkey_string().

Referenced by ipmsg_proc_ans_entry(), ipmsg_proc_br_entry(), and ipmsg_send_sendmsg_packets().

                                                              {
      char               *cap_string = NULL;
      char              *send_string = NULL;
      int                         rc = 0;
      size_t                     len = 0;
      ipmsg_send_flags_t local_flags = 0;
      ipmsg_cap_t         capability = 0;

      dbg_out("here\n");

      if ( (con == NULL) || (ipaddr == NULL) ) {
            rc = -EINVAL;
            goto error_out;
      }

#if !defined(USE_OPENSSL)
      rc = -ENOSYS;  /* 未サポート */
      goto error_out;
#else

      /*
       * フラグ設定
       */
      local_flags = IPMSG_GETPUBKEY;

      /*
       * 暗号化能力を文字列化
       */
      capability = hostinfo_get_ipmsg_crypt_capability();
      rc = pcrypt_crypt_generate_getpubkey_string(capability, 
          (const char **)&cap_string);
      if (rc != 0) {
            g_assert(cap_string == NULL);
            goto error_out;
      }

      dbg_out("Send GETPUBKEY Capability:%s\n", cap_string);

      /*
       * パケット送信
       */
      rc = ipmsg_send_packet(con, ipaddr, IPMSG_PROTOCOL_PKTNUM_AUTO, local_flags, 
          cap_string, IPMSG_PROTOCOL_MSG_NO_EXTENSION);

      if (rc != 0) {
            goto free_cap_string_out;
      }

      rc = 0; /* 正常終了 */

free_cap_string_out:
      if (cap_string != NULL)
            g_free(cap_string);

#endif  /* USE_OPENSSL */

error_out:
      return rc;
}


Generated by  Doxygen 1.6.0   Back to index