GENCANCEL(1) InterNetNews Documentation GENCANCEL(1)

gencancel - تولید پیام‌های کنترلی لغو

gencancel [-adkLm] [-b body] [-c charset] [-f from] [-n newsgroups] [-s subject] message-id

دستور gencancel ابزاری کارآمد در اختیار مدیر سرور خبری (news administrator) قرار می‌دهد تا پیام‌های کنترلی لغو (cancel control messages) را تولید کرده و در خروجی استاندارد بنویسد. سپس مقالهٔ لغوِ تولیدشده می‌تواند توسط inews تزریق شود (مثال‌های زیر را ببینید).

دستور gencancel انتظار شناسهٔ Message-ID مقاله‌ای را دارد که قرار است لغو شود؛ این آرگومان message-id باید به درستی برای شل نقل‌قول‌بندی (quote) شده و درون علامت‌های قلاب شکسته (< >) قرار گیرد. سپس gencancel تلاش می‌کند مقالهٔ اصلی را در news spool بخواند تا گروه‌های خبری اولیه‌ای را که مقاله به آن‌ها ارسال شده بود شناسایی کند و از این اطلاعات برای پیام کنترلی لغو استفادهٔ مجدد به عمل آورد. اگر مایلید آن را تغییر دهید یا اطلاعات یافت نشد، باید آن را با پرچم -n مشخص کنید.

اگر INN با پشتیبانی از Cancel-Lock ساخته شده باشد، gencancel فیلد سرایند مناسب Cancel-Key مدیر را برای احراز هویت لغوها تولید خواهد کرد. چنانچه به هر دلیلی نیاز به لغو مقاله‌ای داشته باشید که از سرور خبری شما با فیلد سرایند Cancel-Lock ارسال شده است، برای احراز هویت درخواست پس‌گیری (withdrawal request) به درهم‌سازی‌های متناظر با Cancel-Key مدیر نیاز خواهد بود. این اطلاعات با پارامتر canlockadmin که در inn-secrets.conf تعیین شده محاسبه می‌شود.

در صورتی که تنها به درهم‌سازی‌های Cancel-Key مدیر نیاز دارید، می‌توانید از پرچم -k استفاده کنید. در این صورت، تنها بدنهٔ فیلد سرایند Cancel-Key در خروجی استاندارد نوشته خواهد شد. سپس می‌توانید برای نمونه از آن در یک درخواست جایگزینی (supersede) یا از درون اسکریپتی دیگر مجدداً استفاده کنید.

دستور gencancel به‌طور پیش‌فرض یک فیلد سرایند Approved تولید می‌کند و از همان مقدار بدنهٔ فیلد سرایند From استفاده می‌نماید. اگر -a استفاده شود، هیچ فیلد سرایند Approved در خروجی درج نمی‌شود.

این فیلد سرایند برای لغو مقالاتی مفید است که در ابتدا به گروه‌های خبری اداره‌شونده (moderated newsgroups) ارسال شده‌اند. اگر یک مقالهٔ کنترلی لغو، در فیلد سرایند Newsgroups خود یک گروه خبری اداره‌شونده را فهرست کرده باشد و فیلد سرایند Approved وجود نداشته باشد، لغو در ابتدا جهت تأیید نزد ناظر (moderator) ارسال خواهد شد. پیام‌های کنترلی لغو خارج از گروه‌های خبری اداره‌شونده الزامی به داشتن فیلد سرایند Approved ندارند، اما می‌توانند داشته باشند؛ بنابراین معمولاً نباید از -a استفاده کنید مگر اینکه واقعاً بخواهید لغوهای شما توسط یک ناظر تأیید شوند، یا مطمئن باشید که فیلد سرایند Newsgroups هیچ گروه خبری اداره‌شونده‌ای را شامل نمی‌شود.

دستور gencancel به‌طور پیش‌فرض مقدار "Admin cancel." را در بدنهٔ پیام‌های کنترلی لغو می‌نویسد. استفاده از این آرگومان امکان نوشتن مقداری متفاوت را فراهم می‌کند، که می‌تواند خالی یا چندخطی باشد.
به‌طور پیش‌فرض، مقدار "ISO-8859-1" به عنوان مجموعه نویسهٔ (charset) استفاده‌شده در فیلد سرایند Content-Type مشخص شده است. در صورتی که بدنهٔ پیش‌فرض را با -b تغییر می‌دهید، ممکن است بخواهید charset را نیز متناسب با آن تغییر دهید.
دستور gencancel فیلد سرایند Date را به وقت محلی سرور خبری شما تولید می‌کند. استفاده از -d باعث استفاده از تاریخ و زمان بر مبنای UTC خواهد شد.
دستور gencancel به‌طور پیش‌فرض از مقدار complaints در inn.conf برای فیلد سرایند From استفاده می‌کند. استفاده از این آرگومان امکان تعیین مقدار دلخواه را می‌دهد. همین مقدار برای فیلد سرایند Approved نیز استفاده خواهد شد (در صورت تولید، هنگامی که -a داده نشده باشد).
به جای خروجی دادن کل یک پیام کنترلی لغو، gencancel صرفاً بدنهٔ فیلد سرایند Cancel-Key را همراه با درهم‌سازی‌های مدیر در خروجی می‌نویسد.

