first pass at updating head branch to be to be the same as the SAMBA_2_0 branch
[mimir/samba.git] / source3 / rpc_server / srv_reg.c
index c153a78ee13dd031d0060062d3d8d39fb8b78322..fc3ce9c0d23042d32defb08a7550c898be137646 100644 (file)
@@ -1,4 +1,3 @@
-
 /* 
  *  Unix SMB/Netbios implementation.
  *  Version 1.9.
@@ -38,7 +37,7 @@ static void reg_reply_close(REG_Q_CLOSE *q_r,
        REG_R_CLOSE r_u;
 
        /* set up the REG unknown_1 response */
-       bzero(r_u.pol.data, POL_HND_SIZE);
+       memset((char *)r_u.pol.data, '\0', POL_HND_SIZE);
 
        /* close the policy handle */
        if (close_lsa_policy_hnd(&(q_r->pol)))
@@ -61,7 +60,7 @@ static void reg_reply_close(REG_Q_CLOSE *q_r,
 /*******************************************************************
  api_reg_close
  ********************************************************************/
-static void api_reg_close( uint16 vuid, prs_struct *data,
+static BOOL api_reg_close( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        REG_Q_CLOSE q_r;
@@ -71,16 +70,18 @@ static void api_reg_close( uint16 vuid, prs_struct *data,
 
        /* construct reply.  always indicate success */
        reg_reply_close(&q_r, rdata);
+
+       return True;
 }
 
 
 /*******************************************************************
  reg_reply_open
  ********************************************************************/
-static void reg_reply_open(REG_Q_OPEN_POLICY *q_r,
+static void reg_reply_open(REG_Q_OPEN_HKLM *q_r,
                                prs_struct *rdata)
 {
-       REG_R_OPEN_POLICY r_u;
+       REG_R_OPEN_HKLM r_u;
 
        r_u.status = 0x0;
        /* get a (unique) handle.  open a policy on it. */
@@ -92,7 +93,7 @@ static void reg_reply_open(REG_Q_OPEN_POLICY *q_r,
        DEBUG(5,("reg_open: %d\n", __LINE__));
 
        /* store the response in the SMB stream */
-       reg_io_r_open_policy("", &r_u, rdata, 0);
+       reg_io_r_open_hklm("", &r_u, rdata, 0);
 
        DEBUG(5,("reg_open: %d\n", __LINE__));
 }
@@ -100,16 +101,18 @@ static void reg_reply_open(REG_Q_OPEN_POLICY *q_r,
 /*******************************************************************
  api_reg_open
  ********************************************************************/
-static void api_reg_open( uint16 vuid, prs_struct *data,
+static BOOL api_reg_open( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
-       REG_Q_OPEN_POLICY q_u;
+       REG_Q_OPEN_HKLM q_u;
 
        /* grab the reg open */
-       reg_io_q_open_policy("", &q_u, data, 0);
+       reg_io_q_open_hklm("", &q_u, data, 0);
 
        /* construct reply.  always indicate success */
        reg_reply_open(&q_u, rdata);
+
+       return True;
 }
 
 
@@ -136,7 +139,7 @@ static void reg_reply_open_entry(REG_Q_OPEN_ENTRY *q_u,
                status = 0xC000000 | NT_STATUS_TOO_MANY_SECRETS; /* ha ha very droll */
        }
 
-       fstrcpy(name, unistrn2(q_u->uni_name.buffer, q_u->uni_name.uni_str_len));
+       fstrcpy(name, dos_unistrn2(q_u->uni_name.buffer, q_u->uni_name.uni_str_len));
 
        if (status == 0x0)
        {
@@ -149,7 +152,7 @@ static void reg_reply_open_entry(REG_Q_OPEN_ENTRY *q_u,
                status = 0xC000000 | NT_STATUS_TOO_MANY_SECRETS; /* ha ha very droll */
        }
 
-       make_reg_r_open_entry(&r_u, &pol, status);
+       init_reg_r_open_entry(&r_u, &pol, status);
 
        /* store the response in the SMB stream */
        reg_io_r_open_entry("", &r_u, rdata, 0);
@@ -160,7 +163,7 @@ static void reg_reply_open_entry(REG_Q_OPEN_ENTRY *q_u,
 /*******************************************************************
  api_reg_open_entry
  ********************************************************************/
-static void api_reg_open_entry( uint16 vuid, prs_struct *data,
+static BOOL api_reg_open_entry( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        REG_Q_OPEN_ENTRY q_u;
@@ -170,6 +173,8 @@ static void api_reg_open_entry( uint16 vuid, prs_struct *data,
 
        /* construct reply. */
        reg_reply_open_entry(&q_u, rdata);
+
+       return True;
 }
 
 
@@ -194,7 +199,7 @@ static void reg_reply_info(REG_Q_INFO *q_u,
        {
        }
 
-       make_reg_r_info(&r_u, 1, "LanmanNT", 0x12, 0x12, status);
+       init_reg_r_info(&r_u, 1, "LanmanNT", 0x12, 0x12, status);
 
        /* store the response in the SMB stream */
        reg_io_r_info("", &r_u, rdata, 0);
@@ -205,7 +210,7 @@ static void reg_reply_info(REG_Q_INFO *q_u,
 /*******************************************************************
  api_reg_info
  ********************************************************************/
-static void api_reg_info( uint16 vuid, prs_struct *data,
+static BOOL api_reg_info( uint16 vuid, prs_struct *data,
                                     prs_struct *rdata )
 {
        REG_Q_INFO q_u;
@@ -215,6 +220,8 @@ static void api_reg_info( uint16 vuid, prs_struct *data,
 
        /* construct reply.  always indicate success */
        reg_reply_info(&q_u, rdata);
+
+       return True;
 }
 
 
@@ -225,9 +232,9 @@ static struct api_struct api_reg_cmds[] =
 {
        { "REG_CLOSE"        , REG_CLOSE        , api_reg_close        },
        { "REG_OPEN_ENTRY"   , REG_OPEN_ENTRY   , api_reg_open_entry   },
-       { "REG_OPEN"         , REG_OPEN_POLICY  , api_reg_open         },
+       { "REG_OPEN"         , REG_OPEN_HKLM    , api_reg_open         },
        { "REG_INFO"         , REG_INFO         , api_reg_info         },
-    { NULL,                       0                , NULL                 }
+       { NULL,                0                , NULL                 }
 };
 
 /*******************************************************************