1#
2# Utilities for driving smbclient
3#
4
5# Variables
6
7set smb_prompt "smb: \\\\>"
8
9# Spawn smbclient and wait for a prompt
10
11proc spawn_smbclient { args } {
12    set result 0
13    global smb_prompt
14    global spawn_id
15
16    # Spawn smbclient
17
18    spawn smbclient [lindex $args 0] [lindex $args 1] [lindex $args 2] \
19	    [lindex $args 3] [lindex $args 4] [lindex $args 5] \
20	    [lindex $args 6]
21
22    # Wait for prompt
23
24    expect {
25	$smb_prompt   { set result 1 }
26	timeout       { perror "timed out spawning smbclient" }
27	eof           { perror "end of file spawning smbclient" }
28    }
29
30    return $result
31}
32
33# Run a command and wait for a prompt
34
35proc do_smbclient { args } {
36    set action [lindex $args 0]
37    set description [lindex $args 1]
38    global smb_prompt
39
40    # Send command
41
42    verbose $action
43
44    send $action
45
46    expect {
47	$smb_prompt     {}
48	timeout         { perror "timed out $description"; return -1}
49	eof             { perror "end of file $description"; return -1 }
50    }
51
52    verbose $expect_out(buffer)
53    return $expect_out(buffer)
54}
55