.\" # DS - begin display .de DS .RS .nf .sp .. .\" # DE - end display .de DE .fi .RE .sp .. .TH rlm_expr 5 "5 February 2004" "" "FreeRADIUS Module" .SH "نام (NAME)" rlm_expr \- ماژول انجام محاسبات ریاضی در FreeRADIUS .SH "توضیحات (DESCRIPTION)" ماژول \fIrlm_expr\fP به سرور اجازه می‌دهد تا محاسبات ریاضی محدودی را انجام دهد. این ماژول به طور مستقیم در هیچ بخشی فراخوانی نمی‌شود، بلکه از طریق بسط پویای رشته‌ها فعال می‌گردد. .PP برای مثال، برخی از دستگاه‌های NAS یک مشخصه NAS-Port ارسال می‌کنند که یک عدد ۳۲ بیتی متشکل از پورت، کارت و رابط است و هرکدام در بایت‌های متفاوتی قرار دارند. برای مشاهده این مشخصه‌ها به صورت تفکیک‌شده، می‌توانید ورودی‌ای مانند زیر در فایل 'users' داشته باشید: .DS DEFAULT .br Vendor-Interface = `%{expr: %{NAS-Port} / (256 * 256)}`, .br Vendor-Card = `%{expr: (%{NAS-Port} / 256) %% 256}`, .br Vendor-Port = `%{expr: %{NAS-Port} %% 256}` .br .DE که در آن مشخصه‌های Vendor-Interface ،Vendor-Card و Vendor-Port مشخصه‌هایی هستند که توسط شما یا فرهنگ‌نامه ارائه‌شده از سوی سازنده تعریف شده‌اند. عملگرهای ریاضی پشتیبانی‌شده توسط ماژول عبارت‌ها عبارتند از: .TP .B + جمع .TP .B - تفریق .TP .B / تقسیم .TP .B %% باقیمانده تقسیم (مدول) .TP .B * ضرب .TP .B & AND بولی (منطقی) .TP .B | OR بولی (منطقی) .TP .B () گروه‌بندی زیرعبارت‌ها .PP نکته: عملگر باقیمانده تقسیم '%%' است و نه '%'. این موضوع به دلیل استفاده از نویسه '%' به عنوان نویسه ویژه برای ترجمه پویا است. .PP نکته: این عملگرها هیچ‌گونه حق تقدمی (precedence) ندارند. پردازش رشته ورودی و محاسبه پاسخ، دقیقاً از چپ به راست انجام می‌شود. اگر می‌خواهید ترتیبی در عبارات اعمال کنید، باید همان‌طور که در مثال قبلی نشان داده شد، آن‌ها را در زیرعبارت‌ها گروه‌بندی کنید. .PP تمامی محاسبات به صورت اعداد صحیح ۳۲ بیتی بدون علامت انجام می‌شوند. .SH "پیکربندی (CONFIGURATION)" .DS modules { ... .br expr { .br } .br ... .br } .br ... .br instantiate { ... .br expr ... .br } .DE .SH "بخش‌ها (SECTIONS)" .BR instantiate .PP .SH "فایل‌ها (FILES)" .I /etc/raddb/radiusd.conf .PP .SH "همچنین ببینید (SEE ALSO)" .BR radiusd (8), .BR radiusd.conf (5) .SH "نویسندگان (AUTHORS)" Chris Parker, cparker@segv.org