2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS net command
4 * FILE: base/applications/network/net/cmdConfig.c
5 * PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
13 PSERVER_INFO_102 ServerInfo
)
15 PSERVER_TRANSPORT_INFO_0 TransportInfo
= NULL
;
16 DWORD dwRead
, dwTotal
, i
;
17 INT nPaddedLength
= 38;
18 NET_API_STATUS Status
;
20 Status
= NetServerTransportEnum(NULL
, 0, (PBYTE
*)&TransportInfo
,
25 if (Status
!= NERR_Success
)
28 PrintPaddedResourceString(IDS_CONFIG_SERVER_NAME
, nPaddedLength
);
29 ConPrintf(StdOut
, L
"\\\\%s\n", ServerInfo
->sv102_name
);
31 PrintPaddedResourceString(IDS_CONFIG_SERVER_COMMENT
, nPaddedLength
);
32 ConPrintf(StdOut
, L
"%s\n\n", ServerInfo
->sv102_comment
);
34 PrintPaddedResourceString(IDS_CONFIG_SERVER_VERSION
, nPaddedLength
);
35 ConPrintf(StdOut
, L
"%lu.%lu\n",
36 ServerInfo
->sv102_version_major
,
37 ServerInfo
->sv102_version_minor
);
39 ConResPuts(StdOut
, IDS_CONFIG_SERVER_ACTIVE
);
40 ConPuts(StdOut
, L
"\n");
41 for (i
= 0; i
< dwRead
; i
++)
43 ConPrintf(StdOut
, L
" %s (%s)\n",
44 &TransportInfo
[i
].svti0_transportname
[8],
45 TransportInfo
[i
].svti0_networkaddress
);
47 ConPuts(StdOut
, L
"\n");
49 PrintPaddedResourceString(IDS_CONFIG_SERVER_HIDDEN
, nPaddedLength
);
50 ConResPuts(StdOut
, (ServerInfo
->sv102_hidden
== SV_HIDDEN
) ? IDS_GENERIC_YES
: IDS_GENERIC_NO
);
51 ConPuts(StdOut
, L
"\n");
53 PrintPaddedResourceString(IDS_CONFIG_SERVER_USERS
, nPaddedLength
);
54 ConPrintf(StdOut
, L
"%lu\n", ServerInfo
->sv102_users
);
56 PrintPaddedResourceString(IDS_CONFIG_SERVER_FILES
, nPaddedLength
);
57 ConPuts(StdOut
, L
"...\n\n");
59 PrintPaddedResourceString(IDS_CONFIG_SERVER_IDLE
, nPaddedLength
);
60 if (ServerInfo
->sv102_disc
== SV_NODISC
)
61 ConResPuts(StdOut
, IDS_GENERIC_UNLIMITED
);
63 ConPrintf(StdOut
, L
"%lu\n", ServerInfo
->sv102_disc
);
66 if (TransportInfo
!= NULL
)
67 NetApiBufferFree(TransportInfo
);
75 DisplayWorkstationConfig(VOID
)
77 PWKSTA_INFO_100 WorkstationInfo
= NULL
;
78 PWKSTA_USER_INFO_1 UserInfo
= NULL
;
79 PWKSTA_TRANSPORT_INFO_0 TransportInfo
= NULL
;
80 DWORD dwRead
= 0, dwTotal
= 0, i
;
81 INT nPaddedLength
= 38;
82 NET_API_STATUS Status
;
84 Status
= NetWkstaGetInfo(NULL
, 100, (PBYTE
*)&WorkstationInfo
);
85 if (Status
!= NERR_Success
)
88 Status
= NetWkstaUserGetInfo(NULL
, 1, (PBYTE
*)&UserInfo
);
89 if (Status
!= NERR_Success
)
92 Status
= NetWkstaTransportEnum(NULL
,
94 (PBYTE
*)&TransportInfo
,
99 if (Status
!= NERR_Success
)
102 PrintPaddedResourceString(IDS_CONFIG_WORKSTATION_NAME
, nPaddedLength
);
103 ConPrintf(StdOut
, L
"\\\\%s\n", WorkstationInfo
->wki100_computername
);
105 PrintPaddedResourceString(IDS_CONFIG_WORKSTATION_FULLNAME
, nPaddedLength
);
106 ConPuts(StdOut
, L
"...\n");
108 PrintPaddedResourceString(IDS_CONFIG_WORKSTATION_USERNAME
, nPaddedLength
);
109 ConPrintf(StdOut
, L
"%s\n", UserInfo
->wkui1_username
);
111 ConPuts(StdOut
, L
"\n");
113 ConResPuts(StdOut
, IDS_CONFIG_WORKSTATION_ACTIVE
);
114 ConPuts(StdOut
, L
"\n");
115 for (i
= 0; i
< dwRead
; i
++)
117 ConPrintf(StdOut
, L
" %s (%s)\n",
118 &TransportInfo
[i
].wkti0_transport_name
[8],
119 TransportInfo
[i
].wkti0_transport_address
);
121 ConPuts(StdOut
, L
"\n");
123 PrintPaddedResourceString(IDS_CONFIG_WORKSTATION_VERSION
, nPaddedLength
);
124 ConPrintf(StdOut
, L
"%lu.%lu\n",
125 WorkstationInfo
->wki100_ver_major
,
126 WorkstationInfo
->wki100_ver_minor
);
128 ConPuts(StdOut
, L
"\n");
130 PrintPaddedResourceString(IDS_CONFIG_WORKSTATION_DOMAIN
, nPaddedLength
);
131 ConPrintf(StdOut
, L
"%s\n", WorkstationInfo
->wki100_langroup
);
133 PrintPaddedResourceString(IDS_CONFIG_WORKSTATION_LOGON
, nPaddedLength
);
134 ConPrintf(StdOut
, L
"%s\n", UserInfo
->wkui1_logon_domain
);
137 if (TransportInfo
!= NULL
)
138 NetApiBufferFree(TransportInfo
);
140 if (UserInfo
!= NULL
)
141 NetApiBufferFree(UserInfo
);
143 if (WorkstationInfo
!= NULL
)
144 NetApiBufferFree(WorkstationInfo
);
156 BOOL bServer
= FALSE
;
157 BOOL bWorkstation
= FALSE
;
159 BOOL bModify
= FALSE
;
161 PSERVER_INFO_102 ServerInfo
= NULL
;
162 NET_API_STATUS Status
;
164 for (i
= 2; i
< argc
; i
++)
166 if (_wcsicmp(argv
[i
], L
"server") == 0)
168 if (bWorkstation
== FALSE
)
173 if (_wcsicmp(argv
[i
], L
"workstation") == 0)
175 if (bServer
== FALSE
)
180 if (_wcsicmp(argv
[i
], L
"help") == 0)
182 /* Print short syntax help */
185 ConResPuts(StdOut
, IDS_GENERIC_SYNTAX
);
186 PrintNetMessage(MSG_CONFIG_SERVER_SYNTAX
);
190 ConResPuts(StdOut
, IDS_GENERIC_SYNTAX
);
191 PrintNetMessage(MSG_CONFIG_SYNTAX
);
196 if (_wcsicmp(argv
[i
], L
"/help") == 0)
198 /* Print full help text*/
201 ConResPuts(StdOut
, IDS_GENERIC_SYNTAX
);
202 PrintNetMessage(MSG_CONFIG_SERVER_SYNTAX
);
203 PrintNetMessage(MSG_CONFIG_SERVER_HELP
);
204 ConResPuts(StdOut
, IDS_GENERIC_PAGE
);
208 ConResPuts(StdOut
, IDS_GENERIC_SYNTAX
);
209 PrintNetMessage(MSG_CONFIG_SYNTAX
);
210 PrintNetMessage(MSG_CONFIG_HELP
);
218 Status
= NetServerGetInfo(NULL
, 102, (PBYTE
*)&ServerInfo
);
219 if (Status
!= NERR_Success
)
222 for (i
= 2; i
< argc
; i
++)
224 if (argv
[i
][0] != L
'/')
227 if (_wcsnicmp(argv
[i
], L
"/autodisconnect:", 16) == 0)
230 lValue
= wcstol(p
, &endptr
, 10);
233 ConResPrintf(StdErr
, IDS_ERROR_INVALID_OPTION_VALUE
, L
"/AUTODISCONNECT");
238 if (lValue
< -1 || lValue
> 65535)
240 ConResPrintf(StdErr
, IDS_ERROR_INVALID_OPTION_VALUE
, L
"/AUTODISCONNECT");
245 ServerInfo
->sv102_disc
= lValue
;
248 else if (_wcsnicmp(argv
[i
], L
"/srvcomment:", 12) == 0)
250 ServerInfo
->sv102_comment
= &argv
[i
][12];
253 else if (_wcsnicmp(argv
[i
], L
"/hidden:", 8) == 0)
256 if (_wcsicmp(p
, L
"yes") != 0 && _wcsicmp(p
, L
"no") != 0)
258 ConResPrintf(StdErr
, IDS_ERROR_INVALID_OPTION_VALUE
, L
"/HIDDEN");
263 ServerInfo
->sv102_hidden
= (_wcsicmp(p
, L
"yes") == 0) ? TRUE
: FALSE
;
268 ConResPuts(StdOut
, IDS_GENERIC_SYNTAX
);
269 PrintNetMessage(MSG_CONFIG_SERVER_SYNTAX
);
277 Status
= NetServerSetInfo(NULL
, 102, (PBYTE
)&ServerInfo
, NULL
);
278 if (Status
!= NERR_Success
)
283 result
= DisplayServerConfig(ServerInfo
);
286 else if (bWorkstation
)
288 result
= DisplayWorkstationConfig();
292 ConResPuts(StdOut
, IDS_CONFIG_TEXT
);
296 if (ServerInfo
!= NULL
)
297 NetApiBufferFree(ServerInfo
);
300 PrintErrorMessage(ERROR_SUCCESS
);