SEND-IHAVE(8) InterNetNews Documentation SEND-IHAVE(8)

send-ihave - ارسال پیام‌های کنترلی ihave به سایت‌های دوردست

send-ihave [-d] sitename[:hostname] [sitename[:hostname] ...]

استفاده از send-ihave توصیه نمی‌شود؛ پیام‌های کنترلی ihave و sendme پیش‌درآمدی بر پروتکل NNTP را پیاده‌سازی می‌کنند و امروزه در اینترنت تا حد زیادی منسوخ شده‌اند، اما همچنان همراه با برخی پروتکل‌های انتقال نظیر UUCP کاربرد دارند.

در صورتی که واقعاً نیاز به استفاده از پیام‌های کنترلی ihave و sendme دارید و این دستورالعمل‌ها را برای راه‌اندازی آن‌ها دنبال می‌کنید، لطفاً نگه‌دارندگان INN را از هرگونه بهبود در مستندات که می‌توانست راه‌اندازی را آسان‌تر کند، به‌ویژه مراحل مفقود یا نامفهوم، مطلع سازید.

ایده بنیادین در پس پیام‌های کنترلی ihave و sendme این است که شما از طریق پیام‌های کنترلی ihave به همتایان UUCP خود اطلاع می‌دهید چه مقالاتی در دسترس دارید، و در پاسخ برای مقالاتی که می‌خواهید، یک پیام کنترلی sendme ارسال می‌کنید.

دستور send-ihave فایل‌های دسته‌ای نوشته‌شده توسط innd را پردازش می‌کند تا پیام‌های کنترلی ihave را به سایت‌های دوردست NNTP ارسال نماید. سایت‌هایی که باید تغذیه شوند با مشخص کردن جفت‌های "sitename:hostname" در خط فرمان تعیین می‌شوند. مقدار sitename برچسبی است که سایت در فایل newsfeeds دارد، بدون پسوند ".ihave" خود. مقدار hostname نام میزبان واقعی سایت دوردست است که یک FQDN (نام دامنه کاملاً واجد شرایط) می‌باشد. معمولاً sitename و hostname یکسان هستند و بنابراین نیازی نیست به صورت جفت‌های "sitename:hostname" مشخص شوند، بلکه صرفاً ذکر "sitename" کافی است.

دستور send-ihave شناسه‌های مقالات (Message-IDs) را درون یک پیام کنترلی ihave کپسوله‌سازی می‌کند و با استفاده از inews آن پیام کنترلی را به شبه‌گروه خبری "to.hostname" می‌فرستد.

فایل دسته‌ای تولیدشده توسط send-ihave برای یک سایت مشخص، در دایرکتوری pathoutgoing با نام sitename.ihave ذخیره می‌شود. برای جلوگیری از خرابی فایل دسته‌ای، از shlock(8) استفاده می‌شود تا اطمینان حاصل گردد این فایل‌ها توسط دو نمونه در حال اجرا به طور همزمان پردازش نمی‌شوند.

برای نمونه، جهت تولید پیام‌های کنترلی ihave برای news.server.com هنگام دریافت مقالات در سلسله‌مراتب comp.*، کافی است خط زیر را به فایل newsfeeds خود بیفزایید (و آن را مجدداً بارگذاری کنید):

news.server.com.ihave:comp.*:Tf,Wm:

(توجه داشته باشید که اگر الگوی "*" را به "news.server.com" ارسال می‌کنید، باید "@to,@to.*" را به انتهای الگوی گروه خبری اضافه کنید تا پیام کنترلی ihave تولیدشده توسط send-ihave خودش در فهرست مقالات یک پیام کنترلی ihave قرار نگیرد. همچنین ممکن است بخواهید این الگو را به انتهای هر ورودی پردازش‌کننده مقالات کنترلی، مانند controlchan، یا هر ورودی دیگری که الگوی "*" به آن داده می‌شود، بیفزایید.)

سپس، دستور زیر را به صورت دوره‌ای از طریق cron(8) اجرا نمایید:

send-ihave news.server.com

