diff options
Diffstat (limited to 'source3/lib/msrpc-client.c')
-rw-r--r-- | source3/lib/msrpc-client.c | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/source3/lib/msrpc-client.c b/source3/lib/msrpc-client.c index 8d7efb6fb9..60924ed81c 100644 --- a/source3/lib/msrpc-client.c +++ b/source3/lib/msrpc-client.c @@ -27,29 +27,6 @@ extern int DEBUGLEVEL; /**************************************************************************** -open the msrpcent sockets -****************************************************************************/ -static BOOL ncalrpc_l_connect(struct msrpc_local *msrpc, const char *pipe_name) -{ - fstring path; - fstring pname; - fstrcpy(pname, pipe_name); - strlower(pname); - slprintf(path, sizeof(path) - 1, "%s/.msrpc/%s", LOCKDIR, pname); - - fstrcpy(msrpc->pipe_name, pipe_name); - - msrpc->fd = open_pipe_sock(path); - - if (msrpc->fd == -1) - { - return False; - } - - return True; -} - -/**************************************************************************** read an msrpc pdu from a fd. The timeout is in milliseconds. ****************************************************************************/ @@ -153,136 +130,6 @@ BOOL msrpc_receive(int fd, prs_struct *ps) } /**************************************************************************** -close the socket descriptor -****************************************************************************/ -static void ncalrpc_l_close_socket(struct msrpc_local *msrpc) -{ - if (msrpc->fd != -1) - { - close(msrpc->fd); - } - msrpc->fd = -1; -} - -static BOOL ncalrpc_l_authenticate(struct msrpc_local *msrpc) -{ - int sock = msrpc->fd; - uint32 len; - char *data; - prs_struct ps; - uint32 status; - - uint16 command; - - command = AGENT_CMD_CON; - - if (!create_user_creds(&ps, msrpc->pipe_name, 0x0, command, - msrpc->nt.key.pid, NULL)) - { - DEBUG(0, ("could not parse credentials\n")); - close(sock); - return False; - } - - len = ps.data_offset; - data = prs_data(&ps, 0); - - SIVAL(data, 0, len); - -#ifdef DEBUG_PASSWORD - DEBUG(100, ("data len: %d\n", len)); - dump_data(100, data, len); -#endif - - if (write_socket(sock, data, len) <= 0) - { - DEBUG(0, ("write failed\n")); - return False; - } - len = read_data(sock, (char*)&status, sizeof(status)); - - return len == sizeof(status) && status == 0x0; -} - - -/**************************************************************************** -shutdown a msrpcent structure -****************************************************************************/ -void ncalrpc_l_shutdown(struct msrpc_local *msrpc) -{ - DEBUG(10, ("msrpc_shutdown\n")); - if (msrpc->outbuf) - { - free(msrpc->outbuf); - } - if (msrpc->inbuf) - { - free(msrpc->inbuf); - } - ncalrpc_l_close_socket(msrpc); - memset(msrpc, 0, sizeof(*msrpc)); -} - -/**************************************************************************** -initialise a msrpcent structure -****************************************************************************/ -struct msrpc_local *ncalrpc_l_initialise(struct msrpc_local *msrpc, - const vuser_key * key) -{ - if (!msrpc) - { - msrpc = (struct msrpc_local *)malloc(sizeof(*msrpc)); - if (!msrpc) - return NULL; - ZERO_STRUCTP(msrpc); - } - - if (msrpc->initialised) - { - ncalrpc_l_shutdown(msrpc); - } - - ZERO_STRUCTP(msrpc); - - msrpc->fd = -1; - msrpc->outbuf = (char *)malloc(CLI_BUFFER_SIZE + 4); - msrpc->inbuf = (char *)malloc(CLI_BUFFER_SIZE + 4); - if (!msrpc->outbuf || !msrpc->inbuf) - { - return False; - } - - msrpc->initialised = 1; - - if (key != NULL) - { - msrpc->nt.key = *key; - } - else - { - NET_USER_INFO_3 usr; -#if 0 - uid_t uid = getuid(); - gid_t gid = getgid(); - char *name = uidtoname(uid); -#endif - - ZERO_STRUCT(usr); - - msrpc->nt.key.pid = sys_getpid(); - -#if 0 /* comment ou by JERRY */ - msrpc->nt.key.vuid = register_vuid(msrpc->nt.key.pid, - uid, gid, - name, name, False, &usr); -#endif /* comment ou by JERRY */ - } - - return msrpc; -} - - -/**************************************************************************** open the msrpcent sockets ****************************************************************************/ BOOL msrpc_connect(struct msrpc_state *msrpc, const char *pipe_name) @@ -554,48 +401,3 @@ BOOL msrpc_establish_connection(struct msrpc_state *msrpc, return True; } -/**************************************************************************** -establishes a connection right up to doing tconX, reading in a password. -****************************************************************************/ -BOOL ncalrpc_l_establish_connection(struct msrpc_local *msrpc, - const char *pipe_name) -{ - if (strnequal("\\PIPE\\", pipe_name, 6)) - { - pipe_name = &pipe_name[6]; - } - - DEBUG(5, ("ncalrpc_l_establish_connection: connecting to %s\n", - pipe_name)); - - /* establish connection */ - - if (!msrpc->initialised) - { - return False; - } - - if (msrpc->fd == -1) - { - if (!ncalrpc_l_connect(msrpc, pipe_name)) - { - DEBUG(1, - ("ncalrpc_l_establish_connection: failed %s)\n", - pipe_name)); - - return False; - } - } - - if (!ncalrpc_l_authenticate(msrpc)) - { - DEBUG(0, ("authenticate failed\n")); - close(msrpc->fd); - msrpc->fd = -1; - return False; - } - - return True; -} - - |