EC Side 2.0 显示bug

在ECSide2.0版本中,发现Opera浏览器下数据量较少时,内容列表与分页工具条间出现空白间隙。此问题在IE7和Firefox2中未出现。源代码中内容列表高度被固定,建议使用百分比表示。另外,Opera下分页功能也存在问题。

版本: EC Side 2.0
Bug: 在opera浏览器下,当数据量少的情况下,内容列表和下面的分页工具条之间存在空白的间隙(贴图在附件中),IE7和FireFox2中则没这种情况.
原因: 查看生成的源代码发现,内容列表的高度被指定为固定的值了,建议这里用百分比表示(height:100%;)

xml 代码
  1. <div style="overflow:auto;width:100%;height:280px"  class="bodyZone"  id="ec_bodyZone" >  
  2. <table id="ec_table"  border="0"  cellspacing="0"  cellpadding="0"  class="tableRegion"  width="100%"    >  
  3.     <tbody id="ec_table_body" >  
  4. <tr class="odd "  onclick="ECSideUtil.selectRow(this,'ec');"  onmouseover="ECSideUtil.lightRow(this,'ec');"  onmouseout="ECSideUtil.unlightRow(this,'ec');"   >  
  5. <td width="50"   >1</td>  
  6. <td width="80"   >锁定</td>  
  7. <td width="120"   >test_205</td>  
  8. <td width="100"   >123</td>  
  9. <td width="120"   >test_205@ecside.org</td>  
  10. <td width="70"   ></td>  
  11. </tr>  

Bug2: 貌似在opera下分页也不能用,寒啊,opera是俺的最爱啊,没办法,要看效果只有切换的IE下了.

