summaryrefslogtreecommitdiff
path: root/source4/client/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/client/client.c')
-rw-r--r--source4/client/client.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/source4/client/client.c b/source4/client/client.c
index 3fa819c8e7..c1292a2bef 100644
--- a/source4/client/client.c
+++ b/source4/client/client.c
@@ -264,9 +264,9 @@ static int do_cd(struct smbclient_context *ctx, const char *newdir)
/* Save the current directory in case the
new directory is invalid */
if (newdir[0] == '\\')
- dname = talloc_strdup(NULL, newdir);
+ dname = talloc_strdup(ctx, newdir);
else
- dname = talloc_asprintf(NULL, "%s\\%s", ctx->remote_cur_dir, newdir);
+ dname = talloc_asprintf(ctx, "%s\\%s", ctx->remote_cur_dir, newdir);
dos_format(dname);
@@ -685,7 +685,7 @@ static int cmd_du(struct smbclient_context *ctx, const char **args)
/****************************************************************************
get a file from rname to lname
****************************************************************************/
-static int do_get(struct smbclient_context *ctx, char *rname, const char *lname, bool reget)
+static int do_get(struct smbclient_context *ctx, char *rname, const char *p_lname, bool reget)
{
int handle = 0, fnum;
bool newhandle = false;
@@ -697,11 +697,14 @@ static int do_get(struct smbclient_context *ctx, char *rname, const char *lname,
off_t start = 0;
off_t nread = 0;
int rc = 0;
+ char *lname;
+
+ lname = talloc_strdup(ctx, p_lname);
GetTimeOfDay(&tp_start);
if (ctx->lowercase) {
- strlower(discard_const_p(char, lname));
+ strlower(lname);
}
fnum = smbcli_open(ctx->cli->tree, rname, O_RDONLY, DENY_NONE);
@@ -858,6 +861,7 @@ static void do_mget(struct smbclient_context *ctx, struct clilist_file_info *fin
char *quest;
char *mget_mask;
char *saved_curdir;
+ char *l_fname;
if (ISDOT(finfo->name) || ISDOTDOT(finfo->name))
return;
@@ -879,27 +883,29 @@ static void do_mget(struct smbclient_context *ctx, struct clilist_file_info *fin
}
/* handle directories */
- saved_curdir = talloc_strdup(NULL, ctx->remote_cur_dir);
+ saved_curdir = talloc_strdup(ctx, ctx->remote_cur_dir);
ctx->remote_cur_dir = talloc_asprintf_append_buffer(NULL, "%s\\", finfo->name);
- string_replace(discard_const_p(char, finfo->name), '\\', '/');
+ l_fname = talloc_strdup(ctx, finfo->name);
+
+ string_replace(l_fname, '\\', '/');
if (ctx->lowercase) {
- strlower(discard_const_p(char, finfo->name));
+ strlower(l_fname);
}
- if (!directory_exist(finfo->name) &&
- mkdir(finfo->name,0777) != 0) {
- d_printf("failed to create directory %s\n",finfo->name);
+ if (!directory_exist(l_fname) &&
+ mkdir(l_fname, 0777) != 0) {
+ d_printf("failed to create directory %s\n", l_fname);
return;
}
- if (chdir(finfo->name) != 0) {
- d_printf("failed to chdir to directory %s\n",finfo->name);
+ if (chdir(l_fname) != 0) {
+ d_printf("failed to chdir to directory %s\n", l_fname);
return;
}
- mget_mask = talloc_asprintf(NULL, "%s*", ctx->remote_cur_dir);
+ mget_mask = talloc_asprintf(ctx, "%s*", ctx->remote_cur_dir);
do_list(ctx, mget_mask, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY,do_mget,false, true);
chdir("..");
@@ -963,7 +969,7 @@ static int cmd_mget(struct smbclient_context *ctx, const char **args)
attribute |= FILE_ATTRIBUTE_DIRECTORY;
for (i = 1; args[i]; i++) {
- mget_mask = talloc_strdup(ctx,ctx->remote_cur_dir);
+ mget_mask = talloc_strdup(ctx, ctx->remote_cur_dir);
if(mget_mask[strlen(mget_mask)-1]!='\\')
mget_mask = talloc_append_string(ctx, mget_mask, "\\");
@@ -1292,7 +1298,7 @@ static bool seek_list(struct file_list *list, char *name)
static int cmd_select(struct smbclient_context *ctx, const char **args)
{
talloc_free(ctx->fileselection);
- ctx->fileselection = talloc_strdup(NULL, args[1]);
+ ctx->fileselection = talloc_strdup(ctx, args[1]);
return 0;
}
@@ -1533,7 +1539,7 @@ static int cmd_del(struct smbclient_context *ctx, const char **args)
d_printf("del <filename>\n");
return 1;
}
- mask = talloc_asprintf(ctx,"%s%s", ctx->remote_cur_dir, args[1]);
+ mask = talloc_asprintf(ctx, "%s%s", ctx->remote_cur_dir, args[1]);
if (NT_STATUS_IS_ERR(smbcli_unlink(ctx->cli->tree, mask))) {
d_printf("%s deleting remote file %s\n",smbcli_errstr(ctx->cli->tree),mask);
@@ -2994,7 +3000,7 @@ static int process_line(struct smbclient_context *ctx, const char *cline)
int i;
/* and get the first part of the command */
- args = str_list_make_shell(ctx, cline, NULL);
+ args = (const char **) str_list_make_shell(ctx, cline, NULL);
if (!args || !args[0])
return 0;
@@ -3151,12 +3157,12 @@ static int do_message_op(const char *netbios_name, const char *desthost,
****************************************************************************/
int main(int argc,char *argv[])
{
- const char *base_directory = NULL;
+ char *base_directory = NULL;
const char *dest_ip = NULL;
int opt;
const char *query_host = NULL;
bool message = false;
- const char *desthost = NULL;
+ char *desthost = NULL;
poptContext pc;
const char *service = NULL;
int port = 0;