Ignore:
Timestamp:
Nov 27, 2012, 4:43:17 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: updated trunk to 3.6.0

Location:
trunk/server
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source4/rpc_server/srvsvc/dcesrv_srvsvc.c

    r414 r745  
    2525#include "librpc/gen_ndr/ndr_srvsvc.h"
    2626#include "rpc_server/common/common.h"
     27#include "rpc_server/common/share.h"
    2728#include "auth/auth.h"
    2829#include "libcli/security/security.h"
     
    3435        struct security_token *t = dce_call->conn->auth_state.session_info->security_token; \
    3536        if (!security_token_has_builtin_administrators(t) && \
    36             !security_token_has_sid_string(t, SID_BUILTIN_SERVER_OPERATORS)) { \
     37            !security_token_has_sid(t, &global_sid_Builtin_Server_Operators)) { \
    3738                return WERR_ACCESS_DENIED; \
    3839        } \
     
    6970                return WERR_UNKNOWN_LEVEL;
    7071        }
    71 
    72         return WERR_OK;
    7372}
    7473
     
    9493                return WERR_UNKNOWN_LEVEL;
    9594        }
    96 
    97         return WERR_UNKNOWN_LEVEL;
    9895}
    9996
     
    141138                return WERR_UNKNOWN_LEVEL;
    142139        }
    143 
    144         return WERR_UNKNOWN_LEVEL;
    145140}
    146141
     
    166161                return WERR_UNKNOWN_LEVEL;
    167162        }
    168 
    169         return WERR_UNKNOWN_LEVEL;
    170163}
    171164
     
    195188                return WERR_UNKNOWN_LEVEL;
    196189        }
    197 
    198         return WERR_UNKNOWN_LEVEL;
    199190}
    200191
     
    252243                return WERR_UNKNOWN_LEVEL;
    253244        }
    254 
    255         return WERR_UNKNOWN_LEVEL;
    256245}
    257246
     
    289278                return WERR_UNKNOWN_LEVEL;
    290279        }
    291 
    292         return WERR_UNKNOWN_LEVEL;
    293280}
    294281
     
    314301                return WERR_UNKNOWN_LEVEL;
    315302        }
    316 
    317         return WERR_UNKNOWN_LEVEL;
    318303}
    319304
     
    391376                return WERR_UNKNOWN_LEVEL;
    392377        }
    393 
    394         return WERR_UNKNOWN_LEVEL;
    395378}
    396379
     
    432415                struct share_info *info;
    433416                struct share_context *sctx;
    434                 int count = 8;
    435                 int i;
    436 
    437                 nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     417                unsigned int count = 8;
     418                unsigned int i;
     419
     420                nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    438421                if (!NT_STATUS_IS_OK(nterr)) {
    439422                        return ntstatus_to_werror(nterr);
     
    449432                info[i].type = SHARE_INFO_STRING;
    450433                switch (r->in.info->info2->type) {
    451                 case 0x00:
     434                case STYPE_DISKTREE:
    452435                        info[i].value = talloc_strdup(info, "DISK");
    453436                        break;
    454                 case 0x01:
     437                case STYPE_PRINTQ:
    455438                        info[i].value = talloc_strdup(info, "PRINTER");
    456439                        break;
    457                 case 0x03:
     440                case STYPE_IPC:
    458441                        info[i].value = talloc_strdup(info, "IPC");
    459442                        break;
     
    530513                struct share_info *info;
    531514                struct share_context *sctx;
    532                 int count = 10;
    533                 int i;
    534 
    535                 nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     515                unsigned int count = 10;
     516                unsigned int i;
     517
     518                nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    536519                if (!NT_STATUS_IS_OK(nterr)) {
    537520                        return ntstatus_to_werror(nterr);
     
    619602                return WERR_UNKNOWN_LEVEL;
    620603        }
    621 
    622         return WERR_UNKNOWN_LEVEL;
    623604}
    624605
     
    700681                return WERR_UNKNOWN_LEVEL;
    701682        }
    702 
    703         return WERR_UNKNOWN_LEVEL;
    704683}
    705684
     
    721700         */
    722701
    723         nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     702        nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    724703        if (!NT_STATUS_IS_OK(nterr)) {
    725704                return ntstatus_to_werror(nterr);
     
    734713        case 0:
    735714        {
    736                 int i;
     715                unsigned int i;
    737716                struct srvsvc_NetShareCtr0 *ctr0;
    738717
     
    775754        case 1:
    776755        {
    777                 int i;
     756                unsigned int i;
    778757                struct srvsvc_NetShareCtr1 *ctr1;
    779758
     
    817796        case 2:
    818797        {
    819                 int i;
     798                unsigned int i;
    820799                struct srvsvc_NetShareCtr2 *ctr2;
    821800
     
    861840        case 501:
    862841        {
    863                 int i;
     842                unsigned int i;
    864843                struct srvsvc_NetShareCtr501 *ctr501;
    865844
     
    905884        case 502:
    906885        {
    907                 int i;
     886                unsigned int i;
    908887                struct srvsvc_NetShareCtr502 *ctr502;
    909888
     
    950929                return WERR_UNKNOWN_LEVEL;
    951930        }
    952 
    953         return WERR_UNKNOWN_LEVEL;
    954931}
    955932
     
    974951        }
    975952
    976         nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     953        nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    977954        if (!NT_STATUS_IS_OK(nterr)) {
    978955                return ntstatus_to_werror(nterr);
     
    10881065                return WERR_UNKNOWN_LEVEL;
    10891066        }
    1090 
    1091         return WERR_UNKNOWN_LEVEL;
    10921067}
    10931068
     
    11031078                                        struct security_descriptor *sd)
    11041079{
    1105         int i = 0;
     1080        unsigned int i = 0;
    11061081
    11071082        if (level == 501) {
     
    12221197        W_ERROR_HAVE_NO_MEMORY(info);
    12231198
    1224         ZERO_STRUCT(r->out);
    1225 
    12261199        if (strcmp("", r->in.share_name) == 0) {
    12271200                return WERR_INVALID_PARAM;
    12281201        }
    12291202
    1230         nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     1203        nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    12311204        if (!NT_STATUS_IS_OK(nterr)) {
    12321205                return ntstatus_to_werror(nterr);
     
    13841357        char *device;
    13851358        const char **names;
    1386         int count, i;
     1359        int count;
     1360        int i;
    13871361
    13881362        *r->out.type = 0;
     
    14051379        all_string_sub(device, "\\", "/", 0);
    14061380
    1407         nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     1381        nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    14081382        if (!NT_STATUS_IS_OK(nterr)) {
    14091383                return ntstatus_to_werror(nterr);
     
    14581432{
    14591433        struct dcesrv_context *dce_ctx = dce_call->conn->dce_ctx;
    1460         struct dcerpc_server_info *server_info = lp_dcerpc_server_info(mem_ctx, dce_ctx->lp_ctx);
     1434        struct dcerpc_server_info *server_info = lpcfg_dcerpc_server_info(mem_ctx, dce_ctx->lp_ctx);
    14611435
    14621436        ZERO_STRUCTP(r->out.info);
     
    14911465                info101->version_minor  = server_info->version_minor;
    14921466                info101->server_type    = dcesrv_common_get_server_type(mem_ctx, dce_call->event_ctx, dce_ctx);
    1493                 info101->comment        = talloc_strdup(mem_ctx, lp_serverstring(dce_ctx->lp_ctx));
     1467                info101->comment        = talloc_strdup(mem_ctx, lpcfg_serverstring(dce_ctx->lp_ctx));
    14941468                W_ERROR_HAVE_NO_MEMORY(info101->comment);
    14951469
     
    15111485                info102->version_minor  = server_info->version_minor;
    15121486                info102->server_type    = dcesrv_common_get_server_type(mem_ctx, dce_call->event_ctx, dce_ctx);
    1513                 info102->comment        = talloc_strdup(mem_ctx, lp_serverstring(dce_ctx->lp_ctx));
     1487                info102->comment        = talloc_strdup(mem_ctx, lpcfg_serverstring(dce_ctx->lp_ctx));
    15141488                W_ERROR_HAVE_NO_MEMORY(info102->comment);
    15151489
     
    15291503                return WERR_UNKNOWN_LEVEL;
    15301504        }
    1531 
    1532         return WERR_UNKNOWN_LEVEL;
    15331505}
    15341506
     
    15771549                return WERR_UNKNOWN_LEVEL;
    15781550        }
    1579 
    1580         return WERR_UNKNOWN_LEVEL;
    15811551}
    15821552
     
    16581628                return WERR_UNKNOWN_LEVEL;
    16591629        }
    1660 
    1661         return WERR_UNKNOWN_LEVEL;
    16621630}
    16631631
     
    17881756                return WERR_INVALID_PARAM;
    17891757        }
    1790 
    1791         return WERR_INVALID_PARAM;
    17921758}
    17931759
     
    18211787         */
    18221788
    1823         nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     1789        nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    18241790        if (!NT_STATUS_IS_OK(nterr)) {
    18251791                return ntstatus_to_werror(nterr);
     
    18341800        case 0:
    18351801        {
    1836                 int i, y = 0;
    1837                 int count;
     1802                unsigned int i, y = 0;
     1803                unsigned int count;
    18381804                struct srvsvc_NetShareCtr0 *ctr0;
    18391805
     
    18861852        case 1:
    18871853        {
    1888                 int i, y = 0;
    1889                 int count;
     1854                unsigned int i, y = 0;
     1855                unsigned int count;
    18901856                struct srvsvc_NetShareCtr1 *ctr1;
    18911857
     
    19381904        case 2:
    19391905        {
    1940                 int i, y = 0;
    1941                 int count;
     1906                unsigned int i, y = 0;
     1907                unsigned int count;
    19421908                struct srvsvc_NetShareCtr2 *ctr2;
    19431909
     
    19921958        case 502:
    19931959        {
    1994                 int i, y = 0;
    1995                 int count;
     1960                unsigned int i, y = 0;
     1961                unsigned int count;
    19961962                struct srvsvc_NetShareCtr502 *ctr502;
    19971963
     
    20472013                return WERR_UNKNOWN_LEVEL;
    20482014        }
    2049 
    2050         return WERR_UNKNOWN_LEVEL;
    20512015}
    20522016
     
    22882252        struct share_context *sctx;
    22892253               
    2290         nterr = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     2254        nterr = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    22912255        if (!NT_STATUS_IS_OK(nterr)) {
    22922256                return ntstatus_to_werror(nterr);
  • trunk/server/source4/rpc_server/srvsvc/srvsvc_ntvfs.c

    r414 r745  
    2222#include "ntvfs/ntvfs.h"
    2323#include "rpc_server/dcerpc_server.h"
    24 #include "librpc/gen_ndr/ndr_srvsvc.h"
    25 #include "rpc_server/common/common.h"
    26 #include "rpc_server/srvsvc/proto.h"
    27 #include "lib/socket/socket.h"
    2824#include "param/param.h"
    29 
    30 struct socket_address *srvsvc_get_my_addr(void *p, TALLOC_CTX *mem_ctx)
    31 {
    32         struct dcesrv_connection *conn = talloc_get_type(p, struct dcesrv_connection);
    33         return dcesrv_connection_get_my_addr(conn, mem_ctx);
    34 }
    35 
    36 struct socket_address *srvsvc_get_peer_addr(void *p, TALLOC_CTX *mem_ctx)
    37 {
    38         struct dcesrv_connection *conn = talloc_get_type(p, struct dcesrv_connection);
    39         return dcesrv_connection_get_peer_addr(conn, mem_ctx);
    40 }
    4125
    4226struct srvsvc_ntvfs_ctx {
     
    6246        struct share_config *scfg;
    6347        const char *sharetype;
     48        union smb_tcon tcon;
     49        const struct tsocket_address *local_address;
     50        const struct tsocket_address *remote_address;
    6451
    65         status = share_get_context_by_name(mem_ctx, lp_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
     52        status = share_get_context_by_name(mem_ctx, lpcfg_share_backend(dce_call->conn->dce_ctx->lp_ctx), dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx, &sctx);
    6653        if (!NT_STATUS_IS_OK(status)) {
    6754                return status;
     
    115102         * NOTE: we only set the addr callbacks as we're not interesseted in oplocks or in getting file handles
    116103         */
    117         status = ntvfs_set_addr_callbacks(c->ntvfs, srvsvc_get_my_addr, srvsvc_get_peer_addr, dce_call->conn);
     104        local_address = dcesrv_connection_get_local_address(dce_call->conn);
     105        remote_address = dcesrv_connection_get_remote_address(dce_call->conn);
     106        status = ntvfs_set_addresses(c->ntvfs, local_address, remote_address);
    118107        if (!NT_STATUS_IS_OK(status)) {
    119108                DEBUG(0,("srvsvc_create_ntvfs_context: NTVFS failed to set the addr callbacks!\n"));
     
    129118
    130119        /* Invoke NTVFS connection hook */
    131         status = ntvfs_connect(ntvfs_req, scfg->name);
     120        tcon.tcon.level = RAW_TCON_TCON;
     121        ZERO_STRUCT(tcon.tcon.in);
     122        tcon.tcon.in.service = scfg->name;
     123        status = ntvfs_connect(ntvfs_req, &tcon);
    132124        if (!NT_STATUS_IS_OK(status)) {
    133125                DEBUG(0,("srvsvc_create_ntvfs_context: NTVFS ntvfs_connect() failed!\n"));
Note: See TracChangeset for help on using the changeset viewer.