Some improvements for the relock problem: Unable to open rtc device. But issue it not solved yet. #170
This commit is contained in:
		
							parent
							
								
									fe6bd77b33
								
							
						
					
					
						commit
						d71c11d993
					
				
					 1 changed files with 7 additions and 2 deletions
				
			
		| 
						 | 
					@ -195,7 +195,10 @@ sigterm()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	state = StateDead;
 | 
						state = StateDead;
 | 
				
			||||||
	syncstate();
 | 
						syncstate();
 | 
				
			||||||
	if (wakeinterval) close(rtc_fd);
 | 
						if (wakeinterval) {
 | 
				
			||||||
 | 
							ioctl(rtc_fd, RTC_AIE_OFF, 0);
 | 
				
			||||||
 | 
							close(rtc_fd);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	fprintf(stderr, "Screenlock terminating on signal\n");
 | 
						fprintf(stderr, "Screenlock terminating on signal\n");
 | 
				
			||||||
	exit(0);
 | 
						exit(0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -474,6 +477,7 @@ void usage() {
 | 
				
			||||||
void init_rtc() {
 | 
					void init_rtc() {
 | 
				
			||||||
	rtc_fd = open(RTC_DEVICE, O_RDONLY);
 | 
						rtc_fd = open(RTC_DEVICE, O_RDONLY);
 | 
				
			||||||
	if (rtc_fd < 0) {
 | 
						if (rtc_fd < 0) {
 | 
				
			||||||
 | 
							fprintf(stderr, "Error opening rtc device: %d\n", rtc_fd);
 | 
				
			||||||
		die("Unable to open rtc device");
 | 
							die("Unable to open rtc device");
 | 
				
			||||||
		exit(EXIT_FAILURE);
 | 
							exit(EXIT_FAILURE);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -522,6 +526,8 @@ main(int argc, char **argv) {
 | 
				
			||||||
	if (!(dpy = XOpenDisplay(NULL)))
 | 
						if (!(dpy = XOpenDisplay(NULL)))
 | 
				
			||||||
		die("Cannot open display");
 | 
							die("Cannot open display");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						getoldbrightness();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (wakeinterval) init_rtc();
 | 
						if (wakeinterval) init_rtc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fprintf(stderr, "Screenlock starting\n");
 | 
						fprintf(stderr, "Screenlock starting\n");
 | 
				
			||||||
| 
						 | 
					@ -529,7 +535,6 @@ main(int argc, char **argv) {
 | 
				
			||||||
	XkbSetDetectableAutoRepeat(dpy, True, NULL);
 | 
						XkbSetDetectableAutoRepeat(dpy, True, NULL);
 | 
				
			||||||
	screen = XDefaultScreen(dpy);
 | 
						screen = XDefaultScreen(dpy);
 | 
				
			||||||
	XSync(dpy, 0);
 | 
						XSync(dpy, 0);
 | 
				
			||||||
	getoldbrightness();
 | 
					 | 
				
			||||||
	syncstate();
 | 
						syncstate();
 | 
				
			||||||
	lockscreen(dpy, screen, target == StateNoInputNoScreen || target == StateSuspend);
 | 
						lockscreen(dpy, screen, target == StateNoInputNoScreen || target == StateSuspend);
 | 
				
			||||||
	if ((target == StateNoInputNoScreen) || (target == StateSuspend)) {
 | 
						if ((target == StateNoInputNoScreen) || (target == StateSuspend)) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue