Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/tinet/net/ppp_ipv6cp.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r388 r389  
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    9  *  によってå
    10 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    11  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    12  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    14  *  利用と呼ぶ)することを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    33  *      害からも,上記著作権è€
    34 ãŠã‚ˆã³TOPPERSプロジェクトをå
    35 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     7 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     8 *  によって公表されている GNU General Public License の Version 2 に記
     9 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     10 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     11 *  利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次の条件を満たすこと.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    124112
    125113/*
    126  *  関数
     114 *  関数
    127115 */
    128116
     
    136124
    137125/*
    138  * FSM から呼出されるコールバック関
    139  */
    140 
    141 static void  ipv6cp_resetci(T_PPP_FSM *fsm);    /* 自構成æƒ
    142 å ±ã‚’リセットする。     */
    143 static int_t ipv6cp_cilen       (T_PPP_FSM *fsm);       /* 構成æƒ
    144 å ±ã®é•·ã•ã‚’返す。                */
     126 * FSM から呼出されるコールバック関
     127 */
     128
     129static void  ipv6cp_resetci(T_PPP_FSM *fsm);    /* 自構成情報をリセットする。        */
     130static int_t ipv6cp_cilen       (T_PPP_FSM *fsm);       /* 構成情報の長さを返す。          */
    145131static void  ipv6cp_addci       (T_PPP_FSM *fsm, T_NET_BUF *output);
    146                                                 /* 自構成æƒ
    147 å ±ã‚’追加する。           */
     132                                                /* 自構成情報を追加する。          */
    148133static bool_t  ipv6cp_ackci     (T_PPP_FSM *fsm, T_NET_BUF *input);
    149                                                 /* ACK を受信したときの処理   */
     134                                                /* ACK を受信したときの処理       */
    150135static bool_t  ipv6cp_nakci     (T_PPP_FSM *fsm, T_NET_BUF *input);
    151                                                 /* NAK を受信したときの処理   */
     136                                                /* NAK を受信したときの処理       */
    152137static bool_t  ipv6cp_rejci     (T_PPP_FSM *fsm, T_NET_BUF *input);
    153                                                 /* REJ を受信したときの処理   */
     138                                                /* REJ を受信したときの処理       */
    154139static int_t ipv6cp_reqci       (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
    155                                                 /* 相手の構成æƒ
    156 å ±ã‚’確認する。   */
    157 static void ipv6cp_up   (T_PPP_FSM *fsm);       /* リンク接続を確立する。            */
    158 static void ipv6cp_down (T_PPP_FSM *fsm);       /* リンク接続を解放する。            */
    159 static void ipv6cp_finished(T_PPP_FSM *fsm);    /* 下位層を終了する。          */
    160 
    161 /*
    162  *  変数
    163  */
    164 
    165 static T_IFNET ipv6cp_local_def_cfg = {         /* 自構成æƒ
    166 å ±ã®è¦å®šå€¤         */
    167         NULL,                                   /* ネットワークインタフェースのソフトウェアæƒ
    168 å ±     */
    169         {},                                     /* IPv6 アドレスæƒ
    170 å ±                             */
    171         {},                                     /* マルチキャスト IPv6 アドレス                      */
    172         0,                                      /* フラグ                                    */
     140                                                /* 相手の構成情報を確認する。        */
     141static void ipv6cp_up   (T_PPP_FSM *fsm);       /* リンク接続を確立する。          */
     142static void ipv6cp_down (T_PPP_FSM *fsm);       /* リンク接続を解放する。          */
     143static void ipv6cp_finished(T_PPP_FSM *fsm);    /* 下位層を終了する。            */
     144
     145/*
     146 *  変数
     147 */
     148
     149static T_IFNET ipv6cp_local_def_cfg = {         /* 自構成情報の規定値            */
     150        NULL,                                   /* ネットワークインタフェースのソフトウェア情報       */
     151        {},                                     /* IPv6 アドレス情報                          */
     152        {},                                     /* マルチキャスト IPv6 アドレス                    */
     153        0,                                      /* フラグ                                  */
    173154        };
    174155
    175 static T_IFNET ipv6cp_remote_def_cfg = {        /* 相手の構成æƒ
    176 å ±ã®è¦å®šå€¤ */
    177         NULL,                                   /* ネットワークインタフェースのソフトウェアæƒ
    178 å ±     */
    179         {},                                     /* IPv6 アドレスæƒ
    180 å ±                             */
    181         {},                                     /* マルチキャスト IPv6 アドレス                      */
    182         0,                                      /* フラグ                                    */
     156static T_IFNET ipv6cp_remote_def_cfg = {        /* 相手の構成情報の規定値  */
     157        NULL,                                   /* ネットワークインタフェースのソフトウェア情報       */
     158        {},                                     /* IPv6 アドレス情報                          */
     159        {},                                     /* マルチキャスト IPv6 アドレス                    */
     160        0,                                      /* フラグ                                  */
    183161        };
    184162
    185 static T_IFNET ipv6cp_local_neg_cfg;            /* ネゴ中の自構成æƒ
    186 å ±             */
    187 
    188 static T_IFNET ipv6cp_remote_neg_cfg;           /* ネゴ中の相手の構成æƒ
    189 å ±             */
    190 
    191 /*
    192  *  å
    193 ¨åŸŸå¤‰æ•°
     163static T_IFNET ipv6cp_local_neg_cfg;            /* ネゴ中の自構成情報            */
     164
     165static T_IFNET ipv6cp_remote_neg_cfg;           /* ネゴ中の相手の構成情報          */
     166
     167/*
     168 *  全域変数
    194169 */
    195170
    196171T_PPP_FSM_CALLBACKS ipv6cp_callbacks = {
    197         ipv6cp_resetci,                 /* 自構成æƒ
    198 å ±ã‚’リセットする。     */
    199         ipv6cp_cilen,                   /* 構成æƒ
    200 å ±ã®é•·ã•ã‚’返す。                */
    201         ipv6cp_addci,                   /* 自構成æƒ
    202 å ±ã‚’追加する。           */
    203         ipv6cp_ackci,                   /* ACK を受信したときの処理   */
    204         ipv6cp_nakci,                   /* NAK を受信したときの処理   */
    205         ipv6cp_rejci,                   /* REJ を受信したときの処理   */
    206         ipv6cp_reqci,                   /* 相手の構成æƒ
    207 å ±ã‚’確認する。   */
    208         ipv6cp_up,                      /* リンク接続を確立する。            */
    209         ipv6cp_down,                    /* リンク接続を解放する。            */
    210         NULL,                           /* 下位層を開始する。          */
    211         ipv6cp_finished,                        /* 下位層を終了する。          */
    212         NULL,                           /* 再送する。                      */
    213         NULL,                           /* 不明な CP を受信したときの処理  */
     172        ipv6cp_resetci,                 /* 自構成情報をリセットする。        */
     173        ipv6cp_cilen,                   /* 構成情報の長さを返す。          */
     174        ipv6cp_addci,                   /* 自構成情報を追加する。          */
     175        ipv6cp_ackci,                   /* ACK を受信したときの処理       */
     176        ipv6cp_nakci,                   /* NAK を受信したときの処理       */
     177        ipv6cp_rejci,                   /* REJ を受信したときの処理       */
     178        ipv6cp_reqci,                   /* 相手の構成情報を確認する。        */
     179        ipv6cp_up,                      /* リンク接続を確立する。          */
     180        ipv6cp_down,                    /* リンク接続を解放する。          */
     181        NULL,                           /* 下位層を開始する。            */
     182        ipv6cp_finished,                        /* 下位層を終了する。            */
     183        NULL,                           /* 再送する。                        */
     184        NULL,                           /* 不明な CP を受信したときの処理    */
    214185        };
    215186
    216187T_PPP_FSM ipv6cp_fsm = {
    217         &ipv6cp_callbacks,              /* コールバック関数             */
    218         PPP_IPV6CP,                     /* プロトコル                      */
     188        &ipv6cp_callbacks,              /* コールバック関数             */
     189        PPP_IPV6CP,                     /* プロトコル                        */
    219190        };
    220191
    221192T_PPP_PROTENT ipv6cp_protent = {
    222193        PPP_IPV6CP,
    223         ipv6cp_init,                    /* 初期化                    */
    224         ipv6cp_input,                   /* å
    225 ¥åŠ›                            */
    226         ipv6cp_protrej,                 /* Proto-REJ 受信処理               */
    227         ipv6cp_lowerup,                 /* 下位層を起動する             */
    228         ipv6cp_lowerdown,               /* 下位層を停止する             */
    229         ipv6cp_open,                    /* オープンする                   */
    230         ipv6cp_close,                   /* クローズする                   */
    231         ip6_input,                      /* データå
    232 ¥åŠ›ã€IPv6 å
    233 ¥åŠ›    */
     194        ipv6cp_init,                    /* 初期化                  */
     195        ipv6cp_input,                   /* 入力                           */
     196        ipv6cp_protrej,                 /* Proto-REJ 受信処理               */
     197        ipv6cp_lowerup,                 /* 下位層を起動する             */
     198        ipv6cp_lowerdown,               /* 下位層を停止する             */
     199        ipv6cp_open,                    /* オープンする                       */
     200        ipv6cp_close,                   /* クローズする                       */
     201        ip6_input,                      /* データ入力、IPv6 入力        */
    234202        };
    235203
    236 T_IFNET ipv6cp_local_ack_cfg;           /* 相手に許可されたの自構成æƒ
    237 å ±     */
    238 T_IFNET ipv6cp_remote_ack_cfg;          /* 相手に許可した構成æƒ
    239 å ±     */
    240 
    241 /*
    242  *  ppp_get_ifnet -- ネットワークインタフェース構造体を返す。
     204T_IFNET ipv6cp_local_ack_cfg;           /* 相手に許可されたの自構成情報       */
     205T_IFNET ipv6cp_remote_ack_cfg;          /* 相手に許可した構成情報  */
     206
     207/*
     208 *  ppp_get_ifnet -- ネットワークインタフェース構造体を返す。
    243209 */
    244210
     
    250216
    251217/*
    252  *  wait_ipv6cp -- IP 接続完了までå¾
    253 ã¤ã€‚
    254  *
    255  *      戻り値: 接続に失敗したら E_OBJ を返す。
     218 *  wait_ipv6cp -- IP 接続完了まで待つ。
     219 *
     220 *      戻り値: 接続に失敗したら E_OBJ を返す。
    256221 */
    257222
     
    267232#ifdef PPP_CFG_MODEM
    268233
    269                 /* モデムの接続完了までå¾
    270 ã¤ã€‚*/
     234                /* モデムの接続完了まで待つ。*/
    271235                if ((error = wait_modem()) != E_OK)
    272236                        return error;
     
    275239
    276240                /*
    277                  * 受動オープンし、相手からの接続å¾
    278 ã¡ãªã‚‰ LCP を一度クローズし、
    279                  * 能動オープン状æ
    280 ‹ã§ã€å†ã‚ªãƒ¼ãƒ—ンする。
     241                 * 受動オープンし、相手からの接続待ちなら LCP を一度クローズし、
     242                 * 能動オープン状態で、再オープンする。
    281243                 */
    282244                lcp_close();
     
    288250
    289251        if (ipv6cp_fsm.state != PPP_FSM_OPENED) {
    290                 /* IP 接続完了までå¾
    291 ã¤ã€‚*/
     252                /* IP 接続完了まで待つ。*/
    292253                wai_sem(SEM_IPV6CP_READY);
    293254                if (ipv6cp_fsm.state != PPP_FSM_OPENED)
     
    299260
    300261/*
    301  *  ipv6cp_init -- IPV6CP モジュールの初期化
     262 *  ipv6cp_init -- IPV6CP モジュールの初期化
    302263 */
    303264
     
    309270
    310271/*
    311  *  ipv6cp_input -- IPV6CP å
    312 ¥åŠ›
     272 *  ipv6cp_input -- IPV6CP 入力
    313273 */
    314274
     
    322282
    323283/*
    324  *  ipv6cp_resetci -- IPV6CPの構成æƒ
    325 å ±ã‚’リセットする。
     284 *  ipv6cp_resetci -- IPV6CPの構成情報をリセットする。
    326285 */
    327286
     
    329288ipv6cp_resetci (T_PPP_FSM *fsm)
    330289{
    331         /* 自構成æƒ
    332 å ±ã®åˆæœŸè¨­å®š */
     290        /* 自構成情報の初期設定 */
    333291        ipv6cp_local_neg_cfg = ipv6cp_local_def_cfg;
    334292        memset((void*)&ipv6cp_local_ack_cfg, 0, sizeof(T_IFNET));
    335293
    336         /* 相手の構成æƒ
    337 å ±ã®åˆæœŸè¨­å®š */
     294        /* 相手の構成情報の初期設定 */
    338295        ipv6cp_remote_neg_cfg = ipv6cp_remote_def_cfg;
    339296        memset((void*)&ipv6cp_remote_ack_cfg, 0, sizeof(T_IFNET));
     
    341298
    342299/*
    343  *  ipv6cp_cilen -- 構成æƒ
    344 å ±ã®é•·ã•ã‚’返す。
     300 *  ipv6cp_cilen -- 構成情報の長さを返す。
    345301 */
    346302
     
    350306        int_t cilen = 0;
    351307
    352         cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IPv6 アドレス */
     308        cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IPv6 アドレス */
    353309
    354310        return cilen;
     
    356312
    357313/*
    358  *  ipv6cp_addci -- IPV6CPの構成æƒ
    359 å ±ã‚’追加する。
     314 *  ipv6cp_addci -- IPV6CPの構成情報を追加する。
    360315 */
    361316
     
    367322        buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    368323
    369         /* IPv6 アドレスオプションを追加する。 */
     324        /* IPv6 アドレスオプションを追加する。 */
    370325        *buf ++ = IPV6CP_CIT_ADDR;
    371326        *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
     
    375330
    376331/*
    377  *  ipv6cp_ackci -- ACK を受信したときの処理
    378  *
    379  *      戻り値:      true  ACK は正常
    380  *              false ACK は異常
     332 *  ipv6cp_ackci -- ACK を受信したときの処理
     333 *
     334 *      戻り値:    true  ACK は正常
     335 *              false ACK は異常
    381336 */
    382337
     
    391346
    392347        /*
    393          *  構成æƒ
    394 å ±ã¯é€ä¿¡ã—た順に完å
    395 ¨ã«ä¸€è‡´ã—なければならない。
    396          *  従って、ipv6cp_addci で作成した順に解析する。
     348         *  構成情報は送信した順に完全に一致しなければならない。
     349         *  従って、ipv6cp_addci で作成した順に解析する。
    397350         */
    398351
    399         /* ADDR オプションを解析する。 */
     352        /* ADDR オプションを解析する。 */
    400353        if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)       ||
    401354            *buf ++ != IPV6CP_CIT_ADDR                  ||
     
    410363
    411364/*
    412  *  ipv6cp_nakci -- NAK を受信したときの処理
    413  *
    414  *      戻り値:      1  NAK は正常
    415  *              0  NAK は異常
     365 *  ipv6cp_nakci -- NAK を受信したときの処理
     366 *
     367 *      戻り値:    1  NAK は正常
     368 *              0  NAK は異常
    416369 */
    417370
     
    429382        new_cfg = ipv6cp_local_neg_cfg;
    430383
    431         /* ADDR オプションを解析する。 */
     384        /* ADDR オプションを解析する。 */
    432385        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(addr)          &&
    433386            * buf      == IPV6CP_CIT_ADDR                       &&
     
    438391                }
    439392
    440         /* 後は無視する。*/
     393        /* 後は無視する。*/
    441394        while (len > sizeof(T_PPP_CI_HDR)) {
    442395                cilen = *(buf + 1);
     
    447400                }
    448401
    449         /* 長さが 0 でなければエラー */
     402        /* 長さが 0 でなければエラー */
    450403        if (len != 0)
    451404                return 0;
    452405
    453         /* 新しいオプションを設定する。*/
     406        /* 新しいオプションを設定する。*/
    454407        if (fsm->state != PPP_FSM_OPENED)
    455408                ipv6cp_local_neg_cfg = new_cfg;
     
    459412
    460413/*
    461  *  ipv6cp_rejci -- REJ を受信したときの処理
    462  *
    463  *      戻り値:      1  REJ は正常
    464  *              0  REJ は異常
     414 *  ipv6cp_rejci -- REJ を受信したときの処理
     415 *
     416 *      戻り値:    1  REJ は正常
     417 *              0  REJ は異常
    465418 */
    466419
     
    477430        new_cfg = ipv6cp_local_neg_cfg;
    478431
    479         /* ADDR オプションを解析する。 */
     432        /* ADDR オプションを解析する。 */
    480433        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(new_cfg.in6_ifaddrs[0].addr)   &&
    481434            * buf      == IPV6CP_CIT_ADDR                                       &&
     
    487440                }
    488441
    489         /* 長さが 0 でなければエラー */
     442        /* 長さが 0 でなければエラー */
    490443        if (len != 0)
    491444                return 0;
    492445
    493         /* 新しいオプションを設定する。*/
     446        /* 新しいオプションを設定する。*/
    494447        if (fsm->state != PPP_FSM_OPENED)
    495448                ipv6cp_local_neg_cfg = new_cfg;
     
    499452
    500453/*
    501  *  ipv6cp_reqci -- 相手の構成æƒ
    502 å ±ã‚’解析する。
     454 *  ipv6cp_reqci -- 相手の構成情報を解析する。
    503455 */
    504456
     
    511463
    512464        rp = ap = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    513                                 /* rp: REJ、ap: ACK する CI のポインタ  */
    514                                 /* 拒否する場合は、引数 buf に上書きする。     */
     465                                /* rp: REJ、ap: ACK する CI のポインタ  */
     466                                /* 拒否する場合は、引数 buf に上書きする。       */
    515467        len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
    516468        np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    517         final = PPP_CONFACK;    /* 最終的に送信するコード */
     469        final = PPP_CONFACK;    /* 最終的に送信するコード */
    518470        while (len > 0) {
    519471                code = PPP_CONFACK;
    520                 cp   = ap;      /* cp: 現在処理中の CI    */
     472                cp   = ap;      /* cp: 現在処理中の CI        */
    521473
    522474                if (len < sizeof(T_PPP_CI_HDR)) {
    523475
    524                         /* 残りが CI ヘッダより短い */
     476                        /* 残りが CI ヘッダより短い */
    525477                        syslog(LOG_NOTICE, "[PPP/IPV6CP] bad CI len: %d.", len);
    526                         cilen = len;    /* データ長が異常の場合の処置      */
    527                         len  = 0;       /* ループから抜ける。          */
     478                        cilen = len;    /* データ長が異常の場合の処置        */
     479                        len  = 0;       /* ループから抜ける。            */
    528480                        code  = PPP_CONFREJ;
    529481                        goto endswitch;
    530482                        }
    531483
    532                 type  = *ap ++; /* CI の型            */
    533                 cilen = *ap ++; /* CI の長さ         */
     484                type  = *ap ++; /* CI の型                */
     485                cilen = *ap ++; /* CI の長さ               */
    534486                if (len < cilen) {
    535487
    536                         /* 残りが CI 長より短い */
     488                        /* 残りが CI 長より短い */
    537489                        syslog(LOG_NOTICE, "[PPP/IPV6CP] bad CI len: %d.", cilen);
    538                         cilen = len;    /* データ長が異常の場合の処置      */
    539                         len  = 0;       /* ループから抜ける。          */
     490                        cilen = len;    /* データ長が異常の場合の処置        */
     491                        len  = 0;       /* ループから抜ける。            */
    540492                        code  = PPP_CONFREJ;
    541493                        goto endswitch;
     
    543495                len -= sizeof(T_PPP_CI_HDR);
    544496
    545                 /* CI の型により分岐する。*/
     497                /* CI の型により分岐する。*/
    546498                switch (type) {
    547499
    548                 case IPV6CP_CIT_ADDR:   /* IPv6 アドレス */
    549 
    550                         /* CI 長が、ヘッダ + 4 オクテットでなければエラー */
     500                case IPV6CP_CIT_ADDR:   /* IPv6 アドレス */
     501
     502                        /* CI 長が、ヘッダ + 4 オクテットでなければエラー */
    551503                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(addr))
    552504                                code = PPP_CONFREJ;
     
    564516                                        code = PPP_CONFNAK;
    565517                                        }
    566 #if 1   /* 要確認 */
     518#if 1   /* 要確認 */
    567519                                else if (IN6_IS_ADDR_UNSPECIFIED(&addr) &&
    568520                                         IN6_IS_ADDR_UNSPECIFIED(&ipv6cp_remote_neg_cfg.in6_ifaddrs[0]))
     
    585537
    586538                if (code == PPP_CONFNAK) {
    587                         /* CI の型が Magic Number の場合を除いて、NAK の回数が   */
    588                         /* 最大値 MAX_PPP_FAILURES  をè¶
    589 ãˆãŸã‚‰æ‹’否する。        */
     539                        /* CI の型が Magic Number の場合を除いて、NAK の回数が */
     540                        /* 最大値 MAX_PPP_FAILURES  を超えたら拒否する。     */
    590541                        if (fsm->failures >= MAX_PPP_FAILURES)
    591542                                code = PPP_CONFREJ;
     
    594545                        }
    595546
    596                 /* この CI を拒否する */
     547                /* この CI を拒否する */
    597548                if (code == PPP_CONFREJ) {
    598                         if (rp < cp)            /* 前に詰める。*/
     549                        if (rp < cp)            /* 前に詰める。*/
    599550                                memcpy(rp, cp, cilen);
    600551                        rp += cilen;
     
    606557                }
    607558
    608         /* 最終的な長さを調整する。*/
     559        /* 最終的な長さを調整する。*/
    609560        switch (final) {
    610561        case PPP_CONFNAK:
     
    624575
    625576/*
    626  *  ipv6cp_up -- リンク接続を確立する。
     577 *  ipv6cp_up -- リンク接続を確立する。
    627578 */
    628579
     
    630581ipv6cp_up (T_PPP_FSM *fsm)
    631582{
    632         /* 自構成æƒ
    633 å ±ã®åˆæœŸè¨­å®š */
     583        /* 自構成情報の初期設定 */
    634584        ipv6cp_local_ack_cfg = ipv6cp_local_neg_cfg;
    635585
     
    642592
    643593/*
    644  *  ipv6cp_down -- リンク接続を解放する。
     594 *  ipv6cp_down -- リンク接続を解放する。
    645595 */
    646596
     
    653603
    654604/*
    655  *  ipv6cp_finished -- 下位層を終了する。
     605 *  ipv6cp_finished -- 下位層を終了する。
    656606 */
    657607
     
    662612
    663613/*
    664  *  ipv6cp_protrej -- Proto-REJ を受信したときの処理
     614 *  ipv6cp_protrej -- Proto-REJ を受信したときの処理
    665615 */
    666616
     
    672622
    673623/*
    674  *  ipv6cp_lowerup -- IPV6CP 下位層を起動する。
     624 *  ipv6cp_lowerup -- IPV6CP 下位層を起動する。
    675625 */
    676626
     
    682632
    683633/*
    684  *  ipv6cp_lowerdown -- IPV6CP 下位層を停止する。
     634 *  ipv6cp_lowerdown -- IPV6CP 下位層を停止する。
    685635 */
    686636
     
    692642
    693643/*
    694  *  ipv6cp_open -- IPV6CP のオープン
     644 *  ipv6cp_open -- IPV6CP のオープン
    695645 */
    696646
     
    702652
    703653/*
    704  *  ipv6cp_close -- IPV6CP のクローズ
     654 *  ipv6cp_close -- IPV6CP のクローズ
    705655 */
    706656
Note: See TracChangeset for help on using the changeset viewer.