summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1999-08-18 21:18:42 +0000
committerLuke Leighton <lkcl@samba.org>1999-08-18 21:18:42 +0000
commitb3f59299a089b5860653fea1bee82253ec18cc87 (patch)
tree4e32d14d324b99c82ea9ed55fa73648452b898ea /source3/rpc_server
parentf4e98283cd0c8ef125f34981f3629806016df430 (diff)
downloadsamba-b3f59299a089b5860653fea1bee82253ec18cc87.tar.gz
samba-b3f59299a089b5860653fea1bee82253ec18cc87.tar.bz2
samba-b3f59299a089b5860653fea1bee82253ec18cc87.zip
patch from michael glauche to add session enum code into smbd.
(This used to be commit e90e38c66d51dc1808f716c016299b1604636ce9)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/srv_srvsvc.c42
1 files changed, 36 insertions, 6 deletions
diff --git a/source3/rpc_server/srv_srvsvc.c b/source3/rpc_server/srv_srvsvc.c
index 834c95615a..35f1676232 100644
--- a/source3/rpc_server/srv_srvsvc.c
+++ b/source3/rpc_server/srv_srvsvc.c
@@ -300,23 +300,36 @@ static void make_srv_sess_0_info(SESS_INFO_0 *se0, SESS_INFO_0_STR *str0,
static void make_srv_sess_info_0(SRV_SESS_INFO_0 *ss0, uint32 *snum, uint32 *stot)
{
uint32 num_entries = 0;
- (*stot) = 1;
+ struct connect_record *crec;
+ uint32 session_count;
- if (ss0 == NULL)
+ if (!get_session_count(&crec, &session_count))
{
(*snum) = 0;
+ (*stot) = 0;
return;
}
- DEBUG(5,("make_srv_sess_0_ss0\n"));
+ (*stot) = session_count;
+
+ DEBUG(0,("Session Count : %u\n",session_count));
+
+ if (ss0 == NULL)
+ {
+ (*snum) = 0;
+ free(crec);
+ return;
+ }
if (snum)
{
+ DEBUG(0,("snum ok\n"));
for (; (*snum) < (*stot) && num_entries < MAX_SESS_ENTRIES; (*snum)++)
{
make_srv_sess_0_info(&(ss0->info_0 [num_entries]),
- &(ss0->info_0_str[num_entries]), "MACHINE");
+ &(ss0->info_0_str[num_entries]), crec[num_entries].machine);
+ DEBUG(0,("make_srv_sess_0_info\n"));
/* move on to creating next session */
/* move on to creating next sess */
num_entries++;
@@ -337,6 +350,7 @@ static void make_srv_sess_info_0(SRV_SESS_INFO_0 *ss0, uint32 *snum, uint32 *sto
ss0->ptr_sess_info = 0;
ss0->num_entries_read2 = 0;
}
+ free(crec);
}
/*******************************************************************
@@ -368,11 +382,23 @@ static void make_srv_sess_1_info(SESS_INFO_1 *se1, SESS_INFO_1_STR *str1,
static void make_srv_sess_info_1(SRV_SESS_INFO_1 *ss1, uint32 *snum, uint32 *stot)
{
uint32 num_entries = 0;
- (*stot) = 1;
+ struct connect_record *crec;
+ uint32 session_count;
+
+ if (!get_session_count(&crec, &session_count))
+ {
+ (*snum) = 0;
+ (*stot) = 0;
+ return;
+ }
+ (*stot) = session_count;
+
+ DEBUG(0,("Session Count (info1) : %u\n",session_count));
if (ss1 == NULL)
{
(*snum) = 0;
+ free(crec);
return;
}
@@ -382,9 +408,12 @@ static void make_srv_sess_info_1(SRV_SESS_INFO_1 *ss1, uint32 *snum, uint32 *sto
{
for (; (*snum) < (*stot) && num_entries < MAX_SESS_ENTRIES; (*snum)++)
{
+ DEBUG(0,("sess1 machine: %s, uid : %u\n",crec[num_entries].machine,crec[num_entries].uid));
make_srv_sess_1_info(&(ss1->info_1 [num_entries]),
&(ss1->info_1_str[num_entries]),
- "MACHINE", "dummy_user", 1, 10, 5, 0);
+ crec[num_entries].machine,
+ uidtoname(crec[num_entries].uid), 1, 10, 5, 0);
+/* What are these on the End ??? */
/* move on to creating next session */
/* move on to creating next sess */
@@ -408,6 +437,7 @@ static void make_srv_sess_info_1(SRV_SESS_INFO_1 *ss1, uint32 *snum, uint32 *sto
(*stot) = 0;
}
+ free(crec);
}
/*******************************************************************