r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
[vlendec/samba-autobuild/.git] / source3 / libmsrpc / libmsrpc_internal.c
index ac61424e70bc9d3deea3d60d5cb0c6b846dd15fa..a097bc181ce649cdd2eb1d755aa04949545ddf38 100644 (file)
 #include "libmsrpc_internal.h"
 
 /*used to get a struct rpc_pipe_client* to be passed into rpccli* calls*/
-struct rpc_pipe_client *cac_GetPipe(CacServerHandle *hnd, int pi_idx) {
-   SMBCSRV *srv = NULL;
-   struct rpc_pipe_client *pipe_hnd = NULL;
+struct rpc_pipe_client *cac_GetPipe(CacServerHandle *hnd, int pi_idx)
+{
+       SMBCSRV *srv = NULL;
+       struct rpc_pipe_client *pipe_hnd = NULL;
 
-   if(!hnd)
-      return NULL;
+       if(!hnd) {
+               return NULL;
+       }
 
-   if(hnd->_internal.pipes[pi_idx] == False) {
-      hnd->status = NT_STATUS_INVALID_HANDLE;
-      return NULL;
-   }
+       if(hnd->_internal.pipes[pi_idx] == False) {
+               hnd->status = NT_STATUS_INVALID_HANDLE;
+               return NULL;
+       }
 
-   srv = cac_GetServer(hnd);
-   if(!srv) {
-      hnd->status = NT_STATUS_INVALID_CONNECTION;
-      return NULL;
-   }
+       srv = cac_GetServer(hnd);
+       if(!srv) {
+               hnd->status = NT_STATUS_INVALID_CONNECTION;
+               return NULL;
+       }
 
-   pipe_hnd = srv->cli.pipe_list;
+       pipe_hnd = srv->cli->pipe_list;
 
-   while(pipe_hnd != NULL && pipe_hnd->pipe_idx != pi_idx)
-      pipe_hnd = pipe_hnd->next;
+       while(pipe_hnd != NULL && pipe_hnd->pipe_idx != pi_idx) {
+               pipe_hnd = pipe_hnd->next;
+       }
 
-   return pipe_hnd;
+       return pipe_hnd;
 }
 
 /*takes a string like HKEY_LOCAL_MACHINE\HARDWARE\ACPI and returns the reg_type code and then a pointer to the start of the path (HARDWARE)*/
@@ -100,7 +103,6 @@ RPC_DATA_BLOB *cac_MakeRpcDataBlob(TALLOC_CTX *mem_ctx, uint32 data_type, REG_VA
    RPC_DATA_BLOB *blob = NULL;
    int i;
    uint32 size = 0;
-   uint32 len  = 0;
    uint8 *multi = NULL;
    uint32 multi_idx = 0;
 
@@ -149,7 +151,7 @@ RPC_DATA_BLOB *cac_MakeRpcDataBlob(TALLOC_CTX *mem_ctx, uint32 data_type, REG_VA
          /*do it using rpcstr_push()*/
          multi_idx = 0;
          for(i = 0; i < data.reg_multi_sz.num_strings; i++) {
-            len = strlen(data.reg_multi_sz.strings[i]) + 1;
+            size_t len = strlen(data.reg_multi_sz.strings[i]) + 1;
 
             rpcstr_push((multi + multi_idx), data.reg_multi_sz.strings[i], len * 2, STR_TERMINATE);
 
@@ -325,7 +327,7 @@ SAM_USERINFO_CTR *cac_MakeUserInfoCtr(TALLOC_CTX *mem_ctx, CacUserInfo *info) {
    SAM_USERINFO_CTR *ctr = NULL;
 
    /*the flags we are 'setting'- include/passdb.h*/
-   uint32 flags = ACCT_USERNAME | ACCT_FULL_NAME | ACCT_PRIMARY_GID | ACCT_ADMIN_DESC | ACCT_DESCRIPTION |
+   uint32 flags = ACCT_USERNAME | ACCT_FULL_NAME | ACCT_PRIMARY_GID | ACCT_DESCRIPTION | ACCT_COMMENT |
                      ACCT_HOME_DIR | ACCT_HOME_DRIVE | ACCT_LOGON_SCRIPT | ACCT_PROFILE | ACCT_WORKSTATIONS |
                       ACCT_FLAGS;
 
@@ -369,16 +371,16 @@ SAM_USERINFO_CTR *cac_MakeUserInfoCtr(TALLOC_CTX *mem_ctx, CacUserInfo *info) {
    unix_to_nt_time(&pass_must_change_time, info->pass_must_change_time);
 
    /*initialize the strings*/
-   init_unistr2(&user_name, info->username, STR_TERMINATE);
-   init_unistr2(&full_name, info->full_name, STR_TERMINATE);
-   init_unistr2(&home_dir, info->home_dir, STR_TERMINATE);
-   init_unistr2(&dir_drive, info->home_drive, STR_TERMINATE);
-   init_unistr2(&log_scr, info->logon_script, STR_TERMINATE);
-   init_unistr2(&prof_path, info->profile_path, STR_TERMINATE);
-   init_unistr2(&desc, info->description, STR_TERMINATE);
-   init_unistr2(&wkstas, info->workstations, STR_TERMINATE);
-   init_unistr2(&unk, "\0", STR_TERMINATE);
-   init_unistr2(&mung_dial, info->dial, STR_TERMINATE);
+   init_unistr2(&user_name, info->username, UNI_STR_TERMINATE);
+   init_unistr2(&full_name, info->full_name, UNI_STR_TERMINATE);
+   init_unistr2(&home_dir, info->home_dir, UNI_STR_TERMINATE);
+   init_unistr2(&dir_drive, info->home_drive, UNI_STR_TERMINATE);
+   init_unistr2(&log_scr, info->logon_script, UNI_STR_TERMINATE);
+   init_unistr2(&prof_path, info->profile_path, UNI_STR_TERMINATE);
+   init_unistr2(&desc, info->description, UNI_STR_TERMINATE);
+   init_unistr2(&wkstas, info->workstations, UNI_STR_TERMINATE);
+   init_unistr2(&unk, "\0", UNI_STR_TERMINATE);
+   init_unistr2(&mung_dial, info->dial, UNI_STR_TERMINATE);
 
    /*manually set passmustchange*/
    ctr->info.id21->passmustchange = (info->pass_must_change) ? 0x01 : 0x00;