return(count > 0);
}
-/*************************************************************************
-*
-* Function Name: cli_get_server_domain
-*
-* PURPOSE: Remotes a NetWkstaGetInfo API call to the current server
-* requesting wksta_info_10 level information to determine
-* the domain the server belongs to. On success, this
-* routine sets the server_domain field in the cli_state structure
-* to the server's domain name.
-*
-* Dependencies: none
-*
-* Parameters:
-* cli - pointer to cli_state structure
-*
-* Returns:
-* True - success
-* False - failure
-*
-* Origins: samba 2.0.6 source/libsmb/clientgen.c cli_NetServerEnum()
-*
-************************************************************************/
-
-bool cli_get_server_domain(struct cli_state *cli)
-{
- char *rparam = NULL;
- char *rdata = NULL;
- unsigned int rdrcnt,rprcnt;
- char *p;
- char param[WORDSIZE /* api number */
- +sizeof(RAP_WWkstaGetInfo_REQ) /* req string */
- +sizeof(RAP_WKSTA_INFO_L10) /* return string */
- +WORDSIZE /* info level */
- +WORDSIZE]; /* buffer size */
- int res = -1;
-
- /* send a SMBtrans command with api NetWkstaGetInfo */
- p = make_header(param, RAP_WWkstaGetInfo,
- RAP_WWkstaGetInfo_REQ, RAP_WKSTA_INFO_L10);
- PUTWORD(p, 10); /* info level */
- PUTWORD(p, CLI_BUFFER_SIZE);
-
- if (cli_api(cli, param, PTR_DIFF(p,param), 8, /* params, length, max */
- NULL, 0, CLI_BUFFER_SIZE, /* data, length, max */
- &rparam, &rprcnt, /* return params, return size */
- &rdata, &rdrcnt)) { /* return data, return size */
- char *endp = rparam + rprcnt;
- res = GETRES(rparam, endp);
-
- if (res == 0) {
- TALLOC_CTX *frame = talloc_stackframe();
- char *server_domain;
- int converter = 0;
-
- p = rparam + WORDSIZE;
- GETWORD(p, converter, endp);
-
- p = rdata + DWORDSIZE + DWORDSIZE; /* skip computer & user names */
- endp = rdata + rdrcnt;
- p += rap_getstringp(frame,
- p,
- &server_domain,
- rdata,
- converter,
- endp);
-
- if (server_domain) {
- fstrcpy(cli->server_domain, server_domain);
- }
- TALLOC_FREE(frame);
- }
- }
-
- SAFE_FREE(rparam);
- SAFE_FREE(rdata);
-
- return(res == 0);
-}
-
-/*************************************************************************
-*
-* Function Name: cli_get_server_type
-*
-* PURPOSE: Remotes a NetServerGetInfo API call to the current server
-* requesting server_info_1 level information to retrieve
-* the server type.
-*
-* Dependencies: none
-*
-* Parameters:
-* cli - pointer to cli_state structure
-* pstype - pointer to uint32_t to contain returned server type
-*
-* Returns:
-* True - success
-* False - failure
-*
-* Origins: samba 2.0.6 source/libsmb/clientgen.c cli_NetServerEnum()
-*
-************************************************************************/
-
-bool cli_get_server_type(struct cli_state *cli, uint32_t *pstype)
-{
- char *rparam = NULL;
- char *rdata = NULL;
- unsigned int rdrcnt,rprcnt;
- char *p;
- char param[WORDSIZE /* api number */
- +sizeof(RAP_WserverGetInfo_REQ) /* req string */
- +sizeof(RAP_SERVER_INFO_L1) /* return string */
- +WORDSIZE /* info level */
- +WORDSIZE]; /* buffer size */
- int res = -1;
-
- /* send a SMBtrans command with api NetServerGetInfo */
- p = make_header(param, RAP_WserverGetInfo,
- RAP_WserverGetInfo_REQ, RAP_SERVER_INFO_L1);
- PUTWORD(p, 1); /* info level */
- PUTWORD(p, CLI_BUFFER_SIZE);
-
- if (cli_api(cli,
- param, PTR_DIFF(p,param), 8, /* params, length, max */
- NULL, 0, CLI_BUFFER_SIZE, /* data, length, max */
- &rparam, &rprcnt, /* return params, return size */
- &rdata, &rdrcnt /* return data, return size */
- )) {
- char *endp = rparam + rprcnt;
- res = GETRES(rparam,endp);
-
- if (res == 0 || res == ERRmoredata) {
- p = rdata;
- endp = rparam + rprcnt;
- p += 18;
- GETDWORD(p,*pstype,endp);
- *pstype &= ~SV_TYPE_LOCAL_LIST_ONLY;
- }
- }
-
- SAFE_FREE(rparam);
- SAFE_FREE(rdata);
-
- return(res == 0 || res == ERRmoredata);
-}
-
bool cli_get_server_name(TALLOC_CTX *mem_ctx, struct cli_state *cli,
char **servername)
{