Opened 5 years ago

Closed 5 years ago

Last modified 4 years ago

#2229 closed defect (fixed)

Limitations in ICE data sending

Reported by: ming Owned by: ming
Priority: normal Milestone: release-2.10
Component: pjnath Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported: no

Description

There are a couple of issues in the current spec and implementation of pj_ice_strans_sendto():

  1. The function will return PJ_SUCCESS even if the lower level send operations return PJ_EPENDING. However, the application doesn't know this so if the application overwrites the send buffer before the send completes, then the data sent will be overwritten.
  2. Application cannot know the status of the send operation. There's no callback to tell the application, thus even if the function returns PJ_SUCCESS, the data can actually fail to be sent.

Therefore, this ticket will deprecate this function and replaces it with the new API pj_ice_strans_sendto2(), which can return PJ_EPENDING, and notify the application of the sending status via callback on_data_sent().

Change History (4)

comment:1 Changed 5 years ago by ming

  • Owner set to ming
  • Resolution set to fixed
  • Status changed from new to closed

In 6071:

Fixed #2229: Limitations in ICE data sending

comment:2 Changed 5 years ago by ming

In 6073:

Re #2229: Fixed typo of variable type ioq op key.

comment:3 Changed 4 years ago by ming

In 6108:

Re #2229: Fixed failed pjnath-test

comment:4 Changed 4 years ago by ming

In 6155:

Re #2229: Check to send pending data in the buffer even if the send completes immediately, since buffer may have been filled by then.

Note: See TracTickets for help on using tickets.