Ignore:
Timestamp:
Aug 3, 2017, 10:46:41 PM (7 years ago)
Author:
coas-nagasima
Message:

プロパティの文字コードにUTF-8を追加、キーワードを削除

File:
1 edited

Legend:

Unmodified
Added
Removed
  • asp3_gr_sakura/trunk/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
    r317 r318  
    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;
     
    207192
    208193/*
    209  *  dhcp4_cksum -- チェックサムの計算関数
     194 *  dhcp4_cksum -- チェックサムの計算関数
    210195 */
    211196
    212197static uint32_t
    213 dhcp4_cksum (void *data, uint_t len /*オクテット単位*/)
     198dhcp4_cksum (void *data, uint_t len /*オクテット単位*/)
    214199{
    215200        uint32_t carry, sum = 0;
     
    229214
    230215/*
    231  *  create_xid -- トランザクション ID を生成する。
     216 *  create_xid -- トランザクション ID を生成する。
    232217 */
    233218
     
    245230
    246231/*
    247  *  find_option_sub -- 指定したオプションを探索する。
     232 *  find_option_sub -- 指定したオプションを探索する。
    248233 *
    249  *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
     234 *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
    250235 */
    251236
     
    282267
    283268/*
    284  *  find_option -- 指定したオプションを探索する。
     269 *  find_option -- 指定したオプションを探索する。
    285270 *
    286  *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
     271 *    注意: 引数 size が 0 の時はオプションサイズを検証しない。
    287272 */
    288273
     
    296281
    297282/*
    298  *  is_equal_sid -- メッセージå†
    299 ã® SERVER ID を比較する。
     283 *  is_equal_sid -- メッセージ内の SERVER ID を比較する。
    300284 */
    301285
     
    314298
    315299/*
    316  *  timer_value -- メッセージから時間æƒ
    317 å ±ã‚’取り出す。
     300 *  timer_value -- メッセージから時間情報を取り出す。
    318301 */
    319302
     
    328311        else {
    329312
    330                 /* サーバからのリース時間は[s]。*/
     313                /* サーバからのリース時間は[s]。*/
    331314                seconds = msg2host32(opt + 2);
    332315
    333                 /* コンテキストå†
    334 ã®ãƒªãƒ¼ã‚¹æ™‚間は SYSTIM_HZ。*/
     316                /* コンテキスト内のリース時間は SYSTIM_HZ。*/
    335317                if (seconds == DHCP4_TIME_INFINITY)
    336318                        return DHCP4_TIME_INFINITY;
     
    343325
    344326/*
    345  *  rel_addr -- IPv4 アドレス、サブネットマスク、静的経路表を解放する。
     327 *  rel_addr -- IPv4 アドレス、サブネットマスク、静的経路表を解放する。
    346328 */
    347329
     
    386368
    387369/*
    388  *  rel_options -- リースされたオプションを解析して値を解放する。
     370 *  rel_options -- リースされたオプションを解析して値を解放する。
    389371 */
    390372
     
    452434
    453435/*
    454  *  rel_lease -- リースされたæƒ
    455 å ±ã‚’解放する。
     436 *  rel_lease -- リースされた情報を解放する。
    456437 */
    457438
     
    459440rel_lease (T_DHCP4_CLI_CONTEXT *ct)
    460441{
    461         /* 有効なリース・メッセージ構造体が無ければ何もしない。*/
     442        /* 有効なリース・メッセージ構造体が無ければ何もしない。*/
    462443        if (ct->act_msg == NULL)
    463444                return;
    464445
    465         /* リースされたオプションを解析して値を解放する。*/
     446        /* リースされたオプションを解析して値を解放する。*/
    466447        rel_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN,
    467448                      ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true);
    468449        rel_addr();
    469450
    470         /* 有効なリース・メッセージ構造体を解放する。*/
     451        /* 有効なリース・メッセージ構造体を解放する。*/
    471452        syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)ct->act_msg));
    472453        ct->act_msg = NULL;
     
    474455
    475456/*
    476  *  set_addr -- IPv4 アドレス、サブネットマスク、静的経路表を設定する。
     457 *  set_addr -- IPv4 アドレス、サブネットマスク、静的経路表を設定する。
    477458 */
    478459
     
    513494
    514495/*
    515  *  set_options -- リースされたオプションを解析して値を設定する。
     496 *  set_options -- リースされたオプションを解析して値を設定する。
    516497 */
    517498
     
    586567
    587568/*
    588  *  set_lease -- リースされたæƒ
    589 å ±ã‚’設定する。
     569 *  set_lease -- リースされた情報を設定する。
    590570 */
    591571
     
    593573set_lease (T_DHCP4_CLI_CONTEXT *ct)
    594574{
    595         /* リースされたオプションを解析して値を設定する。*/
     575        /* リースされたオプションを解析して値を設定する。*/
    596576        set_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN,
    597577                      ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true);
     
    599579
    600580/*
    601  *  validate_duplicate -- 指定された IPv4 アドレスが使われていないか検証する。
     581 *  validate_duplicate -- 指定された IPv4 アドレスが使われていないか検証する。
    602582 *
    603  *    使われていない時は true を返す。
     583 *    使われていない時は true を返す。
    604584 */
    605585
     
    609589        T_IN4_ADDR      yiaddr;
    610590
    611         /* 指定された IPv4 アドレスが ADDR ANY なら使われていないと判断する。*/
     591        /* 指定された IPv4 アドレスが ADDR ANY なら使われていないと判断する。*/
    612592        yiaddr = ntohl(msg->msg.yiaddr);
    613593        if (yiaddr == IPV4_ADDRANY)
    614594                return true;
    615595
    616         /* ARP キャッシュにあれば使われていると判断する。*/
     596        /* ARP キャッシュにあれば使われていると判断する。*/
    617597        if (arp_lookup(yiaddr, false) != NULL)
    618598                return false;
    619599
    620600        /*
    621          *  ARP 要求を出力して TMO_DHCP4C_ARP_WAIT å¾
    622 ã¡ã€
    623          *  ARP キャッシュになければ使われていないと判断する。
     601         *  ARP 要求を出力して TMO_DHCP4C_ARP_WAIT 待ち、
     602         *  ARP キャッシュになければ使われていないと判断する。
    624603         */
    625604        arp_request(&IF_ETHER_NIC_GET_SOFTC()->ifaddr, yiaddr);
     
    629608
    630609/*
    631  *  validate_rcv_msg -- 受信メッセージを検証する。
     610 *  validate_rcv_msg -- 受信メッセージを検証する。
    632611 */
    633612
     
    637616        uint8_t         *opt;
    638617
    639         /* packet type が DHCP4_REPLY であることを確認する。*/
     618        /* packet type が DHCP4_REPLY であることを確認する。*/
    640619        if (!(msg->msg.op == DHCP4_REPLY))
    641620                return false;
    642621
    643         /* メッセージタイプオプションがあることを確認する。*/
     622        /* メッセージタイプオプションがあることを確認する。*/
    644623        if ((opt = find_option(msg, DHCP4_OPT_MSG_TYPE, 1)) == NULL)
    645624                return E_PAR;
    646625
    647         /* メッセージのタイプが一致していることを検証する。*/
     626        /* メッセージのタイプが一致していることを検証する。*/
    648627        msg->type = *(opt + 2);
    649628        switch (ct->fsm) {
     
    675654                }
    676655
    677         /* マジック番号を検証する。*/
     656        /* マジック番号を検証する。*/
    678657        if (memcmp((uint8_t*)&msg->msg.options, magicno, DHCP4_MAGIC_LEN))
    679658                return E_PAR;
    680659
    681         /* トランザクション ID が異なっていればエラー */
     660        /* トランザクション ID が異なっていればエラー */
    682661        if (ntohl(msg->msg.xid) != ct->xid)
    683662                return E_PAR;
    684663
    685         /* ハードウェアアドレス長が 6(MAC アドレス長)でなければエラー */
     664        /* ハードウェアアドレス長が 6(MAC アドレス長)でなければエラー */
    686665        if (msg->msg.hlen != ETHER_ADDR_LEN)
    687666                return E_PAR;
    688667
    689         /* ハードウェアアドレスが異なっていればエラー */
     668        /* ハードウェアアドレスが異なっていればエラー */
    690669        if (memcmp(&msg->msg.chaddr, &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr)))
    691670                return E_PAR;
    692671
    693672        /*
    694          *  メッセージタイプが OFFER の場合は、
    695          *  ARP を使用して、指定された IPv4 アドレスが使われていないか検証する。
    696          *  使われている時は、他の IPv4 アドレスの提供をå¾
    697 ã¤ã€‚
     673         *  メッセージタイプが OFFER の場合は、
     674         *  ARP を使用して、指定された IPv4 アドレスが使われていないか検証する。
     675         *  使われている時は、他の IPv4 アドレスの提供を待つ。
    698676         */
    699677        if (msg->type == DHCP4_MTYPE_OFFER) {
     
    706684
    707685/*
    708  *  eval_prefer -- 受信メッセージの推奨度を評価する。
     686 *  eval_prefer -- 受信メッセージの推奨度を評価する。
    709687 */
    710688
     
    714692        int     ix;
    715693
    716         /* 無効の場合は終了する。*/
     694        /* 無効の場合は終了する。*/
    717695        if (msg == NULL)
    718696                return;
    719697
    720         /* 指定された IPv4 アドレスが ADDR ANY なら推奨度を 0に設定する。*/
     698        /* 指定された IPv4 アドレスが ADDR ANY なら推奨度を 0に設定する。*/
    721699        if (ntohl(msg->msg.yiaddr) == IPV4_ADDRANY)
    722700                msg->prefer = 0;
     
    726704#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    727705
    728         /* 要求オプションを検証する。*/
     706        /* 要求オプションを検証する。*/
    729707        for (ix = sizeof(request_plist); ix -- > 0; ) {
    730708                if (find_option(msg, request_plist[ix], 0) != NULL)
     
    736714#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
    737715
    738         /* å¿
    739 é ˆã‚ªãƒ—ションを検証する。*/
     716        /* 必須オプションを検証する。*/
    740717        for (ix = sizeof(required_plist); ix -- > 0; ) {
    741718                if (find_option(msg, required_plist[ix], 0) == NULL)
     
    747724
    748725/*
    749  *  eval_rcv_msg -- 受信メッセージを評価する。
     726 *  eval_rcv_msg -- 受信メッセージを評価する。
    750727 */
    751728
     
    755732        T_DHCP4_CLI_MSG *evl, *msg;
    756733
    757         /* メッセージを受信していなければ中止する。*/
     734        /* メッセージを受信していなければ中止する。*/
    758735        syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
    759736        if (ct->val_lst == NULL) {
     
    762739                }
    763740
    764         /* 検証メッセージリストから評価メッセージを取り出す。*/
     741        /* 検証メッセージリストから評価メッセージを取り出す。*/
    765742        evl         = ct->val_lst;
    766743        ct->val_lst = ct->val_lst->next;
     
    768745        syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
    769746
    770         /* 評価メッセージを検証する。*/
     747        /* 評価メッセージを検証する。*/
    771748        if (validate_rcv_msg(ct, evl) != E_OK) {
    772749
    773                 /* エラーが発生した評価メッセージを受信メッセージ構造体リストに戻す。*/
     750                /* エラーが発生した評価メッセージを受信メッセージ構造体リストに戻す。*/
    774751                goto rcv_ret;
    775752                }
    776753
    777         /* 受信したメッセージが NAK の時の処理 */
     754        /* 受信したメッセージが NAK の時の処理 */
    778755        if (evl->type == DHCP4_MTYPE_NAK) {
    779756
    780                 /* リースされたæƒ
    781 å ±ã‚’解放する。*/
     757                /* リースされた情報を解放する。*/
    782758                rel_lease(ct);
    783759
    784                 /* å†
    785 éƒ¨ã‚¨ãƒ©ãƒ¼ã‚’設定して終了する。*/
     760                /* 内部エラーを設定して終了する。*/
    786761                return E_PAR;
    787762                }
    788763
    789         /* REL_INFO 状æ
    790 ‹ã®æ™‚の処理 */
     764        /* REL_INFO 状態の時の処理 */
    791765        //cons_printf(CONSOLE_PORTID, "evl_rcv_msg3[s=%d]\n", ct->fsm);
    792766        if (ct->fsm == DHCP4_FSM_REL_INFO) {
     
    798772                }
    799773
    800         /* 評価メッセージの推奨度を評価する。*/
     774        /* 評価メッセージの推奨度を評価する。*/
    801775        eval_prefer(evl);
    802776
    803         /* 推奨メッセージリストが空なら評価メッセージを移して終了する。*/
     777        /* 推奨メッセージリストが空なら評価メッセージを移して終了する。*/
    804778        if (ct->prf_lst == NULL) {
    805779                ct->max_prefer = evl->prefer;
     
    808782                }
    809783
    810         /* 評価メッセージの推奨度と推奨メッセージリストの最大推奨度を比較する。*/
     784        /* 評価メッセージの推奨度と推奨メッセージリストの最大推奨度を比較する。*/
    811785        if (evl->prefer > ct->max_prefer) {
    812786
    813787                /*
    814                  *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より高ければ、
    815                  *  推奨メッセージリストを受信メッセージ構造体リストに戻し、
    816                  *  評価メッセージを推奨メッセージリストに移す。
     788                 *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より高ければ、
     789                 *  推奨メッセージリストを受信メッセージ構造体リストに戻し、
     790                 *  評価メッセージを推奨メッセージリストに移す。
    817791                 */
    818792                ct->max_prefer = evl->prefer;
     
    835809
    836810                                /*
    837                                  *  推奨メッセージリストに同じ DHCP4_OPT_SERVER_ID のメッセージがあれば、
    838                                  *  評価メッセージを受信メッセージ構造体リストに戻す。
     811                                 *  推奨メッセージリストに同じ DHCP4_OPT_SERVER_ID のメッセージがあれば、
     812                                 *  評価メッセージを受信メッセージ構造体リストに戻す。
    839813                                 */
    840814                                goto rcv_ret;
     
    843817
    844818                /*
    845                  *  評価メッセージを推奨メッセージリストに移す。
     819                 *  評価メッセージを推奨メッセージリストに移す。
    846820                 */
    847821                evl->next   = ct->prf_lst;
     
    852826        /*else */
    853827                /*
    854                  *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より低ければ、
    855                  *  評価メッセージを受信メッセージ構造体リストに戻す。
     828                 *  評価メッセージの推奨度が推奨メッセージリストの最大推奨度より低ければ、
     829                 *  評価メッセージを受信メッセージ構造体リストに戻す。
    856830                 */
    857831
     
    865839
    866840/*
    867  *  select_msg -- 推奨メッセージを選択する。
     841 *  select_msg -- 推奨メッセージを選択する。
    868842 */
    869843
     
    875849        syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
    876850        if (ct->prf_lst == NULL) {
    877                 /* メッセージを受信していなければ中止する。*/
     851                /* メッセージを受信していなければ中止する。*/
    878852                syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
    879853                return NULL;
    880854                }
    881855
    882         /* 推奨メッセージリストのå
    883 ˆé ­ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’選択する。*/
     856        /* 推奨メッセージリストの先頭のメッセージを選択する。*/
    884857        select = ct->prf_lst;
    885858        ct->prf_lst  = ct->prf_lst->next;
    886859        select->next = NULL;
    887860
    888         /* 選択されなかった検証メッセージを受信メッセージ構造体リストに戻す。*/
     861        /* 選択されなかった検証メッセージを受信メッセージ構造体リストに戻す。*/
    889862        if (ct->rcv_lst == NULL)
    890863                ct->rcv_lst = ct->prf_lst;
     
    899872
    900873/*
    901  *  select_ack -- ACK メッセージを検証する。
     874 *  select_ack -- ACK メッセージを検証する。
    902875 *
    903  *    受けå
    904 ¥ã‚Œã‚‹ã“とが可能の時は true を返す。
     876 *    受け入れることが可能の時は true を返す。
    905877 */
    906878
     
    913885                return false;
    914886
    915         /* 有効なリース・メッセージが残っていれば、受信メッセージ構造体リストに戻す。*/
     887        /* 有効なリース・メッセージが残っていれば、受信メッセージ構造体リストに戻す。*/
    916888        if (ct->act_msg != NULL) {
    917889                syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
     
    921893                }
    922894
    923         /* 有効なリース・メッセージに設定する。*/
     895        /* 有効なリース・メッセージに設定する。*/
    924896        ct->act_msg = msg;
    925897        return true;
     
    927899
    928900/*
    929  *  select_offer -- OFFER メッセージを検証する。
     901 *  select_offer -- OFFER メッセージを検証する。
    930902 *
    931  *    受けå
    932 ¥ã‚Œã‚‹ã“とが可能の時は true を返す。
     903 *    受け入れることが可能の時は true を返す。
    933904 */
    934905
     
    940911
    941912/*
    942  *  cancel_all_timers -- å
    943 ¨ã¦ã® TIMER をキャンセルする。
     913 *  cancel_all_timers -- 全ての TIMER をキャンセルする。
    944914 */
    945915
     
    957927
    958928/*
    959  *  start_select -- DISCOVER メッセージを送信して SELECT 状æ
    960 ‹ã«é·ç§»ã™ã‚‹ã€‚
     929 *  start_select -- DISCOVER メッセージを送信して SELECT 状態に遷移する。
    961930 */
    962931
     
    964933start_select (T_DHCP4_CLI_CONTEXT *ct)
    965934{
    966         /* 送信を開始した時間を記録する。*/
     935        /* 送信を開始した時間を記録する。*/
    967936        get_tim(&ct->snd_start);
    968937
    969         /* OFFER メッセージ受信タイムアウトを設定する。*/
     938        /* OFFER メッセージ受信タイムアウトを設定する。*/
    970939        syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    971940        ct->timers[DHCP4C_TIMER_RCV_OFFER] = SYSTIM2TIMER(TMO_DHCP4C_OFFER);
    972941        syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
    973942
    974         /* 送信å
    975 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãƒ­ãƒ¼ã‚«ãƒ«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¸ã®ãƒ–ロードキャストを設定する。*/
     943        /* 送信先アドレスにローカルネットワークへのブロードキャストを設定する。*/
    976944        ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    977945
    978         /* 送信間隔をリセットする。*/
     946        /* 送信間隔をリセットする。*/
    979947        ct->interval = 0;
    980948
    981         /* SELECT 状æ
    982 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     949        /* SELECT 状態に遷移する。*/
    983950        ct->fsm = DHCP4_FSM_SELECT;
    984951
    985         /* DISCOVER メッセージを送信する。*/
     952        /* DISCOVER メッセージを送信する。*/
    986953        ct->flags |= DHCP4C_FLAG_TMOUT_SND_DISC;
    987954        syscall(sig_sem(SEM_DHCP4_CLI_READY));
     
    989956
    990957/*
    991  *  start_bound -- BOUND 状æ
    992 ‹ã«é·ç§»ã™ã‚‹ã€‚
     958 *  start_bound -- BOUND 状態に遷移する。
    993959 */
    994960
     
    996962start_bound (T_DHCP4_CLI_CONTEXT *ct)
    997963{
    998         /* リースされたæƒ
    999 å ±ã‚’設定する。*/
     964        /* リースされた情報を設定する。*/
    1000965        set_lease(ct);
    1001966
    1002         /* リースの有効時間を設定する。*/
     967        /* リースの有効時間を設定する。*/
    1003968        ct->expire = timer_value(ct->act_msg, DHCP4_OPT_LEASE_TIME, TMO_DHCP4C_DEF_LEASE);
    1004969
    1005         /* リース時間が TMO_DHCP4C_MIN_LEASE 以下の時は、TMO_DHCP4C_MIN_LEASE に設定する。*/
     970        /* リース時間が TMO_DHCP4C_MIN_LEASE 以下の時は、TMO_DHCP4C_MIN_LEASE に設定する。*/
    1006971        if (ct->expire < TMO_DHCP4C_MIN_LEASE)
    1007972                ct->expire = TMO_DHCP4C_MIN_LEASE;
    1008973
    1009         /* RENEW 状æ
    1010 ‹ã¾ã§ã®æ™‚間を設定する。*/
     974        /* RENEW 状態までの時間を設定する。*/
    1011975        ct->renew = timer_value(ct->act_msg, DHCP4_OPT_RENEWAL_T1, ct->expire / 2);
    1012976
    1013         /* REBIND 状æ
    1014 ‹ã¾ã§ã®æ™‚間を設定する。*/
     977        /* REBIND 状態までの時間を設定する。*/
    1015978        ct->rebind = timer_value(ct->act_msg, DHCP4_OPT_REBINDING_T2, ct->renew + ct->renew / 2 + ct->renew / 4);
    1016979
    1017         /* EXPIRE、RENEW、REBIND タイマーを設定する。*/
     980        /* EXPIRE、RENEW、REBIND タイマーを設定する。*/
    1018981        syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    1019         ct->timers[DHCP4C_TIMER_EXPIRE] = SYSTIM2TIMER(ct->expire);             /* EXPIRE      までの時間 */
    1020         ct->timers[DHCP4C_TIMER_REBIND] = SYSTIM2TIMER(ct->rebind);             /* REBIND(T2)までの時間 */
    1021         ct->timers[DHCP4C_TIMER_RENEW]  = SYSTIM2TIMER(ct->renew);              /* RENEW (T1)までの時間 */
     982        ct->timers[DHCP4C_TIMER_EXPIRE] = SYSTIM2TIMER(ct->expire);             /* EXPIRE      までの時間 */
     983        ct->timers[DHCP4C_TIMER_REBIND] = SYSTIM2TIMER(ct->rebind);             /* REBIND(T2)までの時間 */
     984        ct->timers[DHCP4C_TIMER_RENEW]  = SYSTIM2TIMER(ct->renew);              /* RENEW (T1)までの時間 */
    1022985        syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
    1023986
    1024         /* BOUND 状æ
    1025 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     987        /* BOUND 状態に遷移する。*/
    1026988        ct->fsm = DHCP4_FSM_BOUND;
    1027989
    1028         /* BIND を開始した時間を記録する。*/
     990        /* BIND を開始した時間を記録する。*/
    1029991        get_tim(&ct->bind_start);
    1030992        }
    1031993
    1032994/*
    1033  *  start_send_request -- REQUEST メッセージを送信して、指定された状æ
    1034 ‹ã«é·ç§»ã™ã‚‹ã€‚
     995 *  start_send_request -- REQUEST メッセージを送信して、指定された状態に遷移する。
    1035996 */
    1036997
     
    10401001        T_IFNET *ifp = IF_GET_IFNET();
    10411002
    1042         /* 送信を開始した時間を記録する。*/
     1003        /* 送信を開始した時間を記録する。*/
    10431004        get_tim(&ct->snd_start);
    10441005
    1045         /* 遷移する状æ
    1046 ‹ãŒ RENEW 以外では ACK/NAK メッセージ受信タイムアウトを設定する。*/
     1006        /* 遷移する状態が RENEW 以外では ACK/NAK メッセージ受信タイムアウトを設定する。*/
    10471007        if (fsm != DHCP4_FSM_RENEW) {
    10481008                syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
     
    10521012
    10531013        /*
    1054          *  遷移する状æ
    1055 ‹ãŒ RENEW で、
    1056          *  SERVER ID オプションがあればローカルネットワークへのブロードキャストを送信する。
     1014         *  遷移する状態が RENEW で、
     1015         *  SERVER ID オプションがあればローカルネットワークへのブロードキャストを送信する。
    10571016         */
    10581017        if ((fsm == DHCP4_FSM_RENEW) &&
     
    10621021                ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    10631022
    1064         /* 送信間隔をリセットする。*/
     1023        /* 送信間隔をリセットする。*/
    10651024        ct->interval = 0;
    10661025
    1067         /* 指定された状æ
    1068 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1026        /* 指定された状態に遷移する。*/
    10691027        ct->fsm = fsm;
    10701028
    1071         /* REQUEST メッセージを送信する。*/
     1029        /* REQUEST メッセージを送信する。*/
    10721030        ct->flags |= DHCP4C_FLAG_TMOUT_SND_REQ;
    10731031        syscall(sig_sem(SEM_DHCP4_CLI_READY));
     
    10751033
    10761034/*
    1077  *  start_rel_info -- アドレスæƒ
    1078 å ±ã‚’解放する。
     1035 *  start_rel_info -- アドレス情報を解放する。
    10791036 *
    1080  *    注意: DHCPv4 の RFC2131 には無い
     1037 *    注意: DHCPv4 の RFC2131 には無い
    10811038 */
    10821039
     
    10841041start_rel_info (T_DHCP4_CLI_CONTEXT *ct)
    10851042{
    1086         /* å
    1087 ¨ã¦ã® TIMER をキャンセルする。*/
     1043        /* 全ての TIMER をキャンセルする。*/
    10881044        cancel_all_timers(ct);
    10891045
    1090         /* 有効なリースæƒ
    1091 å ±ãŒç„¡ã‘れば SLEEP に遷移する。*/
     1046        /* 有効なリース情報が無ければ SLEEP に遷移する。*/
    10921047        if (ct->act_msg == NULL) {
    10931048                ct->fsm = DHCP4_FSM_SLEEP;
     
    10951050                }
    10961051
    1097         /* 送信å
    1098 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãƒ­ãƒ¼ã‚«ãƒ«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¸ã®ãƒ–ロードキャストを設定する。*/
     1052        /* 送信先アドレスにローカルネットワークへのブロードキャストを設定する。*/
    10991053        ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    11001054
    1101         /* RELEASE メッセージを送信する。*/
     1055        /* RELEASE メッセージを送信する。*/
    11021056        ct->flags |= DHCP4C_FLAG_TMOUT_SND_REL;
    11031057        syscall(sig_sem(SEM_DHCP4_CLI_READY));
     
    11051059
    11061060/*
    1107  *  setup_dhcp_com_msg -- DHCP メッセージのå
    1108 ±é€šéƒ¨åˆ†ã‚’作成する。
     1061 *  setup_dhcp_com_msg -- DHCP メッセージの共通部分を作成する。
    11091062 */
    11101063
     
    11171070        ct->snd_msg->len = sizeof(ct->snd_msg->msg);
    11181071
    1119         /* ヘッダ部を設定する。*/
     1072        /* ヘッダ部を設定する。*/
    11201073        ct->snd_msg->msg.op = op;
    11211074        ct->snd_msg->msg.htype = DHCP4_HWA_TYPE_ETHER;
     
    11231076        HOST2MSG32(ct->snd_msg->msg.xid, ct->xid);
    11241077
    1125         /* MAC アドレスを設定する。*/
     1078        /* MAC アドレスを設定する。*/
    11261079        memcpy(&ct->snd_msg->msg.chaddr, &ct->sc->ifaddr.lladdr, ETHER_ADDR_LEN);
    11271080
    11281081        /*
    1129          *  オプション部を設定する。
     1082         *  オプション部を設定する。
    11301083         */
    11311084
    1132         /* RFC1048 に定義されているマジック番号を設定する。*/
     1085        /* RFC1048 に定義されているマジック番号を設定する。*/
    11331086        memcpy(&ct->snd_msg->msg.options, magicno, DHCP4_MAGIC_LEN);
    11341087        option = ct->snd_msg->msg.options + DHCP4_MAGIC_LEN;
    11351088
    1136         /* DHCP メッセージタイプを設定する。*/
     1089        /* DHCP メッセージタイプを設定する。*/
    11371090        *(option ++) = DHCP4_OPT_MSG_TYPE;
    11381091        *(option ++) = 1;
     
    11431096
    11441097/*
    1145  *  setup_release_msg -- RELEASE メッセージを作成する。
     1098 *  setup_release_msg -- RELEASE メッセージを作成する。
    11461099 */
    11471100
     
    11511104        uint8_t *opt, *ref_opt;
    11521105
    1153         /* 有効なリース・メッセージがなければエラー */
     1106        /* 有効なリース・メッセージがなければエラー */
    11541107        if (ref == NULL)
    11551108                return E_PAR;
     
    11601113
    11611114        /*
    1162          *  サーバ ID(server-ip)を設定する。
    1163          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1164 §
     1115         *  サーバ ID(server-ip)を設定する。
     1116         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    11651117         */
    11661118        if ((ref_opt = find_option(ref, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR))) == NULL)
     
    11721124
    11731125        /*
    1174          *  クライアント ID(MAC アドレス)を設定する。
    1175          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1176 §
     1126         *  クライアント ID(MAC アドレス)を設定する。
     1127         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    11771128         */
    11781129        *(opt ++) = DHCP4_OPT_CLIENT_ID;
     
    11821133        opt += ETHER_ADDR_LEN;
    11831134
    1184         /* オプションの終了を設定する。*/
     1135        /* オプションの終了を設定する。*/
    11851136        *(opt ++) = DHCP4_OPT_END;
    11861137
    11871138        /*
    1188          *  クライアント IP アドレス(ciaddr)を設定する。
    1189          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1190 §
     1139         *  クライアント IP アドレス(ciaddr)を設定する。
     1140         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    11911141         */
    11921142        HOST2MSG32(ct->snd_msg->msg.ciaddr, IF_GET_IFNET()->in4_ifaddr.addr);
    11931143
    1194         /* メッセージ長を設定する。*/
     1144        /* メッセージ長を設定する。*/
    11951145        ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
    11961146                     + (opt - (uint8_t*)&ct->snd_msg->msg.options);
     
    12001150
    12011151/*
    1202  *  setup_request_msg -- REQUEST メッセージを作成する。
     1152 *  setup_request_msg -- REQUEST メッセージを作成する。
    12031153 */
    12041154
     
    12121162#endif
    12131163
    1214         /* 参ç
    1215 §ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒãªã‘ればエラー */
     1164        /* 参照するメッセージがなければエラー */
    12161165        if (ref == NULL)
    12171166                return E_PAR;
     
    12231172#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    12241173
    1225         /* 追加のオプションを設定する。*/
     1174        /* 追加のオプションを設定する。*/
    12261175
    12271176        *opt  = DHCP4_OPT_REQ_PARAM;
     
    12301179#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
    12311180
    1232         /* 要求オプションリストを設定する。*/
     1181        /* 要求オプションリストを設定する。*/
    12331182        if (sizeof(required_plist) > 0) {
    12341183                memcpy(opt, required_plist, sizeof(required_plist));
     
    12411190#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    12421191
    1243         /* 要求オプションリストを設定する。*/
     1192        /* 要求オプションリストを設定する。*/
    12441193        if (sizeof(request_plist) > 0) {
    12451194                memcpy(opt, request_plist, sizeof(request_plist));
     
    12551204
    12561205        /*
    1257          *  サーバ ID(server-ip)を設定する。
    1258          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1259 §
     1206         *  サーバ ID(server-ip)を設定する。
     1207         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    12601208         */
    12611209        if (ct->fsm == DHCP4_FSM_REQUEST) {
     
    12691217
    12701218        /*
    1271          *  要求 IP アドレス(requested-ip)を設定する。
    1272          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1273 §
    1274          *  RFC2131 では、DHCP4_FSM_RENEW の時 MUST NOT になっているが、
    1275          *  MUST のようである。
     1219         *  要求 IP アドレス(requested-ip)を設定する。
     1220         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
     1221         *  RFC2131 では、DHCP4_FSM_RENEW の時 MUST NOT になっているが、
     1222         *  MUST のようである。
    12761223         */
    12771224        *(opt ++) = DHCP4_OPT_REQ_IPV4;
     
    12791226        if (ct->fsm == DHCP4_FSM_REQUEST || ct->fsm == DHCP4_FSM_INIT_REBOOT ||
    12801227            ct->fsm == DHCP4_FSM_RENEW   || ct->fsm == DHCP4_FSM_REBIND)
    1281                 /* 参ç
    1282 §ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¨åŒã˜ IP アドレス(requested-ip)を要求する。*/
     1228                /* 参照メッセージと同じ IP アドレス(requested-ip)を要求する。*/
    12831229                memcpy(opt, (uint8_t*)&ref->msg.yiaddr, sizeof(ref->msg.yiaddr));
    12841230        else
     
    12871233
    12881234        /*
    1289          *  クライアント ID(MAC アドレス)を設定する。
    1290          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1291 §
     1235         *  クライアント ID(MAC アドレス)を設定する。
     1236         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    12921237         */
    12931238        *(opt ++) = DHCP4_OPT_CLIENT_ID;
     
    12971242        opt += ETHER_ADDR_LEN;
    12981243
    1299         /* オプションの終了を設定する。*/
     1244        /* オプションの終了を設定する。*/
    13001245        *(opt ++) = DHCP4_OPT_END;
    13011246
    13021247        /*
    1303          *  クライアント IP アドレス(ciaddr)を設定する。
    1304          *  RFC2131 4.4.1 Initialization and allocation of network address 参ç
    1305 §
     1248         *  クライアント IP アドレス(ciaddr)を設定する。
     1249         *  RFC2131 4.4.1 Initialization and allocation of network address 参照
    13061250         */
    13071251        if (ct->fsm == DHCP4_FSM_RENEW || ct->fsm == DHCP4_FSM_REBIND)
     
    13101254                HOST2MSG32(ct->snd_msg->msg.ciaddr, IPV4_ADDRANY);
    13111255
    1312         /* メッセージ長を設定する。*/
     1256        /* メッセージ長を設定する。*/
    13131257        ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
    13141258                     + (opt - (uint8_t*)&ct->snd_msg->msg.options);
     
    13171261
    13181262/*
    1319  *  setup_discover_msg -- DISCOVER メッセージを作成する。
     1263 *  setup_discover_msg -- DISCOVER メッセージを作成する。
    13201264 */
    13211265
     
    13351279#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    13361280
    1337         /* 追加のオプションを設定する。*/
     1281        /* 追加のオプションを設定する。*/
    13381282
    13391283        *opt  = DHCP4_OPT_REQ_PARAM;
     
    13421286#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
    13431287
    1344         /* 要求オプションリストを設定する。*/
     1288        /* 要求オプションリストを設定する。*/
    13451289        if (sizeof(required_plist) > 0) {
    13461290                memcpy(opt, required_plist, sizeof(required_plist));
     
    13531297#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
    13541298
    1355         /* 要求オプションリストを設定する。*/
     1299        /* 要求オプションリストを設定する。*/
    13561300        if (sizeof(request_plist) > 0) {
    13571301                memcpy(opt, request_plist, sizeof(request_plist));
     
    13661310#endif  /* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST) */
    13671311
    1368         /* 既にアドレスæƒ
    1369 å ±ãŒãƒªãƒ¼ã‚¹ã•ã‚Œã¦ã„れば、同じ IP アドレスを要求する。*/
     1312        /* 既にアドレス情報がリースされていれば、同じ IP アドレスを要求する。*/
    13701313        if (ct->act_msg != NULL) {
    13711314                *(opt ++) = DHCP4_OPT_REQ_IPV4;
     
    13751318                }
    13761319
    1377         /* クライアント ID(MAC アドレス)を設定する。*/
     1320        /* クライアント ID(MAC アドレス)を設定する。*/
    13781321        *(opt ++) = DHCP4_OPT_CLIENT_ID;
    13791322        *(opt ++) = ETHER_ADDR_LEN + 1;
     
    13821325        opt += ETHER_ADDR_LEN;
    13831326
    1384         /* オプションの終了を設定する。*/
     1327        /* オプションの終了を設定する。*/
    13851328        *(opt ++) = DHCP4_OPT_END;
    13861329
    1387         /* 送信å
    1388 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定する。*/
     1330        /* 送信先アドレスを設定する。*/
    13891331        ct->dst.ipaddr = IPV4_ADDRBROADCAST;
    13901332
    1391         /* メッセージ長を設定する。*/
     1333        /* メッセージ長を設定する。*/
    13921334        ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
    13931335                     + (opt - (uint8_t*)&ct->snd_msg->msg.options);
     
    13961338
    13971339/*
    1398  *  ack_msg_timeout -- ACK/NAK メッセージ受信タイムアウト処理
     1340 *  ack_msg_timeout -- ACK/NAK メッセージ受信タイムアウト処理
    13991341 */
    14001342
     
    14021344ack_msg_timeout (T_DHCP4_CLI_CONTEXT *ct)
    14031345{
    1404         /* ACK メッセージを受信していれば。BOUND 状æ
    1405 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1346        /* ACK メッセージを受信していれば。BOUND 状態に遷移する。*/
    14061347        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    14071348        if (select_ack(ct)) {
    14081349
    1409                 /* REQUEST メッセージ送信タイマーを停止する。*/
     1350                /* REQUEST メッセージ送信タイマーを停止する。*/
    14101351                syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    14111352                ct->timers[DHCP4C_TIMER_SND_REQ] = 0;
     
    14131354
    14141355                /*
    1415                  *  状æ
    1416 ‹ãŒ REQUEST の時は、
    1417                  *  OFFER メッセージを受信メッセージ構造体リストに戻す。
     1356                 *  状態が REQUEST の時は、
     1357                 *  OFFER メッセージを受信メッセージ構造体リストに戻す。
    14181358                 */
    14191359                if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) {
     
    14251365                        }
    14261366
    1427                 /* BOUND 状æ
    1428 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1367                /* BOUND 状態に遷移する。*/
    14291368                start_bound(ct);
    14301369                return;
     
    14321371        else {
    14331372
    1434                 /* リースæƒ
    1435 å ±ã‚’解放する。*/
     1373                /* リース情報を解放する。*/
    14361374                rel_lease(ct);
    14371375
     
    14411379
    14421380/*
    1443  *  send_request_msg -- REQUEST メッセージを送信する。
     1381 *  send_request_msg -- REQUEST メッセージを送信する。
    14441382 */
    14451383
     
    14531391        uint16_t        secs;
    14541392
    1455         /* タイムアウトフラグをクリアーする。*/
     1393        /* タイムアウトフラグをクリアーする。*/
    14561394        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    14571395
    1458         /* ACK メッセージを受信していれば。BOUND 状æ
    1459 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1396        /* ACK メッセージを受信していれば。BOUND 状態に遷移する。*/
    14601397        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    14611398        if (select_ack(ct)) {
    14621399
    1463                 /* ACK/NAK メッセージ受信タイマーを停止する。*/
     1400                /* ACK/NAK メッセージ受信タイマーを停止する。*/
    14641401                syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    14651402                ct->timers[DHCP4C_TIMER_RCV_ACK] = 0;
     
    14671404
    14681405                /*
    1469                  *  状æ
    1470 ‹ãŒ REQUEST の時は、
    1471                  *  OFFER メッセージを受信メッセージ構造体リストに戻す。
     1406                 *  状態が REQUEST の時は、
     1407                 *  OFFER メッセージを受信メッセージ構造体リストに戻す。
    14721408                 */
    14731409                if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) {
     
    14791415                        }
    14801416
    1481                 /* BOUND 状æ
    1482 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1417                /* BOUND 状態に遷移する。*/
    14831418                start_bound(ct);
    14841419                return;
    14851420                }
    14861421
    1487         /* REQUEST メッセージを作成する。*/
     1422        /* REQUEST メッセージを作成する。*/
    14881423        if (ct->fsm == DHCP4_FSM_REQUEST)
    14891424                ref = ct->off_msg;
     
    14961431                }
    14971432
    1498         /* 送信を開始してからの時間を得る。*/
     1433        /* 送信を開始してからの時間を得る。*/
    14991434        get_tim(&time);
    15001435        interval = time - ct->snd_start;
    15011436
    15021437        /*
    1503          * 送信を開始してからの時間(秒)をメッセージに設定する。
    1504          * 最大値は 65535。
     1438         * 送信を開始してからの時間(秒)をメッセージに設定する。
     1439         * 最大値は 65535。
    15051440         */
    15061441        if (ct->fsm == DHCP4_FSM_REQUEST)
     
    15141449        HOST2MSG16(ct->snd_msg->msg.secs, secs);
    15151450
    1516         /* ノンブロッキングコールでメッセージを送信する。*/
     1451        /* ノンブロッキングコールでメッセージを送信する。*/
    15171452        error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
    15181453        if (error != E_WBLK) {
     
    15221457                }
    15231458
    1524         /* 送信間隔を設定する。*/
     1459        /* 送信間隔を設定する。*/
    15251460        if (ct->interval == 0)
    1526                 /* 未設定 */
     1461                /* 未設定 */
    15271462                ct->interval = TMO_DHCP4C_INIT_INTVL;
    15281463        else
    1529                 /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
     1464                /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
    15301465                ct->interval += (netapp_rand() >> 2) % (ct->interval << 1);
    15311466       
    1532         /* 送信周期の制限値をè¶
    1533 ãˆãªã„ようにする。*/
     1467        /* 送信周期の制限値を超えないようにする。*/
    15341468        if (ct->interval > TMO_DHCP4C_MAX_BACKOFF)
    15351469                ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF);
    15361470
    1537         /* リース時間のタイムアウト【å
    1538 ˆé€ã‚Šã€‘ */
     1471        /* リース時間のタイムアウト【先送り】 */
    15391472        if (ct->fsm != DHCP4_FSM_REQUEST &&
    15401473            TIMEC_GT(ct->interval + time, ct->expire + ct->bind_start))
    15411474                ct->interval = ct->expire + ct->bind_start - time + SYSTIM_HZ;
    15421475
    1543         /* 再送信タイムアウトを設定する。*/
     1476        /* 再送信タイムアウトを設定する。*/
    15441477        syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    15451478        ct->timers[DHCP4C_TIMER_SND_REQ] = SYSTIM2TIMER(ct->interval);
     
    15481481
    15491482/*
    1550  *  send_release_msg -- RELEASE メッセージを送信する。
     1483 *  send_release_msg -- RELEASE メッセージを送信する。
    15511484 */
    15521485
     
    15561489        ER              error;
    15571490
    1558         /* タイムアウトフラグをクリアーする。*/
     1491        /* タイムアウトフラグをクリアーする。*/
    15591492        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    15601493
    1561         /* RELEASE メッセージを作成する。*/
     1494        /* RELEASE メッセージを作成する。*/
    15621495        if ((error = setup_release_msg(ct, ct->act_msg)) != E_OK) {
    15631496                syslog(LOG_NOTICE, "[DHCP4C] error, setup release message: %s", itron_strerror(error));
     
    15661499                }
    15671500
    1568         /* リースæƒ
    1569 å ±ã‚’解放する。*/
     1501        /* リース情報を解放する。*/
    15701502        rel_lease(ct);
    15711503
    1572         /* ノンブロッキングコールでメッセージを送信する。*/
     1504        /* ノンブロッキングコールでメッセージを送信する。*/
    15731505        error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
    15741506        if (error != E_WBLK) {
     
    15781510                }
    15791511
    1580         /* メッセージ送信å¾
    1581 ã¡ã‚’行う。*/
     1512        /* メッセージ送信待ちを行う。*/
    15821513        syscall(wai_sem(SEM_DHCP4_CLI_READY));
    15831514
    1584         /* SLEEP 状æ
    1585 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1515        /* SLEEP 状態に遷移する。*/
    15861516        ct->fsm = DHCP4_FSM_SLEEP;
    15871517        }
    15881518
    15891519/*
    1590  *  offer_msg_timeout -- OFFER メッセージ受信タイムアウト処理
     1520 *  offer_msg_timeout -- OFFER メッセージ受信タイムアウト処理
    15911521 */
    15921522
     
    15941524offer_msg_timeout (T_DHCP4_CLI_CONTEXT *ct)
    15951525{
    1596         /* OFFER メッセージを受信していれば。REQUEST 状æ
    1597 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1526        /* OFFER メッセージを受信していれば。REQUEST 状態に遷移する。*/
    15981527        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    15991528        if (select_offer(ct)) {
    16001529
    1601                 /* DISCOVER メッセージ送信タイマーを停止する。*/
     1530                /* DISCOVER メッセージ送信タイマーを停止する。*/
    16021531                syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    16031532                ct->timers[DHCP4C_TIMER_SND_DISC] = 0;
    16041533                syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
    16051534
    1606                 /* REQUEST メッセージを送信して REQUEST 状æ
    1607 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1535                /* REQUEST メッセージを送信して REQUEST 状態に遷移する。*/
    16081536                start_send_request(ct, DHCP4_FSM_REQUEST);
    16091537                }
     
    16131541
    16141542/*
    1615  *  send_discover_msg -- DISCOVERメッセージを送信する。
     1543 *  send_discover_msg -- DISCOVERメッセージを送信する。
    16161544 */
    16171545
     
    16231551        RELTIM  interval;
    16241552
    1625         /* タイムアウトフラグをクリアーする。*/
     1553        /* タイムアウトフラグをクリアーする。*/
    16261554        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    16271555
    1628         /* OFFER メッセージを受信していれば。REQUEST 状æ
    1629 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1556        /* OFFER メッセージを受信していれば。REQUEST 状態に遷移する。*/
    16301557        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    16311558        if (select_offer(ct)) {
    16321559
    1633                 /* OFFER メッセージ受信タイマーを停止する。*/
     1560                /* OFFER メッセージ受信タイマーを停止する。*/
    16341561                syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    16351562                ct->timers[DHCP4C_TIMER_RCV_OFFER] = 0;
    16361563                syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
    16371564
    1638                 /* REQUEST メッセージを送信して REQUEST 状æ
    1639 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1565                /* REQUEST メッセージを送信して REQUEST 状態に遷移する。*/
    16401566                start_send_request(ct, DHCP4_FSM_REQUEST);
    16411567                return;
    16421568                }
    16431569
    1644         /* DISCOVER メッセージを作成する。*/
     1570        /* DISCOVER メッセージを作成する。*/
    16451571        if ((error = setup_discover_msg(ct)) != E_OK) {
    16461572                syslog(LOG_NOTICE, "[DHCP4C] error, setup discover message: %s", itron_strerror(error));
     
    16491575                }
    16501576
    1651         /* 送信を開始してからの時間を得る。*/
     1577        /* 送信を開始してからの時間を得る。*/
    16521578        get_tim(&time);
    16531579        interval = time - ct->snd_start;
    16541580
    16551581        /*
    1656          * 送信を開始してからの時間(秒)をメッセージに設定する。
    1657          * 最大値は 65535。
     1582         * 送信を開始してからの時間(秒)をメッセージに設定する。
     1583         * 最大値は 65535。
    16581584         */
    16591585        if (SYSTIM2SEC(interval) < 65536)
     
    16631589        HOST2MSG16(ct->snd_msg->msg.secs, ct->secs);
    16641590
    1665         /* ノンブロッキングコールでメッセージを送信する。*/
     1591        /* ノンブロッキングコールでメッセージを送信する。*/
    16661592        error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
    16671593        if (error != E_WBLK) {
     
    16711597                }
    16721598
    1673         /* 送信間隔を設定する。*/
     1599        /* 送信間隔を設定する。*/
    16741600        if (ct->interval == 0)
    1675                 /* 未設定 */
     1601                /* 未設定 */
    16761602                ct->interval = TMO_DHCP4C_INIT_INTVL;
    16771603        else
    1678                 /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
     1604                /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/
    16791605                ct->interval += (netapp_rand() >> 2) % (ct->interval << 1);
    16801606       
    1681         /* 送信周期の制限値をè¶
    1682 ãˆãªã„ようにする。*/
     1607        /* 送信周期の制限値を超えないようにする。*/
    16831608        if (ct->interval > TMO_DHCP4C_MAX_BACKOFF)
    16841609                ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF);
    16851610
    1686         /* OFFER メッセージの受信タイムアウトをè¶
    1687 ãˆãªã„ように調整する。*/
     1611        /* OFFER メッセージの受信タイムアウトを超えないように調整する。*/
    16881612        if (TIMEC_GT(time + ct->interval, ct->snd_start + TMO_DHCP4C_OFFER))
    16891613                ct->interval = (TMO_DHCP4C_INIT_INTVL + TMO_DHCP4C_OFFER) - time + 1;
    16901614
    1691         /* 再送信タイムアウトを設定する。*/
     1615        /* 再送信タイムアウトを設定する。*/
    16921616        syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
    16931617        ct->timers[DHCP4C_TIMER_SND_DISC] = SYSTIM2TIMER(ct->interval);
     
    16961620
    16971621/*
    1698  *  dhcpc_timer -- TIMER 管理
     1622 *  dhcpc_timer -- TIMER 管理
    16991623 */
    17001624
     
    17161640        syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
    17171641
    1718         /* 1秒毎にタイムアウトする。*/
     1642        /* 1秒毎にタイムアウトする。*/
    17191643        timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ);
    17201644        }
    17211645
    17221646/*
    1723  *  expire_timeout -- EXPIRE タイムアウト処理
     1647 *  expire_timeout -- EXPIRE タイムアウト処理
    17241648 */
    17251649
     
    17291653        //ER    error;
    17301654
    1731         /* タイムアウトフラグをクリアーする。*/
     1655        /* タイムアウトフラグをクリアーする。*/
    17321656        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    17331657
    1734         /* 状æ
    1735 ‹ãŒ REQUEST の時は何もしない。*/
     1658        /* 状態が REQUEST の時は何もしない。*/
    17361659        if (ct->fsm == DHCP4_FSM_REQUEST)
    17371660                return;
    17381661
    1739         /* å
    1740 ¨ã¦ã® TIMER をキャンセルする。*/
     1662        /* 全ての TIMER をキャンセルする。*/
    17411663        cancel_all_timers(ct);
    17421664
    1743         /* リースされたæƒ
    1744 å ±ã‚’解放する。*/
     1665        /* リースされた情報を解放する。*/
    17451666        rel_lease(ct);
    17461667
     
    17491670
    17501671/*
    1751  *  rebind_timeout -- REBIND タイムアウト処理
     1672 *  rebind_timeout -- REBIND タイムアウト処理
    17521673 */
    17531674
     
    17551676rebind_timeout (T_DHCP4_CLI_CONTEXT *ct)
    17561677{
    1757         /* タイムアウトフラグをクリアーする。*/
     1678        /* タイムアウトフラグをクリアーする。*/
    17581679        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    17591680
    1760         /* å
    1761 ¨ã¦ã® TIMER をキャンセルする。*/
     1681        /* 全ての TIMER をキャンセルする。*/
    17621682        cancel_all_timers(ct);
    17631683
    1764         /* REQUEST メッセージを送信して REBIND 状æ
    1765 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1684        /* REQUEST メッセージを送信して REBIND 状態に遷移する。*/
    17661685        start_send_request(ct, DHCP4_FSM_REBIND);
    17671686        }
    17681687
    17691688/*
    1770  *  renew_timeout -- RENEW タイムアウト処理
     1689 *  renew_timeout -- RENEW タイムアウト処理
    17711690 */
    17721691
     
    17741693renew_timeout (T_DHCP4_CLI_CONTEXT *ct)
    17751694{
    1776         /* タイムアウトフラグをクリアーする。*/
     1695        /* タイムアウトフラグをクリアーする。*/
    17771696        ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
    17781697
    1779         /* REQUEST メッセージを送信して RENEW 状æ
    1780 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1698        /* REQUEST メッセージを送信して RENEW 状態に遷移する。*/
    17811699        start_send_request(ct, DHCP4_FSM_RENEW);
    17821700        }
    17831701
    17841702/*
    1785  *  dispatch_timeout -- タイムアウトした時の処理
     1703 *  dispatch_timeout -- タイムアウトした時の処理
    17861704 */
    17871705
     
    18311749
    18321750/*
    1833  *  dispatch_event -- イベント毎の処理
     1751 *  dispatch_event -- イベント毎の処理
    18341752 */
    18351753
     
    18411759        while (ct->fsm != DHCP4_FSM_SLEEP && error == E_OK) {
    18421760
    1843                 /* メッセージの受信とタイムアウトをå¾
    1844 ã¤ã€‚*/
     1761                /* メッセージの受信とタイムアウトを待つ。*/
    18451762                syscall(wai_sem(SEM_DHCP4_CLI_READY));
    18461763
     
    18621779
    18631780/*
    1864  *  init_context -- DHCP クライアントコンテキスト構造体を初期化する。
     1781 *  init_context -- DHCP クライアントコンテキスト構造体を初期化する。
    18651782 */
    18661783
     
    18761793
    18771794/*
    1878  *  rel_cli_msg -- メッセージ構造体を解放する。
     1795 *  rel_cli_msg -- メッセージ構造体を解放する。
    18791796 */
    18801797
     
    19081825
    19091826/*
    1910  *  init_cli_msg -- 各メッセージ構造体を初期化する。
     1827 *  init_cli_msg -- 各メッセージ構造体を初期化する。
    19111828 */
    19121829
     
    19181835        int             count;
    19191836
    1920         /* 送信メッセージ構造体を獲得する。*/
     1837        /* 送信メッセージ構造体を獲得する。*/
    19211838        if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&ct->snd_msg, TMO_DHCP4C_MPF_GET)) != E_OK) {
    19221839                syslog(LOG_NOTICE, "[DHCP4C] error, tget_mpf() for send: %s.", itron_strerror(error));
     
    19251842
    19261843        /*
    1927          *  有効なリース・メッセージ構造体がある場合は、
    1928          *  獲得する受信メッセージ構造体リストの構造体を 1減らす。
     1844         *  有効なリース・メッセージ構造体がある場合は、
     1845         *  獲得する受信メッセージ構造体リストの構造体を 1減らす。
    19291846         */
    19301847        if (ct->act_msg == NULL)
     
    19331850                count = NUM_DHCP4_MSG_LIST - 1;
    19341851
    1935         /* 受信メッセージ構造体を獲得する。*/
     1852        /* 受信メッセージ構造体を獲得する。*/
    19361853        while (count --> 0) {
    19371854                if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&cell, TMO_DHCP4C_MPF_GET)) != E_OK) {
     
    19471864
    19481865/*
    1949  *  dhcp4c_renew_info -- ネットワークæƒ
    1950 å ±ã‚’再取得する。
     1866 *  dhcp4c_renew_info -- ネットワーク情報を再取得する。
    19511867 */
    19521868
     
    19561872        if (context.fsm == DHCP4_FSM_BOUND) {
    19571873
    1958                 /* REL_INFO 状æ
    1959 ‹ã«é·ç§»ã—た後に SLEEP を解除するように設定する。*/
     1874                /* REL_INFO 状態に遷移した後に SLEEP を解除するように設定する。*/
    19601875                context.flags |= DHCP4C_FLAG_RENEW;
    19611876                start_rel_info(&context);
     
    19641879        else if (context.fsm == DHCP4_FSM_SLEEP) {
    19651880
    1966                 /* SLEEP を解除する。*/
     1881                /* SLEEP を解除する。*/
    19671882                wup_tsk(DHCP4_CLI_TASK);
    19681883                return E_OK;
     
    19731888
    19741889/*
    1975  *  dhcp4c_rel_info -- DHCP で設定されたネットワークæƒ
    1976 å ±ã‚’解放する。
     1890 *  dhcp4c_rel_info -- DHCP で設定されたネットワーク情報を解放する。
    19771891 */
    19781892
     
    19801894dhcp4c_rel_info (void)
    19811895{
    1982         /* REL_INFO 状æ
    1983 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     1896        /* REL_INFO 状態に遷移する。*/
    19841897        start_rel_info(&context);
    19851898        return E_OK;
     
    19871900
    19881901/*
    1989  *  dhcp4c_get_info -- DHCP で設定されたネットワークæƒ
    1990 å ±ã‚’返す。
     1902 *  dhcp4c_get_info -- DHCP で設定されたネットワーク情報を返す。
    19911903 */
    19921904
     
    20111923
    20121924/*
    2013  *  コールバック関数
     1925 *  コールバック関数
    20141926 */
    20151927
     
    20221934        len = *(ER_UINT*)p_parblk;
    20231935        if (len < 0 && len != E_RLWAI) {
    2024                 /* E_RLWAI 以外で、0 以下の場合は、エラーを意味している。*/
     1936                /* E_RLWAI 以外で、0 以下の場合は、エラーを意味している。*/
    20251937                syslog(LOG_NOTICE, "[DHCPC(CBR)] error: %s, fncd: %s", itron_strerror(len), in_strtfn(fncd));
    20261938                }
     
    20281940                if (fncd == TEV_UDP_RCV_DAT) {
    20291941
    2030                         /* 受信メッセージリストが空の時は、受信しないでデータグラムを捨てる。*/
     1942                        /* 受信メッセージリストが空の時は、受信しないでデータグラムを捨てる。*/
    20311943                        if (context.rcv_lst == NULL)
    20321944                                syslog(LOG_NOTICE, "[DHCP4C(CBR)] receive buffer all busy.");
    20331945                        else {
    2034                                 /* メッセージを受信するメッセージ構造体を準備する。*/
     1946                                /* メッセージを受信するメッセージ構造体を準備する。*/
    20351947                                syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
    20361948                                msg = context.rcv_lst;
     
    20381950                                syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
    20391951
    2040                                 /* メッセージを受信する。*/
     1952                                /* メッセージを受信する。*/
    20411953                                len = udp_rcv_dat(context.cepid, &msg->srv, &msg->msg, sizeof(msg->msg), TMO_POL);
    20421954
     
    20441956                                msg->len = len;
    20451957                                if (len >= 0) {
    2046                                         /* 受信したメッセージを検証メッセージリストに移す。*/
     1958                                        /* 受信したメッセージを検証メッセージリストに移す。*/
    20471959                                        msg->next = context.val_lst;
    20481960                                        context.val_lst = msg;
     
    20501962                                        }
    20511963                                else {
    2052                                         /* メッセージ構造体を受信メッセージリストに戻す。*/
     1964                                        /* メッセージ構造体を受信メッセージリストに戻す。*/
    20531965                                        context.error = len;
    20541966                                        msg->next = context.rcv_lst;
     
    20641976
    20651977/*
    2066  *  dhcp4_cli_task -- DHCP クライアントタスク
     1978 *  dhcp4_cli_task -- DHCP クライアントタスク
    20671979 */
    20681980
     
    20801992        ct = &context;
    20811993
    2082         /* DHCP クライアントコンテキスト構造体を初期化する。*/
     1994        /* DHCP クライアントコンテキスト構造体を初期化する。*/
    20831995        init_context(ct, (ID)exinf);
    20841996
    20851997        while (true) {
    20861998
    2087                 /* 1秒毎にタイムアウトするようにタイマーを設定する。*/
     1999                /* 1秒毎にタイムアウトするようにタイマーを設定する。*/
    20882000                timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP4C_TIMER_HZ);
    20892001
    2090                 /* メッセージ構造体を初期化する。*/
     2002                /* メッセージ構造体を初期化する。*/
    20912003                if ((error = init_cli_msg(ct)) == E_OK) {
    20922004
    2093                         /* SELECT 状æ
    2094 ‹ã«é·ç§»ã™ã‚‹ã€‚*/
     2005                        /* SELECT 状態に遷移する。*/
    20952006                        start_select(ct);
    20962007
    2097                         /* メインループ */
     2008                        /* メインループ */
    20982009                        error = dispatch_event(ct);
    20992010                        }
    21002011
    2101                 /* å
    2102 ¨ã¦ã® TIMER をキャンセルする。*/
     2012                /* 全ての TIMER をキャンセルする。*/
    21032013                cancel_all_timers(ct);
    21042014
    2105                 /* タイマーを停止する。*/
     2015                /* タイマーを停止する。*/
    21062016                untimeout((callout_func)dhcpc_timer, ct);
    21072017
    2108                 /* メッセージ構造体を解放する。*/
     2018                /* メッセージ構造体を解放する。*/
    21092019                rel_cli_msg (ct);
    21102020
    2111                 /* リースを解放後、再取得が指定されていなければ休止する。*/
     2021                /* リースを解放後、再取得が指定されていなければ休止する。*/
    21122022                if (!(ct->flags & DHCP4C_FLAG_RENEW)) {
    21132023
    2114                         /* 休止する。*/
     2024                        /* 休止する。*/
    21152025                        if (error == E_OK)
    21162026                                syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep.");
Note: See TracChangeset for help on using the changeset viewer.