diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Handle.cc | 9 | ||||
| -rw-r--r-- | lib/Socket.cc | 14 | ||||
| -rw-r--r-- | lib/TaskMan.cc | 8 | 
3 files changed, 26 insertions, 5 deletions
diff --git a/lib/Handle.cc b/lib/Handle.cc index 253ddbf..c02bc55 100644 --- a/lib/Handle.cc +++ b/lib/Handle.cc @@ -160,4 +160,11 @@ time_t Handle::GetModif(void) {  bool Handle::CanWatch(void) {      return true; -}
\ No newline at end of file +} + +void Handle::Dup(const Handle & H) { +    close(); +    if (H.h >= 0) { +	h = dup(H.h); +    } +} diff --git a/lib/Socket.cc b/lib/Socket.cc index d3d7c19..f35bb72 100644 --- a/lib/Socket.cc +++ b/lib/Socket.cc @@ -122,3 +122,17 @@ Socket Socket::Accept(void) throw (GeneralException) {  	return Socket(h);      }  } + +int Socket::GetPort() { +    int r; +    struct sockaddr_in localsocketaddr; +    socklen_t locallen = sizeof(localsocketaddr); +     +    if (getsockname(GetHandle(), (struct sockaddr *) &localsocketaddr, &locallen)) { +        return -1; +    } +     +    r = ntohs(localsocketaddr.sin_port); +     +    return r; +} diff --git a/lib/TaskMan.cc b/lib/TaskMan.cc index f18bcf7..5709d02 100644 --- a/lib/TaskMan.cc +++ b/lib/TaskMan.cc @@ -147,7 +147,7 @@ void TaskMan::MainLoop() throw (GeneralException) {  	if (stopped) return; -//	cerr << "-=- TaskMan: begin main loop with " << number << " task to manage.\n"; +	cerr << "-=- TaskMan: begin main loop with " << number << " task to manage.\n";  	no_burst = 0;  	while (!no_burst) { @@ -157,7 +157,7 @@ void TaskMan::MainLoop() throw (GeneralException) {  		Task * t = *p;  		if (t->GetState() == TASK_BURST) { -//		    cerr << "-=- TaskMan: running burning task " << t->GetName() << endl; +		    cerr << "-=- TaskMan: running burning task " << t->GetName() << endl;  		    t->Run();  		    /* if the task added some new tasks, we have to rerun the loop */  		    no_burst = 0; @@ -274,7 +274,7 @@ void TaskMan::MainLoop() throw (GeneralException) {  			    touched = false;  			    if ((p->ha->GetHandle() == fd) && (!p->T->IsStopped()) && (p->T->GetState() != TASK_DONE) && (!p->dirthy)) {  				// We've got one, launch it. -//				cerr << "-=- TaskMan: launching task " << p->T->GetName() << " for handle " << p->ha->GetHandle() << endl; +				cerr << "-=- TaskMan: launching task " << p->T->GetName() << " for handle " << p->ha->GetHandle() << endl;  				w4ha_t w4 = *p;  				p->dirthy = true; @@ -320,7 +320,7 @@ void TaskMan::MainLoop() throw (GeneralException) {  		}  		if ((o = t->WaitedBy())) { -//		    cerr << "-=- TaskMan: running task " << o->GetName() << " for task " << t->GetName() << endl; +		    cerr << "-=- TaskMan: running task " << o->GetName() << " for task " << t->GetName() << endl;  		    o->Run();  		    if (o->GetState() == TASK_DONE) {  | 
