@@ -1851,7 +1851,7 @@ static int method_do_shutdown_or_sleep(
18511851 const char * action ,
18521852 const char * action_multiple_sessions ,
18531853 const char * action_ignore_inhibit ,
1854- const char * sleep_verb ,
1854+ SleepOperation sleep_operation ,
18551855 bool with_flags ,
18561856 sd_bus_error * error ) {
18571857
@@ -1894,14 +1894,14 @@ static int method_do_shutdown_or_sleep(
18941894 return sd_bus_error_setf (error , BUS_ERROR_OPERATION_IN_PROGRESS ,
18951895 "There's already a shutdown or sleep operation in progress" );
18961896
1897- if (sleep_verb ) {
1898- r = can_sleep (sleep_verb );
1897+ if (sleep_operation >= 0 ) {
1898+ r = can_sleep (sleep_operation );
18991899 if (r == - ENOSPC )
19001900 return sd_bus_error_set (error , BUS_ERROR_SLEEP_VERB_NOT_SUPPORTED ,
19011901 "Not enough swap space for hibernation" );
19021902 if (r == 0 )
19031903 return sd_bus_error_setf (error , BUS_ERROR_SLEEP_VERB_NOT_SUPPORTED ,
1904- "Sleep verb \"%s\" not supported" , sleep_verb );
1904+ "Sleep verb \"%s\" not supported" , sleep_operation_to_string ( sleep_operation ) );
19051905 if (r < 0 )
19061906 return r ;
19071907 }
@@ -1928,7 +1928,7 @@ static int method_poweroff(sd_bus_message *message, void *userdata, sd_bus_error
19281928 "org.freedesktop.login1.power-off" ,
19291929 "org.freedesktop.login1.power-off-multiple-sessions" ,
19301930 "org.freedesktop.login1.power-off-ignore-inhibit" ,
1931- NULL ,
1931+ _SLEEP_OPERATION_INVALID ,
19321932 sd_bus_message_is_method_call (message , NULL , "PowerOffWithFlags" ),
19331933 error );
19341934}
@@ -1943,7 +1943,7 @@ static int method_reboot(sd_bus_message *message, void *userdata, sd_bus_error *
19431943 "org.freedesktop.login1.reboot" ,
19441944 "org.freedesktop.login1.reboot-multiple-sessions" ,
19451945 "org.freedesktop.login1.reboot-ignore-inhibit" ,
1946- NULL ,
1946+ _SLEEP_OPERATION_INVALID ,
19471947 sd_bus_message_is_method_call (message , NULL , "RebootWithFlags" ),
19481948 error );
19491949}
@@ -1958,7 +1958,7 @@ static int method_halt(sd_bus_message *message, void *userdata, sd_bus_error *er
19581958 "org.freedesktop.login1.halt" ,
19591959 "org.freedesktop.login1.halt-multiple-sessions" ,
19601960 "org.freedesktop.login1.halt-ignore-inhibit" ,
1961- NULL ,
1961+ _SLEEP_OPERATION_INVALID ,
19621962 sd_bus_message_is_method_call (message , NULL , "HaltWithFlags" ),
19631963 error );
19641964}
@@ -1973,7 +1973,7 @@ static int method_suspend(sd_bus_message *message, void *userdata, sd_bus_error
19731973 "org.freedesktop.login1.suspend" ,
19741974 "org.freedesktop.login1.suspend-multiple-sessions" ,
19751975 "org.freedesktop.login1.suspend-ignore-inhibit" ,
1976- "suspend" ,
1976+ SLEEP_SUSPEND ,
19771977 sd_bus_message_is_method_call (message , NULL , "SuspendWithFlags" ),
19781978 error );
19791979}
@@ -1988,7 +1988,7 @@ static int method_hibernate(sd_bus_message *message, void *userdata, sd_bus_erro
19881988 "org.freedesktop.login1.hibernate" ,
19891989 "org.freedesktop.login1.hibernate-multiple-sessions" ,
19901990 "org.freedesktop.login1.hibernate-ignore-inhibit" ,
1991- "hibernate" ,
1991+ SLEEP_HIBERNATE ,
19921992 sd_bus_message_is_method_call (message , NULL , "HibernateWithFlags" ),
19931993 error );
19941994}
@@ -2003,7 +2003,7 @@ static int method_hybrid_sleep(sd_bus_message *message, void *userdata, sd_bus_e
20032003 "org.freedesktop.login1.hibernate" ,
20042004 "org.freedesktop.login1.hibernate-multiple-sessions" ,
20052005 "org.freedesktop.login1.hibernate-ignore-inhibit" ,
2006- "hybrid-sleep" ,
2006+ SLEEP_HYBRID_SLEEP ,
20072007 sd_bus_message_is_method_call (message , NULL , "HybridSleepWithFlags" ),
20082008 error );
20092009}
@@ -2018,7 +2018,7 @@ static int method_suspend_then_hibernate(sd_bus_message *message, void *userdata
20182018 "org.freedesktop.login1.hibernate" ,
20192019 "org.freedesktop.login1.hibernate-multiple-sessions" ,
20202020 "org.freedesktop.login1.hibernate-ignore-inhibit" ,
2021- "hybrid-sleep" ,
2021+ SLEEP_SUSPEND_THEN_HIBERNATE ,
20222022 sd_bus_message_is_method_call (message , NULL , "SuspendThenHibernateWithFlags" ),
20232023 error );
20242024}
@@ -2317,7 +2317,7 @@ static int method_can_shutdown_or_sleep(
23172317 const char * action ,
23182318 const char * action_multiple_sessions ,
23192319 const char * action_ignore_inhibit ,
2320- const char * sleep_verb ,
2320+ SleepOperation sleep_operation ,
23212321 sd_bus_error * error ) {
23222322
23232323 _cleanup_ (sd_bus_creds_unrefp ) sd_bus_creds * creds = NULL ;
@@ -2335,8 +2335,8 @@ static int method_can_shutdown_or_sleep(
23352335 assert (action_multiple_sessions );
23362336 assert (action_ignore_inhibit );
23372337
2338- if (sleep_verb ) {
2339- r = can_sleep (sleep_verb );
2338+ if (sleep_operation >= 0 ) {
2339+ r = can_sleep (sleep_operation );
23402340 if (IN_SET (r , 0 , - ENOSPC ))
23412341 return sd_bus_reply_method_return (message , "s" , "na" );
23422342 if (r < 0 )
@@ -2358,7 +2358,7 @@ static int method_can_shutdown_or_sleep(
23582358 multiple_sessions = r > 0 ;
23592359 blocked = manager_is_inhibited (m , w , INHIBIT_BLOCK , NULL , false, true, uid , NULL );
23602360
2361- handle = handle_action_from_string (sleep_verb );
2361+ handle = handle_action_from_string (sleep_operation_to_string ( sleep_operation ) );
23622362 if (handle >= 0 ) {
23632363 const char * target ;
23642364
@@ -2434,7 +2434,7 @@ static int method_can_poweroff(sd_bus_message *message, void *userdata, sd_bus_e
24342434 "org.freedesktop.login1.power-off" ,
24352435 "org.freedesktop.login1.power-off-multiple-sessions" ,
24362436 "org.freedesktop.login1.power-off-ignore-inhibit" ,
2437- NULL ,
2437+ _SLEEP_OPERATION_INVALID ,
24382438 error );
24392439}
24402440
@@ -2447,7 +2447,7 @@ static int method_can_reboot(sd_bus_message *message, void *userdata, sd_bus_err
24472447 "org.freedesktop.login1.reboot" ,
24482448 "org.freedesktop.login1.reboot-multiple-sessions" ,
24492449 "org.freedesktop.login1.reboot-ignore-inhibit" ,
2450- NULL ,
2450+ _SLEEP_OPERATION_INVALID ,
24512451 error );
24522452}
24532453
@@ -2460,7 +2460,7 @@ static int method_can_halt(sd_bus_message *message, void *userdata, sd_bus_error
24602460 "org.freedesktop.login1.halt" ,
24612461 "org.freedesktop.login1.halt-multiple-sessions" ,
24622462 "org.freedesktop.login1.halt-ignore-inhibit" ,
2463- NULL ,
2463+ _SLEEP_OPERATION_INVALID ,
24642464 error );
24652465}
24662466
@@ -2473,7 +2473,7 @@ static int method_can_suspend(sd_bus_message *message, void *userdata, sd_bus_er
24732473 "org.freedesktop.login1.suspend" ,
24742474 "org.freedesktop.login1.suspend-multiple-sessions" ,
24752475 "org.freedesktop.login1.suspend-ignore-inhibit" ,
2476- "suspend" ,
2476+ SLEEP_SUSPEND ,
24772477 error );
24782478}
24792479
@@ -2486,7 +2486,7 @@ static int method_can_hibernate(sd_bus_message *message, void *userdata, sd_bus_
24862486 "org.freedesktop.login1.hibernate" ,
24872487 "org.freedesktop.login1.hibernate-multiple-sessions" ,
24882488 "org.freedesktop.login1.hibernate-ignore-inhibit" ,
2489- "hibernate" ,
2489+ SLEEP_HIBERNATE ,
24902490 error );
24912491}
24922492
@@ -2499,7 +2499,7 @@ static int method_can_hybrid_sleep(sd_bus_message *message, void *userdata, sd_b
24992499 "org.freedesktop.login1.hibernate" ,
25002500 "org.freedesktop.login1.hibernate-multiple-sessions" ,
25012501 "org.freedesktop.login1.hibernate-ignore-inhibit" ,
2502- "hybrid-sleep" ,
2502+ SLEEP_HYBRID_SLEEP ,
25032503 error );
25042504}
25052505
@@ -2512,7 +2512,7 @@ static int method_can_suspend_then_hibernate(sd_bus_message *message, void *user
25122512 "org.freedesktop.login1.hibernate" ,
25132513 "org.freedesktop.login1.hibernate-multiple-sessions" ,
25142514 "org.freedesktop.login1.hibernate-ignore-inhibit" ,
2515- "suspend-then-hibernate" ,
2515+ SLEEP_SUSPEND_THEN_HIBERNATE ,
25162516 error );
25172517}
25182518
0 commit comments