/[LeafOK_CVS]/innwebd/base_passive.cpp
ViewVC logotype

Diff of /innwebd/base_passive.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.4 by sysadm, Sun Jul 4 06:45:23 2004 UTC Revision 1.10 by sysadm, Fri Apr 11 17:14:49 2008 UTC
# Line 1  Line 1 
1  /*******************************************************/  /*******************************************************/
2  /*                                                     */  /*                                                     */
3  /*  LeafOK Innbbsd                                     */  /*  LeafOK Innbbsd                                     */
 /*  Copyright (C) LeafOK.com, 2003-2004                */  
4  /*                                                     */  /*                                                     */
5  /*  Programmed by Leaf                                 */  /*  Copyright (C) LeafOK.com, 2003-2008                */
 /*  E-mail:leaflet@leafok.com  QQ:6049044              */  
6  /*                                                     */  /*                                                     */
7  /*  http://bbs.leafok.com                              */  /*  http://www.leafok.com                              */
 /*  http://bbs.leafok.net                              */  
 /*  http://bbs.fenglin.info                            */  
8  /*                                                     */  /*                                                     */
9  /*******************************************************/  /*******************************************************/
10    
# Line 144  int base_passive::work() Line 140  int base_passive::work()
140                                  break;                                  break;
141                          }                          }
142    
143                          this->GetParentThread()->GetThreadPool()->SetThreadStatus(GetCurrentThreadId(),tread_pool::S_WORKING);                          this->GetParentThread()->GetThreadPool()->SetThreadStatus(GetCurrentThreadId(),thread_pool::S_WORKING);
   
144    
145                          strcpy(p->hostaddr,inet_ntoa(sin.sin_addr));                          strcpy(p->hostaddr,inet_ntoa(sin.sin_addr));
146                          p->port = sin.sin_port;                          p->port = sin.sin_port;
147                          p->isConnected = true;                          p->isConnected = true;
148    
149  //              strcpy(p->w_conn_str,this->w_conn_str);  //              strcpy(p->w_conn_str,this->w_conn_str);
150                          if (this->>get_priv(p)!=0)  
151                          if (this->get_priv(p)!=0)                          if (this->get_priv(p)!=0)
152                          {                          {
153                                  p->s_send("502 Load access file failed.\r\n");                                  p->s_send("502 Load access file failed.\r\n");
# Line 160  int base_passive::work() Line 155  int base_passive::work()
155                                  continue;                                  continue;
156                          }                          }
157    
158                          if (!p->access.get)                          if (!p->check_priv())
159                          {                          {
160                                  p->s_send("502 You are not in my access file.\r\n");                                  p->s_send("502 You are not in my access file.\r\n");
161                                  delete(p);                                  delete(p);
# Line 171  int base_passive::work() Line 166  int base_passive::work()
166                          if (this->GetThreadPool()->GetThreadCount() < MAX_CLIENT)                          if (this->GetThreadPool()->GetThreadCount() < MAX_CLIENT)
167                          {                          {
168                                  if (hThreadCurrent = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)base_passive::AcceptThread,(LPVOID)p,0,&ulThreadId))                                  if (hThreadCurrent = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)base_passive::AcceptThread,(LPVOID)p,0,&ulThreadId))
169  //                                      base_passive::uThreadCount++;                                  {
170                                          CloseHandle(hThreadCurrent);                                          CloseHandle(hThreadCurrent);
171                                          syslog << logfile::log_head << "Create accept thread ... OK" << endl;                                          syslog << logfile::log_head << "Create accept thread ... OK" << endl;
172                                  }                                  }
# Line 209  DWORD base_passive::AcceptThread(LPVOID Line 204  DWORD base_passive::AcceptThread(LPVOID
204    
205                  p->ulMainThreadId = GetCurrentThreadId();                  p->ulMainThreadId = GetCurrentThreadId();
206    
207                    syslog << logfile::log_head << "Accept connection from " << p->hostaddr
208                            << ":" << p->port << endl;
209    
210                  if (p->GetParentThread()->GetThreadPool()->AddThread(GetCurrentThreadId(), CLOCKS_PER_SEC * 30) != 0)                  if (p->GetParentThread()->GetThreadPool()->AddThread(GetCurrentThreadId(), CLOCKS_PER_SEC * 30) != 0)
211                  {                  {
212                          syslog << logfile::log_head << "Register thread ... Failed" << endl;                          syslog << logfile::log_head << "Register thread ... Failed" << endl;
# Line 235  DWORD base_passive::AcceptThread(LPVOID Line 233  DWORD base_passive::AcceptThread(LPVOID
233          }          }
234          catch(CException* e)          catch(CException* e)
235          {          {
236                  syslog << logfile::log_head << "Error in AcceptThread()" << endl;                  char strErrMsg[1024];
237                    e->GetErrorMessage(strErrMsg,1024);
238                    syslog << logfile::log_head << "Error in AcceptThread() [" << strErrMsg << "]" << endl;
239                  e->Delete();                  e->Delete();
240                  return -1;                  return -1;
241          }          }
# Line 250  int base_passive::get_priv(base_passive* Line 250  int base_passive::get_priv(base_passive*
250                  //Default value                  //Default value
251                  strcpy(p->access.ip,p->hostaddr);                  strcpy(p->access.ip,p->hostaddr);
252                  p->access.control = false;                  p->access.control = false;
253                  p->access.get = true;                  p->access.get = false;
254                  p->access.post = false;                  p->access.post = false;
255                  p->access.ihave = false;                  p->access.ihave = false;
256    
# Line 266  int base_passive::get_priv(base_passive* Line 266  int base_passive::get_priv(base_passive*
266          }          }
267          catch(CException* e)          catch(CException* e)
268          {          {
269                  syslog << logfile::log_head << "Error in get_priv()" << endl;                  char strErrMsg[1024];
270                    e->GetErrorMessage(strErrMsg,1024);
271                    syslog << logfile::log_head << "Error in get_priv() [" << strErrMsg << "]" << endl;
272                  e->Delete();                  e->Delete();
273                  return -1;                  return -1;
274          }          }
# Line 318  int base_passive::load_priv(void) Line 320  int base_passive::load_priv(void)
320          }          }
321          catch(CException* e)          catch(CException* e)
322          {          {
323                  syslog << logfile::log_head << "Error in load_priv()" << endl;                  char strErrMsg[1024];
324                    e->GetErrorMessage(strErrMsg,1024);
325                    syslog << logfile::log_head << "Error in load_priv() [" << strErrMsg << "]" << endl;
326                  e->Delete();                  e->Delete();
327                  return -1;                  return -1;
328          }          }
# Line 341  int base_passive::unload_priv(void) Line 345  int base_passive::unload_priv(void)
345          }          }
346          catch(CException* e)          catch(CException* e)
347          {          {
348                  syslog << logfile::log_head << "Error in unload_priv()" << endl;                  char strErrMsg[1024];
349                    e->GetErrorMessage(strErrMsg,1024);
350                    syslog << logfile::log_head << "Error in unload_priv() [" << strErrMsg << "]" << endl;
351                  e->Delete();                  e->Delete();
352                  return -1;                  return -1;
353          }          }
# Line 354  int base_passive::w_call(void) Line 360  int base_passive::w_call(void)
360          this->work();          this->work();
361          return 0;          return 0;
362  }  }
363    
364    bool base_passive::check_priv(void)
365    {
366            return this->access.get;
367    }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1