କାହିଁକି ଏକ C struct ଖରାପ SOCKS ଅନୁରୋଧ ସୃଷ୍ଟି କରିପାରେ
କମ୍ପାଇଲର ଲେଆଉଟ୍କୁ ୱାୟର୍ ଫର୍ମାଟ୍ ଭାବରେ ନ ଧରି ସ୍ପଷ୍ଟ ଫିଲ୍ଡ ପ୍ରସ୍ଥ, ବାଇଟ୍ କ୍ରମ ଏବଂ ଷ୍ଟ୍ରିମ୍ I/O ଯାଞ୍ଚ କରନ୍ତୁ।
ବୈଧ ପ୍ରକ୍ସି ଠିକଣା ହାତରେ ଲେଖା SOCKS ସନ୍ଦେଶକୁ ବୈଧ କରେ ନାହିଁ। C କିମ୍ବା C++ struct ପଠାଇଲେ ପ୍ରୋଟୋକଲ କେବେ ମାଗି ନଥିବା ପ୍ୟାଡିଂ କିମ୍ବା ହୋଷ୍ଟ-କ୍ରମର ପୂର୍ଣ୍ଣସଂଖ୍ୟା ପଠାଇପାରେ।
SOCKS5 ଡୋମେନ୍-ନାମ CONNECT ଅନୁରୋଧ ପାଇଁ, ପଦ୍ଧତି ବୁଝାମଣା ଏବଂ ଚୟନିତ ପ୍ରମାଣୀକରଣ ପରେ ଏହି କ୍ରମକୁ ସ୍ପଷ୍ଟ ଭାବରେ ସିରିଆଲାଇଜ୍ କରନ୍ତୁ:
- ସଂସ୍କରଣ, ନିର୍ଦ୍ଦେଶ, ସଂରକ୍ଷିତ ବାଇଟ୍ ଏବଂ ଠିକଣା ପ୍ରକାର
- ଡୋମେନ୍ ଲମ୍ବ ଏବଂ ଡୋମେନ୍ ବାଇଟ୍
- ନେଟୱାର୍କ ବାଇଟ୍ କ୍ରମରେ ଦୁଇ-ବାଇଟ୍ ଗନ୍ତବ୍ୟ ପୋର୍ଟ
ଠିକଣାର ଲମ୍ବ SOCKS ସଂସ୍କରଣ ଏବଂ ଠିକଣା ପ୍ରକାର ଉପରେ ନିର୍ଭର କରେ। ସ୍ଥିର ପ୍ରସ୍ଥର ସଂଖ୍ୟାତ୍ମକ ଫିଲ୍ଡକୁ ସେମାନଙ୍କ ନିର୍ଦ୍ଦିଷ୍ଟ ପ୍ରତିନିଧିତ୍ୱ ଦରକାର; ଡୋମେନ୍ ଷ୍ଟ୍ରିଙ୍ଗର ନିଜସ୍ୱ ଲମ୍ବ ଏନକୋଡିଂ ଅଛି। C ଷ୍ଟ୍ରିଙ୍ଗ ଟର୍ମିନେଟର ୱାୟର୍ ସନ୍ଦେଶରେ ଶୂନ୍ୟ ଯୋଡିବାର ସାଧାରଣ ନିର୍ଦ୍ଦେଶ ନୁହେଁ।
| କାର୍ଯ୍ୟାନ୍ୱୟନ ସର୍ଟକଟ୍ | ଯାଞ୍ଚ କରିବାକୁ ଥିବା ସମସ୍ୟା |
|---|---|
| 8-ବିଟ୍ ପଏଣ୍ଟର ମାଧ୍ୟମରେ 32-ବିଟ୍ ମୂଲ୍ୟ ନ୍ୟସ୍ତ କରିବା | ଏହା ଚାରିଟି ବାଇଟ୍ ଯାଏ ନିର୍ଗତ କରେ ନାହିଁ |
| ବଫରକୁ ବଡ଼ ପୂର୍ଣ୍ଣସଂଖ୍ୟା ପଏଣ୍ଟରକୁ କାଷ୍ଟ କରିବା | ସଂରେଖଣ ଏବଂ ବାଇଟ୍ କ୍ରମ ଏବେ ମଧ୍ୟ ପରିଚାଳନା କରିବାକୁ ପଡିବ |
| ଗୋଟିଏ ପଠନ କିମ୍ବା ଲେଖନ ଗୋଟିଏ ସନ୍ଦେଶ ବୋଲି ଧରିନେବା | TCP ପ୍ରୋଟୋକଲ କ୍ରମର କେବଳ ଏକ ଅଂଶ ସ୍ଥାନାନ୍ତର କରିପାରେ |
ପ୍ରତ୍ୟେକ ଫିଲ୍ଡକୁ ଇଚ୍ଛିତ ଗନ୍ତବ୍ୟ ସହିତ ତୁଳନା କରନ୍ତୁ ଏବଂ ଆଂଶିକ I/O ପରିଚାଳନା କରନ୍ତୁ। ଦୁଇଟି ବାଇଟ୍ ପାଇବା ଦ୍ୱାରା ସମ୍ପୂର୍ଣ୍ଣ ଉତ୍ତର ଆସିଛି ବୋଲି ପ୍ରମାଣିତ ହୁଏ ନାହିଁ। ସେହି ସୀମାଗୁଡ଼ିକ ଯାଞ୍ଚ କଲେ ବିକୃତ ଅନୁରୋଧକୁ ସଠିକ୍ ଭାବରେ ବର୍ଣ୍ଣିତ ସଂଯୋଗ ଅସ୍ୱୀକାର କରୁଥିବା ସର୍ଭରରୁ ଅଲଗା କରାଯାଇପାରେ।