Ошибка в коде C/C++
Есть исходник специализированной tftp утилиты для busybox роутера (весь текст не привожу, дабы не утомлять народ копипастом)вот фрагмент:
#if !defined(SUPPORT_SQN_KTHP)
if ((cmd == 0) || (optind == argc) || !(glbUploadType == 'i' || glbUploadType == 'c' || glbUploadType == 'f')) {
bb_show_usage();
}
#else
if ((cmd == 0) || (optind == argc) || !(glbUploadType == 's' || glbUploadType == 'd' || glbUploadType == 'p'|| glbUploadType == 'k' || glbUploadType == 'i')) {
bb_show_usage();
}
#endif
if(!remotefile || remotefile[0] == '\0')
bb_show_usage();
if (glbUploadType == 'i' && cmd != tftp_cmd_get){
printf("tftp client only support upgrade firmware\n");
return EXIT_FAILURE;
}
if ( glbUploadType == 's' || glbUploadType == 'd' || glbUploadType == 'p'|| glbUploadType == 'k' ){
if ( !(andyCheckTftpcEnable()) ){
printf("Can not enable upgrade/download certificate data\n");
return EXIT_FAILURE;
}
}
if (glbUploadType == 'c')
fBufType = BUF_CONFIG_DATA;
Теоретически в итоге должна быть проверка возможности загрузки/выгрузки соотв.файлов по tftp.Если не сходится - вывод соотв.команды: "Can not enable upgrade/download certificate data". После сборки help tftp пишет
Usage: tftp [OPTION]... tftp_server_ip
Update certificate data from/or backup certificate.
data to a tftp server.
Options:
-g Get file. (Certificate data)
-p Put file. (backup Certificate data)
-f remote file name.
-t s for server root ,d for device, p for device private and k
Ввожу команду: tftp –g 192.168.1.2 –f file.pem –ts (аналогичная команда на загрузку образа прошивки - работает - tftp –g 192.168.1.2 –f file.bin –ti) в результате получаю "Can not enable upgrade/download certificate data" Причем неважно –g или –p Догадываюсь, что ошибка вот здесь:
if ( glbUploadType == 's' || glbUploadType == 'd' || glbUploadType == 'p'|| glbUploadType == 'k' ){
if ( !(andyCheckTftpcEnable()) ){
printf("Can not enable upgrade/download certificate data\n");
return EXIT_FAILURE;
}
}
Подскажите, плз, что надо исправить, если я прав
Источник: Stack Overflow на русском