این پرچم تنها در صورتی در دسترس است که INN با پشتیبانی از Cancel-Lock ساخته شده باشد.

دستور gencancel به‌طور پیش‌فرض یک فیلد سرایند Cancel-Key را برای احراز هویت پیام کنترلی لغو خروجی می‌دهد. اگر -L استفاده شود، هیچ فیلد سرایند Cancel-Key در خروجی تولید نمی‌شود.

این پرچم تنها در صورتی در دسترس است که INN با پشتیبانی از Cancel-Lock ساخته شده باشد.

دستور gencancel به‌طور پیش‌فرض یک Message-ID تصادفی تولید کرده و از آن به عنوان شناسهٔ یکتای پیام کنترلی لغو استفاده می‌کند. اگر -m استفاده شود، هیچ فیلد سرایند Message-ID در خروجی درج نمی‌شود.
دستور gencancel به‌طور پیش‌فرض همان فیلد سرایند Newsgroups را تولید می‌کند که در مقالهٔ اصلیِ مورد نظر برای لغو وجود داشته است. این کار به این منظور انجام می‌شود که حداکثر اطمینان حاصل شود پیام کنترلی لغو به همان سرورهای خبری که پیام اصلی به آن‌ها فرستاده شده بازپخش (relay) خواهد شد.

در صورتی که سرور خبری شما مقالهٔ اصلی را به‌طور محلی ذخیره نکرده باشد (یا دیگر نداشته باشد)، باید با این پرچم یک گروه خبری مشخص یا فهرستی از گروه‌های خبری جداشده با کاما را تعیین کنید که به عنوان فیلد سرایند Newsgroups پیام لغو استفاده خواهد شد.

دستور gencancel به‌طور پیش‌فرض از "cmsg cancel <message-id>" به عنوان موضوع پیام‌های کنترلی لغو استفاده می‌کند. استفاده از این آرگومان امکان تعیین مقداری متفاوت را برای فیلد سرایند Subject فراهم می‌آورد. اطمینان حاصل کنید که مقدار آن به‌درستی با MIME کدگذاری شده باشد.

تنها برای دریافت درهم‌سازی‌های Cancel-Key مدیرِ مرتبط با Message-ID داده‌شده:

gencancel -k '<mid@news>'

اگر از نویسه‌های غیر ASCII در سرایندها استفاده می‌کنید، مطمئن شوید که آن‌ها را به درستی به شیوهٔ MIME کدگذاری کرده‌اید. برای نمونه، از ماژول پرل "Encode" استفاده کنید:

FROM=$(perl -e 'use Encode;
                print encode("MIME-Q",
                             decode("UTF-8", "Julien ÉLIE"));')
gencancel -f "$FROM <admin@news.server.com>" '<mid@news>'

سپس در خروجی یک فیلد سرایند را که به درستی با MIME کدگذاری شده است مشاهده خواهید کرد:

From: =?UTF-8?Q?Julien_=C3=89LIE?= <admin@news.server.com>

نمونه‌ای از فراخوانی با بدنهٔ سفارشی چندخطی:

gencancel -b "$(echo -e "Multi\nLine\nBody.")" '<mid@news>'

(از -c برای تغییر charset پیش‌فرض Content-Type بدنه استفاده کنید.)

سپس می‌توانید خروجی را به دستور "inews -h -P -D" لوله‌کشی (pipe) کنید (به این معنی که inews انتظار یک مقاله همراه با سرایندها را دارد، فیلد سرایند Sender را اضافه نمی‌کند، و به جای تزریق واقعی آن، نتیجه را در خروجی استاندارد می‌نویسد):

gencancel '<mid@news>' | inews -h -P -D

اگر همه چیز درست به نظر می‌رسد، آن را به سیستم خبری تزریق کنید (بدون دادن "-D" به inews):

gencancel '<mid@news>' | inews -h -P

توجه داشته باشید که inews پیام را به سروری که در پارامتر server در inn.conf مشخص شده است ارسال می‌کند.

نوشته‌شده توسط Julien Élie برای InterNetNews.

inews(1), inn-secrets.conf(5).

2023-04-16 INN 2.7.4