Changeset 331 for EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.c
- Timestamp:
- Jan 21, 2018, 12:10:09 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.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-2012 by Dep. of Computer Science and Engineering 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * … … 39 39 40 40 #include <kernel.h> 41 #include <t_syslog.h>41 #include "syssvc/syslog.h" 42 42 #include "syssvc/serial.h" 43 43 #include "kernel_cfg.h" … … 92 92 bool_t wait_accept = false; /* 接続要求待ち中 */ 93 93 94 #ifdef SUPPORT_INET6 95 96 T_IPV6EP dst; 97 98 #else /* of #ifdef SUPPORT_INET6 */ 99 94 100 #ifdef SUPPORT_INET4 95 101 … … 97 103 98 104 #endif /* of #ifdef SUPPORT_INET4 */ 99 100 #ifdef SUPPORT_INET6101 102 T_IPV6EP dst;103 105 104 106 #endif /* of #ifdef SUPPORT_INET6 */ … … 117 119 */ 118 120 121 #ifdef SUPPORT_INET6 122 123 #define TCP_ACP_CEP(c,r,d,t) tcp6_acp_cep(c,r,d,t) 124 #define IP2STR(s,a) ipv62str(s,a) 125 126 #else /* of #ifdef SUPPORT_INET6 */ 127 119 128 #ifdef SUPPORT_INET4 120 129 … … 124 133 #endif /* of #ifdef SUPPORT_INET4 */ 125 134 126 #ifdef SUPPORT_INET6127 128 #define TCP_ACP_CEP(c,r,d,t) tcp6_acp_cep(c,r,d,t)129 #define IP2STR(s,a) ipv62str(s,a)130 131 135 #endif /* of #ifdef SUPPORT_INET6 */ 132 136 … … 143 147 144 148 case TFN_TCP_ACP_CEP: 145 IP2STR( addr, &dst.ipaddr);149 IP2STR((char *)addr, &dst.ipaddr); 146 150 syslog(LOG_NOTICE, "connected: %s.%d", addr, dst.portno); 147 151 if (*(ER*)p_parblk == E_OK) … … 182 186 connected = false; 183 187 syscall(sig_sem(SEM_NET_SEND)); 184 IP2STR( addr, &dst.ipaddr);188 IP2STR((char *)addr, &dst.ipaddr); 185 189 syslog(LOG_NOTICE, "disconnected: %s.%d", addr, dst.portno); 186 190 } … … 326 330 return serial_rea_dat(portid, buf, len); 327 331 } 328 dly_tsk(500 );332 dly_tsk(500000); 329 333 } 330 334 return off; … … 423 427 } 424 428 425 #ifdef SUPPORT_INET4 429 /* 430 * ipv6addr -- IPv6 アドレス出力 431 */ 432 433 int_t 434 put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int_t width) 435 { 436 int_t len = 0, ix; 437 bool_t omit = false, zero = false; 438 439 if (addr == NULL) { 440 put_char(cepid, '0'); 441 put_char(cepid, ':'); 442 put_char(cepid, ':'); 443 put_char(cepid, '0'); 444 len = 4; 445 } 446 else { 447 for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) { 448 if (omit) { 449 len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 450 if (ix < 7) { 451 put_char(cepid, ':'); 452 len ++; 453 } 454 } 455 else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0) 456 zero = true; 457 else { 458 if (zero) { 459 omit = true; 460 put_char(cepid, ':'); 461 len ++; 462 } 463 len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 464 if (ix < 7) { 465 put_char(cepid, ':'); 466 len ++; 467 } 468 } 469 } 470 471 for ( ; len < width; len ++) 472 put_char(cepid, ' '); 473 } 474 return len; 475 } 426 476 427 477 /* … … 429 479 */ 430 480 431 staticint_t481 int_t 432 482 put_ipv4addr (ID cepid, ULONGEST *addr, int_t width) 433 483 { … … 462 512 } 463 513 464 #define PUT_IPADDR(p,a,w) put_ipv4addr(p,a,w)465 466 #endif /* of #ifdef SUPPORT_INET4 */467 468 #ifdef SUPPORT_INET6469 470 /*471 * ipv6addr -- IPv6 アドレス出力472 */473 474 static int_t475 put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int_t width)476 {477 int_t len = 0, ix;478 bool_t omit = false, zero = false;479 480 if (addr == NULL) {481 put_char(cepid, '0');482 put_char(cepid, ':');483 put_char(cepid, ':');484 put_char(cepid, '0');485 len = 4;486 }487 else {488 for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {489 if (omit) {490 len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' ');491 if (ix < 7) {492 put_char(cepid, ':');493 len ++;494 }495 }496 else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)497 zero = true;498 else {499 if (zero) {500 omit = true;501 put_char(cepid, ':');502 len ++;503 }504 len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' ');505 if (ix < 7) {506 put_char(cepid, ':');507 len ++;508 }509 }510 }511 512 for ( ; len < width; len ++)513 put_char(cepid, ' ');514 }515 return len;516 }517 518 #define PUT_IPADDR(p,a,w) put_ipv6addr(p,a,w)519 520 #endif /* of #ifdef SUPPORT_INET6 */521 522 514 /* 523 515 * put_macaddr -- MAC アドレス出力 … … 586 578 va_list ap; 587 579 char padchar, *str; 588 int_t ch, width, longflag, left, i, c;580 int_t ch, width, longflag, shortflag, left, i, c; 589 581 590 582 if (connected) { … … 597 589 } 598 590 599 width = longflag = 0;591 width = longflag = shortflag = 0; 600 592 padchar = ' '; 601 593 … … 619 611 while (ch == 'l') { /* long (long) の指定 */ 620 612 longflag ++; 613 ch = *format ++; 614 } 615 616 while (ch == 'h') { /* short の指定 */ 617 shortflag ++; 621 618 ch = *format ++; 622 619 } … … 663 660 case 'I': 664 661 662 if (longflag) { 663 str = va_arg(ap, char*); 664 put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width); 665 } 666 else if (shortflag) { 667 val = GET_ARG(ap, longflag); 668 put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width); 669 } 670 else { 671 672 #ifdef SUPPORT_INET6 673 674 str = va_arg(ap, char*); 675 put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width); 676 677 #else /* of #ifdef SUPPORT_INET6 */ 678 665 679 #ifdef SUPPORT_INET4 666 680 667 val = GET_ARG(ap, longflag);668 put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);681 val = GET_ARG(ap, longflag); 682 put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width); 669 683 670 684 #endif /* of #ifdef SUPPORT_INET4 */ 671 685 672 #ifdef SUPPORT_INET6673 674 str = va_arg(ap, char*);675 put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);676 677 686 #endif /* of #ifdef SUPPORT_INET6 */ 687 688 } 678 689 679 690 break; … … 701 712 flush_snd_buff(TCP_CEPID); 702 713 syscall(sig_sem(SEM_TCP_SYSLOG)); 703 return E_OK;714 return; 704 715 } 705 716 else { … … 714 725 } 715 726 727 longflag = 0; 716 728 c = *format++; 717 729 while ('0' <= c && c <= '9') { 718 730 c = *format++; 719 731 } 732 733 while (c == 'l') { 734 longflag = 1; 735 c = *format++; 736 } 737 720 738 switch (c) { 721 739 case 'd': 722 log.logpar[i++] = (intptr_t)va_arg(ap, int_t); 740 if(longflag == 1) { 741 log.logpar[i++] = (intptr_t)va_arg(ap, long_t); 742 } 743 else { 744 log.logpar[i++] = (intptr_t)va_arg(ap, int_t); 745 } 723 746 break; 724 747 case 'u':
Note:
See TracChangeset
for help on using the changeset viewer.