On Tue, 2010-12-14 at 23:03 +0100, Wulf C. Krueger wrote:
> > Abstract socket names:    no
> 
> This is most likely this dbus bug:
> 
> https://bugs.freedesktop.org/show_bug.cgi?id=29895
> 
> We include a patch to fix it but it seems like it doesn't work for you for 
> some reason. Try to find out why that is the case and after you've found the 
> reason, please provide a patch.
> 
> Best regards, Wulf

Very strange, becouse if i grab from configure.in abstract socket test
source :
#include
<sys/types.h>                                                                   
                                                                                
        
#include
<stdlib.h>                                                                      
                                                                                
        
#include
<string.h>                                                                      
                                                                                
        
#include
<stdio.h>                                                                       
                                                                                
        
#include
<sys/socket.h>                                                                  
                                                                                
        
#include
<sys/un.h>                                                                      
                                                                                
        
#include
<errno.h>                                                                       
                                                                                
        

int main() {
  size_t
slen;                                                                           
                                                                                
        
  int
listen_fd;                                                                      
                                                                                
           
  struct sockaddr_un
addr;                                                                           
                                                                            
                                                                                
                                                                                
                 
  listen_fd = socket (PF_UNIX, SOCK_STREAM,
0);                                                                             
                                                     
                                                                                
                                                                                
                 
  if (listen_fd <
0)                                                                              
                                                                               

{                                                                               
                                                                                
             
      fprintf (stderr, "socket() failed: %s\n", strerror
(errno));                                                                       
                                        
      exit
(1);                                                                            
                                                                                
      
    }                                                                           
                                                                                
                 
                                                                                
                                                                                
                 
  memset (&addr, '\0', sizeof
(addr));                                                                        
                                                                   
  addr.sun_family =
AF_UNIX;                                                                        
                                                                             
  strcpy (addr.sun_path,
"X/tmp/dbus-fake-socket-path-used-in-configure-test");                          
                                                                        
  /* SUN_LEN uses strlen() so need to calculate it before adding \0 at
the                                                                             
                          
   *
beginning.                                                                      
                                                                                
            

*/                                                                              
                                                                                
              
  slen =
SUN_LEN(&addr);                                                                 
                                                                                
        
  addr.sun_path[0] = '\0'; /* this is what makes it abstract
*/                                                                              
                                    
                                                                                
                                                                                
                 
  if (bind (listen_fd, (struct sockaddr*) &addr, slen) <
0)                                                                              
                                        

{                                                                               
                                                                                
             
       fprintf (stderr, "Abstract socket namespace bind() failed: %s
\n",                                                                            
                             
                strerror
(errno));                                                                       
                                                                        
       exit
(1);                                                                            
                                                                                
     
    }                                                                           
                                                                                
                 

else                                                                            
                                                                                
               
    exit (0);
}

compile and run , program exit with status code 0. That says, that
abstract sockets work's fine.


_______________________________________________
Exherbo-dev mailing list
[email protected]
http://lists.exherbo.org/mailman/listinfo/exherbo-dev

Reply via email to