summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/ofilenotify.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/libopie2/opiecore/ofilenotify.cpp b/libopie2/opiecore/ofilenotify.cpp
index 5f2a1cc..b576c4f 100644
--- a/libopie2/opiecore/ofilenotify.cpp
+++ b/libopie2/opiecore/ofilenotify.cpp
@@ -110,25 +110,25 @@ int OFileNotification::start( const QString& path, bool sshot, OFileNotification
110 { 110 {
111 if ( notification_list.isEmpty() ) 111 if ( notification_list.isEmpty() )
112 { 112 {
113 OFileNotification::registerSignalHandler(); 113 OFileNotification::registerSignalHandler();
114 } 114 }
115 115
116 result = ::fcntl( fd, F_SETSIG, SIGRTMIN ); 116 result = ::fcntl( fd, F_SETSIG, SIGRTMIN );
117 if ( result == -1 ) 117 if ( result == -1 )
118 { 118 {
119 qWarning( "OFileNotification::start(): Can't subscribe to '%s': %s.", (const char*) dirpath, strerror( errno ) ); 119 qWarning( "OFileNotification::start(): Can't subscribe to '%s': %s.", (const char*) dirpath, strerror( errno ) );
120 return -1; 120 return -1;
121 } 121 }
122 if ( !sshot ) (int) type |= (int) Multi; 122 if ( !sshot ) type = static_cast<OFileNotificationType>( (int) type | (int) Multi );
123 result = ::fcntl( fd, F_NOTIFY, type ); 123 result = ::fcntl( fd, F_NOTIFY, type );
124 if ( result == -1 ) 124 if ( result == -1 )
125 { 125 {
126 qWarning( "OFileNotification::start(): Can't subscribe to '%s': %s.", (const char*) dirpath, strerror( errno ) ); 126 qWarning( "OFileNotification::start(): Can't subscribe to '%s': %s.", (const char*) dirpath, strerror( errno ) );
127 return -1; 127 return -1;
128 } 128 }
129 qDebug( "OFileNotification::start(): Subscribed for changes to %s (fd = %d, mask = 0x%0x)", (const char*) dirpath, fd, type ); 129 qDebug( "OFileNotification::start(): Subscribed for changes to %s (fd = %d, mask = 0x%0x)", (const char*) dirpath, fd, type );
130 notification_list.insert( fd, this ); 130 notification_list.insert( fd, this );
131 _type = type; 131 _type = type;
132 _fd = fd; 132 _fd = fd;
133 _active = true; 133 _active = true;
134 ::memset( &_stat, 0, sizeof _stat ); 134 ::memset( &_stat, 0, sizeof _stat );
@@ -290,24 +290,25 @@ void OFileNotification::__signalHandler( int sig, siginfo_t *si, void *data )
290bool OFileNotification::registerSignalHandler() 290bool OFileNotification::registerSignalHandler()
291{ 291{
292 struct sigaction act; 292 struct sigaction act;
293 act.sa_sigaction = OFileNotification::__signalHandler; 293 act.sa_sigaction = OFileNotification::__signalHandler;
294 ::sigemptyset( &act.sa_mask ); 294 ::sigemptyset( &act.sa_mask );
295 act.sa_flags = SA_SIGINFO; 295 act.sa_flags = SA_SIGINFO;
296 if ( ::sigaction( SIGRTMIN, &act, NULL ) == -1 ) 296 if ( ::sigaction( SIGRTMIN, &act, NULL ) == -1 )
297 { 297 {
298 qWarning( "OFileNotification::registerSignalHandler(): couldn't register signal handler: %s", strerror( errno ) ); 298 qWarning( "OFileNotification::registerSignalHandler(): couldn't register signal handler: %s", strerror( errno ) );
299 return false; 299 return false;
300 } 300 }
301 qDebug( "OFileNotification::registerSignalHandler(): done" ); 301 qDebug( "OFileNotification::registerSignalHandler(): done" );
302 return true;
302} 303}
303 304
304 305
305void OFileNotification::unregisterSignalHandler() 306void OFileNotification::unregisterSignalHandler()
306{ 307{
307 struct sigaction act; 308 struct sigaction act;
308 act.sa_sigaction = ( void (*)(int, siginfo_t*, void*) ) SIG_DFL; 309 act.sa_sigaction = ( void (*)(int, siginfo_t*, void*) ) SIG_DFL;
309 ::sigemptyset( &act.sa_mask ); 310 ::sigemptyset( &act.sa_mask );
310 if ( ::sigaction( SIGRTMIN, &act, NULL ) == -1 ) 311 if ( ::sigaction( SIGRTMIN, &act, NULL ) == -1 )
311 { 312 {
312 qWarning( "OFileNotification::unregisterSignalHandler(): couldn't deregister signal handler: %s", strerror( errno ) ); 313 qWarning( "OFileNotification::unregisterSignalHandler(): couldn't deregister signal handler: %s", strerror( errno ) );
313 } 314 }