Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    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$
     
    123111
    124112/*
    125  *  関数
     113 *  関数
    126114 */
    127115
     
    135123
    136124/*
    137  * FSM から呼出されるコールバック関
    138  */
    139 
    140 static void  ipcp_resetci(T_PPP_FSM *fsm);      /* 自構成æƒ
    141 å ±ã‚’リセットする。     */
    142 static int_t ipcp_cilen (T_PPP_FSM *fsm);       /* 構成æƒ
    143 å ±ã®é•·ã•ã‚’返す。                */
     125 * FSM から呼出されるコールバック関
     126 */
     127
     128static void  ipcp_resetci(T_PPP_FSM *fsm);      /* 自構成情報をリセットする。        */
     129static int_t ipcp_cilen (T_PPP_FSM *fsm);       /* 構成情報の長さを返す。          */
    144130static void  ipcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output);
    145                                                 /* 自構成æƒ
    146 å ±ã‚’追加する。           */
     131                                                /* 自構成情報を追加する。          */
    147132static bool_t  ipcp_ackci       (T_PPP_FSM *fsm, T_NET_BUF *input);
    148                                                 /* ACK を受信したときの処理   */
     133                                                /* ACK を受信したときの処理       */
    149134static bool_t  ipcp_nakci       (T_PPP_FSM *fsm, T_NET_BUF *input);
    150                                                 /* NAK を受信したときの処理   */
     135                                                /* NAK を受信したときの処理       */
    151136static bool_t  ipcp_rejci       (T_PPP_FSM *fsm, T_NET_BUF *input);
    152                                                 /* REJ を受信したときの処理   */
     137                                                /* REJ を受信したときの処理       */
    153138static int_t ipcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
    154                                                 /* 相手の構成æƒ
    155 å ±ã‚’確認する。   */
    156 static void ipcp_up     (T_PPP_FSM *fsm);       /* リンク接続を確立する。            */
    157 static void ipcp_down   (T_PPP_FSM *fsm);       /* リンク接続を解放する。            */
    158 static void ipcp_finished(T_PPP_FSM *fsm);      /* 下位層を終了する。          */
    159 
    160 /*
    161  *  変数
    162  */
    163 
    164 static T_IFNET ipcp_local_def_cfg = {           /* 自構成æƒ
    165 å ±ã®è¦å®šå€¤         */
     139                                                /* 相手の構成情報を確認する。        */
     140static void ipcp_up     (T_PPP_FSM *fsm);       /* リンク接続を確立する。          */
     141static void ipcp_down   (T_PPP_FSM *fsm);       /* リンク接続を解放する。          */
     142static void ipcp_finished(T_PPP_FSM *fsm);      /* 下位層を終了する。            */
     143
     144/*
     145 *  変数
     146 */
     147
     148static T_IFNET ipcp_local_def_cfg = {           /* 自構成情報の規定値            */
    166149        NULL,
    167150        {
    168                 IPV4_ADDR_LOCAL,                /* IP アドレス                      */
    169                 UINT_C(0),                      /* サブネットマスク             */
     151                IPV4_ADDR_LOCAL,                /* IP アドレス                      */
     152                UINT_C(0),                      /* サブネットマスク             */
    170153                },
    171154        };
    172155
    173 static T_IFNET ipcp_remote_def_cfg = {          /* 相手の構成æƒ
    174 å ±ã®è¦å®šå€¤ */
     156static T_IFNET ipcp_remote_def_cfg = {          /* 相手の構成情報の規定値  */
    175157        NULL,
    176158        {
    177                 IPV4_ADDR_REMOTE,               /* IP アドレス                      */
    178                 UINT_C(0),                      /* サブネットマスク             */
     159                IPV4_ADDR_REMOTE,               /* IP アドレス                      */
     160                UINT_C(0),                      /* サブネットマスク             */
    179161                }
    180162        };
    181163
    182 static T_IFNET ipcp_local_neg_cfg;              /* ネゴ中の自構成æƒ
    183 å ±             */
    184 
    185 static T_IFNET ipcp_remote_neg_cfg;             /* ネゴ中の相手の構成æƒ
    186 å ±             */
    187 
    188 /*
    189  *  å
    190 ¨åŸŸå¤‰æ•°
     164static T_IFNET ipcp_local_neg_cfg;              /* ネゴ中の自構成情報            */
     165
     166static T_IFNET ipcp_remote_neg_cfg;             /* ネゴ中の相手の構成情報          */
     167
     168/*
     169 *  全域変数
    191170 */
    192171
    193172T_PPP_FSM_CALLBACKS ipcp_callbacks = {
    194         ipcp_resetci,                   /* 自構成æƒ
    195 å ±ã‚’リセットする。     */
    196         ipcp_cilen,                     /* 構成æƒ
    197 å ±ã®é•·ã•ã‚’返す。                */
    198         ipcp_addci,                     /* 自構成æƒ
    199 å ±ã‚’追加する。           */
    200         ipcp_ackci,                     /* ACK を受信したときの処理   */
    201         ipcp_nakci,                     /* NAK を受信したときの処理   */
    202         ipcp_rejci,                     /* REJ を受信したときの処理   */
    203         ipcp_reqci,                     /* 相手の構成æƒ
    204 å ±ã‚’確認する。   */
    205         ipcp_up,                        /* リンク接続を確立する。            */
    206         ipcp_down,                      /* リンク接続を解放する。            */
    207         NULL,                           /* 下位層を開始する。          */
    208         ipcp_finished,                  /* 下位層を終了する。          */
    209         NULL,                           /* 再送する。                      */
    210         NULL,                           /* 不明な CP を受信したときの処理  */
     173        ipcp_resetci,                   /* 自構成情報をリセットする。        */
     174        ipcp_cilen,                     /* 構成情報の長さを返す。          */
     175        ipcp_addci,                     /* 自構成情報を追加する。          */
     176        ipcp_ackci,                     /* ACK を受信したときの処理       */
     177        ipcp_nakci,                     /* NAK を受信したときの処理       */
     178        ipcp_rejci,                     /* REJ を受信したときの処理       */
     179        ipcp_reqci,                     /* 相手の構成情報を確認する。        */
     180        ipcp_up,                        /* リンク接続を確立する。          */
     181        ipcp_down,                      /* リンク接続を解放する。          */
     182        NULL,                           /* 下位層を開始する。            */
     183        ipcp_finished,                  /* 下位層を終了する。            */
     184        NULL,                           /* 再送する。                        */
     185        NULL,                           /* 不明な CP を受信したときの処理    */
    211186        };
    212187
    213188T_PPP_FSM ipcp_fsm = {
    214         &ipcp_callbacks,                /* コールバック関数             */
    215         PPP_IPCP,                       /* プロトコル                      */
     189        &ipcp_callbacks,                /* コールバック関数             */
     190        PPP_IPCP,                       /* プロトコル                        */
    216191        };
    217192
    218193T_PPP_PROTENT ipcp_protent = {
    219194        PPP_IPCP,
    220         ipcp_init,                      /* 初期化                    */
    221         ipcp_input,                     /* å
    222 ¥åŠ›                            */
    223         ipcp_protrej,                   /* Proto-REJ 受信処理               */
    224         ipcp_lowerup,                   /* 下位層を起動する             */
    225         ipcp_lowerdown,                 /* 下位層を停止する             */
    226         ipcp_open,                      /* オープンする                   */
    227         ipcp_close,                     /* クローズする                   */
    228         ip_input,                       /* データå
    229 ¥åŠ›ã€IP å
    230 ¥åŠ›            */
     195        ipcp_init,                      /* 初期化                  */
     196        ipcp_input,                     /* 入力                           */
     197        ipcp_protrej,                   /* Proto-REJ 受信処理               */
     198        ipcp_lowerup,                   /* 下位層を起動する             */
     199        ipcp_lowerdown,                 /* 下位層を停止する             */
     200        ipcp_open,                      /* オープンする                       */
     201        ipcp_close,                     /* クローズする                       */
     202        ip_input,                       /* データ入力、IP 入力          */
    231203        };
    232204
    233 T_IFNET ipcp_local_ack_cfg;             /* 相手に許可されたの自構成æƒ
    234 å ±     */
    235 T_IFNET ipcp_remote_ack_cfg;            /* 相手に許可した構成æƒ
    236 å ±     */
    237 
    238 /*
    239  *  ppp_get_ifnet -- ネットワークインタフェース構造体を返す。
     205T_IFNET ipcp_local_ack_cfg;             /* 相手に許可されたの自構成情報       */
     206T_IFNET ipcp_remote_ack_cfg;            /* 相手に許可した構成情報  */
     207
     208/*
     209 *  ppp_get_ifnet -- ネットワークインタフェース構造体を返す。
    240210 */
    241211
     
    247217
    248218/*
    249  *  wait_ipcp -- IP 接続完了までå¾
    250 ã¤ã€‚
    251  *
    252  *      戻り値: 接続に失敗したら E_OBJ を返す。
     219 *  wait_ipcp -- IP 接続完了まで待つ。
     220 *
     221 *      戻り値: 接続に失敗したら E_OBJ を返す。
    253222 */
    254223
     
    264233#ifdef PPP_CFG_MODEM
    265234
    266                 /* モデムの接続完了までå¾
    267 ã¤ã€‚*/
     235                /* モデムの接続完了まで待つ。*/
    268236                if ((error = wait_modem()) != E_OK)
    269237                        return error;
     
    272240
    273241                /*
    274                  * 受動オープンし、相手からの接続å¾
    275 ã¡ãªã‚‰ LCP を一度クローズし、
    276                  * 能動オープン状æ
    277 ‹ã§ã€å†ã‚ªãƒ¼ãƒ—ンする。
     242                 * 受動オープンし、相手からの接続待ちなら LCP を一度クローズし、
     243                 * 能動オープン状態で、再オープンする。
    278244                 */
    279245                lcp_close();
     
    285251
    286252        if (ipcp_fsm.state != PPP_FSM_OPENED) {
    287                 /* IP 接続完了までå¾
    288 ã¤ã€‚*/
     253                /* IP 接続完了まで待つ。*/
    289254                wai_sem(SEM_IPCP_READY);
    290255                if (ipcp_fsm.state != PPP_FSM_OPENED)
     
    296261
    297262/*
    298  *  ipcp_init -- IPCP モジュールの初期化
     263 *  ipcp_init -- IPCP モジュールの初期化
    299264 */
    300265
     
    306271
    307272/*
    308  *  ipcp_input -- IPCP å
    309 ¥åŠ›
     273 *  ipcp_input -- IPCP 入力
    310274 */
    311275
     
    319283
    320284/*
    321  *  ipcp_resetci -- IPCPの構成æƒ
    322 å ±ã‚’リセットする。
     285 *  ipcp_resetci -- IPCPの構成情報をリセットする。
    323286 */
    324287
     
    326289ipcp_resetci (T_PPP_FSM *fsm)
    327290{
    328         /* 自構成æƒ
    329 å ±ã®åˆæœŸè¨­å®š */
     291        /* 自構成情報の初期設定 */
    330292        ipcp_local_neg_cfg = ipcp_local_def_cfg;
    331293        memset((void*)&ipcp_local_ack_cfg, 0, sizeof(T_IFNET));
    332294
    333         /* 相手の構成æƒ
    334 å ±ã®åˆæœŸè¨­å®š */
     295        /* 相手の構成情報の初期設定 */
    335296        ipcp_remote_neg_cfg = ipcp_remote_def_cfg;
    336297        memset((void*)&ipcp_remote_ack_cfg, 0, sizeof(T_IFNET));
     
    338299
    339300/*
    340  *  ipcp_cilen -- 構成æƒ
    341 å ±ã®é•·ã•ã‚’返す。
     301 *  ipcp_cilen -- 構成情報の長さを返す。
    342302 */
    343303
     
    347307        int_t cilen = 0;
    348308
    349         cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IP アドレス */
     309        cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IP アドレス */
    350310
    351311        return cilen;
     
    353313
    354314/*
    355  *  ipcp_addci -- IPCPの構成æƒ
    356 å ±ã‚’追加する。
     315 *  ipcp_addci -- IPCPの構成情報を追加する。
    357316 */
    358317
     
    364323        buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    365324
    366         /* IP アドレスオプションを追加する。 */
     325        /* IP アドレスオプションを追加する。 */
    367326        *buf ++ = IPCP_CIT_ADDR;
    368327        *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
     
    372331
    373332/*
    374  *  ipcp_ackci -- ACK を受信したときの処理
    375  *
    376  *      戻り値:      true  ACK は正常
    377  *              false ACK は異常
     333 *  ipcp_ackci -- ACK を受信したときの処理
     334 *
     335 *      戻り値:    true  ACK は正常
     336 *              false ACK は異常
    378337 */
    379338
     
    388347
    389348        /*
    390          *  構成æƒ
    391 å ±ã¯é€ä¿¡ã—た順に完å
    392 ¨ã«ä¸€è‡´ã—なければならない。
    393          *  従って、ipcp_addci で作成した順に解析する。
     349         *  構成情報は送信した順に完全に一致しなければならない。
     350         *  従って、ipcp_addci で作成した順に解析する。
    394351         */
    395352
    396         /* ADDR オプションを解析する。 */
     353        /* ADDR オプションを解析する。 */
    397354        if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)       ||
    398355            *buf ++ != IPCP_CIT_ADDR                    ||
     
    407364
    408365/*
    409  *  ipcp_nakci -- NAK を受信したときの処理
    410  *
    411  *      戻り値:      1  NAK は正常
    412  *              0  NAK は異常
     366 *  ipcp_nakci -- NAK を受信したときの処理
     367 *
     368 *      戻り値:    1  NAK は正常
     369 *              0  NAK は異常
    413370 */
    414371
     
    426383        new_cfg = ipcp_local_neg_cfg;
    427384
    428         /* ADDR オプションを解析する。 */
     385        /* ADDR オプションを解析する。 */
    429386        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    430387            * buf      == IPCP_CIT_ADDR                         &&
     
    436393                }
    437394
    438         /* 後は無視する。*/
     395        /* 後は無視する。*/
    439396        while (len > sizeof(T_PPP_CI_HDR)) {
    440397                cilen = *(buf + 1);
     
    445402                }
    446403
    447         /* 長さが 0 でなければエラー */
     404        /* 長さが 0 でなければエラー */
    448405        if (len != 0)
    449406                return 0;
    450407
    451         /* 新しいオプションを設定する。*/
     408        /* 新しいオプションを設定する。*/
    452409        if (fsm->state != PPP_FSM_OPENED)
    453410                ipcp_local_neg_cfg = new_cfg;
     
    457414
    458415/*
    459  *  ipcp_rejci -- REJ を受信したときの処理
    460  *
    461  *      戻り値:      1  REJ は正常
    462  *              0  REJ は異常
     416 *  ipcp_rejci -- REJ を受信したときの処理
     417 *
     418 *      戻り値:    1  REJ は正常
     419 *              0  REJ は異常
    463420 */
    464421
     
    475432        new_cfg = ipcp_local_neg_cfg;
    476433
    477         /* ADDR オプションを解析する。 */
     434        /* ADDR オプションを解析する。 */
    478435        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    479436            * buf      == IPCP_CIT_ADDR                         &&
     
    484441                }
    485442
    486         /* 長さが 0 でなければエラー */
     443        /* 長さが 0 でなければエラー */
    487444        if (len != 0)
    488445                return 0;
    489446
    490         /* 新しいオプションを設定する。*/
     447        /* 新しいオプションを設定する。*/
    491448        if (fsm->state != PPP_FSM_OPENED)
    492449                ipcp_local_neg_cfg = new_cfg;
     
    496453
    497454/*
    498  *  ipcp_reqci -- 相手の構成æƒ
    499 å ±ã‚’解析する。
     455 *  ipcp_reqci -- 相手の構成情報を解析する。
    500456 */
    501457
     
    508464
    509465        rp = ap = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    510                                 /* rp: REJ、ap: ACK する CI のポインタ  */
    511                                 /* 拒否する場合は、引数 buf に上書きする。     */
     466                                /* rp: REJ、ap: ACK する CI のポインタ  */
     467                                /* 拒否する場合は、引数 buf に上書きする。       */
    512468        len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
    513469        np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    514         final = PPP_CONFACK;    /* 最終的に送信するコード */
     470        final = PPP_CONFACK;    /* 最終的に送信するコード */
    515471        while (len > 0) {
    516472                code = PPP_CONFACK;
    517                 cp   = ap;      /* cp: 現在処理中の CI    */
     473                cp   = ap;      /* cp: 現在処理中の CI        */
    518474
    519475                if (len < sizeof(T_PPP_CI_HDR)) {
    520476
    521                         /* 残りが CI ヘッダより短い */
     477                        /* 残りが CI ヘッダより短い */
    522478                        syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", len);
    523                         cilen = len;    /* データ長が異常の場合の処置      */
    524                         len  = 0;       /* ループから抜ける。          */
     479                        cilen = len;    /* データ長が異常の場合の処置        */
     480                        len  = 0;       /* ループから抜ける。            */
    525481                        code  = PPP_CONFREJ;
    526482                        goto endswitch;
    527483                        }
    528484
    529                 type  = *ap ++; /* CI の型            */
    530                 cilen = *ap ++; /* CI の長さ         */
     485                type  = *ap ++; /* CI の型                */
     486                cilen = *ap ++; /* CI の長さ               */
    531487                if (len < cilen) {
    532488
    533                         /* 残りが CI 長より短い */
     489                        /* 残りが CI 長より短い */
    534490                        syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", cilen);
    535                         cilen = len;    /* データ長が異常の場合の処置      */
    536                         len  = 0;       /* ループから抜ける。          */
     491                        cilen = len;    /* データ長が異常の場合の処置        */
     492                        len  = 0;       /* ループから抜ける。            */
    537493                        code  = PPP_CONFREJ;
    538494                        goto endswitch;
     
    540496                len -= sizeof(T_PPP_CI_HDR);
    541497
    542                 /* CI の型により分岐する。*/
     498                /* CI の型により分岐する。*/
    543499                switch (type) {
    544500
    545                 case IPCP_CIT_ADDR:     /* IP アドレス */
    546 
    547                         /* CI 長が、ヘッダ + 4 オクテットでなければエラー */
     501                case IPCP_CIT_ADDR:     /* IP アドレス */
     502
     503                        /* CI 長が、ヘッダ + 4 オクテットでなければエラー */
    548504                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
    549505                                code = PPP_CONFREJ;
     
    558514                                        code = PPP_CONFNAK;
    559515                                        }
    560 #if 1   /* 要確認 */
     516#if 1   /* 要確認 */
    561517                                else if (addr == 0 && ipcp_remote_neg_cfg.in_ifaddr.addr == 0)
    562518#else
     
    577533
    578534                if (code == PPP_CONFNAK) {
    579                         /* CI の型が Magic Number の場合を除いて、NAK の回数が   */
    580                         /* 最大値 MAX_PPP_FAILURES  をè¶
    581 ãˆãŸã‚‰æ‹’否する。        */
     535                        /* CI の型が Magic Number の場合を除いて、NAK の回数が */
     536                        /* 最大値 MAX_PPP_FAILURES  を超えたら拒否する。     */
    582537                        if (fsm->failures >= MAX_PPP_FAILURES)
    583538                                code = PPP_CONFREJ;
     
    586541                        }
    587542
    588                 /* この CI を拒否する */
     543                /* この CI を拒否する */
    589544                if (code == PPP_CONFREJ) {
    590                         if (rp < cp)            /* 前に詰める。*/
     545                        if (rp < cp)            /* 前に詰める。*/
    591546                                memcpy(rp, cp, cilen);
    592547                        rp += cilen;
     
    598553                }
    599554
    600         /* 最終的な長さを調整する。*/
     555        /* 最終的な長さを調整する。*/
    601556        switch (final) {
    602557        case PPP_CONFNAK:
     
    616571
    617572/*
    618  *  ipcp_up -- リンク接続を確立する。
     573 *  ipcp_up -- リンク接続を確立する。
    619574 */
    620575
     
    622577ipcp_up (T_PPP_FSM *fsm)
    623578{
    624         /* 自構成æƒ
    625 å ±ã®åˆæœŸè¨­å®š */
     579        /* 自構成情報の初期設定 */
    626580        ipcp_local_ack_cfg = ipcp_local_neg_cfg;
    627581
    628582        /*
    629          *  サブネットマスクと
    630          *  ローカル・ブロードキャスト IP アドレスを設定する。
     583         *  サブネットマスクと
     584         *  ローカル・ブロードキャスト IP アドレスを設定する。
    631585         */
    632586        ipcp_local_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in_ifaddr.addr);
    633587
    634         /* 相手の構成æƒ
    635 å ±ã®åˆæœŸè¨­å®š */
     588        /* 相手の構成情報の初期設定 */
    636589        ipcp_remote_ack_cfg = ipcp_remote_neg_cfg;
    637590
    638591        /*
    639          *  サブネットマスクと
    640          *  ローカル・ブロードキャスト IP アドレスを設定する。
     592         *  サブネットマスクと
     593         *  ローカル・ブロードキャスト IP アドレスを設定する。
    641594         */
    642595        ipcp_remote_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in_ifaddr.addr);
     
    650603
    651604/*
    652  *  ipcp_down -- リンク接続を解放する。
     605 *  ipcp_down -- リンク接続を解放する。
    653606 */
    654607
     
    661614
    662615/*
    663  *  ipcp_finished -- 下位層を終了する。
     616 *  ipcp_finished -- 下位層を終了する。
    664617 */
    665618
     
    670623
    671624/*
    672  *  ipcp_protrej -- Proto-REJ を受信したときの処理
     625 *  ipcp_protrej -- Proto-REJ を受信したときの処理
    673626 */
    674627
     
    680633
    681634/*
    682  *  ipcp_lowerup -- IPCP 下位層を起動する。
     635 *  ipcp_lowerup -- IPCP 下位層を起動する。
    683636 */
    684637
     
    690643
    691644/*
    692  *  ipcp_lowerdown -- IPCP 下位層を停止する。
     645 *  ipcp_lowerdown -- IPCP 下位層を停止する。
    693646 */
    694647
     
    700653
    701654/*
    702  *  ipcp_open -- IPCP のオープン
     655 *  ipcp_open -- IPCP のオープン
    703656 */
    704657
     
    710663
    711664/*
    712  *  ipcp_close -- IPCP のクローズ
     665 *  ipcp_close -- IPCP のクローズ
    713666 */
    714667
Note: See TracChangeset for help on using the changeset viewer.