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

int ipmsg_construct_getfile_message ( const tcp_con_t *  con,
const char *  ipaddr,
ipmsg_ftype_t  ftype,
const char *  msg_string,
ipmsg_send_flags_t  flags,
size_t *  returned_len,
char **  returned_message 
)

IPMSGのファイル取得メッセージ(外部形式)を作成する

Parameters:
[in] con UDPコネクション情報
[in] ipaddr 送信先IPアドレス
[in] ftype ファイル種別
[in] msg_string ファイル取得メッセージ部
[in] flags パケット送信フラグ
[out] returned_len ファイル取得メッセージ長の返却領域
[out] returned_message ファイル取得メッセージの返却領域
Return values:
0 正常終了
-EINVAL 引数異常
-ENOMEM メモリ不足

Definition at line 2206 of file protocol.c.

References build_ipmsg_packet(), IPMSG_PROTOCOL_MSG_NO_EXTENSION, IPMSG_PROTOCOL_MSG_NONEED_PKTNO, and IPMSG_PROTOCOL_PKTNUM_AUTO.

                                                                                                                                                                                               {
      int                         rc = 0;
      ipmsg_send_flags_t local_flags = 0;
      char                   *packet = NULL;
      size_t              packet_len = 0;
      pktno_t            sent_pkt_no = 0;

      if ( (con == NULL) || (ipaddr == NULL) || (msg_string == NULL) || 
          (returned_len == NULL) || (returned_message == NULL) ) {
            rc = -EINVAL;
            goto error_out;
      }
      
      /*
       * フラグ設定
       */
      local_flags  = flags;
      local_flags |= hostinfo_get_normal_send_flags();
      local_flags |= ( (ftype == IPMSG_FILE_DIR) ? 
          (IPMSG_GETDIRFILES) :  (IPMSG_GETFILEDATA) );

      /*
       * パケット生成(外部形式)
       */
      rc = build_ipmsg_packet(ipaddr, IPMSG_PROTOCOL_PKTNUM_AUTO, local_flags, 
          msg_string, IPMSG_PROTOCOL_MSG_NO_EXTENSION, 
          &packet, &packet_len, IPMSG_PROTOCOL_MSG_NONEED_PKTNO); 
      if ( rc != 0 ) {
            goto error_out;
      }

      /*
       * 返却
       */

      *returned_message = packet;
      *returned_len = packet_len; 

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

error_out:
      return rc;
}


Generated by  Doxygen 1.6.0   Back to index