找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2946|回复: 9

求助 : BCM63XX的固件的CGI文件在哪里?

[复制链接]
发表于 2009-10-22 15:33:55 | 显示全部楼层 |阅读模式
因为想做一些修改,研究了此固件的源码(H大侠提供的DSL2650U和USR9113等版本)和刷上去的文件系统,可是找不到CGI文件放在哪里。

估计httpd是busybox的版本,因为源码里就只有busybox里面的networking文件夹有httpd.c。但没有发现相应的httpd.conf。所以这应该是个不带httpd.conf的httpd。

HTML的源码像是在userapps/broadcom/cfm/html里,安装后,放在/webs里。

此系列的版本有不少CGI,比如http://+modem_ip/rebootinfo.cgi就能重启动。但是分析了httpd.c, 就是不明白里面是咋整的。

请求大侠帮助!谢谢。
发表于 2009-10-22 17:31:51 | 显示全部楼层
类似于API的。。。。。。。。。
 楼主| 发表于 2009-10-23 07:38:11 | 显示全部楼层
API是c的界面,须由cgi处理器才能调用,html不能直接调用API,html只能调用cgi文件。通常cgi文件都放在httpd的文件根目录下的cgi-bin子目录里,所以此固件里,他们就应该在/webs/cgi-bin/里,但是并没有这个目录呀。

有没有懂得此固件原理结构的大侠路过?帮帮忙给个提示吧。
发表于 2009-10-23 11:50:33 | 显示全部楼层
CGI就是个接口。HTTPD下面就是啊,。。不过都是C语言的
发表于 2009-10-23 11:53:44 | 显示全部楼层
所有CGI由CFM处理,CFM是没有源码的吧。
 楼主| 发表于 2009-10-23 13:07:51 | 显示全部楼层
没接触过CFM,网上也找不到资料,楼上能讲解一下吗?

但CFM并不是处理CGI,因为就算停掉了CFM的进程,HTML和CGI仍然工作良好,比如可以通过网页让猫重启动。

玩过网页服务器HTTPD都知道,所有80端的通讯都由HTTPD处理,HTTPD如发现URL属于CGI(比如/cgi-bin/xxx.cgi),就转发给CGI处理器。现在有两个问题,

1,xxx.cgi的源码在哪里?现在只能证实HTTPD接受和运行这些含CGI的URL。

2,哪一个进程或库文件处理CGI的码并与c界面衔接?
发表于 2009-10-23 13:38:58 | 显示全部楼层
你对httpd的理解是正确的,但并不一定请求x.cgi就交给x.cgi程序处理,这种解析规则在一般的web服务器里面都可以配置,在bcm6358固件上cgi请求是统一交给cfm处理的。
一般cgi程序都不是daemon进程,而是在httpd收到请求时启动进程,处理完结束,所以你杀cfm也是没有用的。
cfm应该是broadcom的专有程序,你就不要指望源代码了,但你可以看看userapp/broadcom/cfm下的.h文件,看看他提供了哪些接口可以用。但我觉得不如单启一个web服务器自己写cgi。
 楼主| 发表于 2009-10-28 13:13:20 | 显示全部楼层
谢谢7楼高手的指点。
经过几天摸索,我已经另加进去一个Web服务器,并自己写CGI。但还有新的问题,
原有的httpd进程没有单独的Binary,强行杀死的话,80口并没有释放,所以另启的httpd只能使用其他端口,如8080。

能告诉我如何不启动原有的httpd,使80口不被占有?另外,httpd和cfm是这么启动的,initd上面又没有任何设置?
发表于 2009-10-28 15:24:54 | 显示全部楼层
贴/etc目录结构上来,贴initd内容上来,这样说没人能解答。另外,你杀了cfm,原有的web管理功能你都能实现吗,还是不杀的好,呵呵。
 楼主| 发表于 2009-10-28 15:43:34 | 显示全部楼层
喔,目前只是杀掉原有的httpd,没动cfm。但自己另装的httpd只能使用80以外的端口。

inittab的内容

::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
tty2::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r

rcS的内容

#! /bin/sh

PATH=/sbin:/bin
export PATH

mount -t proc proc /proc
/bin/mount -a
#/sbin/inetd

/etc 的结构

dhcp        fstab        inetd.conf         init.d        inittab        issue.net        modules_install        myinit        p2popt        ppp        printcap        profile        services        smb.conf        snmp                startsmb        versions

./dhcp:
dhcp_getdata

./init.d:
rcS

./ppp:
ip-down        ip-up        options        peers

./ppp/peers:

./snmp:
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-9-15 05:40 , Processed in 0.027768 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表