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

static int ipmsg_notify_number ( const udp_con_t *  con,
const char *  ipaddr,
ipmsg_send_flags_t  flags,
pktno_t  num 
) [static]

IPMSGのパケット番号通知/インデクス番号通知系メッセージを送出する.

Parameters:
[in] con UDPコネクション情報
[in] ipaddr 送信先IPアドレス
  • IPMSG_PROTOCOL_ENTRY_PKT_ADDR ブロードキャストとして扱う
  • 上記以外 ユニキャストとして扱う
[in] flags 送信フラグ
[in] pktno 通知するパケット番号
  • IPMSG_PROTOCOL_PKTNUM_AUTO 番号を自動的に割り当てる
  • 上記以外 pktnoで指定した番号を使用
Return values:
0 正常終了
-EINVAL 引数異常
Note:
各番号通知系メッセージの形式は, 以下のとおり:
IPMSG_RECVMSG パケット形式
  • メッセージ部: 受信パケット番号を表す文字列
  • 拡張部 : なし

IPMSG_RELEASEFILES

  • メッセージ部: 開放ファイルパケット番号を表す文字列
  • 拡張部 : なし

IPMSG_GETLIST:

  • メッセージ部: ホストリストエントリ取得開始番号
  • 拡張部 : なし

Attention:
内部リンケージ

Definition at line 376 of file protocol.c.

References IPMSG_PROTOCOL_MSG_NO_EXTENSION, IPMSG_PROTOCOL_PKTNUM_AUTO, IPMSG_PROTOCOL_PKTNUM_FMT, IPMSG_PROTOCOL_PKTNUM_LEN, and ipmsg_send_packet().

Referenced by ipmsg_send_get_list(), ipmsg_send_read_msg(), ipmsg_send_recv_msg(), and ipmsg_send_release_files().

                                                       {
      int                    rc = 0;
      char              pkt_buf[IPMSG_PROTOCOL_PKTNUM_LEN];

      g_assert(con != NULL);  /* 呼び出し側責任で引数チェックを実施 */
      
      /*
       * パケット番号を文字列化して送信.
       */
      snprintf(pkt_buf, IPMSG_PROTOCOL_PKTNUM_LEN, IPMSG_PROTOCOL_PKTNUM_FMT, num);

      dbg_out("Notify number : (ipaddr, pktno) = (%s, %d)\n", ipaddr, num);

      /*
       * パケット送信
       */
      rc = ipmsg_send_packet(con, ipaddr,IPMSG_PROTOCOL_PKTNUM_AUTO, flags, 
          pkt_buf, IPMSG_PROTOCOL_MSG_NO_EXTENSION);
      if (rc != 0) {
            goto error_out;
      }

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

error_out:
      return rc;
}


Generated by  Doxygen 1.6.0   Back to index