zonyitoo / sysuh3c

H3C CLI Client for SYSU, which is implemented in C/C++. With an OpenWRT version.
MIT License
116 stars 37 forks source link

测试表明,树莓派上并不能使用,有没有什么解决方案呢? #20

Open TXZdream opened 7 years ago

AlexGuo1998 commented 7 years ago

真巧了,我也是树莓派…… 要稍微改一点东西,就是读命令行那里,貌似原版的会出错。可以考虑自己重新写一个,或者把帐号密码写死到程序里(不建议) 等我晚上有空来改

zonyitoo commented 7 years ago

同样的问题在 #18 有遇到,是getopt_long不能支持ARM。

husy8 commented 7 years ago

@zonyitoo 并非如此,只是树莓派上的getopt_long实现不太一样。在 main.cpp 的第 95 行:

    while ((argval = getopt_long(argc, argv, "u:p:i:m:dhc", arglist, NULL)) != -1) {

只要更改为:

    while (((argval = getopt_long(argc, argv, "u:p:i:m:dhc", arglist, NULL)) != -1) && argval != 255) {

就不会出现错误。但是因为我现在不在学校,可能要烦请@TXZdream 测试一下改过的代码编译能否运行。

zonyitoo commented 7 years ago

返回255?!如果是这样的话,给个PR吧

似乎是的,Ref: https://www.raspberrypi.org/forums/viewtopic.php?f=33&t=33876

zonyitoo commented 7 years ago

@TXZdream 试一下最新的commit,看看是否可以

husy8 commented 7 years ago

可是……树莓派的话难道不是用cpp11那个分支编译的吗……为什么在Openwrt分支修改代码

而且之所以没有提交PR,主要是觉得还是先测试通过,再提交PR比较稳妥。

zonyitoo commented 7 years ago

因为有不少的同学一直使用openwrt的分支,即使在普通电脑上。我也加一下cpp0x

husy8 commented 7 years ago

修改了以后可以正常验证并通过,但是有点小问题。

[netID:eth0] EAP Auth Start
[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success

验证看起来一切正常,只是每隔一个固定的时间就输出一个Socket recv error,最后用screen后台运行了

zonyitoo commented 7 years ago

@wtlusvm 收到这个之后,还能正常地输出 Got EAP Request for Identity 么

husy8 commented 7 years ago

@zonyitoo 收到Socket recv error之后,自动重新验证,所以最后输出就会变成:

[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success
Socket recv error
[netID:eth0] EAP Auth Start
[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success
Socket recv error
[netID:eth0] EAP Auth Start
[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success
Socket recv error
[netID:eth0] EAP Auth Start
[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success
Socket recv error
[netID:eth0] EAP Auth Start
[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success
Socket recv error
[netID:eth0] EAP Auth Start
[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success
Socket recv error
[netID:eth0] EAP Auth Start
[netID:eth0] Got EAP Request for Identity
[netID:eth0] Got EAP Request for MD5-Challenge
[netID:eth0] EAP Success
......
zonyitoo commented 7 years ago

这样似乎……也没什么问题……

TXZdream commented 6 years ago

@zonyitoo 很抱歉这么久才回复,之后就没有用树莓派了,很抱歉没法立刻实验