Skip to content

Commit 3dabda4

Browse files
committed
added fixes for prev commit
Signed-off-by: sachinvmurthy <[email protected]>
1 parent 7bf0051 commit 3dabda4

File tree

4 files changed

+29
-25
lines changed

4 files changed

+29
-25
lines changed

examples/client.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use valkey_module::alloc::ValkeyAlloc;
22
use valkey_module::{
3-
valkey_module, Context, NextArg, ValkeyError, ValkeyResult, ValkeyString, ValkeyValue,
3+
valkey_module, Context, NextArg, Status, ValkeyError, ValkeyResult, ValkeyString, ValkeyValue,
44
};
55

66
fn get_client_id(ctx: &Context, _args: Vec<ValkeyString>) -> ValkeyResult {
@@ -88,8 +88,10 @@ fn deauth_client_by_id(ctx: &Context, args: Vec<ValkeyString>) -> ValkeyResult {
8888
let client_id: u64 = client_id_str.parse_integer()?.try_into().unwrap();
8989
let resp = ctx.deauthenticate_and_close_client_by_id(client_id);
9090
match resp {
91-
Ok(msg) => Ok(ValkeyValue::from(msg)),
92-
Err(err) => Err(err),
91+
Status::Ok => Ok(ValkeyValue::from("OK")),
92+
Status::Err => Err(ValkeyError::Str(
93+
"Failed to deauthenticate and close client",
94+
)),
9395
}
9496
}
9597

examples/server_events.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ use valkey_module::{
66
server_events::FlushSubevent, valkey_module, Context, ValkeyResult, ValkeyString, ValkeyValue,
77
};
88
use valkey_module_macros::{
9-
client_changed_event_handler, config_changed_event_handler, cron_event_handler, flush_event_handler, key_event_handler, persistence_event_handler, shutdown_event_handler
9+
client_changed_event_handler, config_changed_event_handler, cron_event_handler,
10+
flush_event_handler, key_event_handler, persistence_event_handler, shutdown_event_handler,
1011
};
1112

1213
static NUM_FLUSHES: AtomicI64 = AtomicI64::new(0);
@@ -129,7 +130,9 @@ fn num_key_events(_ctx: &Context, _args: Vec<ValkeyString>) -> ValkeyResult {
129130
}
130131

131132
fn num_persistence_events(_ctx: &Context, _args: Vec<ValkeyString>) -> ValkeyResult {
132-
Ok(ValkeyValue::Integer(NUM_PERSISTENCE_EVENTS.load(Ordering::SeqCst)))
133+
Ok(ValkeyValue::Integer(
134+
NUM_PERSISTENCE_EVENTS.load(Ordering::SeqCst),
135+
))
133136
}
134137

135138
//////////////////////////////////////////////////////

src/context/client.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -121,18 +121,14 @@ impl Context {
121121
pub fn get_client_ip(&self) -> ValkeyResult<String> {
122122
self.get_client_ip_by_id(self.get_client_id())
123123
}
124-
pub fn deauthenticate_and_close_client_by_id(&self, client_id: u64) -> ValkeyResult<ValkeyString> {
125-
match unsafe { RedisModule_DeauthenticateAndCloseClient.unwrap()(self.ctx, client_id) } {
126-
result if result as isize == VALKEYMODULE_OK => Ok(ValkeyString::create(None, "OK")),
127-
_ => Err(ValkeyError::Str(
128-
"Failed to deauthenticate and close client",
129-
)),
130-
}
124+
pub fn deauthenticate_and_close_client_by_id(&self, client_id: u64) -> Status {
125+
let resp =
126+
unsafe { RedisModule_DeauthenticateAndCloseClient.unwrap()(self.ctx, client_id) };
127+
Status::from(resp)
131128
}
132129

133-
pub fn deauthenticate_and_close_client(&self) -> ValkeyResult<String> {
130+
pub fn deauthenticate_and_close_client(&self) -> Status {
134131
self.deauthenticate_and_close_client_by_id(self.get_client_id())
135-
.map(|valkey_str| valkey_str.to_string())
136132
}
137133

138134
pub fn config_get(&self, config: String) -> ValkeyResult<ValkeyString> {

tests/integration.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,6 @@ fn test_server_event() -> Result<()> {
484484
//one for overwrite and one for delete
485485
assert_eq!(res, 2);
486486

487-
// Get initial persistence counts
488-
let initial_persistence_events: i64 = redis::cmd("num_persistence_events").query(&mut con)?;
489487

490488
// Trigger RDB save (BGSAVE command triggers persistence events)
491489
redis::cmd("bgsave")
@@ -497,10 +495,10 @@ fn test_server_event() -> Result<()> {
497495

498496
// Check that persistence events were fired
499497
let persistence_events_after_rdb: i64 = redis::cmd("num_persistence_events").query(&mut con)?;
500-
501-
// Should have at least one more persistence event (RDB start)
502-
assert!(persistence_events_after_rdb > initial_persistence_events,
503-
"Expected persistence events to increase after BGSAVE");
498+
499+
//initially there are 2 persistence events (one for RDB save start and one for RDB save end)
500+
// after the BGSAVE command, we expect 2 more events (one for RDB save start and one for RDB save end)
501+
assert_eq!(persistence_events_after_rdb, 4);
504502

505503
Ok(())
506504
}
@@ -1214,11 +1212,16 @@ fn test_client() -> Result<()> {
12141212
.with_context(|| "failed execute client.ip")?;
12151213
assert_eq!(resp, "127.0.0.1");
12161214
// Test client.deauth
1217-
let resp: String = redis::cmd("client.deauth")
1218-
.arg(0)
1219-
.query(&mut con)
1220-
.with_context(|| "failed execute client.deauth")?;
1221-
assert_eq!(resp, "Failed to deauthenticate and close client");
1215+
let result = redis::cmd("client.deauth").arg(0).query::<String>(&mut con);
1216+
match result {
1217+
Ok(resp) => {
1218+
assert_eq!(resp, "OK");
1219+
}
1220+
Err(err) => {
1221+
let error_msg = err.to_string();
1222+
assert!(error_msg.contains("Failed: to deauthenticate and close client"));
1223+
}
1224+
}
12221225
let resp: String = redis::cmd("client.config_get")
12231226
.arg("maxmemory-policy")
12241227
.query(&mut con)

0 commit comments

Comments
 (0)