From: Nobuyoshi N. <nob...@so...> - 2003-01-21 01:38:54
|
なかだです。 daemon modeで使用するソケットが/tmp/mlterm.unixと固定になってい ると、同時に一人しかdaemon modeにできないんではないでしょうか。 Index: xwindow/x_term_manager.c =================================================================== RCS file: /cvsroot/mlterm/mlterm/xwindow/x_term_manager.c,v retrieving revision 1.22 diff -u -2 -p -r1.22 x_term_manager.c --- xwindow/x_term_manager.c 23 Nov 2002 08:10:41 -0000 1.22 +++ xwindow/x_term_manager.c 21 Jan 2003 01:30:33 -0000 @@ -666,9 +666,11 @@ start_daemon(void) { int fd ; - char * path = "/tmp/mlterm.unix" ; + char path[32] ; pid_t pid ; int sock_fd ; struct sockaddr_un servaddr ; + sprintf( path , "/tmp/.mlterm-%d.unix" , getuid()) ; + if( ( fd = creat( path , 0600)) == -1) { @@ -750,5 +752,5 @@ start_daemon(void) } - un_file = path ; + un_file = strdup( path) ; return sock_fd ; Index: tool/mlclient/main.c =================================================================== RCS file: /cvsroot/mlterm/mlterm/tool/mlclient/main.c,v retrieving revision 1.7 diff -u -2 -p -r1.7 main.c --- tool/mlclient/main.c 14 May 2002 12:05:24 -0000 1.7 +++ tool/mlclient/main.c 21 Jan 2003 01:30:33 -0000 @@ -88,5 +88,5 @@ main( memset( &servaddr , 0 , sizeof( servaddr)) ; servaddr.sun_family = AF_LOCAL ; - strcpy( servaddr.sun_path , "/tmp/mlterm.unix") ; + snprintf( servaddr.sun_path , "/tmp/.mlterm-%d.unix" , getuid()) ; if( connect( sock_fd , (struct sockaddr*) &servaddr , sizeof( servaddr)) < 0) -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 |