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.&nbsp; 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.&nbsp; <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>&nbsp;</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&#8217;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&#8217;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>&nbsp;</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 &#8220;my-jobs&#8221;
= &#8216;true&#8217;, 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>&nbsp;</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 &#8220;job-ids&#8221;
and omits &#8220;my-jobs&#8221; (or supplies the default &#8220;my-jobs&#8221;
= &#8216;false&#8217;), 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'>.&nbsp; But what if the only jobs that are cancelable
are the user&#8217;s?&nbsp; That could successfully cancel all jobs as long as
they all belonged to the user.&nbsp; An implementation could to this easily, by
simply checking each job that is cancelable and as soon as it finds one that
doesn&#8217;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>&nbsp;</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 &#8220;job-ids&#8221; and &#8220;my-jobs&#8221;
(or supplied &#8220;my-jobs&#8221; = &#8216;false&#8217;), 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>&nbsp;</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&#8217;t see a good way to indicate
which jobs are the offending jobs.&nbsp; Returning the &#8220;job-ids&#8221; 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'>.&nbsp; <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>&nbsp;</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&#8217;t try to return
which jobs are the ones causing the rejection?&nbsp; Instead, OK just to indicate
that the client can do a Get-Jobs (before or after a Cancel-Jobs request) with
a &#8220;job-ids&#8221; 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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&#8217;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>&nbsp;</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
&#8216;client-error-not-possible&#8217; 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 &#8220;job-ids&#8221; 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>&nbsp;</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. &nbsp;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>&nbsp;</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&#8217;t
in the proper state (as long as all of them belong to the user or the user is
the Operator/Administrator).&nbsp; 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.&nbsp; 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>&nbsp;</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>&nbsp;</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>&nbsp;</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
&quot;my-jobs&quot; 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>&nbsp;</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>&nbsp;</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>&nbsp;</o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</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>