2002年05月01日(水)
<< 前の日記 | 次の日記 >>
これまでの05月01日
編集
■1dhisd[IPv6]次の記事 >>
Tweet
ダイナミックトンネルに使っているDHISサーバだけども、
指定したアドレスにバインドしたい事情があって細工。
bzeroしてないのに気付かずに、悩んでしまった。
bzeroしてないのに気付かずに、悩んでしまった。
*** main.c.orig Wed May 1 13:00:07 2002 --- main.c Wed May 1 13:15:35 2002 *************** *** 41,46 **** --- 41,47 ---- extern unsigned char logfile[256]; extern unsigned char dbase_file[256]; + extern unsigned char bind_addr[256]; unsigned char services_file[256]; unsigned char pid_file[256]; *************** *** 604,610 **** void usage(unsigned char *s) { es_file] [-l log_file]\n",s); fprintf(stderr," [-P pid_file]\n"); exit(0); } --- 605,611 ---- void usage(unsigned char *s) { es_file] [-l log_file] [-a bind addr]\n",s); fprintf(stderr," [-P pid_file]\n"); exit(0); } *************** *** 625,632 **** strcpy(pid_file,DHISD_PID); strcpy(dbase_file,DHISD_DB); strcpy(services_file,DHISD_SERVICES); switch(c) { case('l'):strcpy(logfile,optarg);break; case('P'):strcpy(pid_file,optarg);break; --- 626,634 ---- strcpy(pid_file,DHISD_PID); strcpy(dbase_file,DHISD_DB); strcpy(services_file,DHISD_SERVICES); + strcpy(bind_addr,"127.0.0.1"); switch(c) { case('l'):strcpy(logfile,optarg);break; case('P'):strcpy(pid_file,optarg);break; *************** *** 635,640 **** --- 637,643 ---- case('D'):debug++;break; case('s'):strcpy(services_file,optarg);break; case('h'): usage(argv[0]); + case('a'):strcpy(bind_addr,optarg);break; default: usage(argv[0]); } } *** network.c.orig Wed May 1 12:59:43 2002 --- network.c Wed May 1 13:14:46 2002 *************** *** 31,36 **** --- 31,37 ---- #include "network.h" int udp_sock; + unsigned char bind_addr[256]; extern int rport; *************** *** 241,246 **** --- 242,248 ---- struct sockaddr_in sa; + memset(&sa, 0, sizeof(sa)); /* Create UDP socket */ udp_sock=socket(AF_INET,SOCK_DGRAM,0); if(udp_sock<0) return(1); *************** *** 248,254 **** /* Bind the UDP socket */ sa.sin_family=AF_INET; sa.sin_port=htons(port); if(bind(udp_sock,(struct sockaddr *)&sa,sizeof(struct sockaddr_in))) { close(udp_sock); --- 250,256 ---- /* Bind the UDP socket */ sa.sin_family=AF_INET; sa.sin_port=htons(port); if(bind(udp_sock,(struct sockaddr *)&sa,sizeof(struct sockaddr_in))) { close(udp_sock); *************** *** 343,348 **** --- 345,361 ---- /* set destination */ if((s=socket(AF_INET,SOCK_DGRAM,0))<0) return(0); + + /* Bind the UDP socket */ + memset(&sa, 0, sizeof(sa)); + sa.sin_family=AF_INET; + sa.sin_port=htons(0); + sa.sin_addr.s_addr=inet_addr(bind_addr); + if(bind(s,(struct sockaddr *)&sa,sizeof(struct sockaddr_in))) { + close(s); + return(0); + } + sa.sin_family=AF_INET; sa.sin_port=htons(toport); sa.sin_addr.s_addr=toaddr;
■ 関連記事
- 続・ローカルミラーシステム2003-09-17
- IPv6なjail環境2002-02-28
- DTCP, PPP over TCP, PPP over SSH2002-04-25
- CERT Advisory CA-2001-02 Multiple Vulnerabilities in BIND2001-02-06
- bindの緊急対策でサンドボックスアプローチ2001-03-02
- bind9のsplit DNS2001-10-04
- bindのバージョンの調べ方2001-03-01
- メモリの増設2002-01-10
- ログから2001-02-15
- 砂場でbind2001-02-24
- setproctitle2005-09-23
- DIVの中にはinline要素しか書けない?2003-08-13
- 光通信2001-01-31
- SpamAssassinのpreview2004-02-20
- 続・gnupg導入2003-01-08
■2PPP over TCP[IPv6]<< 前の記事
Tweet
成功者がでた模様。良かった。
■ 関連記事
- DTCP, PPP over TCP, PPP over SSH2002-04-25
- PPP over SSH2000-05-29
- IP over TCP(のフリ)の実装2005-04-18
- 続・トンネリング2000-05-31
- IPv6トンネル接続実験2002-04-30
- TCP over DNS2003-11-04
- Heyoka - DNS tunneling tool2011-02-06
- 続・PPP over ssh2001-01-19
- もぐらプロジェクト2003-02-20
- もぐらプロジェクト2004-12-25
- TCPみたいな何か2005-05-29
- PPP over ssh2001-01-18
- TCP転送が途切れる問題2002-06-13
- Why TCP Over TCP Is A Bad Idea2000-05-30
- mpeg2ts2003-01-07