[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ns] bug in mobilenode.cc ?



Dear ns-users,

In mobilenode.cc : (ns-version2.1b8)

Line2 and Line28 have the same if-statement (strcmp(argv[1], "addif") ),why?
Factually, Line28 have never run.
But Line28 seems to add WirelessPhy.
I don't have any idea about this. Could anyone help me to know why?


At MobileNode::command
===
1:        } else if(argc == 3) {
2:               if(strcmp(argv[1], "addif") == 0) {
3:                        WiredPhy* phyp =
(WiredPhy*)TclObject::lookup(argv[2]);
4:                        if(phyp == 0)
5:                                return TCL_ERROR;
6:                        phyp->insertnode(&ifhead_);
7:                        phyp->setnode(this);
8:                        return TCL_OK;
9:                } else if (strcmp(argv[1], "setsleeptime") == 0) {
10:
energy_model()->afe()->set_sleeptime(atof(argv[2]));
11:
energy_model()->afe()->set_sleepseed(atof(argv[2]));
12:                        return TCL_OK;
13:                } else if (strcmp(argv[1], "setenergy") == 0) {
14:                        energy_model()->setenergy(atof(argv[2]));
15:                        return TCL_OK;
16:                } else if (strcmp(argv[1], "settalive") == 0) {
17:                        energy_model()->max_inroute_time() =
atof(argv[2]);
18:                        return TCL_OK;
19:                } else if (strcmp(argv[1], "maxttl") == 0) {
20:                        energy_model()->maxttl() = atoi(argv[2]);
21:                        return TCL_OK;
22:                } else if(strcmp(argv[1], "radius") == 0) {
23:                        radius_ = strtod(argv[2],NULL);
24:                        return TCL_OK;
25:                } else if(strcmp(argv[1], "random-motion") == 0) {
26:                        random_motion_ = atoi(argv[2]);
27:                        return TCL_OK;
28:                } else if(strcmp(argv[1], "addif") == 0) {
29:                        WirelessPhy *n = (WirelessPhy*)
30:                                TclObject::lookup(argv[2]);
31:                        if(n == 0)
32:                                return TCL_ERROR;
33:                        n->insertnode(&ifhead_);
34:                        n->setnode(this);
35:                        return TCL_OK;

===

--
Best Regard,
Wings