recdvbのhttpストリーミングでgethostbyname failedが出て視聴できない件

recdvb 1.2.0および元となったrecpt1 httpサーバー版RC4はアクセス元のIPアドレスからホスト名を確認できない場合に「gethostbyname failed」のメッセージが出力されて視聴ができない。ソースを見るとgethostbyaddrが失敗した時に出力されているのでメッセージが間違っている気もするが、gethostbyaddrで得られたホスト名はクライアント接続時に出力される「connect from: hoge.hogehoge.jp [192.168.0.35] port 52427」といったメッセージでしか使われていない為、これらの処理をまるごと削除してみた。
recdvb 1.2.0の場合はrecpt1.cの829行目、840〜846行目を削除、847行目の「 [%s]」と「 peer_host->h_name,」を削除してmake、make installすることで、前述のエラーは出なくなり、接続時からのメッセージにはホスト名が表示されなくなったが、問題なく視聴できるようになった。以下、該当部分の元ソース。

827 while(1){       // http-server add-
828         if(use_http){
829                 struct hostent *peer_host;
830                 struct sockaddr_in peer_sin;
831 
832                 len = sizeof(peer_sin);
833 
834                 connected_socket = accept(listening_socket, (struct sockaddr *)&peer_sin, &len);
835                 if ( connected_socket == -1 ){
836                         perror("accept");
837                         return 1;
838                 }
839 
840                 peer_host = gethostbyaddr((char *)&peer_sin.sin_addr.s_addr,
841                                  sizeof(peer_sin.sin_addr), AF_INET);
842                 if ( peer_host == NULL ){
843                         fprintf(stderr, "gethostbyname failed\n");
844                         return 1;
845                 }
846 
847                 fprintf(stderr,"connect from: %s [%s] port %d\n", peer_host->h_name, inet_ntoa(peer_sin.sin_addr), ntohs(peer_sin.sin_port));

尚、recpt1 httpサーバー版RC4の場合は「recpt1 httpサーバー版RC4 ホスト名無しクライアント対策patch」なるものが当時のDTVアップローダのPT1 関係ファイル置き場にあるので、こちらを使う方が良いかも知れない。