Bug Description Before I start: I know that the author of Dibbler considers this software unmaintained (https://klub.com.pl/dhcpv6/); yet it is included in the repositories, so here I am with this bug report. == Issue #1: Dibbler binds to incorrect link-local address of a ppp(oe) interface == After upgrading my home router from Ubuntu 20.04 to Ubuntu 22.04, I have noticed that dibbler-client is no longer capable of starting up and binding to the PPPoE (PPP) interface created as part of my connection set-up process. This is how the link local addresses look like: rzajic@router:/home/work/dibbler/dibbler-1.0.1$ ip -6 a s dev ppp999 scope link 28: ppp999: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc cake state UNKNOWN group default qlen 3 inet6 fe80::8157:b42e:45ec:96ae peer fe80::427c:7dff:fe93:d231/128 scope link valid_lft forever preferred_lft forever fe80::8157:b42e:45ec:96ae is my side of the point to point link fe80::427c:7dff:fe93:d231 is the ISP side of the point to point link (The addresses change on every reconnection, it's nothing sensitive.) The error logs from Dibbler-client were: Apr 25 11:00:39 router.local systemd[1]: Starting LSB: Starts DHCPv6 client... Apr 25 11:00:39 router.local dibbler-client[86944]: Starting DHCPv6 client: dibbler-client. Apr 25 11:00:39 router.local systemd[1]: Started LSB: Starts DHCPv6 client. Apr 25 11:00:39 router.local DibblerClient[86950]: PD: Following interfaces marked as downlink: br0.2 Apr 25 11:00:39 router.local DibblerClient[86950]: Prefix delegation option (no parameters) found. Apr 25 11:00:39 router.local DibblerClient[86950]: Parsing /etc/dibbler/client.conf done, result=0(success) Apr 25 11:00:39 router.local DibblerClient[86950]: 1 interface(s) specified in /etc/dibbler/client.conf Apr 25 11:00:39 router.local DibblerClient[86950]: Interface ppp999/28 configuration has been loaded. Apr 25 11:00:39 router.local DibblerClient[86950]: DUID's value = 00:01:00:01:27:3c:48:99:40:8d:5c:b3:2a:ab was loaded from client-duid file. Apr 25 11:00:39 router.local DibblerClient[86950]: My DUID is 00:01:00:01:27:3c:48:99:40:8d:5c:b3:2a:ab. Apr 25 11:00:39 router.local DibblerClient[86950]: Loading old address database (client-AddrMgr.xml), using built-in routines. Apr 25 11:00:39 router.local DibblerClient[86950]: Unable to open client-AddrMgr.xml. Apr 25 11:00:39 router.local DibblerClient[86950]: Bind reuse enabled (multiple instances allowed). Apr 25 11:00:39 router.local DibblerClient[86950]: Creating control (::) socket on the lo/1 interface. Apr 25 11:00:39 router.local DibblerClient[86950]: Creating socket (addr=fe80::427c:7dff:fe93:d231) on ppp999/28 interface. Apr 25 11:00:39 router.local DibblerClient[86950]: Unable to bind socket (iface=ppp999/28, addr=fe80::427c:7dff:fe93:d231, port=546). Apr 25 11:00:39 router.local DibblerClient[86950]: Low-level layer error message: Unable to bind socket: Cannot assign requested address Apr 25 11:00:39 router.local DibblerClient[86950]: Socket creation (addr=fe80::427c:7dff:fe93:d231) on ppp999/28 interface failed. Apr 25 11:00:39 router.local DibblerClient[86950]: Fatal error during TransMgr initialization. After a quick review, it became clear that the dibbler-client attempts to bind to incorrect IPv6 link local address. This might be related to how the new(er?) clients present the link local addresses. Using the script from https://raw.githubusercontent.com/d0u9/examples/master/C/netlink/ip_show.c, I can see that the link local address on my side of the point to point link is now represented as "local address", while on non-point to point links the link local addresses are represented as interface addresses. ================================== family: 6 dev: ppp999 prefix length: 128 local address: fe80::8157:b42e:45ec:96ae (flags 128, scope 253) if address: fe80::427c:7dff:fe93:d231 (flags 128, scope 253) ================================== family: 6 dev: tap4 prefix length: 64 if address: fe80::4048:1aff:fe2e:64f4 (flags 128, scope 253) This can be worked around by modifying the low level Linux code (note that there seems to be a bug in Dibbler code, which uses IFLA_ADDRESS [belongs to layer 2, e.g. MAC address] instead of IFA_ADDRESS): --- lowlevel-linux.c 2022-04-25 23:56:08.736090768 +0200 +++ dibbler-1.0.1/Port-linux/lowlevel-linux.c 2022-04-25 23:30:35.889052974 +0200 @@ -277,7 +277,7 @@ if (!rta_tb[IFA_LOCAL]) rta_tb[IFA_LOCAL] = rta_tb[IFA_ADDRESS]; if (!rta_tb[IFA_ADDRESS]) rta_tb[IFA_ADDRESS] = rta_tb[IFA_LOCAL]; - memcpy(addr,(char*)RTA_DATA(rta_tb[IFLA_ADDRESS]),16); + memcpy(addr,(char*)RTA_DATA(rta_tb[IFA_LOCAL]),16); if (addr[0]!=0xfe || addr[1]!=0x80) { continue; /* ignore non link-scoped addrs */ } The local address is always set a few lines above the memcpy() call. After rebuild (see Issue #3 below), the process starts, binds and request a prefix (which was my goal at the beginning): Apr 25 23:39:45 router.local systemd[1]: Starting LSB: Starts DHCPv6 client... Apr 25 23:39:45 router.local dibbler-client[243724]: Starting DHCPv6 client: dibbler-client. Apr 25 23:39:45 router.local systemd[1]: Started LSB: Starts DHCPv6 client. Apr 25 23:39:45 router.local DibblerClient[243730]: PD: Following interfaces marked as downlink: br0.2 Apr 25 23:39:45 router.local DibblerClient[243730]: Prefix delegation option (no parameters) found. Apr 25 23:39:45 router.local DibblerClient[243730]: Parsing /etc/dibbler/client.conf done, result=0(success) Apr 25 23:39:45 router.local DibblerClient[243730]: 1 interface(s) specified in /etc/dibbler/client.conf Apr 25 23:39:45 router.local DibblerClient[243730]: Interface ppp999/28 configuration has been loaded. Apr 25 23:39:45 router.local DibblerClient[243730]: DUID's value = 00:01:00:01:27:3c:48:99:40:8d:5c:b3:2a:ab was loaded from client-duid file. Apr 25 23:39:45 router.local DibblerClient[243730]: My DUID is 00:01:00:01:27:3c:48:99:40:8d:5c:b3:2a:ab. Apr 25 23:39:45 router.local DibblerClient[243730]: Loading old address database (client-AddrMgr.xml), using built-in routines. Apr 25 23:39:45 router.local DibblerClient[243730]: DB timestamp:1650922785, now()=1650922785, db is 0 second(s) old. Apr 25 23:39:45 router.local DibblerClient[243730]: Auth: Replay detection value loaded 0 Apr 25 23:39:45 router.local DibblerClient[243730]: All client's 00:01:00:01:27:3c:48:99:40:8d:5c:b3:2a:ab leases are not valid. Apr 25 23:39:45 router.local DibblerClient[243730]: Bind reuse enabled (multiple instances allowed). Apr 25 23:39:45 router.local DibblerClient[243730]: Creating control (::) socket on the lo/1 interface. Apr 25 23:39:45 router.local DibblerClient[243730]: DEBUG: realIface: <IfaceIface name="ppp999" ifindex="28" hwType="512" flags="0x110d1" mBit="0" oBit="0"> <!-- no-loopback running multicast --> <!-- PrefixLength configured to 128 --> <!-- 1 link scoped addrs --> <Addr>fe80::8157:b42e:45ec:96ae</Addr> <!-- 3 non-local addrs --> 2001:1ae9:ff2:xxxx::1 2001:1ae9:ff2:xxxx:faf0:100c:edd5:ed6d 2001:1ae9:ff2:xxxx:8157:b42e:45ec:96ae <Mac></Mac> </IfaceIface> , Interface Apr 25 23:39:45 router.local DibblerClient[243730]: Creating socket (addr=fe80::8157:b42e:45ec:96ae) on ppp999/28 interface. Apr 25 23:39:45 router.local DibblerClient[243730]: Initialising link-state detection for interfaces: ppp999/28 Apr 25 23:39:45 router.local DibblerClient[243730]: CONFIRM support compiled in. Apr 25 23:39:45 router.local DibblerClient[243730]: Creating SOLICIT message with 0 IA(s), no TA and 1 PD(s) on ppp999/28 interface. Apr 25 23:39:45 router.local DibblerClient[243730]: Sending SOLICIT(opts:1 25 8 ) on ppp999/28 to multicast. Apr 25 23:39:45 router.local DibblerClient[243730]: Sleeping for 1 second(s). Apr 25 23:39:45 router.local DibblerClient[243730]: Received 81 bytes on interface ppp999/28 (socket=3, addr=fe80::427c:7dff:fe93:d231). Apr 25 23:39:45 router.local DibblerClient[243730]: Received ADVERTISE on ppp999/28,trans-id=0x655732, 3 opts: 2 1 25 Apr 25 23:39:45 router.local DibblerClient[243730]: Script execution skipped for ADVERTISE response to SOLICIT. No action needed for this message type. Apr 25 23:39:45 router.local DibblerClient[243730]: Sleeping for 1 second(s). Apr 25 23:39:46 router.local DibblerClient[243730]: Processing msg (SOLICIT,transID=0x655732,opts: 1 25 8) Apr 25 23:39:46 router.local DibblerClient[243730]: Creating REQUEST. Backup server list contains 1 server(s). Apr 25 23:39:46 router.local DibblerClient[243730]: Advertise from Server ID=00:03:00:01:40:7c:7d:93:d2:31, no preference option, assumed 0.[using this] Apr 25 23:39:46 router.local DibblerClient[243730]: Sending REQUEST(opts:1 25 2 8 ) on ppp999/28 to multicast. Apr 25 23:39:46 router.local DibblerClient[243730]: Sleeping for 1 second(s). Apr 25 23:39:46 router.local DibblerClient[243730]: Received 81 bytes on interface ppp999/28 (socket=3, addr=fe80::427c:7dff:fe93:d231). Apr 25 23:39:46 router.local DibblerClient[243730]: Received REPLY on ppp999/28,trans-id=0xd529db, 3 opts: 2 1 25 Apr 25 23:39:46 router.local DibblerClient[243730]: PD: Adding 2001:1ae9:xxxx:xx00:: prefix to PD (iaid=1) to addrDB. Apr 25 23:39:46 router.local DibblerClient[243730]: PD: Adding prefix 2001:1ae9:xxxx:xx00::/56 to all interfaces (prefix will be split to /64 prefixes if necessary). Apr 25 23:39:46 router.local DibblerClient[243730]: PD: Using 1 suitable interface(s):br0.2 Apr 25 23:39:46 router.local DibblerClient[243730]: PD: Adding prefix 2001:1ae9:xxxx:xx00::/56 on the br0.2/13 interface. Apr 25 23:39:46 router.local DibblerClient[243730]: RENEW(IA_PD) will be sent (T1) after 1800, REBIND (T2) after 2880 seconds. Apr 25 23:39:46 router.local DibblerClient[243730]: About to execute /etc/dibbler/client-notify.sh script, 15 variables. Apr 25 23:39:46 router.local DibblerClient[243730]: Script execution complete, return code=0 Apr 25 23:39:46 router.local DibblerClient[243730]: Sleeping for 1799 second(s). == Issue #2: Post-install script fails == This is yet another issue spotted as part of the installation. Maybe it would deserve a separate bug report - who knows. Anyway, here it is: The postinst script fails, causing the whole installation to fail: Preparing to unpack .../dibbler-client_1.0.1-1build2_amd64.deb ... Unpacking dibbler-client (1.0.1-1build2) over (1.0.1-1build2) ... Setting up dibbler-client (1.0.1-1build2) ... Error: The new file /etc/dibbler/client.conf-dpkg-new does not exist! dpkg: error processing package dibbler-client (--install): installed dibbler-client package post-installation script subprocess returned error exit status 1 Processing triggers for man-db (2.10.2-1) ... Errors were encountered while processing: dibbler-client This can be fixed by creating the conf-new version at all times: --- dibbler-client.postinst 2022-04-25 23:52:28.891596403 +0200 +++ /home/work/dibbler/dibbler-1.0.1/debian/dibbler-client.postinst 2022-04-25 23:39:40.203950174 +0200 @@ -30,6 +30,8 @@ rm ${CONFFILE_NEW} fi +touch ${CONFFILE_NEW} + db_version 2.0 #db_capb backup db_settitle dibbler-client/title == Issue #3: Dibbler rebuild fails == To rebuild the package on Ubuntu 22.04 with the latest gcc, I had to supply the "-fcommon" flag explicitly: apt-get source dibbler-client apt-get build-deps dibbler-client cd dibbler-1.0.1/ DEB_CPPFLAGS_SET="-fcommon" DEB_CFLAGS_SET="-fcommon" debuild -us -uc -i -b Without that backwards compatibility flag, build fails on this error: /usr/bin/ld: libLowLevel_a-interface.o (symbol from plugin): in function `daemon_log': (.text+0x0): multiple definition of `interface_do_message'; libLowLevel_a-lowlevel-linux-link-state.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libLowLevel_a-interface.o (symbol from plugin): in function `daemon_log': (.text+0x0): multiple definition of `interface_auto_up'; libLowLevel_a-lowlevel-linux-link-state.o (symbol from plugin):(.text+0x0): first defined here ./Port-linux/daemon.h:30:5: warning: 'die' violates the C++ One Definition Rule [-Wodr] 30 | int die(const char * pidfile); | ^ Port-linux/daemon.cpp:191:6: note: return value type mismatch 191 | void die(const char * pidfile) { | ^ Port-linux/daemon.cpp:191:6: note: type 'void' should match type 'int' Port-linux/daemon.cpp:191:6: note: 'die' was previously declared here collect2: error: ld returned 1 exit status make[2]: *** [Makefile:629: dibbler-client] Error 1 make[2]: Leaving directory '/home/work/dibbler/dibbler-1.0.1' make[1]: *** [Makefile:816: all-recursive] Error 1 make[1]: Leaving directory '/home/work/dibbler/dibbler-1.0.1' dh_auto_build: error: make -j1 returned exit code 2 make: *** [debian/rules:16: build] Error 25 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 debuild: fatal error at line 1182: dpkg-buildpackage -us -uc -ui -i -b failed == System info == # lsb_release -rd Description: Ubuntu 22.04 LTS Release: 22.04 # Shows my rebuild/patched version # apt-cache policy dibbler-client dibbler-client: Installed: 1.0.1-1build2 Candidate: 1.0.1-1.1 Version table: 1.0.1-1.1 500 500 http://cz.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages *** 1.0.1-1build2 100 100 /var/lib/dpkg/status 翻译
10-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值