Ignore:
Timestamp:
Jan 8, 2016, 2:35:52 PM (8 years ago)
Author:
coas-nagasima
Message:

メッセージバッファ領域がなくなったときにWebSocketパケットを誤って処理してしまうのを修正。
Ethernet送信バッファが取れないときにパケットが送信できなかったのを修正。
その他、処理の安定性の向上。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/uip/apps/webserver/websocket.c

    r108 r148  
    127127                // Payload buffer
    128128                default:
    129                         _ecn_fbs_poke(ws->cur_in_msg, s->data_pos, *pos ^ s->masking_key[s->data_pos % 4]);
     129                        if(ws->cur_in_msg.ptr != NULL)
     130                                _ecn_fbs_poke(ws->cur_in_msg, s->data_pos, *pos ^ s->masking_key[s->data_pos % 4]);
    130131
    131132                        s->data_pos++;
     
    133134                                ER ret;
    134135                                s->state = 0;
    135                                 ((ID *)ws->cur_in_msg.ptr->_gap)[0] = ws->wbsid;
    136                                 ret = psnd_dtq(ecn_api_mailboxid, (intptr_t)ws->cur_in_msg.ptr);
    137                                 if (ret != E_OK) {
    138                                         syslog(LOG_WARNING, "websocket_input() : psnd_dtq(%d) result = %d", ecn_api_mailboxid, ret);
    139                                         _ecn_fbs_del(ws->cur_in_msg);
     136
     137                                if (ws->cur_in_msg.ptr != NULL) {
     138                                        ((ID *)ws->cur_in_msg.ptr->_gap)[0] = ws->wbsid;
     139                                        ret = psnd_dtq(ecn_api_mailboxid, (intptr_t)ws->cur_in_msg.ptr);
     140                                        if (ret != E_OK) {
     141                                                syslog(LOG_WARNING, "websocket_input() : psnd_dtq(%d) result = %d", ecn_api_mailboxid, ret);
     142                                                _ecn_fbs_del(ws->cur_in_msg);
     143                                        }
    140144                                }
    141145                                memset(&ws->cur_in_msg, 0, sizeof(ws->cur_in_msg));
Note: See TracChangeset for help on using the changeset viewer.