summaryrefslogtreecommitdiff
path: root/source3/modules/perfcount_onefs.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/modules/perfcount_onefs.c')
-rw-r--r--source3/modules/perfcount_onefs.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/source3/modules/perfcount_onefs.c b/source3/modules/perfcount_onefs.c
index 75dc14555c..d693376bfe 100644
--- a/source3/modules/perfcount_onefs.c
+++ b/source3/modules/perfcount_onefs.c
@@ -302,23 +302,26 @@ static void onefs_smb_statistics_end(struct smb_perfcount_data *pcd)
/* get address info once, doesn't change for process */
if (rem_addr == 0) {
- struct sockaddr_storage sa;
- socklen_t sa_len;
- int fd = smbd_server_fd();
-
- sa_len = sizeof sa;
- if (getpeername(fd, (struct sockaddr *)&sa, &sa_len) == 0 &&
- sa.ss_family == AF_INET)
- rem_addr = ((struct sockaddr_in *)&sa)->sin_addr.s_addr;
- else
+
+#error Isilon, please remove this after testing the code below
+
+ char *addr;
+
+ addr = talloc_sub_basic(talloc_tos(), "", "", "%I");
+ if (addr != NULL) {
+ rem_addr = interpret_addr(addr);
+ TALLOC_FREE(addr);
+ } else {
rem_addr = ISC_MASKED_ADDR;
+ }
- sa_len = sizeof sa;
- if (getsockname(fd, (struct sockaddr *)&sa, &sa_len) == 0 &&
- sa.ss_family == AF_INET)
- loc_addr = ((struct sockaddr_in *)&sa)->sin_addr.s_addr;
- else
+ addr = talloc_sub_basic(talloc_tos(), "", "", "%i");
+ if (addr != NULL) {
+ loc_addr = interpret_addr(addr);
+ TALLOC_FREE(addr);
+ } else {
loc_addr = ISC_MASKED_ADDR;
+ }
}
/*