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/netapp/dhcp4_cli.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r388 r389  
    9595 *                   Tomakomai National College of Technology, JAPAN
    9696 *
    97  *  上記著作権è€
    98 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    99  *  によってå
    100 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    101  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    102  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    103 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    104  *  利用と呼ぶ)することを無償で許諾する.
    105  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    106  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    107  *      スコード中に含まれていること.
    108  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    109  *      用できる形で再é
    110 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    111 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    112  *      è€
    113 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    114  *      の無保証規定を掲載すること.
    115  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    116  *      用できない形で再é
    117 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    118  *      と.
    119  *    (a) 再é
    120 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    121 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    122  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    123  *    (b) 再é
    124 å¸ƒã®å½¢æ
    125 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    126  *        報告すること.
    127  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    128  *      害からも,上記著作権è€
    129 ãŠã‚ˆã³TOPPERSプロジェクトをå
    130 è²¬ã™ã‚‹ã“と.
     97 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     98 *  によって公表されている GNU General Public License の Version 2 に記
     99 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     100 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     101 *  利用と呼ぶ)することを無償で許諾する.
     102 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     103 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     104 *      スコード中に含まれていること.
     105 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     106 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     107 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     108 *      の無保証規定を掲載すること.
     109 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     110 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     111 *      と.
     112 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     113 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     114 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     115 *        報告すること.
     116 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     117 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    131118 *
    132  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    133 ãŠ
    134  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    135  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    136  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     119 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     120 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     121 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     122 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    137123 *
    138124 *  @(#) $Id$
     
    183169
    184170/*
    185  *  DHCP クライアントタスク
     171 *  DHCP クライアントタスク
    186172 */
    187173
     
    189175
    190176/*
    191  *  変数
    192  */
    193 
    194 static T_DHCP4_CLI_CONTEXT      context;                        /* クライアントコンテキスト */
    195 static uint8_t  magicno[DHCP4_MAGIC_LEN] = DHCP4_RFC1048_MAGIC; /* magic 番号(RFC1048)*/
    196 
    197 /* å¿
    198 é ˆã‚ªãƒ—ションリスト */
     177 *  変数
     178 */
     179
     180static T_DHCP4_CLI_CONTEXT      context;                        /* クライアントコンテキスト */
     181static uint8_t  magicno[DHCP4_MAGIC_LEN] = DHCP4_RFC1048_MAGIC; /* magic 番号(RFC1048)*/
     182
     183/* 必須オプションリスト */
    199184#ifdef DHCP4_CLI_CFG_REQUIRED_OLIST
    200185static uint8_t  required_plist[] = DHCP4_CLI_CFG_REQUIRED_OLIST;
    201186#endif
    202187
    203 /* 要求オプションリスト */
     188/* 要求オプションリスト */
    204189#ifdef DHCP4_CLI_CFG_REQUEST_OLIST
    205190static uint8_t  request_plist[] = DHCP4_CLI_CFG_REQUEST_OLIST;
     
    223208
    224209/*
    225  *  dhcp4_cksum -- チェックサムの計算関数
     210 *  dhcp4_cksum -- チェックサムの計算関数
    226211 */
    227212
    228213static uint32_t
    229 dhcp4_cksum (void *data, uint_t len /*オクテット単位*/)
     214dhcp4_cksum (void *data, uint_t len /*オクテット単位*/)
    230215{
    231216        uint32_t carry, sum = 0;
     
    245230
    246231/*
    247  *  create_xid -- トランザクション ID を生成する。
     232 *  create_xid -- トランザクション ID を生成する。
    248233 */
    249234
     
    261246
    262247/*
    263  *  find_option_sub -- 指定したオプションを探索する。
     248 *  find_option_sub -- 指定したオプションを探索する。
    264249 *
    265  *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
     250 *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
    266251 */
    267252
     
    298283
    299284/*
    300  *  find_option -- 指定したオプションを探索する。
     285 *  find_option -- 指定したオプションを探索する。
    301286 *
    302  *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
     287 *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
    303288 */
    304289
     
    312297
    313298/*
    314  *  is_equal_sid -- メッセージå†
    315 ã® SERVER ID を比較する。
     299 *  is_equal_sid -- メッセージ内の SERVER ID を比較する。
    316300 */
    317301
     
    330314
    331315/*
    332  *  timer_value -- メッセージから時間æƒ
    333 å ±ã‚’取り出す。
     316 *  timer_value -- メッセージから時間情報を取り出す。
    334317 */
    335318
     
    344327        else {
    345328
    346                 /* サーバからのリース時間は[s]。*/
     329                /* サーバからのリース時間は[s]。*/
    347330                seconds = msg2host32(opt + 2);
    348331
    349                 /* コンテキストå†
    350 ã®ãƒªãƒ¼ã‚¹æ™‚間は SYSTIM_HZ。*/
     332                /* コンテキスト内のリース時間は SYSTIM_HZ。*/
    351333                if (seconds == DHCP4_TIME_INFINITY)
    352334                        return DHCP4_TIME_INFINITY;
     
    359341
    360342/*
    361  *  rel_addr -- IPv4 アドレス、サブネットマスク、静的経路表を解放する。
     343 *  rel_addr -- IPv4 アドレス、サブネットマスク、静的経路表を解放する。
    362344 */
    363345
     
    402384
    403385/*
    404  *  rel_options -- リースされたオプションを解析して値を解放する。
     386 *  rel_options -- リースされたオプションを解析して値を解放する。
    405387 */
    406388
     
    468450
    469451/*
    470  *  rel_lease -- リースされたæƒ
    471 å ±ã‚’解放する。
     452 *  rel_lease -- リースされた情報を解放する。
    472453 */
    473454
     
    475456rel_lease (T_DHCP4_CLI_CONTEXT *ct)
    476457{
    477         /* 有効なリース・メッセージ構造体が無ければ何もしない。*/
     458        /* 有効なリース・メッセージ構造体が無ければ何もしない。*/
    478459        if (ct->act_msg == NULL)
    479460                return;
    480461
    481         /* リースされたオプションを解析して値を解放する。*/
     462        /* リースされたオプションを解析して値を解放する。*/
    482463        rel_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN,
    483464                      ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true);
    484465        rel_addr();
    485466
    486         /* 有効なリース・メッセージ構造体を解放する。*/
     467        /* 有効なリース・メッセージ構造体を解放する。*/
    487468        syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)ct->act_msg));
    488469        ct->act_msg = NULL;
     
    490471
    491472/*
    492  *  set_addr -- IPv4 アドレス、サブネットマスク、静的経路表を設定する。
     473 *  set_addr -- IPv4 アドレス、サブネットマスク、静的経路表を設定する。
    493474 */
    494475
     
    529510
    530511/*
    531  *  set_options -- リースされたオプションを解析して値を設定する。
     512 *  set_options -- リースされたオプションを解析して値を設定する。
    532513 */
    533514
     
    602583
    603584/*
    604  *  set_lease -- リースされたæƒ
    605 å ±ã‚’設定する。
     585 *  set_lease -- リースされた情報を設定する。
    606586 */
    607587
     
    609589set_lease (T_DHCP4_CLI_CONTEXT *ct)
    610590{
    611         /* リースされたオプションを解析して値を設定する。*/
     591        /* リースされたオプションを解析して値を設定する。*/
    612592        set_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN,
    613593                      ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true);
     
    615595
    616596/*
    617  *  validate_duplicate -- 指定された IPv4 アドレスが使われていないか検証する。
     597 *  validate_duplicate -- 指定された IPv4 アドレスが使われていないか検証する。
    618598 *
    619  *    使われていない時は true を返す。
     599 *    使われていない時は true を返す。
    620600 */
    621601
     
    625605        T_IN4_ADDR      yiaddr;
    626606
    627         /* 指定された IPv4 アドレスが ADDR ANY なら使われていないと判断する。*/
     607        /* 指定された IPv4 アドレスが ADDR ANY なら使われていないと判断する。*/
    628608        yiaddr = ntohl(msg->msg.yiaddr);
    629609        if (yiaddr == IPV4_ADDRANY)
    630610                return true;
    631611
    632         /* ARP キャッシュにあれば使われていると判断する。*/
     612        /* ARP キャッシュにあれば使われていると判断する。*/
    633613        if (arp_lookup(yiaddr, false) != NULL)
    634614                return false;
    635615
    636616        /*
    637          *  ARP 要求を出力して TMO_DHCP4C_ARP_WAIT å¾
    638 ã¡ã€
    639          *  ARP キャッシュになければ使われていないと判断する。
     617         *  ARP 要求を出力して TMO_DHCP4C_ARP_WAIT 待ち、
     618         *  ARP キャッシュになければ使われていないと判断する。
    640619         */
    641620        arp_request(&IF_ETHER_NIC_GET_SOFTC()->ifaddr, yiaddr);
     
    645624
    646625/*
    647  *  validate_rcv_msg -- 受信メッセージを検証する。
     626 *  validate_rcv_msg -- 受信メッセージを検証する。
    648627 */
    649628
     
    653632        uint8_t         *opt;
    654633
    655         /* packet type が DHCP4_REPLY であることを確認する。*/
     634        /* packet type が DHCP4_REPLY であることを確認する。*/
    656635        if (!(msg->msg.op == DHCP4_REPLY))
    657636                return false;
    658637
    659         /* メッセージタイプオプションがあることを確認する。*/
     638        /* メッセージタイプオプションがあることを確認する。*/
    660639        if ((opt = find_option(msg, DHCP4_OPT_MSG_TYPE, 1)) == NULL)
    661640                return E_PAR;
    662641
    663         /* メッセージのタイプが一致していることを検証する。*/
     642        /* メッセージのタイプが一致していることを検証する。*/
    664643        msg->type = *(opt + 2);
    665644        switch (ct->fsm) {
     
    691670                }
    692671
    693         /* マジック番号を検証する。*/
     672        /* マジック番号を検証する。*/
    694673        if (memcmp((uint8_t*)&msg->msg.options, magicno, DHCP4_MAGIC_LEN))
    695674                return E_PAR;
    696675
    697         /* トランザクション ID が異なっていればエラー */
     676        /* トランザクション ID が異なっていればエラー */
    698677        if (ntohl(msg->msg.xid) != ct->xid)
    699678                return E_PAR;
    700679
    701         /* ハードウェアアドレス長が 6(MAC アドレス長)でなければエラー */
     680        /* ハードウェアアドレス長が 6(MAC アドレス長)でなければエラー */
    702681        if (msg->msg.hlen != ETHER_ADDR_LEN)
    703682                return E_PAR;
    704683
    705         /* ハードウェアアドレスが異なっていればエラー */
     684        /* ハードウェアアドレスが異なっていればエラー */
    706685        if (memcmp(&msg->msg.chaddr, &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr)))
    707686                return E_PAR;
    708687
    709688        /*
    710          *  メッセージタイプが OFFER の場合は、
    711          *  ARP を使用して、指定された IPv4 アドレスが使われていないか検証する。
    712          *  使われている時は、他の IPv4 アドレスの提供をå¾
    713 ã¤ã€‚
     689         *  メッセージタイプが OFFER の場合は、
     690         *  ARP を使用して、指定された IPv4 アドレスが使われていないか検証する。
     691         *  使われている時は、他の IPv4 アドレスの提供を待つ。
    714692         */
    715693        if (msg->type == DHCP4_MTYPE_OFFER) {
     
    722700
    723701/*
    724  *  eval_prefer -- 受信メッセージの推奨度を評価する。
     702 *  eval_prefer -- 受信メッセージの推奨度を評価する。
    725703 */
    726704
     
    730708        int     ix;
    731709
    732         /* 無効の場合は終了する。*/
     710        /* 無効の場合は終了する。*/
    733711        if (msg == NULL)
    734712                return;
    735713
    736         /* 指定された IPv4 アドレスが ADDR ANY なら推奨度を 0に設定する。*/
     714        /* 指定された IPv4 アドレスが ADDR ANY なら推奨度を 0に設定する。*/
    737715        if (ntohl(msg->msg.yiaddr) == IPV4_ADDRANY)
    738716                msg->prefer = 0;
     
    742720#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    743721
    744         /* 要求オプションを検証する。*/
     722        /* 要求オプションを検証する。*/
    745723        for (ix = sizeof(request_plist); ix -- > 0; ) {
    746724                if (find_option(msg, request_plist[ix], 0) != NULL)
     
    752730#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
    753731
    754         /* å¿
    755 é ˆã‚ªãƒ—ションを検証する。*/
     732        /* 必須オプションを検証する。*/
    756733        for (ix = sizeof(required_plist); ix -- > 0; ) {
    757734                if (find_option(msg, required_plist[ix], 0) == NULL)
     
    763740
    764741/*
    765  *  eval_rcv_msg -- 受信メッセージを評価する。
     742 *  eval_rcv_msg -- 受信メッセージを評価する。
    766743 */
    767744
     
    771748        T_DHCP4_CLI_MSG *evl, *msg;
    772749
    773         /* メッセージを受信していなければ中止する。*/
     750        /* メッセージを受信していなければ中止する。*/
    774751        syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
    775752        if (ct->val_lst == NULL) {
     
    778755                }
    779756
    780         /* 検証メッセージリストから評価メッセージを取り出す。*/
     757        /* 検証メッセージリストから評価メッセージを取り出す。*/
    781758        evl         = ct->val_lst;
    782759        ct->val_lst = ct->val_lst->next;
     
    784761        syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
    785762
    786         /* 評価メッセージを検証する。*/
     763        /* 評価メッセージを検証する。*/
    787764        if (validate_rcv_msg(ct, evl) != E_OK) {
    788765
    789                 /* エラーが発生した評価メッセージを受信メッセージ構造体リストに戻す。*/
     766                /* エラーが発生した評価メッセージを受信メッセージ構造体リストに戻す。*/
    790767                goto rcv_ret;
    791768                }
    792769
    793         /* 受信したメッセージが NAK の時の処理 */
     770        /* 受信したメッセージが NAK の時の処理 */
    794771        if (evl->type == DHCP4_MTYPE_NAK) {
    795772
    796                 /* リースされたæƒ
    797 å ±ã‚’解放する。*/
     773                /* リースされた情報を解放する。*/
    798774                rel_lease(ct);
    799775
    800                 /* å†
    801 éƒ¨ã‚¨ãƒ©ãƒ¼ã‚’設定して終了する。*/
     776                /* 内部エラーを設定して終了する。*/
    802777                return E_PAR;
    803778                }
    804779
    805         /* REL_INFO 状æ
    806 ‹ã®æ™‚の処理 */
     780        /* REL_INFO 状態の時の処理 */
    807781        //cons_printf(CONSOLE_PORTID, "evl_rcv_msg3[s=%d]\n", ct->fsm);
    808782        if (ct->fsm == DHCP4_FSM_REL_INFO) {
     
    814788                }
    815789
    816         /* 評価メッセージの推奨度を評価する。*/
     790        /* 評価メッセージの推奨度を評価する。*/
    817791        eval_prefer(evl);
    818792
    819         /* 推奨メッセージリストが空なら評価メッセージを移して終了する。*/
     793        /* 推奨メッセージリストが空なら評価メッセージを移して終了する。*/
    820794        if (ct->prf_lst == NULL) {
    821795                ct->max_prefer = evl->prefer;
     
    824798                }
    825799
    826         /* 評価メッセージの推奨度と推奨メッセージリストの最大推奨度を比較する。*/
     800        /* 評価メッセージの推奨度と推奨メッセージリストの最大推奨度を比較する。*/
    827801        if (evl->prefer > ct->max_prefer) {
    828802
    829803                /*
    830                  *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より高ければ、
    831                  *  推奨メッセージリストを受信メッセージ構造体リストに戻し、
    832                  *  評価メッセージを推奨メッセージリストに移す。
     804                 *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より高ければ、
     805                 *  推奨メッセージリストを受信メッセージ構造体リストに戻し、
     806                 *  評価メッセージを推奨メッセージリストに移す。
    833807                 */
    834808                ct->max_prefer = evl->prefer;
     
    851825
    852826                                /*
    853                                  *  推奨メッセージリストに同じ DHCP4_OPT_SERVER_ID のメッセージがあれば、
    854                                  *  評価メッセージを受信メッセージ構造体リストに戻す。
     827                                 *  推奨メッセージリストに同じ DHCP4_OPT_SERVER_ID のメッセージがあれば、
     828                                 *  評価メッセージを受信メッセージ構造体リストに戻す。
    855829                                 */
    856830                                goto rcv_ret;
     
    859833
    860834                /*
    861                  *  評価メッセージを推奨メッセージリストに移す。
     835                 *  評価メッセージを推奨メッセージリストに移す。
    862836                 */
    863837                evl->next   = ct->prf_lst;
     
    868842        /*else */
    869843                /*
    870                  *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より低ければ、
    871                  *  評価メッセージを受信メッセージ構造体リストに戻す。
     844                 *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より低ければ、
     845                 *  評価メッセージを受信メッセージ構造体リストに戻す。
    872846                 */
    873847
     
    881855
    882856/*
    883  *  select_msg -- 推奨メッセージを選択する。
     857 *  select_msg -- 推奨メッセージを選択する。
    884858 */
    885859
     
    891865        syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
    892866        if (ct->prf_lst == NULL) {
    893                 /* メッセージを受信していなければ中止する。*/
     867                /* メッセージを受信していなければ中止する。*/
    894868                syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
    895869                return NULL;
    896870                }
    897871
    898         /* 推奨メッセージリストのå
    899 ˆé ­ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’選択する。*/
     872        /* 推奨メッセージリストの先頭のメッセージを選択する。*/
    900873        select = ct->prf_lst;
    901874        ct->prf_lst  = ct->prf_lst->next;
    902875        select->next = NULL;
    903876
    904         /* 選択されなかった検証メッセージを受信メッセージ構造体リストに戻す。*/
     877        /* 選択されなかった検証メッセージを受信メッセージ構造体リストに戻す。*/
    905878        if (ct->rcv_lst == NULL)
    906879                ct->rcv_lst = ct->prf_lst;
     
    915888
    916889/*
    917  *  select_ack -- ACK メッセージを検証する。
     890 *  select_ack -- ACK メッセージを検証する。
    918891 *
    919  *    受けå
    920 ¥ã‚Œã‚‹ã“とが可能の時は true を返す。
     892 *    受け入れることが可能の時は true を返す。
    921893 */
    922894
     
    929901                return false;
    930902
    931         /* 有効なリース・メッセージが残っていれば、受信メッセージ構造体リストに戻す。*/
     903        /* 有効なリース・メッセージが残っていれば、受信メッセージ構造体リストに戻す。*/
    932904        if (ct->act_msg != NULL) {
    933905                syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
     
    937909                }
    938910
    939         /* 有効なリース・メッセージに設定する。*/
     911        /* 有効なリース・メッセージに設定する。*/
    940912        ct->act_msg = msg;
    941913        return true;
     
    943915
    944916/*
    945  *  select_offer -- OFFER メッセージを検証する。
     917 *  select_offer -- OFFER メッセージを検証する。
    946918 *
    947  *    受けå
    948 ¥ã‚Œã‚‹ã“とが可能の時は true を返す。
     919 *    受け入れることが可能の時は true を返す。
    949920 */
    950921
     
    956927
    957928/*
    958  *  cancel_all_timers -- å
    959 ¨ã¦ã® TIMER をキャンセルする。
     929 *  cancel_all_timers -- 全ての TIMER をキャンセルする。
    960930 */
    961931
     
    973943
    974944/*
    975  *  start_select -- DISCOVER メッセージを送信して SELECT 状æ
    976 ‹ã«é·ç§»ã™ã‚‹ã€‚
     945 *  start_select -- DISCOVER メッセージを送信して SELECT 状態に遷移する。
    977946 */
    978947
     
    980949start_select (T_DHCP4_CLI_CONTEXT *ct)
    981950{
    982         /* 送信を開始した時間を記録する。*/
     951        /* 送信を開始した時間を記録する。*/
    983952        get_tim(&ct->snd_start);
    984953
    985         /* OFFER メッセージ受信タイムアウトを設定する。*/
     954        /* OFFER メッセージ受信タイムアウトを設定する。*/
    986955        DHCP4_CLI_TIMER_LOCK();
    987956        ct->timers[DHCP4C_TIMER_RCV_OFFER] = SYSTIM2TIMER(TMO_DHCP4C_OFFER);
    988957        DHCP4_CLI_TIMER_UNLOCK();
    989958
    990         /* 送信å
    991 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãƒ­ãƒ¼ã‚«ãƒ«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¸ã®ãƒ–ロードキャストを設定する。*/
     959        /* 送信先アドレスにローカルネットワークへのブロードキャストを設定する。*/
    992960        ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    993961
    994         /* 送信間隔をリセットする。*/
     962        /* 送信間隔をリセットする。*/
    995963        ct->interval = 0;
    996964
    997         /* SELECT 状æ
    998 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     965        /* SELECT 状態に遷移する。*/
    999966        ct->fsm = DHCP4_FSM_SELECT;
    1000967
    1001         /* DISCOVER メッセージを送信する。*/
     968        /* DISCOVER メッセージを送信する。*/
    1002969        ct->flags |= DHCP4C_FLAG_TMOUT_SND_DISC;
    1003970        DHCP4_CLI_READY_SIGNAL(ct);
     
    1005972
    1006973/*
    1007  *  start_bound -- BOUND 状æ
    1008 ‹ã«é·ç§»ã™ã‚‹ã€‚
     974 *  start_bound -- BOUND 状態に遷移する。
    1009975 */
    1010976
     
    1012978start_bound (T_DHCP4_CLI_CONTEXT *ct)
    1013979{
    1014         /* リースされたæƒ
    1015 å ±ã‚’設定する。*/
     980        /* リースされた情報を設定する。*/
    1016981        set_lease(ct);
    1017982
    1018         /* リースの有効時間を設定する。*/
     983        /* リースの有効時間を設定する。*/
    1019984        ct->expire = timer_value(ct->act_msg, DHCP4_OPT_LEASE_TIME, TMO_DHCP4C_DEF_LEASE);
    1020985
    1021         /* リース時間が TMO_DHCP4C_MIN_LEASE 以下の時は、TMO_DHCP4C_MIN_LEASE に設定する。*/
     986        /* リース時間が TMO_DHCP4C_MIN_LEASE 以下の時は、TMO_DHCP4C_MIN_LEASE に設定する。*/
    1022987        if (ct->expire < TMO_DHCP4C_MIN_LEASE)
    1023988                ct->expire = TMO_DHCP4C_MIN_LEASE;
    1024989
    1025         /* RENEW 状æ
    1026 ‹ã¾ã§ã®æ™‚間を設定する。*/
     990        /* RENEW 状態までの時間を設定する。*/
    1027991        ct->renew = timer_value(ct->act_msg, DHCP4_OPT_RENEWAL_T1, ct->expire / 2);
    1028992
    1029         /* REBIND 状æ
    1030 ‹ã¾ã§ã®æ™‚間を設定する。*/
     993        /* REBIND 状態までの時間を設定する。*/
    1031994        ct->rebind = timer_value(ct->act_msg, DHCP4_OPT_REBINDING_T2, ct->renew + ct->renew / 2 + ct->renew / 4);
    1032995
    1033         /* EXPIRE、RENEW、REBIND タイマーを設定する。*/
     996        /* EXPIRE、RENEW、REBIND タイマーを設定する。*/
    1034997        DHCP4_CLI_TIMER_LOCK();
    1035         ct->timers[DHCP4C_TIMER_EXPIRE] = SYSTIM2TIMER(ct->expire);             /* EXPIRE      までの時間 */
    1036         ct->timers[DHCP4C_TIMER_REBIND] = SYSTIM2TIMER(ct->rebind);             /* REBIND(T2)までの時間 */
    1037         ct->timers[DHCP4C_TIMER_RENEW]  = SYSTIM2TIMER(ct->renew);              /* RENEW (T1)までの時間 */
     998        ct->timers[DHCP4C_TIMER_EXPIRE] = SYSTIM2TIMER(ct->expire);             /* EXPIRE      までの時間 */
     999        ct->timers[DHCP4C_TIMER_REBIND] = SYSTIM2TIMER(ct->rebind);             /* REBIND(T2)までの時間 */
     1000        ct->timers[DHCP4C_TIMER_RENEW]  = SYSTIM2TIMER(ct->renew);              /* RENEW (T1)までの時間 */
    10381001        DHCP4_CLI_TIMER_UNLOCK();
    10391002
    1040         /* BOUND 状æ
    1041 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1003        /* BOUND 状態に遷移する。*/
    10421004        ct->fsm = DHCP4_FSM_BOUND;
    10431005
    1044         /* BIND を開始した時間を記録する。*/
     1006        /* BIND を開始した時間を記録する。*/
    10451007        get_tim(&ct->bind_start);
    10461008        }
    10471009
    10481010/*
    1049  *  start_send_request -- REQUEST メッセージを送信して、指定された状æ
    1050 ‹ã«é·ç§»ã™ã‚‹ã€‚
     1011 *  start_send_request -- REQUEST メッセージを送信して、指定された状態に遷移する。
    10511012 */
    10521013
     
    10561017        T_IFNET *ifp = IF_GET_IFNET();
    10571018
    1058         /* 送信を開始した時間を記録する。*/
     1019        /* 送信を開始した時間を記録する。*/
    10591020        get_tim(&ct->snd_start);
    10601021
    1061         /* 遷移する状æ
    1062 ‹ãŒ RENEW 以外では ACK/NAK メッセージ受信タイムアウトを設定する。*/
     1022        /* 遷移する状態が RENEW 以外では ACK/NAK メッセージ受信タイムアウトを設定する。*/
    10631023        if (fsm != DHCP4_FSM_RENEW) {
    10641024                DHCP4_CLI_TIMER_LOCK();
     
    10681028
    10691029        /*
    1070          *  遷移する状æ
    1071 ‹ãŒ RENEW で、
    1072          *  SERVER ID オプションがあればローカルネットワークへのブロードキャストを送信する。
     1030         *  遷移する状態が RENEW で、
     1031         *  SERVER ID オプションがあればローカルネットワークへのブロードキャストを送信する。
    10731032         */
    10741033        if ((fsm == DHCP4_FSM_RENEW) &&
     
    10781037                ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    10791038
    1080         /* 送信間隔をリセットする。*/
     1039        /* 送信間隔をリセットする。*/
    10811040        ct->interval = 0;
    10821041
    1083         /* 指定された状æ
    1084 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1042        /* 指定された状態に遷移する。*/
    10851043        ct->fsm = fsm;
    10861044
    1087         /* REQUEST メッセージを送信する。*/
     1045        /* REQUEST メッセージを送信する。*/
    10881046        ct->flags |= DHCP4C_FLAG_TMOUT_SND_REQ;
    10891047        DHCP4_CLI_READY_SIGNAL(ct);
     
    10911049
    10921050/*
    1093  *  start_rel_info -- アドレスæƒ
    1094 å ±ã‚’解放する。
     1051 *  start_rel_info -- アドレス情報を解放する。
    10951052 *
    1096  *    注意: DHCPv4 の RFC2131 には無い
     1053 *    注意: DHCPv4 の RFC2131 には無い
    10971054 */
    10981055
     
    11001057start_rel_info (T_DHCP4_CLI_CONTEXT *ct)
    11011058{
    1102         /* å
    1103 ¨ã¦ã® TIMER をキャンセルする。*/
     1059        /* 全ての TIMER をキャンセルする。*/
    11041060        cancel_all_timers(ct);
    11051061
    1106         /* 有効なリースæƒ
    1107 å ±ãŒç„¡ã‘れば SLEEP に遷移する。*/
     1062        /* 有効なリース情報が無ければ SLEEP に遷移する。*/
    11081063        if (ct->act_msg == NULL) {
    11091064                ct->fsm = DHCP4_FSM_SLEEP;
     
    11111066                }
    11121067
    1113         /* 送信å
    1114 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãƒ­ãƒ¼ã‚«ãƒ«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¸ã®ãƒ–ロードキャストを設定する。*/
     1068        /* 送信先アドレスにローカルネットワークへのブロードキャストを設定する。*/
    11151069        ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    11161070
    1117         /* RELEASE メッセージを送信する。*/
     1071        /* RELEASE メッセージを送信する。*/
    11181072        ct->flags |= DHCP4C_FLAG_TMOUT_SND_REL;
    11191073        DHCP4_CLI_READY_SIGNAL(ct);
     
    11211075
    11221076/*
    1123  *  setup_dhcp_com_msg -- DHCP メッセージのå
    1124 ±é€šéƒ¨åˆ†ã‚’作成する。
     1077 *  setup_dhcp_com_msg -- DHCP メッセージの共通部分を作成する。
    11251078 */
    11261079
     
    11331086        ct->snd_msg->len = sizeof(ct->snd_msg->msg);
    11341087
    1135         /* ヘッダ部を設定する。*/
     1088        /* ヘッダ部を設定する。*/
    11361089        ct->snd_msg->msg.op = op;
    11371090        ct->snd_msg->msg.htype = DHCP4_HWA_TYPE_ETHER;
     
    11391092        HOST2MSG32(ct->snd_msg->msg.xid, ct->xid);
    11401093
    1141         /* MAC アドレスを設定する。*/
     1094        /* MAC アドレスを設定する。*/
    11421095        memcpy(&ct->snd_msg->msg.chaddr, &ct->sc->ifaddr.lladdr, ETHER_ADDR_LEN);
    11431096
    11441097        /*
    1145          *  オプション部を設定する。
     1098         *  オプション部を設定する。
    11461099         */
    11471100
    1148         /* RFC1048 に定義されているマジック番号を設定する。*/
     1101        /* RFC1048 に定義されているマジック番号を設定する。*/
    11491102        memcpy(&ct->snd_msg->msg.options, magicno, DHCP4_MAGIC_LEN);
    11501103        option = ct->snd_msg->msg.options + DHCP4_MAGIC_LEN;
    11511104
    1152         /* DHCP メッセージタイプを設定する。*/
     1105        /* DHCP メッセージタイプを設定する。*/
    11531106        *(option ++) = DHCP4_OPT_MSG_TYPE;
    11541107        *(option ++) = 1;
     
    11591112
    11601113/*
    1161  *  setup_release_msg -- RELEASE メッセージを作成する。
     1114 *  setup_release_msg -- RELEASE メッセージを作成する。
    11621115 */
    11631116
     
    11671120        uint8_t *opt, *ref_opt;
    11681121
    1169         /* 有効なリース・メッセージがなければエラー */
     1122        /* 有効なリース・メッセージがなければエラー */
    11701123        if (ref == NULL)
    11711124                return E_PAR;
     
    11761129
    11771130        /*
    1178          *  サーバ ID(server-ip)を設定する。
    1179          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1180 §
     1131         *  サーバ ID(server-ip)を設定する。
     1132         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    11811133         */
    11821134        if ((ref_opt = find_option(ref, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR))) == NULL)
     
    11881140
    11891141        /*
    1190          *  クライアント ID(MAC アドレス)を設定する。
    1191          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1192 §
     1142         *  クライアント ID(MAC アドレス)を設定する。
     1143         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    11931144         */
    11941145        *(opt ++) = DHCP4_OPT_CLIENT_ID;
     
    11981149        opt += ETHER_ADDR_LEN;
    11991150
    1200         /* オプションの終了を設定する。*/
     1151        /* オプションの終了を設定する。*/
    12011152        *(opt ++) = DHCP4_OPT_END;
    12021153
    12031154        /*
    1204          *  クライアント IP アドレス(ciaddr)を設定する。
    1205          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1206 §
     1155         *  クライアント IP アドレス(ciaddr)を設定する。
     1156         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    12071157         */
    12081158        HOST2MSG32(ct->snd_msg->msg.ciaddr, IF_GET_IFNET()->in4_ifaddr.addr);
    12091159
    1210         /* メッセージ長を設定する。*/
     1160        /* メッセージ長を設定する。*/
    12111161        ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
    12121162                     + (opt - (uint8_t*)&ct->snd_msg->msg.options);
     
    12161166
    12171167/*
    1218  *  setup_request_msg -- REQUEST メッセージを作成する。
     1168 *  setup_request_msg -- REQUEST メッセージを作成する。
    12191169 */
    12201170
     
    12281178#endif
    12291179
    1230         /* 参ç
    1231 §ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒãªã‘ればエラー */
     1180        /* 参照するメッセージがなければエラー */
    12321181        if (ref == NULL)
    12331182                return E_PAR;
     
    12391188#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    12401189
    1241         /* 追加のオプションを設定する。*/
     1190        /* 追加のオプションを設定する。*/
    12421191
    12431192        *opt  = DHCP4_OPT_REQ_PARAM;
     
    12461195#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
    12471196
    1248         /* 要求オプションリストを設定する。*/
     1197        /* 要求オプションリストを設定する。*/
    12491198        if (sizeof(required_plist) > 0) {
    12501199                memcpy(opt, required_plist, sizeof(required_plist));
     
    12571206#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    12581207
    1259         /* 要求オプションリストを設定する。*/
     1208        /* 要求オプションリストを設定する。*/
    12601209        if (sizeof(request_plist) > 0) {
    12611210                memcpy(opt, request_plist, sizeof(request_plist));
     
    12711220
    12721221        /*
    1273          *  サーバ ID(server-ip)を設定する。
    1274          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1275 §
     1222         *  サーバ ID(server-ip)を設定する。
     1223         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    12761224         */
    12771225        if (ct->fsm == DHCP4_FSM_REQUEST) {
     
    12851233
    12861234        /*
    1287          *  要求 IP アドレス(requested-ip)を設定する。
    1288          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1289 §
    1290          *  RFC2131 では、DHCP4_FSM_RENEW の時 MUST NOT になっているが、
    1291          *  MUST のようである。
     1235         *  要求 IP アドレス(requested-ip)を設定する。
     1236         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
     1237         *  RFC2131 では、DHCP4_FSM_RENEW の時 MUST NOT になっているが、
     1238         *  MUST のようである。
    12921239         */
    12931240        *(opt ++) = DHCP4_OPT_REQ_IPV4;
     
    12951242        if (ct->fsm == DHCP4_FSM_REQUEST || ct->fsm == DHCP4_FSM_INIT_REBOOT ||
    12961243            ct->fsm == DHCP4_FSM_RENEW   || ct->fsm == DHCP4_FSM_REBIND)
    1297                 /* 参ç
    1298 §ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¨åŒã˜ IP アドレス(requested-ip)を要求する。*/
     1244                /* 参照メッセージと同じ IP アドレス(requested-ip)を要求する。*/
    12991245                memcpy(opt, (uint8_t*)&ref->msg.yiaddr, sizeof(ref->msg.yiaddr));
    13001246        else
     
    13031249
    13041250        /*
    1305          *  クライアント ID(MAC アドレス)を設定する。
    1306          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1307 §
     1251         *  クライアント ID(MAC アドレス)を設定する。
     1252         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    13081253         */
    13091254        *(opt ++) = DHCP4_OPT_CLIENT_ID;
     
    13131258        opt += ETHER_ADDR_LEN;
    13141259
    1315         /* オプションの終了を設定する。*/
     1260        /* オプションの終了を設定する。*/
    13161261        *(opt ++) = DHCP4_OPT_END;
    13171262
    13181263        /*
    1319          *  クライアント IP アドレス(ciaddr)を設定する。
    1320          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1321 §
     1264         *  クライアント IP アドレス(ciaddr)を設定する。
     1265         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    13221266         */
    13231267        if (ct->fsm == DHCP4_FSM_RENEW || ct->fsm == DHCP4_FSM_REBIND)
     
    13261270                HOST2MSG32(ct->snd_msg->msg.ciaddr, IPV4_ADDRANY);
    13271271
    1328         /* メッセージ長を設定する。*/
     1272        /* メッセージ長を設定する。*/
    13291273        ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
    13301274                     + (opt - (uint8_t*)&ct->snd_msg->msg.options);
     
    13331277
    13341278/*
    1335  *  setup_discover_msg -- DISCOVER メッセージを作成する。
     1279 *  setup_discover_msg -- DISCOVER メッセージを作成する。
    13361280 */
    13371281
     
    13511295#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    13521296
    1353         /* 追加のオプションを設定する。*/
     1297        /* 追加のオプションを設定する。*/
    13541298
    13551299        *opt  = DHCP4_OPT_REQ_PARAM;
     
    13581302#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
    13591303
    1360         /* 要求オプションリストを設定する。*/
     1304        /* 要求オプションリストを設定する。*/
    13611305        if (sizeof(required_plist) > 0) {
    13621306                memcpy(opt, required_plist, sizeof(required_plist));
     
    13691313#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    13701314
    1371         /* 要求オプションリストを設定する。*/
     1315        /* 要求オプションリストを設定する。*/
    13721316        if (sizeof(request_plist) > 0) {
    13731317                memcpy(opt, request_plist, sizeof(request_plist));
     
    13821326#endif  /* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST) */
    13831327
    1384         /* 既にアドレスæƒ
    1385 å ±ãŒãƒªãƒ¼ã‚¹ã•ã‚Œã¦ã„れば、同じ IP アドレスを要求する。*/
     1328        /* 既にアドレス情報がリースされていれば、同じ IP アドレスを要求する。*/
    13861329        if (ct->act_msg != NULL) {
    13871330                *(opt ++) = DHCP4_OPT_REQ_IPV4;
     
    13911334                }
    13921335
    1393         /* クライアント ID(MAC アドレス)を設定する。*/
     1336        /* クライアント ID(MAC アドレス)を設定する。*/
    13941337        *(opt ++) = DHCP4_OPT_CLIENT_ID;
    13951338        *(opt ++) = ETHER_ADDR_LEN + 1;
     
    13981341        opt += ETHER_ADDR_LEN;
    13991342
    1400         /* オプションの終了を設定する。*/
     1343        /* オプションの終了を設定する。*/
    14011344        *(opt ++) = DHCP4_OPT_END;
    14021345
    1403         /* 送信å
    1404 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定する。*/
     1346        /* 送信先アドレスを設定する。*/
    14051347        ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    14061348
    1407         /* メッセージ長を設定する。*/
     1349        /* メッセージ長を設定する。*/
    14081350        ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
    14091351                     + (opt - (uint8_t*)&ct->snd_msg->msg.options);
     
    14121354
    14131355/*
    1414  *  ack_msg_timeout -- ACK/NAK メッセージ受信タイムアウト処理
     1356 *  ack_msg_timeout -- ACK/NAK メッセージ受信タイムアウト処理
    14151357 */
    14161358
     
    14181360ack_msg_timeout (T_DHCP4_CLI_CONTEXT *ct)
    14191361{
    1420         /* ACK メッセージを受信していれば。BOUND 状æ
    1421 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1362        /* ACK メッセージを受信していれば。BOUND 状態に遷移する。*/
    14221363        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    14231364        if (select_ack(ct)) {
    14241365
    1425                 /* REQUEST メッセージ送信タイマーを停止する。*/
     1366                /* REQUEST メッセージ送信タイマーを停止する。*/
    14261367                DHCP4_CLI_TIMER_LOCK();
    14271368                ct->timers[DHCP4C_TIMER_SND_REQ] = 0;
     
    14291370
    14301371                /*
    1431                  *  状æ
    1432 ‹ãŒ REQUEST の時は、
    1433                  *  OFFER メッセージを受信メッセージ構造体リストに戻す。
     1372                 *  状態が REQUEST の時は、
     1373                 *  OFFER メッセージを受信メッセージ構造体リストに戻す。
    14341374                 */
    14351375                if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) {
     
    14411381                        }
    14421382
    1443                 /* BOUND 状æ
    1444 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1383                /* BOUND 状態に遷移する。*/
    14451384                start_bound(ct);
    14461385                return;
     
    14481387        else {
    14491388
    1450                 /* リースæƒ
    1451 å ±ã‚’解放する。*/
     1389                /* リース情報を解放する。*/
    14521390                rel_lease(ct);
    14531391
     
    14571395
    14581396/*
    1459  *  send_request_msg -- REQUEST メッセージを送信する。
     1397 *  send_request_msg -- REQUEST メッセージを送信する。
    14601398 */
    14611399
     
    14691407        uint16_t        secs;
    14701408
    1471         /* タイムアウトフラグをクリアーする。*/
     1409        /* タイムアウトフラグをクリアーする。*/
    14721410        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    14731411
    1474         /* ACK メッセージを受信していれば。BOUND 状æ
    1475 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1412        /* ACK メッセージを受信していれば。BOUND 状態に遷移する。*/
    14761413        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    14771414        if (select_ack(ct)) {
    14781415
    1479                 /* ACK/NAK メッセージ受信タイマーを停止する。*/
     1416                /* ACK/NAK メッセージ受信タイマーを停止する。*/
    14801417                DHCP4_CLI_TIMER_LOCK();
    14811418                ct->timers[DHCP4C_TIMER_RCV_ACK] = 0;
     
    14831420
    14841421                /*
    1485                  *  状æ
    1486 ‹ãŒ REQUEST の時は、
    1487                  *  OFFER メッセージを受信メッセージ構造体リストに戻す。
     1422                 *  状態が REQUEST の時は、
     1423                 *  OFFER メッセージを受信メッセージ構造体リストに戻す。
    14881424                 */
    14891425                if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) {
     
    14951431                        }
    14961432
    1497                 /* BOUND 状æ
    1498 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1433                /* BOUND 状態に遷移する。*/
    14991434                start_bound(ct);
    15001435                return;
    15011436                }
    15021437
    1503         /* REQUEST メッセージを作成する。*/
     1438        /* REQUEST メッセージを作成する。*/
    15041439        if (ct->fsm == DHCP4_FSM_REQUEST)
    15051440                ref = ct->off_msg;
     
    15121447                }
    15131448
    1514         /* 送信を開始してからの時間を得る。*/
     1449        /* 送信を開始してからの時間を得る。*/
    15151450        get_tim(&time);
    15161451        interval = time - ct->snd_start;
    15171452
    15181453        /*
    1519          * 送信を開始してからの時間(秒)をメッセージに設定する。
    1520          * 最大値は 65535。
     1454         * 送信を開始してからの時間(秒)をメッセージに設定する。
     1455         * 最大値は 65535。
    15211456         */
    15221457        if (ct->fsm == DHCP4_FSM_REQUEST)
     
    15301465        HOST2MSG16(ct->snd_msg->msg.secs, secs);
    15311466
    1532         /* ノンブロッキングコールでメッセージを送信する。*/
     1467        /* ノンブロッキングコールでメッセージを送信する。*/
    15331468        error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
    15341469        if (error != E_WBLK) {
     
    15381473                }
    15391474
    1540         /* 送信間隔を設定する。*/
     1475        /* 送信間隔を設定する。*/
    15411476        if (ct->interval == 0)
    1542                 /* 未設定 */
     1477                /* 未設定 */
    15431478                ct->interval = TMO_DHCP4C_INIT_INTVL;
    15441479        else
    1545                 /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
     1480                /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
    15461481                ct->interval += (netapp_rand() >> 2) % (ct->interval << 1);
    15471482       
    1548         /* 送信周期の制限値をè¶
    1549 ãˆãªã„ようにする。*/
     1483        /* 送信周期の制限値を超えないようにする。*/
    15501484        if (ct->interval > TMO_DHCP4C_MAX_BACKOFF)
    15511485                ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF);
    15521486
    1553         /* リース時間のタイムアウト【å
    1554 ˆé€ã‚Šã€‘ */
     1487        /* リース時間のタイムアウト【先送り】 */
    15551488        if (ct->fsm != DHCP4_FSM_REQUEST &&
    15561489            TIMEC_GT(ct->interval + time, ct->expire + ct->bind_start))
    15571490                ct->interval = ct->expire + ct->bind_start - time + SYSTIM_HZ;
    15581491
    1559         /* 再送信タイムアウトを設定する。*/
     1492        /* 再送信タイムアウトを設定する。*/
    15601493        DHCP4_CLI_TIMER_LOCK();
    15611494        ct->timers[DHCP4C_TIMER_SND_REQ] = SYSTIM2TIMER(ct->interval);
     
    15641497
    15651498/*
    1566  *  send_release_msg -- RELEASE メッセージを送信する。
     1499 *  send_release_msg -- RELEASE メッセージを送信する。
    15671500 */
    15681501
     
    15721505        ER              error;
    15731506
    1574         /* タイムアウトフラグをクリアーする。*/
     1507        /* タイムアウトフラグをクリアーする。*/
    15751508        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    15761509
    1577         /* RELEASE メッセージを作成する。*/
     1510        /* RELEASE メッセージを作成する。*/
    15781511        if ((error = setup_release_msg(ct, ct->act_msg)) != E_OK) {
    15791512                syslog(LOG_NOTICE, "[DHCP4C] error, setup release message: %s", itron_strerror(error));
     
    15821515                }
    15831516
    1584         /* リースæƒ
    1585 å ±ã‚’解放する。*/
     1517        /* リース情報を解放する。*/
    15861518        rel_lease(ct);
    15871519
    1588         /* ノンブロッキングコールでメッセージを送信する。*/
     1520        /* ノンブロッキングコールでメッセージを送信する。*/
    15891521        error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
    15901522        if (error != E_WBLK) {
     
    15941526                }
    15951527
    1596         /* メッセージ送信å¾
    1597 ã¡ã‚’行う。*/
     1528        /* メッセージ送信待ちを行う。*/
    15981529        DHCP4_CLI_READY_WAIT(ct);
    15991530
    1600         /* SLEEP 状æ
    1601 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1531        /* SLEEP 状態に遷移する。*/
    16021532        ct->fsm = DHCP4_FSM_SLEEP;
    16031533        }
    16041534
    16051535/*
    1606  *  offer_msg_timeout -- OFFER メッセージ受信タイムアウト処理
     1536 *  offer_msg_timeout -- OFFER メッセージ受信タイムアウト処理
    16071537 */
    16081538
     
    16101540offer_msg_timeout (T_DHCP4_CLI_CONTEXT *ct)
    16111541{
    1612         /* OFFER メッセージを受信していれば。REQUEST 状æ
    1613 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1542        /* OFFER メッセージを受信していれば。REQUEST 状態に遷移する。*/
    16141543        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    16151544        if (select_offer(ct)) {
    16161545
    1617                 /* DISCOVER メッセージ送信タイマーを停止する。*/
     1546                /* DISCOVER メッセージ送信タイマーを停止する。*/
    16181547                DHCP4_CLI_TIMER_LOCK();
    16191548                ct->timers[DHCP4C_TIMER_SND_DISC] = 0;
    16201549                DHCP4_CLI_TIMER_UNLOCK();
    16211550
    1622                 /* REQUEST メッセージを送信して REQUEST 状æ
    1623 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1551                /* REQUEST メッセージを送信して REQUEST 状態に遷移する。*/
    16241552                start_send_request(ct, DHCP4_FSM_REQUEST);
    16251553                }
     
    16291557
    16301558/*
    1631  *  send_discover_msg -- DISCOVERメッセージを送信する。
     1559 *  send_discover_msg -- DISCOVERメッセージを送信する。
    16321560 */
    16331561
     
    16391567        RELTIM  interval;
    16401568
    1641         /* タイムアウトフラグをクリアーする。*/
     1569        /* タイムアウトフラグをクリアーする。*/
    16421570        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    16431571
    1644         /* OFFER メッセージを受信していれば。REQUEST 状æ
    1645 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1572        /* OFFER メッセージを受信していれば。REQUEST 状態に遷移する。*/
    16461573        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    16471574        if (select_offer(ct)) {
    16481575
    1649                 /* OFFER メッセージ受信タイマーを停止する。*/
     1576                /* OFFER メッセージ受信タイマーを停止する。*/
    16501577                DHCP4_CLI_TIMER_LOCK();
    16511578                ct->timers[DHCP4C_TIMER_RCV_OFFER] = 0;
    16521579                DHCP4_CLI_TIMER_UNLOCK();
    16531580
    1654                 /* REQUEST メッセージを送信して REQUEST 状æ
    1655 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1581                /* REQUEST メッセージを送信して REQUEST 状態に遷移する。*/
    16561582                start_send_request(ct, DHCP4_FSM_REQUEST);
    16571583                return;
    16581584                }
    16591585
    1660         /* DISCOVER メッセージを作成する。*/
     1586        /* DISCOVER メッセージを作成する。*/
    16611587        if ((error = setup_discover_msg(ct)) != E_OK) {
    16621588                syslog(LOG_NOTICE, "[DHCP4C] error, setup discover message: %s", itron_strerror(error));
     
    16651591                }
    16661592
    1667         /* 送信を開始してからの時間を得る。*/
     1593        /* 送信を開始してからの時間を得る。*/
    16681594        get_tim(&time);
    16691595        interval = time - ct->snd_start;
    16701596
    16711597        /*
    1672          * 送信を開始してからの時間(秒)をメッセージに設定する。
    1673          * 最大値は 65535。
     1598         * 送信を開始してからの時間(秒)をメッセージに設定する。
     1599         * 最大値は 65535。
    16741600         */
    16751601        if (SYSTIM2SEC(interval) < 65536)
     
    16791605        HOST2MSG16(ct->snd_msg->msg.secs, ct->secs);
    16801606
    1681         /* ノンブロッキングコールでメッセージを送信する。*/
     1607        /* ノンブロッキングコールでメッセージを送信する。*/
    16821608        error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
    16831609        if (error != E_WBLK) {
     
    16871613                }
    16881614
    1689         /* 送信間隔を設定する。*/
     1615        /* 送信間隔を設定する。*/
    16901616        if (ct->interval == 0)
    1691                 /* 未設定 */
     1617                /* 未設定 */
    16921618                ct->interval = TMO_DHCP4C_INIT_INTVL;
    16931619        else
    1694                 /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
     1620                /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
    16951621                ct->interval += (netapp_rand() >> 2) % (ct->interval << 1);
    16961622       
    1697         /* 送信周期の制限値をè¶
    1698 ãˆãªã„ようにする。*/
     1623        /* 送信周期の制限値を超えないようにする。*/
    16991624        if (ct->interval > TMO_DHCP4C_MAX_BACKOFF)
    17001625                ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF);
    17011626
    1702         /* OFFER メッセージの受信タイムアウトをè¶
    1703 ãˆãªã„ように調整する。*/
     1627        /* OFFER メッセージの受信タイムアウトを超えないように調整する。*/
    17041628        if (TIMEC_GT(time + ct->interval, ct->snd_start + TMO_DHCP4C_OFFER))
    17051629                ct->interval = (TMO_DHCP4C_INIT_INTVL + TMO_DHCP4C_OFFER) - time + 1;
    17061630
    1707         /* 再送信タイムアウトを設定する。*/
     1631        /* 再送信タイムアウトを設定する。*/
    17081632        DHCP4_CLI_TIMER_LOCK();
    17091633        ct->timers[DHCP4C_TIMER_SND_DISC] = SYSTIM2TIMER(ct->interval);
     
    17141638
    17151639/*
    1716  *  dhcpc_timer -- TIMER 管理
     1640 *  dhcpc_timer -- TIMER 管理
    17171641 */
    17181642
     
    17341658        DHCP4_CLI_TIMER_UNLOCK();
    17351659
    1736         /* 1秒毎にタイムアウトする。*/
     1660        /* 1秒毎にタイムアウトする。*/
    17371661        timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ);
    17381662        }
     
    17411665
    17421666/*
    1743  *  expire_timeout -- EXPIRE タイムアウト処理
     1667 *  expire_timeout -- EXPIRE タイムアウト処理
    17441668 */
    17451669
     
    17491673        //ER    error;
    17501674
    1751         /* タイムアウトフラグをクリアーする。*/
     1675        /* タイムアウトフラグをクリアーする。*/
    17521676        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    17531677
    1754         /* 状æ
    1755 ‹ãŒ REQUEST の時は何もしない。*/
     1678        /* 状態が REQUEST の時は何もしない。*/
    17561679        if (ct->fsm == DHCP4_FSM_REQUEST)
    17571680                return;
    17581681
    1759         /* å
    1760 ¨ã¦ã® TIMER をキャンセルする。*/
     1682        /* 全ての TIMER をキャンセルする。*/
    17611683        cancel_all_timers(ct);
    17621684
    1763         /* リースされたæƒ
    1764 å ±ã‚’解放する。*/
     1685        /* リースされた情報を解放する。*/
    17651686        rel_lease(ct);
    17661687
     
    17691690
    17701691/*
    1771  *  rebind_timeout -- REBIND タイムアウト処理
     1692 *  rebind_timeout -- REBIND タイムアウト処理
    17721693 */
    17731694
     
    17751696rebind_timeout (T_DHCP4_CLI_CONTEXT *ct)
    17761697{
    1777         /* タイムアウトフラグをクリアーする。*/
     1698        /* タイムアウトフラグをクリアーする。*/
    17781699        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    17791700
    1780         /* å
    1781 ¨ã¦ã® TIMER をキャンセルする。*/
     1701        /* 全ての TIMER をキャンセルする。*/
    17821702        cancel_all_timers(ct);
    17831703
    1784         /* REQUEST メッセージを送信して REBIND 状æ
    1785 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1704        /* REQUEST メッセージを送信して REBIND 状態に遷移する。*/
    17861705        start_send_request(ct, DHCP4_FSM_REBIND);
    17871706        }
    17881707
    17891708/*
    1790  *  renew_timeout -- RENEW タイムアウト処理
     1709 *  renew_timeout -- RENEW タイムアウト処理
    17911710 */
    17921711
     
    17941713renew_timeout (T_DHCP4_CLI_CONTEXT *ct)
    17951714{
    1796         /* タイムアウトフラグをクリアーする。*/
     1715        /* タイムアウトフラグをクリアーする。*/
    17971716        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    17981717
    1799         /* REQUEST メッセージを送信して RENEW 状æ
    1800 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1718        /* REQUEST メッセージを送信して RENEW 状態に遷移する。*/
    18011719        start_send_request(ct, DHCP4_FSM_RENEW);
    18021720        }
    18031721
    18041722/*
    1805  *  dispatch_timeout -- タイムアウトした時の処理
     1723 *  dispatch_timeout -- タイムアウトした時の処理
    18061724 */
    18071725
     
    18531771
    18541772/*
    1855  *  dispatch_event -- イベント毎の処理
     1773 *  dispatch_event -- イベント毎の処理
    18561774 */
    18571775
     
    18631781        while (ct->fsm != DHCP4_FSM_SLEEP && error == E_OK) {
    18641782
    1865                 /* メッセージの受信とタイムアウトをå¾
    1866 ã¤ã€‚*/
     1783                /* メッセージの受信とタイムアウトを待つ。*/
    18671784                DHCP4_CLI_READY_WAIT(ct);
    18681785
     
    18861803
    18871804/*
    1888  *  init_context -- DHCP クライアントコンテキスト構造体を初期化する。
     1805 *  init_context -- DHCP クライアントコンテキスト構造体を初期化する。
    18891806 */
    18901807
     
    19011818
    19021819/*
    1903  *  rel_cli_msg -- メッセージ構造体を解放する。
     1820 *  rel_cli_msg -- メッセージ構造体を解放する。
    19041821 */
    19051822
     
    19331850
    19341851/*
    1935  *  init_cli_msg -- 各メッセージ構造体を初期化する。
     1852 *  init_cli_msg -- 各メッセージ構造体を初期化する。
    19361853 */
    19371854
     
    19431860        int             count;
    19441861
    1945         /* 送信メッセージ構造体を獲得する。*/
     1862        /* 送信メッセージ構造体を獲得する。*/
    19461863        if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&ct->snd_msg, TMO_DHCP4C_MPF_GET)) != E_OK) {
    19471864                syslog(LOG_NOTICE, "[DHCP4C] error, tget_mpf() for send: %s.", itron_strerror(error));
     
    19501867
    19511868        /*
    1952          *  有効なリース・メッセージ構造体がある場合は、
    1953          *  獲得する受信メッセージ構造体リストの構造体を 1減らす。
     1869         *  有効なリース・メッセージ構造体がある場合は、
     1870         *  獲得する受信メッセージ構造体リストの構造体を 1減らす。
    19541871         */
    19551872        if (ct->act_msg == NULL)
     
    19581875                count = NUM_DHCP4_MSG_LIST - 1;
    19591876
    1960         /* 受信メッセージ構造体を獲得する。*/
     1877        /* 受信メッセージ構造体を獲得する。*/
    19611878        while (count --> 0) {
    19621879                if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&cell, TMO_DHCP4C_MPF_GET)) != E_OK) {
     
    19721889
    19731890/*
    1974  *  dhcp4c_renew_info -- ネットワークæƒ
    1975 å ±ã‚’再取得する。
     1891 *  dhcp4c_renew_info -- ネットワーク情報を再取得する。
    19761892 */
    19771893
     
    19811897        if (context.fsm == DHCP4_FSM_BOUND) {
    19821898
    1983                 /* REL_INFO 状æ
    1984 ‹ã«é·ç§»ã—た後に SLEEP を解除するように設定する。*/
     1899                /* REL_INFO 状態に遷移した後に SLEEP を解除するように設定する。*/
    19851900                context.flags |= DHCP4C_FLAG_RENEW;
    19861901                start_rel_info(&context);
     
    19891904        else if (context.fsm == DHCP4_FSM_SLEEP) {
    19901905
    1991                 /* SLEEP を解除する。*/
     1906                /* SLEEP を解除する。*/
    19921907                context.fsm = DHCP4_FSM_WAKE;
    19931908                context.timer = 0;
     
    20001915
    20011916/*
    2002  *  dhcp4c_rel_info -- DHCP で設定されたネットワークæƒ
    2003 å ±ã‚’解放する。
     1917 *  dhcp4c_rel_info -- DHCP で設定されたネットワーク情報を解放する。
    20041918 */
    20051919
     
    20071921dhcp4c_rel_info (void)
    20081922{
    2009         /* REL_INFO 状æ
    2010 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1923        /* REL_INFO 状態に遷移する。*/
    20111924        start_rel_info(&context);
    20121925        return E_OK;
     
    20141927
    20151928/*
    2016  *  dhcp4c_get_info -- DHCP で設定されたネットワークæƒ
    2017 å ±ã‚’返す。
     1929 *  dhcp4c_get_info -- DHCP で設定されたネットワーク情報を返す。
    20181930 */
    20191931
     
    20381950
    20391951/*
    2040  *  コールバック関数
     1952 *  コールバック関数
    20411953 */
    20421954
     
    20491961        len = *(ER_UINT*)p_parblk;
    20501962        if (len < 0 && len != E_RLWAI) {
    2051                 /* E_RLWAI 以外で、0 以下の場合は、エラーを意味している。*/
     1963                /* E_RLWAI 以外で、0 以下の場合は、エラーを意味している。*/
    20521964                syslog(LOG_NOTICE, "[DHCPC(CBR)] error: %s, fncd: %s", itron_strerror(len), in_strtfn(fncd));
    20531965                }
     
    20551967                if (fncd == TEV_UDP_RCV_DAT) {
    20561968
    2057                         /* 受信メッセージリストが空の時は、受信しないでデータグラムを捨てる。*/
     1969                        /* 受信メッセージリストが空の時は、受信しないでデータグラムを捨てる。*/
    20581970                        if (context.rcv_lst == NULL)
    20591971                                syslog(LOG_NOTICE, "[DHCP4C(CBR)] receive buffer all busy.");
    20601972                        else {
    2061                                 /* メッセージを受信するメッセージ構造体を準備する。*/
     1973                                /* メッセージを受信するメッセージ構造体を準備する。*/
    20621974                                syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
    20631975                                msg = context.rcv_lst;
     
    20651977                                syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
    20661978
    2067                                 /* メッセージを受信する。*/
     1979                                /* メッセージを受信する。*/
    20681980                                len = udp_rcv_dat(context.cepid, &msg->srv, &msg->msg, sizeof(msg->msg), TMO_POL);
    20691981
     
    20711983                                msg->len = len;
    20721984                                if (len >= 0) {
    2073                                         /* 受信したメッセージを検証メッセージリストに移す。*/
     1985                                        /* 受信したメッセージを検証メッセージリストに移す。*/
    20741986                                        msg->next = context.val_lst;
    20751987                                        context.val_lst = msg;
     
    20771989                                        }
    20781990                                else {
    2079                                         /* メッセージ構造体を受信メッセージリストに戻す。*/
     1991                                        /* メッセージ構造体を受信メッセージリストに戻す。*/
    20801992                                        context.error = len;
    20811993                                        msg->next = context.rcv_lst;
     
    20932005
    20942006/*
    2095  *  dhcp4_cli_task -- DHCP クライアントタスク
     2007 *  dhcp4_cli_task -- DHCP クライアントタスク
    20962008 */
    20972009
     
    21092021        ct = &context;
    21102022
    2111         /* DHCP クライアントコンテキスト構造体を初期化する。*/
     2023        /* DHCP クライアントコンテキスト構造体を初期化する。*/
    21122024        init_context(ct, tskid, (ID)exinf);
    21132025        ct->fsm = DHCP4_FSM_SLEEP;
     
    21152027        while (true) {
    21162028
    2117                 /* リースを解放後、再取得が指定されていなければ休止する。*/
     2029                /* リースを解放後、再取得が指定されていなければ休止する。*/
    21182030                if (!(ct->flags & DHCP4C_FLAG_RENEW)) {
    21192031
    2120                         /* 休止する。*/
     2032                        /* 休止する。*/
    21212033                        if (error == E_OK) {
    21222034                                if (ct->fsm != DHCP4_FSM_SLEEP)
     
    21322044                ct->error = E_OK;
    21332045
    2134                 /* 1秒毎にタイムアウトするようにタイマーを設定する。*/
     2046                /* 1秒毎にタイムアウトするようにタイマーを設定する。*/
    21352047                timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP4C_TIMER_HZ);
    21362048
    2137                 /* メッセージ構造体を初期化する。*/
     2049                /* メッセージ構造体を初期化する。*/
    21382050                if ((error = init_cli_msg(ct)) == E_OK) {
    21392051
    2140                         /* SELECT 状æ
    2141 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     2052                        /* SELECT 状態に遷移する。*/
    21422053                        start_select(ct);
    21432054
    2144                         /* メインループ */
     2055                        /* メインループ */
    21452056                        error = dispatch_event(ct);
    21462057                        }
    21472058
    2148                 /* å
    2149 ¨ã¦ã® TIMER をキャンセルする。*/
     2059                /* 全ての TIMER をキャンセルする。*/
    21502060                cancel_all_timers(ct);
    21512061
    2152                 /* タイマーを停止する。*/
     2062                /* タイマーを停止する。*/
    21532063                untimeout((callout_func)dhcpc_timer, ct);
    21542064
    2155                 /* メッセージ構造体を解放する。*/
     2065                /* メッセージ構造体を解放する。*/
    21562066                rel_cli_msg (ct);
    21572067                }
     
    21642074{
    21652075        T_DHCP4_CLI_CONTEXT *ct = &context;
    2166         /* DHCP クライアントコンテキスト構造体を初期化する。*/
     2076        /* DHCP クライアントコンテキスト構造体を初期化する。*/
    21672077        init_context(ct, tskid, cepid);
    21682078        ct->fsm = DHCP4_FSM_SLEEP;
     
    21922102                return;
    21932103
    2194         /* 1秒毎にタイムアウトするようにタイマーを設定する。*/
     2104        /* 1秒毎にタイムアウトするようにタイマーを設定する。*/
    21952105        ct->timer = 1000 * 1000;
    21962106
     
    22142124                ct->error = E_OK;
    22152125
    2216                 /* メッセージ構造体を初期化する。*/
     2126                /* メッセージ構造体を初期化する。*/
    22172127                if ((ct->error = init_cli_msg(ct)) != E_OK)
    22182128                        return;
     
    22202130                ct->timer = 1000 * 1000;
    22212131
    2222                 /* SELECT 状æ
    2223 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     2132                /* SELECT 状態に遷移する。*/
    22242133                start_select(ct);
    22252134                }
     
    22402149
    22412150        if (ct->error != E_OK || ct->fsm == DHCP4_FSM_SLEEP) {
    2242                 /* å
    2243 ¨ã¦ã® TIMER をキャンセルする。*/
     2151                /* 全ての TIMER をキャンセルする。*/
    22442152                cancel_all_timers(ct);
    22452153                ct->timer = TMO_FEVR;
    22462154
    2247                 /* メッセージ構造体を解放する。*/
     2155                /* メッセージ構造体を解放する。*/
    22482156                rel_cli_msg(ct);
    22492157
    2250                 /* リースを解放後、再取得が指定されていなければ休止する。*/
     2158                /* リースを解放後、再取得が指定されていなければ休止する。*/
    22512159                if (!(ct->flags & DHCP4C_FLAG_RENEW)) {
    22522160
    2253                         /* 休止する。*/
     2161                        /* 休止する。*/
    22542162                        if (ct->error == E_OK) {
    22552163                                if (ct->fsm != DHCP4_FSM_SLEEP)
Note: See TracChangeset for help on using the changeset viewer.