[Exherbo-dev] after upgrade system not boot

Vasiliy G Tolstov v.tolstov at selfip.ru
Tue Dec 14 22:31:28 GMT 2010


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.




More information about the Exherbo-dev mailing list