attachment-0001
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<base href="x-msg://254/">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Monaco;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;
        font-weight:normal;
        font-style:normal;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple style='word-wrap: break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'>
<div class=Section1>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>I think we have agreement. Since the
Cancel-Jobs is now all or nothing, the Printer MUST return an error code if any
of the jobs could NOT be canceled, even if all the rest could be. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>So if any are not the user’s, then
return:</span></font><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'> </span></font><a name="_Toc518405512"><span
style='layout-grid-mode:line'>client-error-not-authorized (0x0403)</span></a><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>But if all are the user’s, but some
are not in a state to be canceled, return: </span></font><a name="_Toc518405513"><span
style='layout-grid-mode:line'>client-error-not-possible (0x0404)</span></a><o:p></o:p></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>If the user requests “my-jobs”
= ‘true’, but there are no jobs that can be canceled, return: </span></font><a
name="_Toc518405515"><span style='layout-grid-mode:line'>client-error-not-found
(0x0406)</span></a><span style='layout-grid-mode:line'><o:p></o:p></span></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;layout-grid-mode:line'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue;layout-grid-mode:line'>If the user omits “job-ids”
and omits “my-jobs” (or supplies the default “my-jobs”
= ‘false’), return: </span></font><span style='layout-grid-mode:
line'>client-error-not-authorized (0x0403)</span><font size=2 color=blue
face=Arial><span style='font-size:10.0pt;font-family:Arial;color:blue;
layout-grid-mode:line'>. But what if the only jobs that are cancelable
are the user’s? That could successfully cancel all jobs as long as
they all belonged to the user. An implementation could to this easily, by
simply checking each job that is cancelable and as soon as it finds one that
doesn’t belong to the requesting user, it stops checking and returns the </span></font><span
style='layout-grid-mode:line'>client-error-not-authorized (0x0403)</span><font
size=2 color=blue face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:blue;layout-grid-mode:line'>; if all jobs belong to the user, it cancels
all of them and returns: </span></font><a name="_Toc518405504"><span
style='layout-grid-mode:line'>successful-ok (0x0000)</span></a><span
style='layout-grid-mode:line'>, OK?</span><font size=2 color=blue face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:blue;layout-grid-mode:line'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt;layout-grid-mode:line'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue;layout-grid-mode:line'>If the operator
requests all jobs be canceled by omitting both “job-ids” and “my-jobs”
(or supplied “my-jobs” = ‘false’), and there are no
jobs that can be canceled, then return</span></font><span style='layout-grid-mode:
line'> client-error-not-found (0x0406)</span><font size=2 color=navy
face=Arial><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>I don’t see a good way to indicate
which jobs are the offending jobs. Returning the “job-ids” in
the Unsupported attributes group with the values removed that could have been
canceled is about as close as I can get, but that is for a successfully completed
operation which returns the status code: </span></font><a name="_Toc518405506"><span
style='layout-grid-mode:line'>successful-ok-conflicting-attributes (0x0002)</span></a><font
size=2 color=blue face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:blue'>. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy;background:red'>ISSUE</span></font><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy;background:yellow'>: OK that the Printer doesn’t try to return
which jobs are the ones causing the rejection? Instead, OK just to indicate
that the client can do a Get-Jobs (before or after a Cancel-Jobs request) with
a “job-ids” supplied and get the status and ownership of each of
the jobs to help the user?</span></font><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Tom<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center tabindex=-1>
</span></font></div>
<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Michael Sweet
[mailto:msweet@apple.com] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Thursday, October 08, 2009
14:51<br>
<b><span style='font-weight:bold'>To:</span></b> <st1:PersonName w:st="on">tom.hastings@alum.mit.edu</st1:PersonName><br>
<b><span style='font-weight:bold'>Cc:</span></b> ipp@pwg.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [IPP] ISSUE: on
Cancel-Jobs: what if some jobs are in cancelable state and some are not?</span></font><o:p></o:p></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>I thought Ira and I *had* answered this, but...<o:p></o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Oct 8, 2009, at 2:42 PM, Tom Hastings wrote:<o:p></o:p></span></font></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
<br>
<o:p></o:p></span></font></p>
<span style='orphans: 2;widows: 2;-webkit-border-horizontal-spacing: 0px;
-webkit-border-vertical-spacing: 0px;-webkit-text-decorations-in-effect: none;
-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;word-spacing:
0px'>
<div link=blue vlink=purple>
<div>
<div>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I don’t have an answer to this remaining issue for the
new Cancel-Jobs operation:<u1:p></u1:p></span></font><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><u1:p> </u1:p></span></font><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='background-image:
initial;background-repeat:initial;background-attachment:initial;-webkit-background-clip: initial;
-webkit-background-origin: initial;background-position:initial initial'><span
style='font-size:10.0pt;font-family:Arial;color:blue;background:red'>ISSUE</span></span></font><font
size=2 color=blue face=Arial><span style='background-image:initial;background-repeat:
initial;background-attachment:initial;-webkit-background-clip: initial;
-webkit-background-origin: initial;background-position:initial initial'><span
style='font-size:10.0pt;font-family:Arial;color:blue;background:yellow'>: OK to
say that after checking that all of the jobs are owned by the requesting user
(unless the requesting user is the operator), the Printer MUST return the
‘client-error-not-possible’ for any jobs that are not in a state
that [RFC 2911] Section 3.3.3 Cancel-Job allows to be canceled and MUST
indicate which jobs cannot be canceled in the “job-ids” operation
attribute return in the response.</span></span></font><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'></span><o:p> </o:p></span></font></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>So if any of the jobs in the job-ids set is owned by another user and
the authenticated user is not an operator or admin, then the status is
client-error-not-authorized. If any of the jobs is not in the pending,
pending-held, processing, or stopped states then the status is
client-error-not-possible.<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt' type=cite><span
style='orphans: 2;widows: 2;-webkit-border-horizontal-spacing: 0px;-webkit-border-vertical-spacing: 0px;
-webkit-text-decorations-in-effect: none;-webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;word-spacing:0px'>
<div link=blue vlink=purple>
<div>
<div>
<p class=MsoNormal><span class=apple-style-span><font size=4 color=black
face=Monaco><span style='font-size:13.5pt;font-family:Monaco;color:black'>...</span></font></span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>I prefer that the Printer MUST cancel all
jobs that are in the correct state, but skip over and return the list that aren’t
in the proper state (as long as all of them belong to the user or the user is
the Operator/Administrator). But it is more complicated for the Printer
and requires the Printer to return the job-ids (1setOf integer(1:MAX)) in the
response for those jobs that are in the wrong state. It is also somewhat
confusing for the client user, since it has an error, but some of the jobs are
canceled.<u1:p></u1:p></span></font><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
</span>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Right, so I vote we don't allow partial cancels - we only succeed if
all of the specified jobs can be canceled.<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>....<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Oh, and there is one more error case - if Cancel-Jobs is sent with
"my-jobs" set to true and there are no jobs that can be canceled for
that user, we need to return client-error-not-found.<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>___________________________________________________<o:p></o:p></span></font></p>
</div>
<div><span style='orphans: 2;text-align:auto;widows: 2;-webkit-border-horizontal-spacing: 0px;
-webkit-border-vertical-spacing: 0px;-webkit-text-decorations-in-effect: none;
-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;word-spacing:
0px'>
<div>
<p class=MsoNormal><font size=4 color=black face=Monaco><span style='font-size:
13.5pt;font-family:Monaco;color:black'>Michael Sweet, Senior Printing System
Engineer<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=4 color=black face=Monaco><span style='font-size:
13.5pt;font-family:Monaco;color:black'><o:p> </o:p></span></font></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'></span><o:p> </o:p></span></font></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
</div>
<br />--
<br />This message has been scanned for viruses and
<br />dangerous content by
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is
<br />believed to be clean.
</body>
</html>