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_lcp.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 è²¬ã™ã‚‹ã“と.
     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プロジェクトを免責すること.
    3625 *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    113101
    114102/*
    115  *  関数
     103 *  関数
    116104 */
    117105
     
    131119
    132120/*
    133  * FSM から呼出されるコールバック関数
    134  */
    135 
    136 static void  lcp_resetci(T_PPP_FSM *fsm);       /* 自構成æƒ
    137 å ±ã‚’リセットする。     */
    138 static int_t lcp_cilen  (T_PPP_FSM *fsm);       /* 構成æƒ
    139 å ±ã®é•·ã•ã‚’返す。                */
     121 * FSM から呼出されるコールバック関数
     122 */
     123
     124static void  lcp_resetci(T_PPP_FSM *fsm);       /* 自構成情報をリセットする。        */
     125static int_t lcp_cilen  (T_PPP_FSM *fsm);       /* 構成情報の長さを返す。          */
    140126static void  lcp_addci  (T_PPP_FSM *fsm, T_NET_BUF *output);
    141                                                 /* 自構成æƒ
    142 å ±ã‚’追加する。           */
     127                                                /* 自構成情報を追加する。          */
    143128static bool_t lcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input);
    144                                                 /* ACK を受信したときの処理   */
     129                                                /* ACK を受信したときの処理       */
    145130static bool_t lcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input);
    146                                                 /* NAK を受信したときの処理   */
     131                                                /* NAK を受信したときの処理       */
    147132static bool_t lcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input);
    148                                                 /* REJ を受信したときの処理   */
     133                                                /* REJ を受信したときの処理       */
    149134static int_t lcp_reqci  (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
    150                                                 /* 相手の構成æƒ
    151 å ±ã‚’確認する。   */
    152 static void lcp_up      (T_PPP_FSM *fsm);       /* リンク接続を確立する。            */
    153 static void lcp_starting(T_PPP_FSM *fsm);       /* 下位層を開始する。          */
     135                                                /* 相手の構成情報を確認する。        */
     136static void lcp_up      (T_PPP_FSM *fsm);       /* リンク接続を確立する。          */
     137static void lcp_starting(T_PPP_FSM *fsm);       /* 下位層を開始する。            */
    154138static bool_t lcp_extcode       (T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input);
    155                                                 /* 不明な CP を受信したときの処理  */
     139                                                /* 不明な CP を受信したときの処理    */
    156140static void lcp_rprotrej(T_PPP_FSM *fsm, T_NET_BUF *input);
    157                                                 /* Proto-REJ を受信したときの処理     */
    158 /*
    159  *  変数
    160  */
    161 
    162 static T_LCP_CONFIGS lcp_def_cfg = {            /* 構成æƒ
    163 å ±ã®åˆæœŸè¨­å®šå€¤           */
     141                                                /* Proto-REJ を受信したときの処理 */
     142/*
     143 *  変数
     144 */
     145
     146static T_LCP_CONFIGS lcp_def_cfg = {            /* 構成情報の初期設定値           */
    164147        DEF_REMOTE_ACCM,                        /* ACCM                         */
    165148
    166149#ifdef LCP_CFG_MAGIC
    167150
    168         ULONG_C(0),                             /* マジック番号                   */
     151        ULONG_C(0),                             /* マジック番号                       */
    169152
    170153#endif  /* of #ifdef LCP_CFG_MAGIC */
    171154
    172155        DEF_PPP_MTU,                            /* MRU                          */
    173         UINT_C(0),                              /* オプションフラグ             */
     156        UINT_C(0),                              /* オプションフラグ             */
    174157        };
    175158
    176 static T_LCP_CONFIGS lcp_local_def_cfg = {      /* 自構成æƒ
    177 å ±ã®è¦å®šå€¤         */
     159static T_LCP_CONFIGS lcp_local_def_cfg = {      /* 自構成情報の規定値            */
    178160        DEF_LOCAL_ACCM,                         /* ACCM                         */
    179161
    180162#ifdef LCP_CFG_MAGIC
    181163
    182         ULONG_C(0),                             /* マジック番号                   */
     164        ULONG_C(0),                             /* マジック番号                       */
    183165
    184166#endif  /* of #ifdef LCP_CFG_MAGIC */
    185167
    186168        DEF_PPP_MTU,                            /* MRU                          */
    187         DEF_LCP_LOCAL_CFGS,                     /* オプションフラグ             */
     169        DEF_LCP_LOCAL_CFGS,                     /* オプションフラグ             */
    188170        };
    189171
    190 static T_LCP_CONFIGS lcp_local_neg_cfg;         /* ネゴ中の自構成æƒ
    191 å ±             */
    192 
    193 static T_LCP_CONFIGS lcp_remote_neg_cfg;        /* ネゴ中の相手の構成æƒ
    194 å ±             */
     172static T_LCP_CONFIGS lcp_local_neg_cfg;         /* ネゴ中の自構成情報            */
     173
     174static T_LCP_CONFIGS lcp_remote_neg_cfg;        /* ネゴ中の相手の構成情報          */
    195175
    196176#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
     
    203183
    204184/*
    205  *  å
    206 ¨åŸŸå¤‰æ•°
     185 *  全域変数
    207186 */
    208187
    209188T_PPP_FSM_CALLBACKS lcp_callbacks = {
    210         lcp_resetci,                    /* 自構成æƒ
    211 å ±ã‚’リセットする。     */
    212         lcp_cilen,                      /* 構成æƒ
    213 å ±ã®é•·ã•ã‚’返す。                */
    214         lcp_addci,                      /* 自構成æƒ
    215 å ±ã‚’追加する。           */
    216         lcp_ackci,                      /* ACK を受信したときの処理   */
    217         lcp_nakci,                      /* NAK を受信したときの処理   */
    218         lcp_rejci,                      /* REJ を受信したときの処理   */
    219         lcp_reqci,                      /* 相手の構成æƒ
    220 å ±ã‚’確認する。   */
    221         lcp_up,                         /* リンク接続を確立する。            */
    222         lcp_down,                       /* リンク接続を解放する。            */
    223         lcp_starting,                   /* 下位層を開始する。          */
    224         lcp_finished,                   /* 下位層を終了する。          */
    225         NULL,                           /* 再送する。                      */
    226         lcp_extcode,                    /* 不明な CP を受信したときの処理  */
     189        lcp_resetci,                    /* 自構成情報をリセットする。        */
     190        lcp_cilen,                      /* 構成情報の長さを返す。          */
     191        lcp_addci,                      /* 自構成情報を追加する。          */
     192        lcp_ackci,                      /* ACK を受信したときの処理       */
     193        lcp_nakci,                      /* NAK を受信したときの処理       */
     194        lcp_rejci,                      /* REJ を受信したときの処理       */
     195        lcp_reqci,                      /* 相手の構成情報を確認する。        */
     196        lcp_up,                         /* リンク接続を確立する。          */
     197        lcp_down,                       /* リンク接続を解放する。          */
     198        lcp_starting,                   /* 下位層を開始する。            */
     199        lcp_finished,                   /* 下位層を終了する。            */
     200        NULL,                           /* 再送する。                        */
     201        lcp_extcode,                    /* 不明な CP を受信したときの処理    */
    227202        };
    228203
    229204T_PPP_FSM lcp_fsm = {
    230         &lcp_callbacks,                 /* コールバック関数             */
    231         PPP_LCP,                        /* プロトコル                      */
     205        &lcp_callbacks,                 /* コールバック関数             */
     206        PPP_LCP,                        /* プロトコル                        */
    232207        };
    233208
    234209T_PPP_PROTENT lcp_protent = {
    235210        PPP_LCP,
    236         lcp_init,                       /* 初期化                    */
    237         lcp_input,                      /* å
    238 ¥åŠ›                            */
    239         lcp_protrej,                    /* Proto-REJ 受信処理               */
    240         NULL,                           /* 下位層を起動する             */
    241         lcp_lowerdown,                  /* 下位層を停止する             */
    242         NULL,                           /* オープンする                   */
    243         lcp_close,                      /* クローズする                   */
    244         NULL,                           /* データå
    245 ¥åŠ›                    */
     211        lcp_init,                       /* 初期化                  */
     212        lcp_input,                      /* 入力                           */
     213        lcp_protrej,                    /* Proto-REJ 受信処理               */
     214        NULL,                           /* 下位層を起動する             */
     215        lcp_lowerdown,                  /* 下位層を停止する             */
     216        NULL,                           /* オープンする                       */
     217        lcp_close,                      /* クローズする                       */
     218        NULL,                           /* データ入力                        */
    246219        };
    247220
    248 T_LCP_CONFIGS lcp_local_ack_cfg;        /* 相手に許可されたの自構成æƒ
    249 å ±     */
    250 T_LCP_CONFIGS lcp_remote_ack_cfg;       /* 相手に許可した構成æƒ
    251 å ±             */
    252 
    253 /*
    254  *  lcp_init -- LCP モジュールの初期化
     221T_LCP_CONFIGS lcp_local_ack_cfg;        /* 相手に許可されたの自構成情報       */
     222T_LCP_CONFIGS lcp_remote_ack_cfg;       /* 相手に許可した構成情報          */
     223
     224/*
     225 *  lcp_init -- LCP モジュールの初期化
    255226 */
    256227
     
    262233
    263234/*
    264  *  lcp_input -- LCP å
    265 ¥åŠ›
     235 *  lcp_input -- LCP 入力
    266236 */
    267237
     
    275245
    276246/*
    277  *  lcp_resetci -- LCPの構成æƒ
    278 å ±ã‚’リセットする。
     247 *  lcp_resetci -- LCPの構成情報をリセットする。
    279248 */
    280249
     
    288257#endif  /* of #ifdef LCP_CFG_MAGIC */
    289258
    290         /* 自構成æƒ
    291 å ±ã®åˆæœŸè¨­å®š */
     259        /* 自構成情報の初期設定 */
    292260        lcp_local_neg_cfg       = lcp_local_def_cfg;
    293261        lcp_local_ack_cfg       = lcp_def_cfg;
    294262
    295         /* 相手の構成æƒ
    296 å ±ã®åˆæœŸè¨­å®š */
     263        /* 相手の構成情報の初期設定 */
    297264        lcp_remote_neg_cfg      = lcp_def_cfg;
    298265        lcp_remote_ack_cfg      = lcp_def_cfg;
     
    310277
    311278/*
    312  *  lcp_cilen -- 構成æƒ
    313 å ±ã®é•·ã•ã‚’返す。
     279 *  lcp_cilen -- 構成情報の長さを返す。
    314280 */
    315281
     
    342308
    343309        if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP)
    344                 cilen += sizeof(T_PPP_CI_HDR);                  /* プロトコル圧縮 */
     310                cilen += sizeof(T_PPP_CI_HDR);                  /* プロトコル圧縮 */
    345311
    346312#endif  /* of #ifdef LCP_CFG_PCOMP */
     
    349315
    350316        if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP)
    351                 cilen += sizeof(T_PPP_CI_HDR);                  /* アドレス・制御圧縮 */
     317                cilen += sizeof(T_PPP_CI_HDR);                  /* アドレス・制御圧縮 */
    352318
    353319#endif  /* of #ifdef LCP_CFG_ACCOMP */
     
    357323
    358324/*
    359  *  lcp_addci -- LCPの構成æƒ
    360 å ±ã‚’追加する。
     325 *  lcp_addci -- LCPの構成情報を追加する。
    361326 */
    362327
     
    368333        buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    369334
    370         /* MRU オプションを追加する。 */
     335        /* MRU オプションを追加する。 */
    371336        if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
    372337                *buf ++ = LCP_CIT_MRU;
     
    376341                }
    377342
    378         /* ACCM オプションを追加する。 */
     343        /* ACCM オプションを追加する。 */
    379344        if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
    380345                *buf ++ = LCP_CIT_ACCM;
     
    386351#ifdef LCP_CFG_MAGIC
    387352
    388         /* Magic Number オプションを追加する。 */
     353        /* Magic Number オプションを追加する。 */
    389354        if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
    390355                *buf ++ = LCP_CIT_MAGIC;
     
    398363#ifdef LCP_CFG_PAP
    399364
    400         /* 認証プロトコルオプションを追加する。 */
     365        /* 認証プロトコルオプションを追加する。 */
    401366        if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
    402367                *buf ++ = LCP_CIT_AUTH;
     
    410375#ifdef LCP_CFG_PCOMP
    411376
    412         /* プロトコル圧縮オプションを追加する。 */
     377        /* プロトコル圧縮オプションを追加する。 */
    413378        if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
    414379                *buf ++ = LCP_CIT_PCOMP;
     
    420385#ifdef LCP_CFG_ACCOMP
    421386
    422         /* アドレス・制御圧縮オプションを追加する。 */
     387        /* アドレス・制御圧縮オプションを追加する。 */
    423388        if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
    424389                *buf ++ = LCP_CIT_ACCOMP;
     
    430395
    431396/*
    432  *  lcp_ackci -- ACK を受信したときの処理
     397 *  lcp_ackci -- ACK を受信したときの処理
    433398 *
    434  *      戻り値:      TURE  ACK は正常
    435  *              false ACK は異常
     399 *      戻り値:    TURE  ACK は正常
     400 *              false ACK は異常
    436401 */
    437402
     
    446411
    447412        /*
    448          *  構成æƒ
    449 å ±ã¯é€ä¿¡ã—た順に完å
    450 ¨ã«ä¸€è‡´ã—なければならない。
    451          *  従って、lcp_addci で作成した順に解析する。
     413         *  構成情報は送信した順に完全に一致しなければならない。
     414         *  従って、lcp_addci で作成した順に解析する。
    452415         */
    453416
    454         /* MRU オプションを解析する。 */
     417        /* MRU オプションを解析する。 */
    455418        if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
    456419                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)       ||
     
    463426                }
    464427
    465         /* ACCM オプションを解析する。 */
     428        /* ACCM オプションを解析する。 */
    466429        if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
    467430                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)       ||
     
    476439#ifdef LCP_CFG_MAGIC
    477440
    478         /* Magic Number オプションを解析する。 */
     441        /* Magic Number オプションを解析する。 */
    479442        if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
    480443                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)       ||
     
    491454#ifdef LCP_CFG_PAP
    492455
    493         /* 認証プロトコルオプションを解析する。 */
     456        /* 認証プロトコルオプションを解析する。 */
    494457        if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
    495458                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)       ||
     
    506469#ifdef LCP_CFG_PCOMP
    507470
    508         /* プロトコル圧縮オプションを解析する。 */
     471        /* プロトコル圧縮オプションを解析する。 */
    509472        if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
    510473                if (len < sizeof(T_PPP_CI_HDR)                  ||
     
    519482#ifdef LCP_CFG_ACCOMP
    520483
    521         /* アドレス・制御圧縮オプションを解析する。 */
     484        /* アドレス・制御圧縮オプションを解析する。 */
    522485        if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
    523486                if (len < sizeof(T_PPP_CI_HDR)                  ||
     
    533496
    534497/*
    535  *  lcp_nakci -- NAK を受信したときの処理
     498 *  lcp_nakci -- NAK を受信したときの処理
    536499 *
    537  *      戻り値:      1  NAK は正常
    538  *              0  NAK は異常
     500 *      戻り値:    1  NAK は正常
     501 *              0  NAK は異常
    539502 */
    540503
     
    543506{
    544507        T_LCP_CONFIGS   new_cfg;
    545         bool_t          loop = false;   /* ループバックをチェック */
     508        bool_t          loop = false;   /* ループバックをチェック */
    546509        uint32_t        cilong;
    547510        uint16_t        cishort, len;
     
    553516        new_cfg = lcp_local_neg_cfg;
    554517
    555         /* MRU オプションを解析する。 */
     518        /* MRU オプションを解析する。 */
    556519        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    557520            * buf      == LCP_CIT_MRU                           &&
     
    565528                }
    566529
    567         /* ACCM オプションを解析する。 */
     530        /* ACCM オプションを解析する。 */
    568531        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    569532            * buf      == LCP_CIT_ACCM                          &&
     
    578541#ifdef LCP_CFG_MAGIC
    579542
    580         /* Magic Number オプションを解析する。 */
     543        /* Magic Number オプションを解析する。 */
    581544        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    582545            * buf      == LCP_CIT_MAGIC                         &&
     
    594557#ifdef LCP_CFG_PAP
    595558
    596         /* 認証プロトコルオプションを解析する。 */
     559        /* 認証プロトコルオプションを解析する。 */
    597560        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    598561            * buf      == LCP_CIT_AUTH                          &&
     
    612575#ifdef LCP_CFG_PCOMP
    613576
    614         /* プロトコル圧縮オプションを解析する。 */
     577        /* プロトコル圧縮オプションを解析する。 */
    615578        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    616579            * buf      == LCP_CIT_PCOMP                         &&
     
    626589#ifdef LCP_CFG_ACCOMP
    627590
    628         /* アドレス・制御圧縮オプションを解析する。 */
     591        /* アドレス・制御圧縮オプションを解析する。 */
    629592        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    630593            * buf      == LCP_CIT_ACCOMP                        &&
     
    638601#endif  /* of #ifdef LCP_CFG_ACCOMP */
    639602
    640         /* 後は無視する。*/
     603        /* 後は無視する。*/
    641604        while (len > sizeof(T_PPP_CI_HDR)) {
    642605                cilen = *(buf + 1);
     
    647610                }
    648611
    649         /* 長さが 0 でなければエラー */
     612        /* 長さが 0 でなければエラー */
    650613        if (len != 0)
    651614                return 0;
    652615
    653         /* 新しいオプションを設定する。*/
     616        /* 新しいオプションを設定する。*/
    654617        if (fsm->state != PPP_FSM_OPENED) {
    655618                if (loop) {
     
    663626
    664627/*
    665  *  lcp_rejci -- REJ を受信したときの処理
     628 *  lcp_rejci -- REJ を受信したときの処理
    666629 *
    667  *      戻り値:      1  REJ は正常
    668  *              0  REJ は異常
     630 *      戻り値:    1  REJ は正常
     631 *              0  REJ は異常
    669632 */
    670633
     
    682645        new_cfg = lcp_local_neg_cfg;
    683646
    684         /* MRU オプションを解析する。 */
     647        /* MRU オプションを解析する。 */
    685648        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    686649            * buf      == LCP_CIT_MRU                                   &&
     
    696659                }
    697660               
    698         /* ACCM オプションを解析する。 */
     661        /* ACCM オプションを解析する。 */
    699662        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    700663            * buf      == LCP_CIT_ACCM                                  &&
     
    712675#ifdef LCP_CFG_MAGIC
    713676
    714         /* Magic Number オプションを解析する。 */
     677        /* Magic Number オプションを解析する。 */
    715678        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    716679            * buf      == LCP_CIT_MAGIC                                 &&
     
    730693#ifdef LCP_CFG_PAP
    731694
    732         /* 認証プロトコルオプションを解析する。 */
     695        /* 認証プロトコルオプションを解析する。 */
    733696        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    734697            * buf      == LCP_CIT_AUTH                                  &&
     
    748711#ifdef LCP_CFG_PCOMP
    749712
    750         /* プロトコル圧縮オプションを解析する。 */
     713        /* プロトコル圧縮オプションを解析する。 */
    751714        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    752715            * buf      == LCP_CIT_PCOMP                         &&
     
    762725#ifdef LCP_CFG_ACCOMP
    763726
    764         /* アドレス・制御圧縮オプションを解析する。 */
     727        /* アドレス・制御圧縮オプションを解析する。 */
    765728        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    766729            * buf      == LCP_CIT_ACCOMP                        &&
     
    774737#endif  /* of #ifdef LCP_CFG_ACCOMP */
    775738
    776         /* 長さが 0 でなければエラー */
     739        /* 長さが 0 でなければエラー */
    777740        if (len != 0)
    778741                return 0;
    779742
    780         /* 新しいオプションを設定する。*/
     743        /* 新しいオプションを設定する。*/
    781744        if (fsm->state != PPP_FSM_OPENED)
    782745                lcp_local_neg_cfg = new_cfg;
     
    786749
    787750/*
    788  *  lcp_reqci -- 相手の構成æƒ
    789 å ±ã‚’解析する。
     751 *  lcp_reqci -- 相手の構成情報を解析する。
    790752 */
    791753
     
    803765
    804766        rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    805                                 /* rp: REJ、ap: ACK する CI のポインタ          */
    806                                 /* 拒否する場合は、引数 input に上書きする。   */
     767                                /* rp: REJ、ap: ACK する CI のポインタ          */
     768                                /* 拒否する場合は、引数 input に上書きする。     */
    807769        len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
    808770        np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    809         final = PPP_CONFACK;    /* 最終的に送信するコード */
     771        final = PPP_CONFACK;    /* 最終的に送信するコード */
    810772        while (len > 0) {
    811773                code = PPP_CONFACK;
    812                 cp   = ap;      /* cp: 現在処理中の CI    */
     774                cp   = ap;      /* cp: 現在処理中の CI        */
    813775
    814776                if (len < sizeof(T_PPP_CI_HDR)) {
    815777
    816                         /* 残りが CI ヘッダより短い */
     778                        /* 残りが CI ヘッダより短い */
    817779                        syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", len);
    818                         cilen = len;    /* データ長が異常の場合の処置      */
    819                         len   = 0;      /* ループから抜ける。          */
     780                        cilen = len;    /* データ長が異常の場合の処置        */
     781                        len   = 0;      /* ループから抜ける。            */
    820782                        code  = PPP_CONFREJ;
    821783                        goto endswitch;
    822784                        }
    823785
    824                 type  = *ap ++; /* CI の型            */
    825                 cilen = *ap ++; /* CI の長さ         */
     786                type  = *ap ++; /* CI の型                */
     787                cilen = *ap ++; /* CI の長さ               */
    826788                if (len < cilen) {
    827789
    828                         /* 残りが CI 長より短い */
     790                        /* 残りが CI 長より短い */
    829791                        syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", cilen);
    830                         cilen = len;    /* データ長が異常の場合の処置      */
    831                         len   = 0;      /* ループから抜ける。          */
     792                        cilen = len;    /* データ長が異常の場合の処置        */
     793                        len   = 0;      /* ループから抜ける。            */
    832794                        code  = PPP_CONFREJ;
    833795                        goto endswitch;
     
    835797                len -= sizeof(T_PPP_CI_HDR);
    836798
    837                 /* CI の型により分岐する。*/
     799                /* CI の型により分岐する。*/
    838800                switch (type) {
    839801
    840                 case LCP_CIT_MRU:       /* 最大受信量 (Maximum Receive Unit) */
     802                case LCP_CIT_MRU:       /* 最大受信量 (Maximum Receive Unit) */
    841803
    842804#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0
     
    846808#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 */
    847809
    848                         /* CI 長が、ヘッダ + 2 オクテットでなければ REJ */
     810                        /* CI 長が、ヘッダ + 2 オクテットでなければ REJ */
    849811                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
    850812                                code = PPP_CONFREJ;
     
    852814                                cishort = ntohs(*(uint16_t*)ap);
    853815
    854                                 /* 最小受信量より小さければ NAK */
     816                                /* 最小受信量より小さければ NAK */
    855817                                if (cishort < MIN_PPP_MTU) {
    856818                                        *np ++ = LCP_CIT_MRU;
     
    878840#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0 */
    879841
    880                         /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
     842                        /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
    881843                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
    882844                                code = PPP_CONFREJ;
     
    890852                        break;
    891853
    892                 case LCP_CIT_MAGIC:     /* マジック番号 */
     854                case LCP_CIT_MAGIC:     /* マジック番号 */
    893855
    894856#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0
     
    898860#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 */
    899861
    900                         /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
     862                        /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
    901863                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
    902864                                code = PPP_CONFREJ;
     
    904866                                ntoahl(cilong, ap);
    905867
    906                                 /* 番号が自分と同じなら NAK */
     868                                /* 番号が自分と同じなら NAK */
    907869                                if (cilong == lcp_local_neg_cfg.magic) {
    908870                                        cilong = net_rand();
     
    924886
    925887#ifdef LCP_CFG_PAP
    926                 /* CHAP は実è£
    927 äºˆå®š  */
    928 
    929                 case LCP_CIT_AUTH:      /* 認証プロトコル */
    930 
    931                         /* CI 長が、ヘッダ + 2 オクテットより短いときはエラー */
     888                /* CHAP は実装予定   */
     889
     890                case LCP_CIT_AUTH:      /* 認証プロトコル */
     891
     892                        /* CI 長が、ヘッダ + 2 オクテットより短いときはエラー */
    932893                        if (cilen < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
    933894                                code = PPP_CONFREJ;
     
    935896                                cishort = ntohs(*(uint16_t*)ap);
    936897
    937                                 /* 認証プロトコルにより分岐する   */
     898                                /* 認証プロトコルにより分岐する       */
    938899                                if (cishort == PPP_PAP &&
    939900                                    cilen   == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) &&
     
    949910#ifdef LCP_CFG_PCOMP
    950911
    951                 case LCP_CIT_PCOMP:     /* プロトコル部圧縮は実è£
    952 äºˆå®š */
     912                case LCP_CIT_PCOMP:     /* プロトコル部圧縮は実装予定 */
    953913
    954914#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0
     
    958918#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 */
    959919
    960                         /* CI 長が、ヘッダ長だけでなければ REJ */
     920                        /* CI 長が、ヘッダ長だけでなければ REJ */
    961921                        if (cilen != sizeof(T_PPP_CI_HDR))
    962922                                code = PPP_CONFREJ;
     
    972932#ifdef LCP_CFG_ACCOMP
    973933
    974                 case LCP_CIT_ACCOMP:    /* アドレス・制御部圧縮 */
     934                case LCP_CIT_ACCOMP:    /* アドレス・制御部圧縮 */
    975935
    976936#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0
     
    980940#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 */
    981941
    982                         /* CI 長が、ヘッダ長だけでなければ REJ */
     942                        /* CI 長が、ヘッダ長だけでなければ REJ */
    983943                        if (cilen != sizeof(T_PPP_CI_HDR))
    984944                                code = PPP_CONFREJ;
     
    999959endswitch:
    1000960                if (code == PPP_CONFNAK) {
    1001                         /* CI の型が Magic Number の場合を除いて、NAK の回数が   */
    1002                         /* 最大値 MAX_PPP_FAILURES  をè¶
    1003 ãˆãŸã‚‰æ‹’否する。        */
     961                        /* CI の型が Magic Number の場合を除いて、NAK の回数が */
     962                        /* 最大値 MAX_PPP_FAILURES  を超えたら拒否する。     */
    1004963                        if (fsm->failures >= MAX_PPP_FAILURES && type != LCP_CIT_MAGIC)
    1005964                                code = PPP_CONFREJ;
     
    1008967                        }
    1009968
    1010                 /* この CI を拒否する */
     969                /* この CI を拒否する */
    1011970                if (code == PPP_CONFREJ) {
    1012                         if (rp < cp)            /* 前に詰める。*/
     971                        if (rp < cp)            /* 前に詰める。*/
    1013972                                memcpy(rp, cp, cilen);
    1014973                        rp += cilen;
     
    1020979                }
    1021980
    1022         /* 最終的な長さを調整する。*/
     981        /* 最終的な長さを調整する。*/
    1023982        switch (final) {
    1024983        case PPP_CONFNAK:
     
    1037996
    1038997/*
    1039  *  lcp_up -- リンク接続を確立する (Phase: Establish に移行する)。
     998 *  lcp_up -- リンク接続を確立する (Phase: Establish に移行する)。
    1040999 */
    10411000
     
    10431002lcp_up (T_PPP_FSM *fsm)
    10441003{
    1045         /* 自構成æƒ
    1046 å ±ã®è¨­å®š */
     1004        /* 自構成情報の設定 */
    10471005        lcp_local_ack_cfg = lcp_local_neg_cfg;
    10481006
    1049         /* 相手の構成æƒ
    1050 å ±ã®è¨­å®š */
     1007        /* 相手の構成情報の設定 */
    10511008        lcp_remote_ack_cfg = lcp_remote_neg_cfg;
    10521009
     
    10611018
    10621019/*
    1063  *  lcp_starting -- 下位層を開始する。
     1020 *  lcp_starting -- 下位層を開始する。
    10641021 */
    10651022
     
    10711028
    10721029/*
    1073  *  lcp_extcode -- LCP 特有の CP を受信したときの処理
     1030 *  lcp_extcode -- LCP 特有の CP を受信したときの処理
    10741031 */
    10751032
     
    11281085
    11291086/*
    1130  *  lcp_rprotrej -- Proto-REJ を受信したときの処理
     1087 *  lcp_rprotrej -- Proto-REJ を受信したときの処理
    11311088 */
    11321089
     
    11491106                }
    11501107
    1151         /* 上位プロトコルを初期化する */
     1108        /* 上位プロトコルを初期化する */
    11521109        for (ix = 0; (entry = protocols[ix]) != NULL; ix ++)
    11531110                if (entry->proto == proto) {
     
    11601117
    11611118/*
    1162  *  lcp_protrej -- Proto-REJ を受信したときの処理
     1119 *  lcp_protrej -- Proto-REJ を受信したときの処理
    11631120 */
    11641121
     
    11701127
    11711128/*
    1172  *  lcp_lowerup -- LCP 下位層を起動する。
     1129 *  lcp_lowerup -- LCP 下位層を起動する。
    11731130 */
    11741131
     
    11801137
    11811138/*
    1182  *  lcp_lowerdown -- LCP 下位層を停止する。
     1139 *  lcp_lowerdown -- LCP 下位層を停止する。
    11831140 */
    11841141
     
    11901147
    11911148/*
    1192  *  lcp_open -- LCP のオープ
     1149 *  lcp_open -- LCP のオープ
    11931150 */
    11941151
     
    11961153lcp_open (uint8_t open_mode)
    11971154{
    1198         ppp_open_mode = open_mode;      /* オープン時の動作モード    */
     1155        ppp_open_mode = open_mode;      /* オープン時の動作モード  */
    11991156        fsm_open(&lcp_fsm);
    12001157        }
    12011158
    12021159/*
    1203  *  lcp_close -- LCP のクローズ
     1160 *  lcp_close -- LCP のクローズ
    12041161 */
    12051162
     
    12191176
    12201177/*
    1221  *  lcp_sprotrej -- 認識できないプロトコルが送られてきたときの処理
     1178 *  lcp_sprotrej -- 認識できないプロトコルが送られてきたときの処理
    12221179 */
    12231180
     
    12271184        T_NET_BUF       *output;
    12281185        /*
    1229          *  Protocol-Reject を送り返す。
     1186         *  Protocol-Reject を送り返す。
    12301187         */
    12311188
     
    12401197
    12411198/*
    1242  *  lcp_down -- リンク接続を解放する (Phase: Dead に移行する)。
     1199 *  lcp_down -- リンク接続を解放する (Phase: Dead に移行する)。
    12431200 */
    12441201
     
    12571214
    12581215/*
    1259  *  lcp_finished -- 下位層を終了する。
     1216 *  lcp_finished -- 下位層を終了する。
    12601217 */
    12611218
     
    12691226
    12701227/*
    1271  *  recv_echo_rep -- ECHOREP を受信したときの処理
     1228 *  recv_echo_rep -- ECHOREP を受信したときの処理
    12721229 */
    12731230
     
    12801237        hdr = GET_PPP_CP_HDR(input);
    12811238
    1282         /* Magic Number の長さ以下ならエラー */
     1239        /* Magic Number の長さ以下ならエラー */
    12831240        if (hdr->len < sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)) {
    12841241                syslog(LOG_WARNING, "[PPP/LCP] bad ECHOREP len: %d.", hdr->len);
     
    12881245        ntoahl(magic, input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
    12891246
    1290         /* 受信した Magic Number が自分と同じならループしている。*/
     1247        /* 受信した Magic Number が自分と同じならループしている。*/
    12911248        if ((lcp_local_ack_cfg.options & LCP_CFG_MAGIC) && magic == lcp_local_ack_cfg.magic) {
    12921249                syslog(LOG_WARNING, "[PPP/LCP] ECHOREP looped.");
     
    12981255
    12991256/*
    1300  *  echo_timeout -- ECHO REQ/REP のタイムアウト処理
     1257 *  echo_timeout -- ECHO REQ/REP のタイムアウト処理
    13011258 */
    13021259
     
    13111268
    13121269/*
    1313  *  send_echo_req -- ECHO REQ を送信する。
     1270 *  send_echo_req -- ECHO REQ を送信する。
    13141271 */
    13151272
     
    13311288        if (fsm->state == PPP_FSM_OPENED) {
    13321289
    1333                 /* ECHOREQ を送信する。*/
     1290                /* ECHOREQ を送信する。*/
    13341291                syscall(get_net_buf(&input, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)));
    13351292                *(uint32_t*)(input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) = lcp_local_ack_cfg.magic;
     
    13381295                echo_pending ++;
    13391296
    1340                 /* タイマーをスタートする。*/
     1297                /* タイマーをスタートする。*/
    13411298                timeout((FP)echo_timeout, fsm, LCP_ECHO_INTERVAL);
    13421299                timer_running = true;
     
    13451302
    13461303/*
    1347  *  echo_lowerup -- ECHO REQ/REP の起動
     1304 *  echo_lowerup -- ECHO REQ/REP の起動
    13481305 */
    13491306
     
    13591316
    13601317/*
    1361  *  echo_lowerdown -- ECHO REQ/REP の停止
     1318 *  echo_lowerdown -- ECHO REQ/REP の停止
    13621319 */
    13631320
Note: See TracChangeset for help on using the changeset viewer.