static int rap_printq_delete(int argc, const char **argv) { struct cli_state *cli; int ret; if (argc == 0) return net_rap_printq_usage(argc, argv); if (!(cli = net_make_ipc_connection(0))) return -1; ret = cli_printjob_del(cli, atoi(argv[0])); cli_shutdown(cli); return ret; }
static int rap_printq_delete(struct net_context *c, int argc, const char **argv) { struct cli_state *cli; int ret; if (argc == 0 || c->display_usage) return net_rap_printq_usage(c, argc, argv); if (!NT_STATUS_IS_OK(net_make_ipc_connection(c, 0, &cli))) return -1; ret = cli_printjob_del(cli, atoi(argv[0])); cli_shutdown(cli); return ret; }
/***************************************************** a wrapper for unlink() *******************************************************/ int smbw_unlink(const char *fname) { struct smbw_server *srv; fstring server, share; pstring path; if (!fname) { errno = EINVAL; return -1; } smbw_init(); smbw_busy++; /* work out what server they are after */ smbw_parse_path(fname, server, share, path); /* get a connection to the server */ srv = smbw_server(server, share); if (!srv) { /* smbw_server sets errno */ goto failed; } if (strncmp(srv->cli.dev, "LPT", 3) == 0) { int job = smbw_stat_printjob(srv, path, NULL, NULL); if (job == -1) { goto failed; } if (cli_printjob_del(&srv->cli, job) != 0) { goto failed; } } else if (!cli_unlink(&srv->cli, path)) { errno = smbw_errno(&srv->cli); goto failed; } smbw_busy--; return 0; failed: smbw_busy--; return -1; }
int SMBC_unlink_print_job_ctx(SMBCCTX *context, const char *fname, int id) { SMBCSRV *srv = NULL; char *server = NULL; char *share = NULL; char *user = NULL; char *password = NULL; char *workgroup = NULL; char *path = NULL; int err; TALLOC_CTX *frame = talloc_stackframe(); if (!context || !context->internal->initialized) { errno = EINVAL; TALLOC_FREE(frame); return -1; } if (!fname) { errno = EINVAL; TALLOC_FREE(frame); return -1; } DEBUG(4, ("smbc_unlink_print_job(%s)\n", fname)); if (SMBC_parse_path(frame, context, fname, &workgroup, &server, &share, &path, &user, &password, NULL)) { errno = EINVAL; TALLOC_FREE(frame); return -1; } if (!user || user[0] == (char)0) { user = talloc_strdup(frame, smbc_getUser(context)); if (!user) { errno = ENOMEM; TALLOC_FREE(frame); return -1; } } srv = SMBC_server(frame, context, True, server, share, &workgroup, &user, &password); if (!srv) { TALLOC_FREE(frame); return -1; /* errno set by SMBC_server */ } if ((err = cli_printjob_del(srv->cli, id)) != 0) { if (err < 0) errno = SMBC_errno(context, srv->cli); else if (err == ERRnosuchprintjob) errno = EINVAL; TALLOC_FREE(frame); return -1; } TALLOC_FREE(frame); return 0; }