QProcess চাইল্ডকে তার প্রক্সি পরিবেশ দিন
একটি Qt চাইল্ড প্রসেসে পাঠানো পরিবেশ সেট করুন, আর তার এখনও প্রয়োজনীয় উত্তরাধিকারসূত্রে পাওয়া মানগুলো সংরক্ষণ করুন।
QProcess-এর মাধ্যমে চালু করা একটি ডাউনলোডারের জন্য, শুরুর আগে চাইল্ডের পরিবেশ তৈরি করুন:
auto* download = new QProcess(parent);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("https_proxy", "http://proxy.example:8080");
download->setProcessEnvironment(env);
download->start("curl", {"--head", "https://www.example.com/"});এই Qt অংশটি একটি বিদ্যমান প্যারেন্ট অবজেক্ট, একটি ইভেন্ট লুপ এবং চাইল্ডের জন্য উপলব্ধ curl ধরে নেয়। চলার সময় QProcess সক্রিয় রাখুন, এবং এর সমাপ্তি ও ত্রুটির সংকেত অ্যাপ্লিকেশনে সামলান। প্রক্সি শংসাপত্র ছাড়াই এই পাবলিক সাইট পরীক্ষার জন্য HTTP প্রক্সির তালিকা চাইল্ডের প্রক্সি মানের জন্য প্রার্থী HTTP এন্ডপয়েন্ট দেয়।
systemEnvironment দিয়ে শুরু করলে PATH-এর মতো উত্তরাধিকারসূত্রে পাওয়া মান সংরক্ষিত থাকে। নইলে একটি খালি পরিবেশ তৈরি করে একটি প্রক্সি ভেরিয়েবল যোগ করলে ওই অন্য এন্ট্রিগুলো বাদ পড়ত।
ভেরিয়েবলের নামটাই চাবি। export একটি শেল কমান্ড, ওই চাবির অংশ নয় এবং QProcess-কে প্রথমে চালাতে হয় এমন কোনো এক্সিকিউটেবলও নয়। পরিবেশ সরাসরি পাঠালে URL-এর চারপাশে শেল কমান্ড তৈরিও এড়ানো যায়।
setProcessEnvironment এর পরে চালু হওয়া প্রসেসে প্রযোজ্য। এটি ইতিমধ্যে চলা চাইল্ড বা Qt অ্যাপ্লিকেশন চালু করা শেলের পরিবেশ বদলায় না।
নির্বাচিত ডাউনলোডারকে ভেরিয়েবলটি বুঝতে হবে। এই উদাহরণটি curl-এর HTTPS অনুরোধের জন্য ছোট হাতের https_proxy ব্যবহার করে এবং উত্তরাধিকারসূত্রে পাওয়া বাইপাস ইনপুট সংরক্ষণ করে। অন্য একটি চাইল্ড প্রোগ্রামের অন্য প্রক্সি ইন্টারফেস থাকতে পারে।