2002年05月01日(水) << 前の日記 | 次の日記 >>
これまでの05月01日 編集

■1dhisd[IPv6]次の記事 >> このエントリーをはてなブックマークに追加

ダイナミックトンネルに使っているDHISサーバだけども、 指定したアドレスにバインドしたい事情があって細工。
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;

■ 関連記事

以上、1 日分です。

指定日の日記を表示

前月 2002年05月 翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

最近の日記

2019年04月01日

新元号「令和」について

2019年03月23日

DXアンテナ ワイヤレスチューナー メディアコンセント DMC10F1

2019年02月17日

#例のグラボを活用する

2019年01月03日

シリーズ5・myHomeAlexaで自分のCDをかける

2018年12月25日

シリーズ4・英語の楽曲・アルバム・アーティスト名をカタカナに直す

2018年12月23日

シリーズ3: Echo Dotがやってきた

2018年12月19日

続・Echo Dotがやってきた

分野別タイトル一覧


全て
CLIP
SYA!nikki
book
freebsd
hns
magic
おさけ
おしごと
お買いもの
ぐる
ごはん
アクセシビリティ
オープンソース
セキュリティ
音楽
地域情報化
電子自治体
日記

keikuma on Twitter

keikuma Name:前田勝之
Location:長崎市
Web:http://www.nantok...
Bio:前田勝之(まえだかつゆき)。長崎在住。コンサル、SE、プログラマー、 なんとか株式会社代表、非常勤講師(情報セキュリティ)。 セキュアド、テクニカルエンジニア(SV,NW)。サーバ管理とWeb日記を10年ほど。 ネットとリアルの接点に関心あり。食べること・歌うこと・愛すること・作ること・飲むこと。おいしいものがぜんぶすき。

サイト内検索

Google AdSense

Powered by hns-2.19.9, HyperNikkiSystem Project