Ignore:
Timestamp:
Nov 14, 2012, 12:59:34 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to 3.6.0

Location:
vendor/current/source4/ntptr
Files:
1 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source4/ntptr/ntptr_base.c

    r414 r740  
    7171NTSTATUS ntptr_init(struct loadparm_context *lp_ctx)
    7272{
    73         extern NTSTATUS ntptr_simple_ldb_init(void);
     73#define _MODULE_PROTO(init) extern NTSTATUS init(void);
     74        STATIC_ntptr_MODULES_PROTO;
    7475        init_module_fn static_init[] = { STATIC_ntptr_MODULES };
    7576        init_module_fn *shared_init = load_samba_modules(NULL, lp_ctx, "ntptr");
  • vendor/current/source4/ntptr/simple_ldb/ntptr_simple_ldb.c

    r427 r740  
    3131#include "ntptr/ntptr.h"
    3232#include "librpc/gen_ndr/ndr_spoolss.h"
    33 #include "lib/ldb/include/ldb.h"
     33#include <ldb.h>
    3434#include "auth/auth.h"
    3535#include "dsdb/samdb/samdb.h"
    3636#include "ldb_wrap.h"
    3737#include "../lib/util/util_ldb.h"
     38#include "librpc/gen_ndr/dcerpc.h"
     39#include "rpc_server/dcerpc_server.h"
    3840#include "rpc_server/common/common.h"
    3941#include "param/param.h"
     
    4547static struct ldb_context *sptr_db_connect(TALLOC_CTX *mem_ctx, struct tevent_context *ev_ctx, struct loadparm_context *lp_ctx)
    4648{
    47         return ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx, lp_spoolss_url(lp_ctx), system_session(mem_ctx, lp_ctx),
    48                                 NULL, 0, NULL);
     49        return ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx, lpcfg_spoolss_url(lp_ctx), system_session(lp_ctx),
     50                                NULL, 0);
    4951}
    5052
     
    7577#define SET_STRING(ldb, mod, attr, value) do { \
    7678        if (value == NULL) return WERR_INVALID_PARAM; \
    77         if (samdb_msg_add_string(ldb, (TALLOC_CTX *)mod, mod, attr, value) != 0) { \
     79        if (ldb_msg_add_string(mod, attr, value) != LDB_SUCCESS) { \
    7880                return WERR_NOMEM; \
    7981        } \
     
    8183
    8284#define SET_UINT(ldb, mod, attr, value) do { \
    83         if (samdb_msg_add_uint(ldb, (TALLOC_CTX *)mod, mod, attr, value) != 0) { \
     85        if (samdb_msg_add_uint(ldb, (TALLOC_CTX *)mod, mod, attr, value) != LDB_SUCCESS) { \
    8486                return WERR_NOMEM; \
    8587        } \
     
    130132                                   enum winreg_Type *type)
    131133{
    132         struct dcerpc_server_info *server_info = lp_dcerpc_server_info(mem_ctx, server->ntptr->lp_ctx);
     134        struct dcerpc_server_info *server_info = lpcfg_dcerpc_server_info(mem_ctx, server->ntptr->lp_ctx);
    133135        if (strcmp("W3SvcInstalled", value_name) == 0) {
    134136                *type           = REG_DWORD;
     
    161163        } else if (strcmp("DefaultSpoolDirectory", value_name) == 0) {
    162164                *type           = REG_SZ;
    163                 r->string       = talloc_strdup(mem_ctx, "C:\\PRINTERS");
    164                 W_ERROR_HAVE_NO_MEMORY(r->string);
     165                r->string       = "C:\\PRINTERS";
    165166                return  WERR_OK;
    166167        } else if (strcmp("Architecture", value_name) == 0) {
    167168                *type           = REG_SZ;
    168                 r->string       = talloc_strdup(mem_ctx, SPOOLSS_ARCHITECTURE_NT_X86);
    169                 W_ERROR_HAVE_NO_MEMORY(r->string);
     169                r->string       = SPOOLSS_ARCHITECTURE_NT_X86;
    170170                return  WERR_OK;
    171171        } else if (strcmp("DsPresent", value_name) == 0) {
     
    183183                os.extra_string         = "";
    184184
    185                 ndr_err = ndr_push_struct_blob(&blob, mem_ctx, lp_iconv_convenience(server->ntptr->lp_ctx), &os, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion);
     185                ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &os, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion);
    186186                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
    187187                        return WERR_GENERAL_FAILURE;
     
    206206                os_ex.reserved          = 0;
    207207
    208                 ndr_err = ndr_push_struct_blob(&blob, mem_ctx, lp_iconv_convenience(server->ntptr->lp_ctx), &os_ex, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx);
     208                ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &os_ex, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx);
    209209                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
    210210                        return WERR_GENERAL_FAILURE;
     
    215215                return WERR_OK;
    216216        } else if (strcmp("DNSMachineName", value_name) == 0) {
    217                 if (!lp_realm(server->ntptr->lp_ctx)) return WERR_INVALID_PARAM;
     217                const char *dnsdomain = lpcfg_dnsdomain(server->ntptr->lp_ctx);
     218
     219                if (dnsdomain == NULL) return WERR_INVALID_PARAM;
    218220
    219221                *type           = REG_SZ;
    220222                r->string       = talloc_asprintf(mem_ctx, "%s.%s",
    221                                                    lp_netbios_name(server->ntptr->lp_ctx),
    222                                                    lp_realm(server->ntptr->lp_ctx));
     223                                                          lpcfg_netbios_name(server->ntptr->lp_ctx),
     224                                                          dnsdomain);
    223225                W_ERROR_HAVE_NO_MEMORY(r->string);
    224226                return WERR_OK;
     
    241243        }
    242244
    243         ndr_err = ndr_push_union_blob(&blob, mem_ctx, lp_iconv_convenience(server->ntptr->lp_ctx),
     245        ndr_err = ndr_push_union_blob(&blob, mem_ctx,
    244246                                      &data, *r->out.type, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData);
    245247        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
     
    279281        case 1:
    280282                for (i=0; i < count; i++) {
    281                         info[i].info1.flags             = samdb_result_uint(msgs[i], "flags", SPOOLSS_FORM_BUILTIN);
    282 
    283                         info[i].info1.form_name         = samdb_result_string(msgs[i], "form-name", NULL);
     283                        info[i].info1.flags             = ldb_msg_find_attr_as_uint(msgs[i], "flags", SPOOLSS_FORM_BUILTIN);
     284
     285                        info[i].info1.form_name         = ldb_msg_find_attr_as_string(msgs[i], "form-name", NULL);
    284286                        W_ERROR_HAVE_NO_MEMORY(info[i].info1.form_name);
    285287
    286                         info[i].info1.size.width        = samdb_result_uint(msgs[i], "size-width", 0);
    287                         info[i].info1.size.height       = samdb_result_uint(msgs[i], "size-height", 0);
    288 
    289                         info[i].info1.area.left         = samdb_result_uint(msgs[i], "area-left", 0);
    290                         info[i].info1.area.top          = samdb_result_uint(msgs[i], "area-top", 0);
    291                         info[i].info1.area.right        = samdb_result_uint(msgs[i], "area-right", 0);
    292                         info[i].info1.area.bottom       = samdb_result_uint(msgs[i], "area-bottom", 0);
     288                        info[i].info1.size.width        = ldb_msg_find_attr_as_uint(msgs[i], "size-width", 0);
     289                        info[i].info1.size.height       = ldb_msg_find_attr_as_uint(msgs[i], "size-height", 0);
     290
     291                        info[i].info1.area.left         = ldb_msg_find_attr_as_uint(msgs[i], "area-left", 0);
     292                        info[i].info1.area.top          = ldb_msg_find_attr_as_uint(msgs[i], "area-top", 0);
     293                        info[i].info1.area.right        = ldb_msg_find_attr_as_uint(msgs[i], "area-right", 0);
     294                        info[i].info1.area.bottom       = ldb_msg_find_attr_as_uint(msgs[i], "area-bottom", 0);
    293295                }
    294296                break;
     
    395397                if (count < 0) return WERR_GENERAL_FAILURE;
    396398
    397                 flags = samdb_result_uint(msgs[0], "flags", SPOOLSS_FORM_BUILTIN);
     399                flags = ldb_msg_find_attr_as_uint(msgs[0], "flags", SPOOLSS_FORM_BUILTIN);
    398400                if (flags != SPOOLSS_FORM_USER) {
    399401                        return WERR_FOOBAR;
     
    422424        }
    423425
    424         ret = samdb_replace(sptr_db, mem_ctx, msg);
     426        ret = dsdb_replace(sptr_db, msg, 0);
    425427        if (ret != 0) {
    426428                return WERR_FOOBAR;
     
    458460        if (count < 0) return WERR_GENERAL_FAILURE;
    459461
    460         flags = samdb_result_uint(msgs[0], "flags", SPOOLSS_FORM_BUILTIN);
     462        flags = ldb_msg_find_attr_as_uint(msgs[0], "flags", SPOOLSS_FORM_BUILTIN);
    461463        if (flags != SPOOLSS_FORM_USER) {
    462464                return WERR_FOOBAR;
     
    541543        case 1:
    542544                for (i = 0; i < count; i++) {
    543                         info[i].info1.flags             = samdb_result_uint(msgs[i], "flags", 0);
    544 
    545                         info[i].info1.name              = samdb_result_string(msgs[i], "name", "");
     545                        info[i].info1.flags             = ldb_msg_find_attr_as_uint(msgs[i], "flags", 0);
     546
     547                        info[i].info1.name              = ldb_msg_find_attr_as_string(msgs[i], "name", "");
    546548                        W_ERROR_HAVE_NO_MEMORY(info[i].info1.name);
    547549
    548                         info[i].info1.description       = samdb_result_string(msgs[i], "description", "");
     550                        info[i].info1.description       = ldb_msg_find_attr_as_string(msgs[i], "description", "");
    549551                        W_ERROR_HAVE_NO_MEMORY(info[i].info1.description);
    550552
    551                         info[i].info1.comment           = samdb_result_string(msgs[i], "comment", NULL);
     553                        info[i].info1.comment           = ldb_msg_find_attr_as_string(msgs[i], "comment", NULL);
    552554                }
    553555                break;
    554556        case 2:
    555557                for (i = 0; i < count; i++) {
    556                         info[i].info2.servername        = samdb_result_string(msgs[i], "servername", "");
     558                        info[i].info2.servername        = ldb_msg_find_attr_as_string(msgs[i], "servername", "");
    557559                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.servername);
    558560
    559                         info[i].info2.printername       = samdb_result_string(msgs[i], "printername", "");
     561                        info[i].info2.printername       = ldb_msg_find_attr_as_string(msgs[i], "printername", "");
    560562                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.printername);
    561563
    562                         info[i].info2.sharename         = samdb_result_string(msgs[i], "sharename", "");
     564                        info[i].info2.sharename         = ldb_msg_find_attr_as_string(msgs[i], "sharename", "");
    563565                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.sharename);
    564566
    565                         info[i].info2.portname          = samdb_result_string(msgs[i], "portname", "");
     567                        info[i].info2.portname          = ldb_msg_find_attr_as_string(msgs[i], "portname", "");
    566568                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.portname);
    567569
    568                         info[i].info2.drivername        = samdb_result_string(msgs[i], "drivername", "");
     570                        info[i].info2.drivername        = ldb_msg_find_attr_as_string(msgs[i], "drivername", "");
    569571                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.drivername);
    570572
    571                         info[i].info2.comment           = samdb_result_string(msgs[i], "comment", NULL);
    572 
    573                         info[i].info2.location          = samdb_result_string(msgs[i], "location", NULL);
     573                        info[i].info2.comment           = ldb_msg_find_attr_as_string(msgs[i], "comment", NULL);
     574
     575                        info[i].info2.location          = ldb_msg_find_attr_as_string(msgs[i], "location", NULL);
    574576
    575577                        info[i].info2.devmode           = NULL;
    576578
    577                         info[i].info2.sepfile           = samdb_result_string(msgs[i], "sepfile", NULL);
    578 
    579                         info[i].info2.printprocessor    = samdb_result_string(msgs[i], "printprocessor", "");
     579                        info[i].info2.sepfile           = ldb_msg_find_attr_as_string(msgs[i], "sepfile", NULL);
     580
     581                        info[i].info2.printprocessor    = ldb_msg_find_attr_as_string(msgs[i], "printprocessor", "");
    580582                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.printprocessor);
    581583
    582                         info[i].info2.datatype          = samdb_result_string(msgs[i], "datatype", "");
     584                        info[i].info2.datatype          = ldb_msg_find_attr_as_string(msgs[i], "datatype", "");
    583585                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.datatype);
    584586
    585                         info[i].info2.parameters        = samdb_result_string(msgs[i], "parameters", NULL);
     587                        info[i].info2.parameters        = ldb_msg_find_attr_as_string(msgs[i], "parameters", NULL);
    586588
    587589                        info[i].info2.secdesc           = NULL;
    588590
    589                         info[i].info2.attributes        = samdb_result_uint(msgs[i], "attributes", 0);
    590                         info[i].info2.priority          = samdb_result_uint(msgs[i], "priority", 0);
    591                         info[i].info2.defaultpriority   = samdb_result_uint(msgs[i], "defaultpriority", 0);
    592                         info[i].info2.starttime         = samdb_result_uint(msgs[i], "starttime", 0);
    593                         info[i].info2.untiltime         = samdb_result_uint(msgs[i], "untiltime", 0);
    594                         info[i].info2.status            = samdb_result_uint(msgs[i], "status", 0);
    595                         info[i].info2.cjobs             = samdb_result_uint(msgs[i], "cjobs", 0);
    596                         info[i].info2.averageppm        = samdb_result_uint(msgs[i], "averageppm", 0);
     591                        info[i].info2.attributes        = ldb_msg_find_attr_as_uint(msgs[i], "attributes", 0);
     592                        info[i].info2.priority          = ldb_msg_find_attr_as_uint(msgs[i], "priority", 0);
     593                        info[i].info2.defaultpriority   = ldb_msg_find_attr_as_uint(msgs[i], "defaultpriority", 0);
     594                        info[i].info2.starttime         = ldb_msg_find_attr_as_uint(msgs[i], "starttime", 0);
     595                        info[i].info2.untiltime         = ldb_msg_find_attr_as_uint(msgs[i], "untiltime", 0);
     596                        info[i].info2.status            = ldb_msg_find_attr_as_uint(msgs[i], "status", 0);
     597                        info[i].info2.cjobs             = ldb_msg_find_attr_as_uint(msgs[i], "cjobs", 0);
     598                        info[i].info2.averageppm        = ldb_msg_find_attr_as_uint(msgs[i], "averageppm", 0);
    597599                }
    598600                break;
    599601        case 4:
    600602                for (i = 0; i < count; i++) {
    601                         info[i].info4.printername       = samdb_result_string(msgs[i], "printername", "");
     603                        info[i].info4.printername       = ldb_msg_find_attr_as_string(msgs[i], "printername", "");
    602604                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.printername);
    603605
    604                         info[i].info4.servername        = samdb_result_string(msgs[i], "servername", "");
     606                        info[i].info4.servername        = ldb_msg_find_attr_as_string(msgs[i], "servername", "");
    605607                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.servername);
    606608
    607                         info[i].info4.attributes        = samdb_result_uint(msgs[i], "attributes", 0);
     609                        info[i].info4.attributes        = ldb_msg_find_attr_as_uint(msgs[i], "attributes", 0);
    608610                }
    609611                break;
    610612        case 5:
    611613                for (i = 0; i < count; i++) {
    612                         info[i].info5.printername       = samdb_result_string(msgs[i], "name", "");
     614                        info[i].info5.printername       = ldb_msg_find_attr_as_string(msgs[i], "name", "");
    613615                        W_ERROR_HAVE_NO_MEMORY(info[i].info5.printername);
    614616
    615                         info[i].info5.portname          = samdb_result_string(msgs[i], "port", "");
     617                        info[i].info5.portname          = ldb_msg_find_attr_as_string(msgs[i], "port", "");
    616618                        W_ERROR_HAVE_NO_MEMORY(info[i].info5.portname);
    617619
    618                         info[i].info5.attributes        = samdb_result_uint(msgs[i], "attributes", 0);
    619                         info[i].info5.device_not_selected_timeout = samdb_result_uint(msgs[i], "device_not_selected_timeout", 0);
    620                         info[i].info5.transmission_retry_timeout  = samdb_result_uint(msgs[i], "transmission_retry_timeout", 0);
     620                        info[i].info5.attributes        = ldb_msg_find_attr_as_uint(msgs[i], "attributes", 0);
     621                        info[i].info5.device_not_selected_timeout = ldb_msg_find_attr_as_uint(msgs[i], "device_not_selected_timeout", 0);
     622                        info[i].info5.transmission_retry_timeout  = ldb_msg_find_attr_as_uint(msgs[i], "transmission_retry_timeout", 0);
    621623                }
    622624                break;
     
    660662        case 1:
    661663                for (i = 0; i < count; i++) {
    662                         info[i].info1.port_name         = samdb_result_string(msgs[i], "port-name", "");
     664                        info[i].info1.port_name         = ldb_msg_find_attr_as_string(msgs[i], "port-name", "");
    663665                        W_ERROR_HAVE_NO_MEMORY(info[i].info1.port_name);
    664666                }
     
    666668        case 2:
    667669                for (i=0; i < count; i++) {
    668                         info[i].info2.port_name         = samdb_result_string(msgs[i], "port-name", "");
     670                        info[i].info2.port_name         = ldb_msg_find_attr_as_string(msgs[i], "port-name", "");
    669671                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.port_name);
    670672
    671                         info[i].info2.monitor_name      = samdb_result_string(msgs[i], "monitor-name", "");
     673                        info[i].info2.monitor_name      = ldb_msg_find_attr_as_string(msgs[i], "monitor-name", "");
    672674                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.monitor_name);
    673675
    674                         info[i].info2.description       = samdb_result_string(msgs[i], "description", "");
     676                        info[i].info2.description       = ldb_msg_find_attr_as_string(msgs[i], "description", "");
    675677                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.description);
    676678
    677                         info[i].info2.port_type         = samdb_result_uint(msgs[i], "port-type", SPOOLSS_PORT_TYPE_WRITE);
    678                         info[i].info2.reserved          = samdb_result_uint(msgs[i], "reserved", 0);
     679                        info[i].info2.port_type         = ldb_msg_find_attr_as_uint(msgs[i], "port-type", SPOOLSS_PORT_TYPE_WRITE);
     680                        info[i].info2.reserved          = ldb_msg_find_attr_as_uint(msgs[i], "reserved", 0);
    679681                }
    680682                break;
     
    710712        case 1:
    711713                for (i = 0; i < count; i++) {
    712                         info[i].info1.monitor_name      = samdb_result_string(msgs[i], "monitor-name", "");
     714                        info[i].info1.monitor_name      = ldb_msg_find_attr_as_string(msgs[i], "monitor-name", "");
    713715                        W_ERROR_HAVE_NO_MEMORY(info[i].info1.monitor_name);
    714716                }
     
    716718        case 2:
    717719                for (i=0; i < count; i++) {
    718                         info[i].info2.monitor_name      = samdb_result_string(msgs[i], "monitor-name", "");
     720                        info[i].info2.monitor_name      = ldb_msg_find_attr_as_string(msgs[i], "monitor-name", "");
    719721                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.monitor_name);
    720722
    721                         info[i].info2.environment       = samdb_result_string(msgs[i], "environment", "");
     723                        info[i].info2.environment       = ldb_msg_find_attr_as_string(msgs[i], "environment", "");
    722724                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.environment);
    723725
    724                         info[i].info2.dll_name          = samdb_result_string(msgs[i], "dll-name", "");
     726                        info[i].info2.dll_name          = ldb_msg_find_attr_as_string(msgs[i], "dll-name", "");
    725727                        W_ERROR_HAVE_NO_MEMORY(info[i].info2.dll_name);
    726728                }
     
    767769        switch (r->in.level) {
    768770        case 1:
    769                 info->info1.flags       = samdb_result_uint(msgs[0], "flags", SPOOLSS_FORM_BUILTIN);
    770 
    771                 info->info1.form_name   = samdb_result_string(msgs[0], "form-name", NULL);
     771                info->info1.flags       = ldb_msg_find_attr_as_uint(msgs[0], "flags", SPOOLSS_FORM_BUILTIN);
     772
     773                info->info1.form_name   = ldb_msg_find_attr_as_string(msgs[0], "form-name", NULL);
    772774                W_ERROR_HAVE_NO_MEMORY(info->info1.form_name);
    773775
    774                 info->info1.size.width  = samdb_result_uint(msgs[0], "size-width", 0);
    775                 info->info1.size.height = samdb_result_uint(msgs[0], "size-height", 0);
    776 
    777                 info->info1.area.left   = samdb_result_uint(msgs[0], "area-left", 0);
    778                 info->info1.area.top    = samdb_result_uint(msgs[0], "area-top", 0);
    779                 info->info1.area.right  = samdb_result_uint(msgs[0], "area-right", 0);
    780                 info->info1.area.bottom = samdb_result_uint(msgs[0], "area-bottom", 0);
     776                info->info1.size.width  = ldb_msg_find_attr_as_uint(msgs[0], "size-width", 0);
     777                info->info1.size.height = ldb_msg_find_attr_as_uint(msgs[0], "size-height", 0);
     778
     779                info->info1.area.left   = ldb_msg_find_attr_as_uint(msgs[0], "area-left", 0);
     780                info->info1.area.top    = ldb_msg_find_attr_as_uint(msgs[0], "area-top", 0);
     781                info->info1.area.right  = ldb_msg_find_attr_as_uint(msgs[0], "area-right", 0);
     782                info->info1.area.bottom = ldb_msg_find_attr_as_uint(msgs[0], "area-bottom", 0);
    781783                break;
    782784        default:
Note: See TracChangeset for help on using the changeset viewer.