Changeset 331 for EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c
- Timestamp:
- Jan 21, 2018, 12:10:09 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c
r321 r331 2 2 * TINET (TCP/IP Protocol Stack) 3 3 * 4 * Copyright (C) 2001-20 09by Dep. of Computer Science and Engineering4 * Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * … … 89 89 #include <net/if_ppp.h> 90 90 #include <net/net.h> 91 #include <net/net_endian.h> 91 92 #include <net/net_buf.h> 92 93 #include <net/net_count.h> … … 102 103 #include <netinet/ip.h> 103 104 #include <netinet/tcp.h> 105 #include <netinet/tcp_var.h> 104 106 #include <netinet/tcp_timer.h> 105 #include <netinet/tcp_var.h>106 107 #include <netinet/udp_var.h> 107 108 … … 149 150 NULL, 150 151 { 151 IPV4_ADDR_LOCAL, /* IP アドレス */152 IPV4_ADDR_LOCAL, /* IPv4 アドレス */ 152 153 UINT_C(0), /* サブネットマスク */ 153 154 }, … … 157 158 NULL, 158 159 { 159 IPV4_ADDR_REMOTE, /* IP アドレス */160 IPV4_ADDR_REMOTE, /* IPv4 アドレス */ 160 161 UINT_C(0), /* サブネットマスク */ 161 162 } … … 200 201 ipcp_open, /* オープンする */ 201 202 ipcp_close, /* クローズする */ 202 ip_input, /* データ入力、IP 入力*/203 ip_input, /* データ入力、IPv4 入力 */ 203 204 }; 204 205 … … 307 308 int_t cilen = 0; 308 309 309 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IP アドレス */310 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IPv4 アドレス */ 310 311 311 312 return cilen; … … 323 324 buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 324 325 325 /* IP アドレスオプションを追加する。 */326 /* IPv4 アドレスオプションを追加する。 */ 326 327 *buf ++ = IPCP_CIT_ADDR; 327 328 *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); 328 ahtonl(buf, ipcp_local_neg_cfg.in _ifaddr.addr);329 ahtonl(buf, ipcp_local_neg_cfg.in4_ifaddr.addr); 329 330 buf += sizeof(uint32_t); 330 331 } … … 355 356 *buf ++ != IPCP_CIT_ADDR || 356 357 *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)|| 357 nahcmpl(buf, ipcp_local_neg_cfg.in _ifaddr.addr))358 nahcmpl(buf, ipcp_local_neg_cfg.in4_ifaddr.addr)) 358 359 return false; 359 360 buf += sizeof(uint32_t); … … 390 391 buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); 391 392 len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); 392 new_cfg.in _ifaddr.addr = cilong;393 new_cfg.in4_ifaddr.addr = cilong; 393 394 } 394 395 … … 438 439 buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); 439 440 len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); 440 new_cfg.in _ifaddr.addr = 0;441 new_cfg.in4_ifaddr.addr = 0; 441 442 } 442 443 … … 499 500 switch (type) { 500 501 501 case IPCP_CIT_ADDR: /* IP アドレス */502 case IPCP_CIT_ADDR: /* IPv4 アドレス */ 502 503 503 504 /* CI 長が、ヘッダ + 4 オクテットでなければエラー */ … … 506 507 else { 507 508 ntoahl(addr, ap); 508 if (addr != ipcp_remote_neg_cfg.in _ifaddr.addr &&509 (addr == 0 || ipcp_remote_neg_cfg.in _ifaddr.addr != 0)) {509 if (addr != ipcp_remote_neg_cfg.in4_ifaddr.addr && 510 (addr == 0 || ipcp_remote_neg_cfg.in4_ifaddr.addr != 0)) { 510 511 *np ++ = IPCP_CIT_ADDR; 511 512 *np ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); 512 ahtonl(np, ipcp_remote_neg_cfg.in _ifaddr.addr);513 ahtonl(np, ipcp_remote_neg_cfg.in4_ifaddr.addr); 513 514 np += sizeof(uint32_t); 514 515 code = PPP_CONFNAK; 515 516 } 516 517 #if 1 /* 要確認 */ 517 else if (addr == 0 && ipcp_remote_neg_cfg.in _ifaddr.addr == 0)518 else if (addr == 0 && ipcp_remote_neg_cfg.in4_ifaddr.addr == 0) 518 519 #else 519 else if (addr == 0 || ipcp_remote_neg_cfg.in _ifaddr.addr == 0)520 else if (addr == 0 || ipcp_remote_neg_cfg.in4_ifaddr.addr == 0) 520 521 #endif 521 522 code = PPP_CONFREJ; 522 523 else 523 ipcp_remote_neg_cfg.in _ifaddr.addr = addr;524 ipcp_remote_neg_cfg.in4_ifaddr.addr = addr; 524 525 } 525 526 break; … … 582 583 /* 583 584 * サブネットマスクと 584 * ローカル・ブロードキャスト IP アドレスを設定する。585 * ローカル・ブロードキャスト IPv4 アドレスを設定する。 585 586 */ 586 ipcp_local_ack_cfg.in _ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in_ifaddr.addr);587 ipcp_local_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in4_ifaddr.addr); 587 588 588 589 /* 相手の構成情報の初期設定 */ … … 591 592 /* 592 593 * サブネットマスクと 593 * ローカル・ブロードキャスト IP アドレスを設定する。594 * ローカル・ブロードキャスト IPv4 アドレスを設定する。 594 595 */ 595 ipcp_remote_ack_cfg.in _ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in_ifaddr.addr);596 ipcp_remote_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in4_ifaddr.addr); 596 597 597 598 sig_sem(SEM_IPCP_READY); 598 599 599 syslog(LOG_NOTICE, "[PPP/IPCP] up, Local IP Addr: %s, Remote IPAddr: %s.",600 ip2str(NULL, &ipcp_local_neg_cfg.in _ifaddr.addr),601 ip2str(NULL, &ipcp_remote_neg_cfg.in _ifaddr.addr));600 syslog(LOG_NOTICE, "[PPP/IPCP] up, Local IPv4 Addr: %s, Remote IPv4 Addr: %s.", 601 ip2str(NULL, &ipcp_local_neg_cfg.in4_ifaddr.addr), 602 ip2str(NULL, &ipcp_remote_neg_cfg.in4_ifaddr.addr)); 602 603 } 603 604
Note:
See TracChangeset
for help on using the changeset viewer.