okay :) all cmd_() functions now take int argc, char **argv :) that
[samba.git] / source / rpcclient / cmd_srvsvc.c
index 59ad1ede87f8271b98a7ca21e1ec57ccbe60d8cc..ca2a8f4dc3e457b026fed8423aeec0e43eb2ef62 100644 (file)
@@ -2,8 +2,8 @@
    Unix SMB/Netbios implementation.
    Version 1.9.
    NT Domain Authentication SMB / MSRPC client
-   Copyright (C) Andrew Tridgell 1994-1997
-   Copyright (C) Luke Kenneth Casson Leighton 1996-1997
+   Copyright (C) Andrew Tridgell 1994-1999
+   Copyright (C) Luke Kenneth Casson Leighton 1996-1999
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -73,7 +73,7 @@ BOOL net_srv_get_info(struct client_info *info,
 /****************************************************************************
 server get info query
 ****************************************************************************/
-void cmd_srv_query_info(struct client_info *info)
+void cmd_srv_query_info(struct client_info *info, int argc, char *argv[])
 {
        uint32 info_level = 101;
        SRV_INFO_CTR ctr;
@@ -109,39 +109,52 @@ BOOL msrpc_srv_enum_tprt(struct cli_state *cli,
                                const char* dest_srv,
                                uint32 info_level,
                                SRV_TPRT_INFO_CTR *ctr,
-                               uint32 pref_sz,
-                               ENUM_HND *hnd)
+                               TPRT_INFO_FN(tprt_fn))
 {
        uint16 fnum;
 
        BOOL res = True;
        BOOL res1 = True;
 
+       ENUM_HND hnd;
+
+       hnd.ptr_hnd = 1;
+       hnd.handle = 0;
+
        /* open srvsvc session. */
        res = res ? cli_nt_session_open(smb_cli, PIPE_SRVSVC, &fnum) : False;
 
        /* enumerate transports on server */
        res1 = res ? do_srv_net_srv_tprt_enum(smb_cli, fnum,
                                dest_srv, 
-                   info_level, ctr, pref_sz, hnd) : False;
+                   info_level, ctr, 0xffffffff, &hnd) : False;
 
        /* close the session */
        cli_nt_session_close(smb_cli, fnum);
 
+       tprt_fn(ctr);
+
+       free_srv_tprt_ctr(ctr);
+
        return res1;
 }
 
+static void srv_display_tprt_ctr(const SRV_TPRT_INFO_CTR *ctr)
+{
+       display_srv_tprt_info_ctr(out_hnd, ACTION_HEADER   , ctr);
+       display_srv_tprt_info_ctr(out_hnd, ACTION_ENUMERATE, ctr);
+       display_srv_tprt_info_ctr(out_hnd, ACTION_FOOTER   , ctr);
+}
+
 /****************************************************************************
 server enum transports
 ****************************************************************************/
-void cmd_srv_enum_tprt(struct client_info *info)
+void cmd_srv_enum_tprt(struct client_info *info, int argc, char *argv[])
 {
        fstring dest_srv;
        fstring tmp;
        SRV_TPRT_INFO_CTR ctr;
-       ENUM_HND hnd;
        uint32 info_level = 0;
-       uint32 pref_sz = 0xffffffff;
 
        bzero(&ctr, sizeof(ctr));
 
@@ -159,25 +172,16 @@ void cmd_srv_enum_tprt(struct client_info *info)
 
        DEBUG(5, ("cmd_srv_enum_tprt: smb_cli->fd:%d\n", smb_cli->fd));
 
-       hnd.ptr_hnd = 1;
-       hnd.handle = 0;
-
        /* enumerate transports on server */
-       if (msrpc_srv_enum_tprt(smb_cli, dest_srv, 
-                   info_level, &ctr, pref_sz, &hnd))
-       {
-               display_srv_tprt_info_ctr(out_hnd, ACTION_HEADER   , &ctr);
-               display_srv_tprt_info_ctr(out_hnd, ACTION_ENUMERATE, &ctr);
-               display_srv_tprt_info_ctr(out_hnd, ACTION_FOOTER   , &ctr);
-       }
-
-       free_srv_tprt_ctr(&ctr);
+       msrpc_srv_enum_tprt(smb_cli, dest_srv, 
+                   info_level, &ctr, 
+                   srv_display_tprt_ctr);
 }
 
 /****************************************************************************
 server enum connections
 ****************************************************************************/
-void cmd_srv_enum_conn(struct client_info *info)
+void cmd_srv_enum_conn(struct client_info *info, int argc, char *argv[])
 {
        uint16 fnum;
        fstring dest_srv;
@@ -243,7 +247,7 @@ void cmd_srv_enum_conn(struct client_info *info)
 /****************************************************************************
 server enum shares
 ****************************************************************************/
-void cmd_srv_enum_shares(struct client_info *info)
+void cmd_srv_enum_shares(struct client_info *info, int argc, char *argv[])
 {
        uint16 fnum;
        fstring dest_srv;
@@ -304,7 +308,7 @@ void cmd_srv_enum_shares(struct client_info *info)
 /****************************************************************************
 server enum sessions
 ****************************************************************************/
-void cmd_srv_enum_sess(struct client_info *info)
+void cmd_srv_enum_sess(struct client_info *info, int argc, char *argv[])
 {
        uint16 fnum;
        fstring dest_srv;
@@ -364,7 +368,7 @@ void cmd_srv_enum_sess(struct client_info *info)
 /****************************************************************************
 server enum files
 ****************************************************************************/
-void cmd_srv_enum_files(struct client_info *info)
+void cmd_srv_enum_files(struct client_info *info, int argc, char *argv[])
 {
        uint16 fnum;
        fstring dest_srv;
@@ -424,7 +428,7 @@ void cmd_srv_enum_files(struct client_info *info)
 /****************************************************************************
 display remote time
 ****************************************************************************/
-void cmd_time(struct client_info *info)
+void cmd_time(struct client_info *info, int argc, char *argv[])
 {
        uint16 fnum;
        fstring dest_srv;