haolei / tcpcopy

Automatically exported from code.google.com/p/tcpcopy
Other
1 stars 1 forks source link

can not bind:: Address family not supported by protocol #3

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. I installed the tcpcopy on Ubuntu 11.10 x64 and i run command interception 
but was returned a error:
"can not bind:: Address family not supported by protocol"

on the error.log

[error] Fri May  4 10:46:42 2012 usec=193142 it can not bind address
[notice] Fri May  4 10:46:42 2012 usec=193171 releaseResources begin
[notice] Fri May  4 10:46:42 2012 usec=193192 firewall sock is closed
[notice] Fri May  4 10:46:42 2012 usec=193198 msg listen sock is closed
[notice] Fri May  4 10:46:42 2012 usec=193202 destroy router table
[notice] Fri May  4 10:46:42 2012 usec=201567 destroy items 0 in table 
name:client--src table
[notice] Fri May  4 10:46:42 2012 usec=201650 destroy delayed table
[notice] Fri May  4 10:46:42 2012 usec=202050 destroy msg list 
items:0,free:0,total:0
[notice] Fri May  4 10:46:42 2012 usec=202096 create msg 
list:0,delayDel:0,destroyList:0
[notice] Fri May  4 10:46:42 2012 usec=205036 destroy items 0 in table 
name:delay-table
[notice] Fri May  4 10:46:42 2012 usec=205127 releaseResources end except log 
file
[notice] Fri May  4 11:31:31 2012 usec=649195 create table 
delay-table,size:65536
[notice] Fri May  4 11:31:31 2012 usec=668874 create table client--src 
table,size:262144
[notice] Fri May  4 11:31:31 2012 usec=668980 socket created successfully
[error] Fri May  4 11:31:31 2012 usec=669325 it can not bind address
[notice] Fri May  4 11:31:31 2012 usec=669337 releaseResources begin
[notice] Fri May  4 11:31:31 2012 usec=669344 firewall sock is closed
[notice] Fri May  4 11:31:31 2012 usec=669349 msg listen sock is closed
[notice] Fri May  4 11:31:31 2012 usec=669353 destroy router table
[notice] Fri May  4 11:31:31 2012 usec=677835 destroy items 0 in table 
name:client--src table
[notice] Fri May  4 11:31:31 2012 usec=677896 destroy delayed table
[notice] Fri May  4 11:31:31 2012 usec=678256 destroy msg list 
items:0,free:0,total:0
[notice] Fri May  4 11:31:31 2012 usec=678265 create msg 
list:0,delayDel:0,destroyList:0
[notice] Fri May  4 11:31:31 2012 usec=681284 destroy items 0 in table 
name:delay-table
[notice] Fri May  4 11:31:31 2012 usec=681351 releaseResources end except log 
file
[notice] Fri May  4 13:31:20 2012 usec=910078 create table 
delay-table,size:65536
[notice] Fri May  4 13:31:20 2012 usec=930001 create table client--src 
table,size:262144
[notice] Fri May  4 13:31:20 2012 usec=930102 socket created successfully
[error] Fri May  4 13:31:20 2012 usec=930424 it can not bind address
[notice] Fri May  4 13:31:20 2012 usec=932630 releaseResources begin
[notice] Fri May  4 13:31:20 2012 usec=932700 firewall sock is closed
[notice] Fri May  4 13:31:20 2012 usec=932731 msg listen sock is closed
[notice] Fri May  4 13:31:20 2012 usec=932758 destroy router table
[notice] Fri May  4 13:31:20 2012 usec=941125 destroy items 0 in table 
name:client--src table
[notice] Fri May  4 13:31:20 2012 usec=941201 destroy delayed table
[notice] Fri May  4 13:31:20 2012 usec=941588 destroy msg list 
items:0,free:0,total:0
[notice] Fri May  4 13:31:20 2012 usec=941630 create msg 
list:0,delayDel:0,destroyList:0
[notice] Fri May  4 13:31:20 2012 usec=944584 destroy items 0 in table 
name:delay-table
[notice] Fri May  4 13:31:20 2012 usec=944667 releaseResources end except log 
file

What version of the product are you using? On what operating system?
I'm using tcpcopy 0.3.5 and Ubuntu 11.10 x64 Linux 3.0.0-12-server.

Original issue reported on code.google.com by gvvictor...@gmail.com on 4 May 2012 at 5:51

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Thanks for reporting the bug.
It may be a common problem for Ubuntu 11.10.
https://bugs.launchpad.net/ubuntu/+source/libav/+bug/879018

You can add one-line code in sock_bind function

static void sock_bind(int sock){
    struct sockaddr_in local_addr;
    socklen_t length; 
    memset(&local_addr,0,sizeof(local_addr));
    local_addr.sin_port = ntohs(SERVER_PORT);
    local_addr.sin_family= AF_INET;   //add this line for Ubuntu 11.10
    length = (socklen_t)(sizeof(local_addr));
    if(bind(sock,(struct sockaddr *)&local_addr,length)==-1){
        perror("can not bind:");
        logInfo(LOG_ERR,"it can not bind address");
        exit(errno);
    }else
    {   
        logInfo(LOG_NOTICE,"it binds address successfully");
    }   
}

Check if it is working.

Thanks again

Original comment by 163.beij...@gmail.com on 7 May 2012 at 12:42