سپس send-ihave یک مقاله کنترلی ihave شامل فهرستی از Message-IDها را به شبه‌گروه خبری "to.news.server.com" ارسال خواهد کرد. ممکن است چندین مقاله کنترلی ارسال شود که هر یک شامل حداکثر ۱۰۰۰ شناسه Message-ID است.

اطمینان حاصل کنید که شبه‌گروه خبری "to.news.server.com" روی کارساز شما وجود داشته باشد (یا شبه‌گروه خبری "to" در صورتی که mergetogroups در inn.conf روی true تنظیم شده باشد)، و مقالات کنترلی ihave فیلتر نشوند (پیکربندی پیش‌فرض Cleanfeed آن‌ها را رد می‌کند). این مقالات کنترلی در شبه‌گروه خبری "control" (یا در صورت وجود، "control.ihave")، یا در صورت تنظیم mergetogroups روی true در "to" ذخیره خواهند شد.

اکنون باید آن‌ها را با هر روشی که مایلید به کارساز دوردست انتشار دهید. احتمالاً از قبل روشی را راه‌اندازی کرده‌اید، که در این صورت فقط کافی است گروه خبری "to.news.server.com" را به فهرست گروه‌هایی که باید تغذیه شوند اضافه کنید. (برای راه‌اندازی یک فید UUCP، نحوه کار send-uucp(8) را ببینید.)

علاوه بر ارسال پیام‌های کنترلی ihave، کارساز اخبار شما نیاز به پردازش پیام‌های کنترلی sendme دارد که از همتایان دوردست دریافت می‌کند. شما باید یک ورودی "sendme" در control.ctl.local با کنش doit اضافه کنید تا امکان پردازش این پیام‌های منطبق با یک نشانی From مشخص فراهم شود. سپس controlchan یک فایل دسته‌ای با نام pathname.work در pathoutgoing ایجاد می‌کند که حاوی فهرستی از توکن‌های ذخیره‌سازی است (بسته به مقدار logipaddr در inn.conf، مقدار pathname از بدنه فیلد سرایند Path یا نشانی IP همتای دوردست گرفته می‌شود). در نهایت، باید batcher(8) یا send-uucp(8) را برای ارسال دسته‌های خبری به همتایان دوردست خود پیکربندی کنید.

به همین ترتیب، کارساز اخبار شما باید پیام‌های کنترلی ihave را که از همتایان دوردست دریافت می‌کند پردازش کند. این مرحله ساده‌ترین بخش کار است. کافی است یک ورودی "ihave" در control.ctl.local مشابه ورودی‌ای که برای "sendme" افزودید اضافه کنید. سپس controlchan این پیام‌های کنترلی ihave را پردازش کرده و برای هر مقاله‌ای که در پیام کنترلی ihave وجود دارد اما در کارساز اخبار محلی شما موجود نیست، یک مقاله کنترلی sendme تولید می‌کند. این مقالات کنترلی sendme به شبه‌گروه خبری "to.pathname" ارسال می‌شوند و همان‌گونه که قبلاً شرح داده شد انتشار می‌یابند. (توجه داشته باشید که ممکن است لازم باشد دو گروه "to" مختلف ایجاد شوند، زیرا ممکن است sitename استفاده‌شده در newsfeeds با pathname یکسان نباشد.)

مراقب باشید که پیام‌های کنترلی ihave و sendme دارای امضای دیجیتال نیستند. شما باید محدودیت‌هایی را در مورد اینکه چه کسانی می‌توانند مقالاتی به گروه‌های "to.*" ارسال کنند (چه از طریق readers.conf یا قواعد ویژه در قلاب‌های پالایشی (filter hooks)) و همچنین روی خطوط "ihave" و "sendme" در control.ctl.local اعمال نمایید.

فلگ -d باعث می‌شود send-ihave خروجی را به جای فایل گزارش send-ihave.log در pathlog، به خروجی استاندارد (stdout) ارسال کند.

بازنویسی در قالب POD توسط Julien Elie.

batcher(8), controlchan(8), control.ctl(5), inews(1), newsfeeds(5), send-uucp(8).

2025-05-09 INN 2.7.4