summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2006-07-02 22:16:25 (UTC)
committer Michael Krelin <hacker@klever.net>2006-07-02 22:16:25 (UTC)
commit577427e68ef10a4d2b75d28e42b22952ae3bcf23 (patch) (unidiff)
tree24c8fc94ea6524059cab7927ef76639bb1a1a98d
parent24e693797daef020ece3fa19bb5acce000e37165 (diff)
downloadpumpkin-577427e68ef10a4d2b75d28e42b22952ae3bcf23.zip
pumpkin-577427e68ef10a4d2b75d28e42b22952ae3bcf23.tar.gz
pumpkin-577427e68ef10a4d2b75d28e42b22952ae3bcf23.tar.bz2
Do not close RRQ socket until the last ACK is received.
git-svn-id: http://svn.klever.net/kin/pumpkin/trunk@152 fe716a7a-6dde-0310-88d9-d003556173a8
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--PumpKINDlg.cpp70
-rw-r--r--PumpKINDlg.h3
-rw-r--r--pumpkin.mak238
3 files changed, 107 insertions, 204 deletions
diff --git a/PumpKINDlg.cpp b/PumpKINDlg.cpp
index 070f3e8..2a01918 100644
--- a/PumpKINDlg.cpp
+++ b/PumpKINDlg.cpp
@@ -326,902 +326,906 @@ void CPumpKINDlg::OnPaint()
326 326
327 // Center icon in client rectangle 327 // Center icon in client rectangle
328 int cxIcon = GetSystemMetrics(SM_CXICON); 328 int cxIcon = GetSystemMetrics(SM_CXICON);
329 int cyIcon = GetSystemMetrics(SM_CYICON); 329 int cyIcon = GetSystemMetrics(SM_CYICON);
330 CRect rect; 330 CRect rect;
331 GetClientRect(&rect); 331 GetClientRect(&rect);
332 int x = (rect.Width() - cxIcon + 1) / 2; 332 int x = (rect.Width() - cxIcon + 1) / 2;
333 int y = (rect.Height() - cyIcon + 1) / 2; 333 int y = (rect.Height() - cyIcon + 1) / 2;
334 334
335 // Draw the icon 335 // Draw the icon
336 dc.DrawIcon(x, y, m_hIcon); 336 dc.DrawIcon(x, y, m_hIcon);
337 } 337 }
338 else 338 else
339 { 339 {
340 CPaintDC pDC(this); 340 CPaintDC pDC(this);
341 CDC bmpDC; 341 CDC bmpDC;
342 bmpDC.CreateCompatibleDC(&pDC); 342 bmpDC.CreateCompatibleDC(&pDC);
343 bmpDC.SelectObject(&m_bmpBack); 343 bmpDC.SelectObject(&m_bmpBack);
344 CRect rc; 344 CRect rc;
345 GetClientRect(&rc); 345 GetClientRect(&rc);
346 for(int x=-m_bitmapBack.bmWidth*2/4;x<rc.Width();x+=m_bitmapBack.bmWidth) 346 for(int x=-m_bitmapBack.bmWidth*2/4;x<rc.Width();x+=m_bitmapBack.bmWidth)
347 for(int y=-m_bitmapBack.bmHeight*2/4;y<rc.Height();y+=m_bitmapBack.bmHeight) 347 for(int y=-m_bitmapBack.bmHeight*2/4;y<rc.Height();y+=m_bitmapBack.bmHeight)
348 pDC.BitBlt(x,y,m_bitmapBack.bmWidth,m_bitmapBack.bmHeight,&bmpDC,0,0,SRCCOPY); 348 pDC.BitBlt(x,y,m_bitmapBack.bmWidth,m_bitmapBack.bmHeight,&bmpDC,0,0,SRCCOPY);
349 bmpDC.DeleteDC(); 349 bmpDC.DeleteDC();
350 CDialog::OnPaint(); 350 CDialog::OnPaint();
351 } 351 }
352} 352}
353 353
354// The system calls this to obtain the cursor to display while the user drags 354// The system calls this to obtain the cursor to display while the user drags
355// the minimized window. 355// the minimized window.
356HCURSOR CPumpKINDlg::OnQueryDragIcon() 356HCURSOR CPumpKINDlg::OnQueryDragIcon()
357{ 357{
358 return (HCURSOR) m_hIcon; 358 return (HCURSOR) m_hIcon;
359} 359}
360 360
361int CPumpKINDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 361int CPumpKINDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
362{ 362{
363 if (CDialog::OnCreate(lpCreateStruct) == -1) 363 if (CDialog::OnCreate(lpCreateStruct) == -1)
364 return -1; 364 return -1;
365 365
366 if(!m_Listener.SetListen(m_bListen)) { 366 if(!m_Listener.SetListen(m_bListen)) {
367 m_bListen=FALSE; 367 m_bListen=FALSE;
368 TRACE0("Failed to create socket\n"); 368 TRACE0("Failed to create socket\n");
369 AfxMessageBox(IDS_BOX_CANTBIND,MB_OK|MB_ICONEXCLAMATION); 369 AfxMessageBox(IDS_BOX_CANTBIND,MB_OK|MB_ICONEXCLAMATION);
370 } 370 }
371 371
372 if(!m_Trayer->Create(NULL,"PumpKIN TrayIcon",WS_CHILD,CRect(0,0,0,0),this,0)){ 372 if(!m_Trayer->Create(NULL,"PumpKIN TrayIcon",WS_CHILD,CRect(0,0,0,0),this,0)){
373 TRACE0("Failed to create trayer\n"); 373 TRACE0("Failed to create trayer\n");
374 return -1; 374 return -1;
375 } 375 }
376 376
377NOTIFYICONDATA nid; 377NOTIFYICONDATA nid;
378 memset(&nid,0,sizeof(nid)); 378 memset(&nid,0,sizeof(nid));
379 nid.cbSize=sizeof(nid); 379 nid.cbSize=sizeof(nid);
380 nid.hWnd=m_Trayer->m_hWnd; 380 nid.hWnd=m_Trayer->m_hWnd;
381 nid.uID=IDC_TRAYICON; 381 nid.uID=IDC_TRAYICON;
382 nid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; 382 nid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
383 nid.uCallbackMessage=WM_TRAYICON; 383 nid.uCallbackMessage=WM_TRAYICON;
384 nid.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME); 384 nid.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
385 // *** Load from resource 385 // *** Load from resource
386 strcpy(nid.szTip,"PumpKIN"); 386 strcpy(nid.szTip,"PumpKIN");
387 VERIFY(Shell_NotifyIcon(NIM_ADD,&nid)); 387 VERIFY(Shell_NotifyIcon(NIM_ADD,&nid));
388 388
389 return 0; 389 return 0;
390} 390}
391 391
392void CListenSocket::OnReceive(int nErrorCode) 392void CListenSocket::OnReceive(int nErrorCode)
393{ 393{
394 ASSERT(m_Daddy); 394 ASSERT(m_Daddy);
395 if(nErrorCode){ 395 if(nErrorCode){
396 m_Daddy->LogLine(IDS_LOG_LISTENRECEIVEERROR); 396 m_Daddy->LogLine(IDS_LOG_LISTENRECEIVEERROR);
397 return; 397 return;
398 } 398 }
399DWORD fionread = 0; 399DWORD fionread = 0;
400 VERIFY(IOCtl(FIONREAD,&fionread));// *** Do some checking on the value acquired 400 VERIFY(IOCtl(FIONREAD,&fionread));// *** Do some checking on the value acquired
401tftp *tftpRQ = tftp::Allocate(fionread); 401tftp *tftpRQ = tftp::Allocate(fionread);
402 ASSERT(tftpRQ); 402 ASSERT(tftpRQ);
403SOCKADDR_IN sin; 403SOCKADDR_IN sin;
404 if(!tftpRQ->Receive(this,fionread,&sin)){ 404 if(!tftpRQ->Receive(this,fionread,&sin)){
405 m_Daddy->LogLine(IDS_LOG_LISTENACCEPTERROR); 405 m_Daddy->LogLine(IDS_LOG_LISTENACCEPTERROR);
406 delete tftpRQ; 406 delete tftpRQ;
407 return; 407 return;
408 } 408 }
409 #ifndefNDEBUG 409 #ifndefNDEBUG
410CString tmp; 410CString tmp;
411 tmp.Format("%u - %s - %u\n",tftpRQ->Opcode(),inet_ntoa(sin.sin_addr),sin.sin_port); 411 tmp.Format("%u - %s - %u\n",tftpRQ->Opcode(),inet_ntoa(sin.sin_addr),sin.sin_port);
412 TRACE0(tmp); 412 TRACE0(tmp);
413#endif 413#endif
414POSITION p = m_Daddy->m_Xfers.GetStartPosition(); 414POSITION p = m_Daddy->m_Xfers.GetStartPosition();
415 while(p){ 415 while(p){
416 SOCKET key; 416 SOCKET key;
417 CXferSocket *sock; 417 CXferSocket *sock;
418 m_Daddy->m_Xfers.GetNextAssoc(p,key,sock); 418 m_Daddy->m_Xfers.GetNextAssoc(p,key,sock);
419 ASSERT(sock); 419 ASSERT(sock);
420 if(sock->m_Peer.sin_addr.s_addr==sin.sin_addr.s_addr && sock->m_Peer.sin_port==sin.sin_port){ 420 if(sock->m_Peer.sin_addr.s_addr==sin.sin_addr.s_addr && sock->m_Peer.sin_port==sin.sin_port){
421 TRACE0("Ignoring request which we are already processing\n"); 421 TRACE0("Ignoring request which we are already processing\n");
422 delete tftpRQ; 422 delete tftpRQ;
423 return; 423 return;
424 } 424 }
425 } 425 }
426 switch(tftpRQ->Opcode()){ 426 switch(tftpRQ->Opcode()){
427 case tftp::opRRQ: 427 case tftp::opRRQ:
428 // Read Request 428 // Read Request
429 { 429 {
430 CString tmp; 430 CString tmp;
431 tmp.Format(IDS_LOG_RRQSERVE,tftpRQ->rqFileName(),tftpRQ->rqType(),inet_ntoa(sin.sin_addr)); 431 tmp.Format(IDS_LOG_RRQSERVE,tftpRQ->rqFileName(),tftpRQ->rqType(),inet_ntoa(sin.sin_addr));
432 m_Daddy->LogLine(tmp); 432 m_Daddy->LogLine(tmp);
433 CRRQSocket *s = new CRRQSocket(m_Daddy,tftpRQ->rqFileName(),tftpRQ->rqType(),&sin); 433 CRRQSocket *s = new CRRQSocket(m_Daddy,tftpRQ->rqFileName(),tftpRQ->rqType(),&sin);
434 ASSERT(s); 434 ASSERT(s);
435 tftpRQ->GetOptions(&s->m_Options); 435 tftpRQ->GetOptions(&s->m_Options);
436 if(!s->Create()) 436 if(!s->Create())
437 s->Destroy(FALSE); 437 s->Destroy(FALSE);
438 } 438 }
439 break; 439 break;
440 case tftp::opWRQ: 440 case tftp::opWRQ:
441 // Write Request 441 // Write Request
442 { 442 {
443 CString tmp; 443 CString tmp;
444 tmp.Format(IDS_LOG_WRQSERVE,tftpRQ->rqFileName(),tftpRQ->rqType(),inet_ntoa(sin.sin_addr)); 444 tmp.Format(IDS_LOG_WRQSERVE,tftpRQ->rqFileName(),tftpRQ->rqType(),inet_ntoa(sin.sin_addr));
445 m_Daddy->LogLine(tmp); 445 m_Daddy->LogLine(tmp);
446 CWRQSocket *s = new CWRQSocket(m_Daddy,tftpRQ->rqFileName(),tftpRQ->rqType(),&sin); 446 CWRQSocket *s = new CWRQSocket(m_Daddy,tftpRQ->rqFileName(),tftpRQ->rqType(),&sin);
447 ASSERT(s); 447 ASSERT(s);
448 tftpRQ->GetOptions(&s->m_Options); 448 tftpRQ->GetOptions(&s->m_Options);
449 if(!s->Create(NULL,NULL)) 449 if(!s->Create(NULL,NULL))
450 s->Destroy(FALSE); 450 s->Destroy(FALSE);
451 } 451 }
452 break; 452 break;
453 default: 453 default:
454 m_Daddy->LogLine(IDS_LOG_LISTENOPCODE); 454 m_Daddy->LogLine(IDS_LOG_LISTENOPCODE);
455 delete tftpRQ; 455 delete tftpRQ;
456 return; 456 return;
457 } 457 }
458 delete tftpRQ; 458 delete tftpRQ;
459} 459}
460 460
461BOOL tftp::Receive(CAsyncSocket* socket,UINT maxLength,SOCKADDR_IN *sin) 461BOOL tftp::Receive(CAsyncSocket* socket,UINT maxLength,SOCKADDR_IN *sin)
462{ 462{
463 ASSERT(socket); 463 ASSERT(socket);
464int saddrLen = sizeof(SOCKADDR_IN); 464int saddrLen = sizeof(SOCKADDR_IN);
465 length = sin ? 465 length = sin ?
466 socket->ReceiveFrom(udpBase(),maxLength,(SOCKADDR*)sin,&saddrLen) 466 socket->ReceiveFrom(udpBase(),maxLength,(SOCKADDR*)sin,&saddrLen)
467 : 467 :
468 socket->Receive(udpBase(),maxLength) 468 socket->Receive(udpBase(),maxLength)
469 ; 469 ;
470 if(!length) 470 if(!length)
471 return FALSE; 471 return FALSE;
472 if(length==(tftpLength)SOCKET_ERROR) 472 if(length==(tftpLength)SOCKET_ERROR)
473 return FALSE; 473 return FALSE;
474 return TRUE; 474 return TRUE;
475} 475}
476 476
477UINT tftp::Opcode() 477UINT tftp::Opcode()
478{ 478{
479 return REVERSEBYTES(opcode); 479 return REVERSEBYTES(opcode);
480} 480}
481 481
482CString tftp::rqFileName() 482CString tftp::rqFileName()
483{ 483{
484 ASSERT(length); 484 ASSERT(length);
485 ASSERT(Opcode()==opRRQ || Opcode()==opWRQ); 485 ASSERT(Opcode()==opRRQ || Opcode()==opWRQ);
486CString rv; 486CString rv;
487 if(memchr(&data.m_RQ.data,0,length-sizeof(opcode))) 487 if(memchr(&data.m_RQ.data,0,length-sizeof(opcode)))
488 rv = (LPCTSTR)data.m_RQ.data; 488 rv = (LPCTSTR)data.m_RQ.data;
489 return rv; 489 return rv;
490} 490}
491 491
492CString tftp::rqType() 492CString tftp::rqType()
493{ 493{
494 ASSERT(length); 494 ASSERT(length);
495 ASSERT(Opcode()==opRRQ || Opcode()==opWRQ); 495 ASSERT(Opcode()==opRRQ || Opcode()==opWRQ);
496CString rv; 496CString rv;
497char *tmp = (char*)memchr(&data.m_RQ.data,0,length-sizeof(opcode)); 497char *tmp = (char*)memchr(&data.m_RQ.data,0,length-sizeof(opcode));
498 if(tmp++) 498 if(tmp++)
499 rv = (LPCTSTR)tmp; 499 rv = (LPCTSTR)tmp;
500 return rv; 500 return rv;
501} 501}
502 502
503UINT tftp::GetOptions(tftp::tftpOptions* ops) 503UINT tftp::GetOptions(tftp::tftpOptions* ops)
504{ 504{
505 ASSERT(length); 505 ASSERT(length);
506 ASSERT(Opcode()==opRRQ || Opcode()==opWRQ || Opcode()==opOACK); 506 ASSERT(Opcode()==opRRQ || Opcode()==opWRQ || Opcode()==opOACK);
507 ASSERT(ops); 507 ASSERT(ops);
508tftpOptions& o = *ops; 508tftpOptions& o = *ops;
509LPSTR base = (LPSTR)&data.m_RQ.data; 509LPSTR base = (LPSTR)&data.m_RQ.data;
510UINT basePtr = 0; 510UINT basePtr = 0;
511 if(Opcode()==opRRQ || Opcode()==opWRQ){ 511 if(Opcode()==opRRQ || Opcode()==opWRQ){
512 base = (LPSTR)memchr(&data.m_RQ.data,0,length-sizeof(opcode)); 512 base = (LPSTR)memchr(&data.m_RQ.data,0,length-sizeof(opcode));
513 if(!base) 513 if(!base)
514 return 0; 514 return 0;
515 base++; 515 base++;
516 basePtr = (base-(LPSTR)&data.m_RQ.data); 516 basePtr = (base-(LPSTR)&data.m_RQ.data);
517 base = (LPSTR)memchr(base,0,length-basePtr); 517 base = (LPSTR)memchr(base,0,length-basePtr);
518 if(!base) 518 if(!base)
519 return 0; 519 return 0;
520 base++; 520 base++;
521 basePtr = (base-(LPSTR)&data.m_RQ.data); 521 basePtr = (base-(LPSTR)&data.m_RQ.data);
522 } 522 }
523 ops->RemoveAll(); 523 ops->RemoveAll();
524UINT rv = 0; 524UINT rv = 0;
525 while(basePtr<(length-sizeof(opcode))){ 525 while(basePtr<(length-sizeof(opcode))){
526 CString onam = (LPSTR)&data.m_RQ.data[basePtr]; 526 CString onam = (LPSTR)&data.m_RQ.data[basePtr];
527 basePtr+=onam.GetLength()+1; 527 basePtr+=onam.GetLength()+1;
528 CString oval = (LPSTR)&data.m_RQ.data[basePtr]; 528 CString oval = (LPSTR)&data.m_RQ.data[basePtr];
529 basePtr+=oval.GetLength()+1; 529 basePtr+=oval.GetLength()+1;
530 onam.MakeLower(); 530 onam.MakeLower();
531 o[onam]=oval; 531 o[onam]=oval;
532 rv++; 532 rv++;
533 } 533 }
534 return rv; 534 return rv;
535} 535}
536 536
537tftp::tftp() 537tftp::tftp()
538{ 538{
539 length=0; 539 length=0;
540} 540}
541 541
542 542
543void CXferSocket::OnSend(int nErrorCode) 543void CXferSocket::OnSend(int nErrorCode)
544{ 544{
545 if(nErrorCode){ 545 if(nErrorCode){
546 ASSERT(m_Daddy); 546 ASSERT(m_Daddy);
547 m_Daddy->LogLine(IDS_LOG_XFERSEND); 547 m_Daddy->LogLine(IDS_LOG_XFERSEND);
548 return; 548 return;
549 } 549 }
550 if(!m_Queue.IsEmpty()){ 550 if(!m_Queue.IsEmpty()){
551 tftp *p = m_Queue.GetHead(); 551 tftp *p = m_Queue.GetHead();
552 ASSERT(p); 552 ASSERT(p);
553 m_Queue.RemoveHead(); 553 m_Queue.RemoveHead();
554 if(!p->Send(this,&m_Peer)){ 554 if(!p->Send(this,&m_Peer)){
555 ASSERT(m_Daddy); 555 ASSERT(m_Daddy);
556 m_Daddy->LogLine(IDS_LOG_XFERUDPSEND); 556 m_Daddy->LogLine(IDS_LOG_XFERUDPSEND);
557 } 557 }
558 delete p; 558 delete p;
559 } 559 }
560 DoSelect(); 560 DoSelect();
561 if(m_Queue.IsEmpty()){ 561 if(m_Queue.IsEmpty()){
562 switch(state){ 562 switch(state){
563 case stateDeny: 563 case stateDeny:
564 Destroy(FALSE); 564 Destroy(FALSE);
565 break; 565 break;
566 case stateFinish: 566 case stateFinish:
567 Destroy(TRUE); 567 Destroy(TRUE);
568 break; 568 break;
569 } 569 }
570 } 570 }
571} 571}
572 572
573BOOL tftp::Send(CAsyncSocket *socket,SOCKADDR_IN* saddr) 573BOOL tftp::Send(CAsyncSocket *socket,SOCKADDR_IN* saddr)
574{ 574{
575 ASSERT(socket); 575 ASSERT(socket);
576int rv = socket->SendTo(udpBase(),length,(SOCKADDR*)saddr,sizeof(SOCKADDR_IN)); 576int rv = socket->SendTo(udpBase(),length,(SOCKADDR*)saddr,sizeof(SOCKADDR_IN));
577 if(rv!=length) 577 if(rv!=length)
578 return FALSE; 578 return FALSE;
579 return TRUE; 579 return TRUE;
580} 580}
581 581
582void CXferSocket::DoSelect() 582void CXferSocket::DoSelect(BOOL do_select)
583{ 583{
584 if(m_Peer.sin_addr.s_addr!=INADDR_NONE) 584 if(m_Peer.sin_addr.s_addr!=INADDR_NONE)
585 AsyncSelect(FD_CLOSE|FD_READ|(m_Queue.IsEmpty()?0:FD_WRITE)); 585 AsyncSelect(FD_CLOSE|FD_READ|((m_Queue.IsEmpty()&&!do_select)?0:FD_WRITE));
586} 586}
587 587
588void CXferSocket::OnReceive(int nErrorCode) 588void CXferSocket::OnReceive(int nErrorCode)
589{ 589{
590 if(nErrorCode){ 590 if(nErrorCode){
591 ASSERT(m_Daddy); 591 ASSERT(m_Daddy);
592 m_Daddy->LogLine(IDS_LOG_XFERRECEIVE); 592 m_Daddy->LogLine(IDS_LOG_XFERRECEIVE);
593 return; 593 return;
594 } 594 }
595 ASSERT(m_Daddy); 595 ASSERT(m_Daddy);
596DWORD fionread = 0; 596DWORD fionread = 0;
597 VERIFY(IOCtl(FIONREAD,&fionread)); 597 VERIFY(IOCtl(FIONREAD,&fionread));
598tftp *p = tftp::Allocate(fionread); 598tftp *p = tftp::Allocate(fionread);
599 ASSERT(p); 599 ASSERT(p);
600SOCKADDR_IN sin; 600SOCKADDR_IN sin;
601 if(!p->Receive(this,fionread,&sin)){ 601 if(!p->Receive(this,fionread,&sin)){
602 m_Daddy->LogLine(IDS_LOG_XFERUDPRECEIVE); 602 m_Daddy->LogLine(IDS_LOG_XFERUDPRECEIVE);
603 delete p; 603 delete p;
604 }else 604 }else
605 if(m_Peer.sin_addr.s_addr==INADDR_NONE){ 605 if(m_Peer.sin_addr.s_addr==INADDR_NONE){
606 m_Peer.sin_addr=sin.sin_addr; 606 m_Peer.sin_addr=sin.sin_addr;
607 m_Peer.sin_port=sin.sin_port; 607 m_Peer.sin_port=sin.sin_port;
608 } 608 }
609BOOL alive = TRUE; 609BOOL alive = TRUE;
610 if(state==stateInit){ 610 if(state==stateInit){
611 state=stateXfer; 611 state=stateXfer;
612 m_Peer.sin_port=sin.sin_port; 612 m_Peer.sin_port=sin.sin_port;
613 UpdateList(); 613 UpdateList();
614 } 614 }
615 if(sin.sin_addr.s_addr!=m_Peer.sin_addr.s_addr || sin.sin_port!=m_Peer.sin_port){ 615 if(sin.sin_addr.s_addr!=m_Peer.sin_addr.s_addr || sin.sin_port!=m_Peer.sin_port){
616 m_Daddy->LogLine(IDS_LOG_XFERSOURCETID); 616 m_Daddy->LogLine(IDS_LOG_XFERSOURCETID);
617 // *** Bounce it! 617 // *** Bounce it!
618 }else{ 618 }else{
619 alive = OnTFTP(p); 619 alive = OnTFTP(p);
620 } 620 }
621 delete p; 621 delete p;
622 if(alive){ 622 if(alive){
623 DoSelect(); 623 DoSelect();
624 ResetTimeout(); 624 ResetTimeout();
625 } 625 }
626} 626}
627 627
628void CXferSocket::SetPeer(SOCKADDR_IN *sin) 628void CXferSocket::SetPeer(SOCKADDR_IN *sin)
629{ 629{
630 ASSERT(sin); 630 ASSERT(sin);
631 memmove(&m_Peer,sin,sizeof(m_Peer)); 631 memmove(&m_Peer,sin,sizeof(m_Peer));
632} 632}
633 633
634void CXferSocket::UpdateList() 634void CXferSocket::UpdateList()
635{ 635{
636 ASSERT(m_Daddy); 636 ASSERT(m_Daddy);
637LV_FINDINFO lvf; 637LV_FINDINFO lvf;
638 memset(&lvf,0,sizeof(lvf)); 638 memset(&lvf,0,sizeof(lvf));
639 lvf.flags=LVFI_PARAM; 639 lvf.flags=LVFI_PARAM;
640 lvf.lParam=(LPARAM)this; 640 lvf.lParam=(LPARAM)this;
641int i = m_Daddy->m_List.FindItem(&lvf); 641int i = m_Daddy->m_List.FindItem(&lvf);
642 if(i<0){ 642 if(i<0){
643 ASSERT(IsKindOf(RUNTIME_CLASS(CRRQSocket)) || IsKindOf(RUNTIME_CLASS(CWRQSocket))); 643 ASSERT(IsKindOf(RUNTIME_CLASS(CRRQSocket)) || IsKindOf(RUNTIME_CLASS(CWRQSocket)));
644 i=m_Daddy->m_List.InsertItem(0,m_FileName,IsKindOf(RUNTIME_CLASS(CRRQSocket))?m_Daddy->m_iRRQ:m_Daddy->m_iWRQ); 644 i=m_Daddy->m_List.InsertItem(0,m_FileName,IsKindOf(RUNTIME_CLASS(CRRQSocket))?m_Daddy->m_iRRQ:m_Daddy->m_iWRQ);
645 ASSERT(!(i<0)); 645 ASSERT(!(i<0));
646 m_Daddy->m_List.SetItemData(i,(DWORD)this); 646 m_Daddy->m_List.SetItemData(i,(DWORD)this);
647 } 647 }
648 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemFile,m_FileName); 648 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemFile,m_FileName);
649 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemType,m_Type); 649 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemType,m_Type);
650 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemPeer,inet_ntoa(m_Peer.sin_addr)); 650 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemPeer,inet_ntoa(m_Peer.sin_addr));
651CString tmp; 651CString tmp;
652 tmp.Format(IDS_FMT_BYTES,GetACK()); 652 tmp.Format(IDS_FMT_BYTES,GetACK());
653 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemBytes,tmp); 653 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemBytes,tmp);
654 if(m_xferSize>=0){ 654 if(m_xferSize>=0){
655 tmp.Format(IDS_FMT_BYTES,m_xferSize); 655 tmp.Format(IDS_FMT_BYTES,m_xferSize);
656 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemTSize,tmp); 656 m_Daddy->m_List.SetItemText(i,CPumpKINDlg::subitemTSize,tmp);
657 } 657 }
658} 658}
659 659
660CXferSocket::CXferSocket() 660CXferSocket::CXferSocket()
661 : m_wndResolver(NULL), m_Retry(NULL), m_bRetry(FALSE), 661 : m_wndResolver(NULL), m_Retry(NULL), m_bRetry(FALSE),
662 m_blkSize(512), m_timeOut(30), m_xferSize(-1), 662 m_blkSize(512), m_timeOut(30), m_xferSize(-1),
663 m__blkSize(512), m__timeOut(30) 663 m__blkSize(512), m__timeOut(30)
664{ 664{
665 m_Daddy=NULL; 665 m_Daddy=NULL;
666 m_Peer.sin_addr.s_addr=INADDR_NONE; 666 m_Peer.sin_addr.s_addr=INADDR_NONE;
667 m_Peer.sin_family=AF_INET; 667 m_Peer.sin_family=AF_INET;
668 state=stateNone; 668 state=stateNone;
669} 669}
670 670
671ULONG CXferSocket::GetACK() 671ULONG CXferSocket::GetACK()
672{ 672{
673 return 0; 673 return 0;
674} 674}
675 675
676CXferSocket::CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin) 676CXferSocket::CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin)
677 : m_wndResolver(NULL), m_Retry(NULL), m_bRetry(FALSE), 677 : m_wndResolver(NULL), m_Retry(NULL), m_bRetry(FALSE),
678 m_blkSize(512), m_timeOut(30), m_xferSize(-1), 678 m_blkSize(512), m_timeOut(30), m_xferSize(-1),
679 m__blkSize(512), m__timeOut(30) 679 m__blkSize(512), m__timeOut(30)
680{ 680{
681 m_Peer.sin_family=AF_INET; 681 m_Peer.sin_family=AF_INET;
682 state=stateNone; 682 state=stateNone;
683 ASSERT(daddy); 683 ASSERT(daddy);
684 m_Daddy=daddy; 684 m_Daddy=daddy;
685 m_timeOut=m__timeOut=m_Daddy->m_TFTPTimeOut.GetTotalSeconds(); 685 m_timeOut=m__timeOut=m_Daddy->m_TFTPTimeOut.GetTotalSeconds();
686 if(sin){ 686 if(sin){
687 m_Peer.sin_addr.s_addr=sin->sin_addr.s_addr; 687 m_Peer.sin_addr.s_addr=sin->sin_addr.s_addr;
688 m_Peer.sin_port=sin->sin_port; 688 m_Peer.sin_port=sin->sin_port;
689 }else 689 }else
690 m_Peer.sin_addr.s_addr=INADDR_NONE; 690 m_Peer.sin_addr.s_addr=INADDR_NONE;
691 m_FileName=fileName; 691 m_FileName=fileName;
692 m_Type=type; 692 m_Type=type;
693} 693}
694 694
695BOOL CRRQSocket::Create(LPCTSTR localFile,LPCTSTR hostName) 695BOOL CRRQSocket::Create(LPCTSTR localFile,LPCTSTR hostName)
696{ 696{
697 if(!CAsyncSocket::Create(0,SOCK_DGRAM)) 697 if(!CAsyncSocket::Create(0,SOCK_DGRAM))
698 return FALSE; 698 return FALSE;
699 ASSERT(m_Daddy); 699 ASSERT(m_Daddy);
700 ASSERT(m_Peer.sin_addr.s_addr!=INADDR_NONE || hostName); 700 ASSERT(m_Peer.sin_addr.s_addr!=INADDR_NONE || hostName);
701 m_Daddy->m_Xfers[m_hSocket]=this; 701 m_Daddy->m_Xfers[m_hSocket]=this;
702CString lFile = localFile?localFile:m_FileName; 702CString lFile = localFile?localFile:m_FileName;
703 TurnSlashes(lFile,TRUE); 703 TurnSlashes(lFile,TRUE);
704 UpdateList(); 704 UpdateList();
705 if(!localFile){// Check only for incoming requests 705 if(!localFile){// Check only for incoming requests
706 if(CheckBadRelativeness(m_FileName)){ 706 if(CheckBadRelativeness(m_FileName)){
707 Deny(tftp::errAccessViolation,IDS_TFTP_ERROR_ACCESS); 707 Deny(tftp::errAccessViolation,IDS_TFTP_ERROR_ACCESS);
708 return TRUE; 708 return TRUE;
709 } 709 }
710 int atar=m_Daddy->m_aclRules.FindTarget(acl_rule::opRRQ,m_Peer.sin_addr.s_addr); 710 int atar=m_Daddy->m_aclRules.FindTarget(acl_rule::opRRQ,m_Peer.sin_addr.s_addr);
711 if(atar<0) 711 if(atar<0)
712 atar = m_Daddy->m_RRQMode; 712 atar = m_Daddy->m_RRQMode;
713 switch(atar){ 713 switch(atar){
714 case CPumpKINDlg::rrqGiveAll: 714 case CPumpKINDlg::rrqGiveAll:
715 break; 715 break;
716 case CPumpKINDlg::rrqAlwaysConfirm: 716 case CPumpKINDlg::rrqAlwaysConfirm:
717 if(ConfirmRequest()) 717 if(ConfirmRequest())
718 break; 718 break;
719 default: 719 default:
720 TRACE1("Unexpected access target: %d\n",atar); 720 TRACE1("Unexpected access target: %d\n",atar);
721 case CPumpKINDlg::rrqDenyAll: 721 case CPumpKINDlg::rrqDenyAll:
722 Deny(tftp::errAccessViolation,IDS_TFTP_ERROR_ACCESS); 722 Deny(tftp::errAccessViolation,IDS_TFTP_ERROR_ACCESS);
723 return TRUE; 723 return TRUE;
724 } 724 }
725 } 725 }
726CString fn = localFile?ApplyRootGently(lFile):ApplyRoot(lFile); 726CString fn = localFile?ApplyRootGently(lFile):ApplyRoot(lFile);
727CFileException e; 727CFileException e;
728 if(!m_File.Open(fn,CFile::modeRead|CFile::shareDenyWrite,&e)){ 728 if(!m_File.Open(fn,CFile::modeRead|CFile::shareDenyWrite,&e)){
729 if(localFile){ 729 if(localFile){
730 CString tmp; 730 CString tmp;
731 tmp.Format(IDS_LOG_FAILEDLOCALFILE,fn); 731 tmp.Format(IDS_LOG_FAILEDLOCALFILE,fn);
732 m_Daddy->LogLine(tmp); 732 m_Daddy->LogLine(tmp);
733 return FALSE; 733 return FALSE;
734 } 734 }
735 Deny(&e); 735 Deny(&e);
736 return TRUE; 736 return TRUE;
737 } 737 }
738 m_xferSize=m_File.GetLength();// *** HANDLE EXCEPTION 738 m_xferSize=m_File.GetLength();// *** HANDLE EXCEPTION
739 if(hostName){ 739 if(hostName){
740 m_HostName=hostName; 740 m_HostName=hostName;
741 741
742 CString tmp; 742 CString tmp;
743 tmp.Format(IDS_LOG_SENDING,m_FileName,m_HostName); 743 tmp.Format(IDS_LOG_SENDING,m_FileName,m_HostName);
744 m_Daddy->LogLine(tmp); 744 m_Daddy->LogLine(tmp);
745 745
746 CString inAddr = hostName; 746 CString inAddr = hostName;
747 int at = inAddr.Find('@'); 747 int at = inAddr.Find('@');
748 if(at>=0) 748 if(at>=0)
749 inAddr=inAddr.Mid(at+1); 749 inAddr=inAddr.Mid(at+1);
750 if((m_Peer.sin_addr.s_addr=inet_addr((LPCTSTR)inAddr))==INADDR_NONE){ 750 if((m_Peer.sin_addr.s_addr=inet_addr((LPCTSTR)inAddr))==INADDR_NONE){
751 ASSERT(!m_wndResolver); 751 ASSERT(!m_wndResolver);
752 m_wndResolver = new CResolver(this); 752 m_wndResolver = new CResolver(this);
753 ASSERT(m_wndResolver); 753 ASSERT(m_wndResolver);
754 return m_wndResolver->Resolve(); 754 return m_wndResolver->Resolve();
755 } 755 }
756 else 756 else
757 OnHostKnown(); 757 OnHostKnown();
758 }else{ 758 }else{
759 tftp::tftpOptions o; 759 tftp::tftpOptions o;
760 CString v; 760 CString v;
761 if(m_Options.Lookup(tftpoBSize,v)){ 761 if(m_Options.Lookup(tftpoBSize,v)){
762 m__blkSize=atoi(v); 762 m__blkSize=atoi(v);
763 if(m__blkSize){ 763 if(m__blkSize){
764 m_blkSize=m__blkSize; 764 m_blkSize=m__blkSize;
765 v.Format("%u",m_blkSize); 765 v.Format("%u",m_blkSize);
766 o[tftpoBSize]=v; 766 o[tftpoBSize]=v;
767 } 767 }
768 } 768 }
769 if(m_Options.Lookup(tftpoTSize,v)){ 769 if(m_Options.Lookup(tftpoTSize,v)){
770 v.Format("%lu",m_xferSize); 770 v.Format("%lu",m_xferSize);
771 o[tftpoTSize]=v; 771 o[tftpoTSize]=v;
772 } 772 }
773 if(m_Options.Lookup(tftpoTOut,v)){ 773 if(m_Options.Lookup(tftpoTOut,v)){
774 m__timeOut=atoi(v); 774 m__timeOut=atoi(v);
775 if(m__timeOut){ 775 if(m__timeOut){
776 m_timeOut=m__timeOut; 776 m_timeOut=m__timeOut;
777 v.Format("%u",m_timeOut); 777 v.Format("%u",m_timeOut);
778 o[tftpoTOut]=v; 778 o[tftpoTOut]=v;
779 } 779 }
780 } 780 }
781 state = stateXfer; 781 state = stateXfer;
782 m_ACK=0; 782 m_ACK=0;
783 if(o.GetCount()){ 783 if(o.GetCount()){
784 tftp *p = tftp::Allocate(tftp::tftpOACK::tftpSize(&o)); 784 tftp *p = tftp::Allocate(tftp::tftpOACK::tftpSize(&o));
785 ASSERT(p); 785 ASSERT(p);
786 p->SetOpcode(tftp::opOACK); 786 p->SetOpcode(tftp::opOACK);
787 p->data.m_OACK.Set(&o); 787 p->data.m_OACK.Set(&o);
788 PostTFTP(p,TRUE); 788 PostTFTP(p,TRUE);
789 }else 789 }else
790 DoXfer(); 790 DoXfer();
791 } 791 }
792 return TRUE; 792 return TRUE;
793} 793}
794 794
795CRRQSocket::CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin) 795CRRQSocket::CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin)
796 : CXferSocket(daddy,fileName,type,sin) 796 : CXferSocket(daddy,fileName,type,sin)
797{ 797{
798 m_ACK=0; 798 m_ACK=0;
799 m_LastSlack=0; 799 m_LastSlack=0;
800} 800}
801 801
802UINT tftp::tftpERROR::tftpSize(LPCTSTR msg) 802UINT tftp::tftpERROR::tftpSize(LPCTSTR msg)
803{ 803{
804 return tftpHdrSize-tftpSlackSize+sizeof(tftp::tftpERROR::tftpErrorCode)+strlen(msg)+1; 804 return tftpHdrSize-tftpSlackSize+sizeof(tftp::tftpERROR::tftpErrorCode)+strlen(msg)+1;
805} 805}
806 806
807tftp* tftp::Allocate(UINT tftpSize) 807tftp* tftp::Allocate(UINT tftpSize)
808{ 808{
809 ASSERT(tftpSize); 809 ASSERT(tftpSize);
810tftp* rv = (tftp*) new BYTE[tftpSlackSize+tftpSize]; 810tftp* rv = (tftp*) new BYTE[tftpSlackSize+tftpSize];
811 ASSERT(rv); 811 ASSERT(rv);
812 rv->length=tftpSize; 812 rv->length=tftpSize;
813 return rv; 813 return rv;
814} 814}
815 815
816void tftp::errSet(UINT code,LPCTSTR msg) 816void tftp::errSet(UINT code,LPCTSTR msg)
817{ 817{
818 ASSERT(this); 818 ASSERT(this);
819 ASSERT(length>=data.m_ERROR.tftpSize(msg)); 819 ASSERT(length>=data.m_ERROR.tftpSize(msg));
820 strcpy((char*)data.m_ERROR.data,msg); 820 strcpy((char*)data.m_ERROR.data,msg);
821 data.m_ERROR.SetCode(code); 821 data.m_ERROR.SetCode(code);
822} 822}
823 823
824void CXferSocket::PostTFTP(tftp* p,BOOL retryable) 824void CXferSocket::PostTFTP(tftp* p,BOOL retryable)
825{ 825{
826 ASSERT(p); 826 ASSERT(p);
827 m_Queue.AddTail(p); 827 m_Queue.AddTail(p);
828 DoSelect(); 828 DoSelect();
829 if(!m_bRetry){ 829 if(!m_bRetry){
830 if(retryable) 830 if(retryable)
831 SetTry(p); 831 SetTry(p);
832 else 832 else
833 SetTry(); 833 SetTry();
834 } 834 }
835 ResetTimeout(); 835 ResetTimeout();
836} 836}
837 837
838void CXferSocket::Deny(UINT errCode,UINT errID) 838void CXferSocket::Deny(UINT errCode,UINT errID)
839{ 839{
840 PostError(errCode,errID); 840 PostError(errCode,errID);
841 state=stateDeny; 841 state=stateDeny;
842} 842}
843 843
844void CRRQSocket::DoXfer() 844void CRRQSocket::DoXfer()
845{ 845{
846tftp *p = tftp::Allocate(tftp::tftpDATA::tftpSize(m_blkSize)); 846tftp *p = tftp::Allocate(tftp::tftpDATA::tftpSize(m_blkSize));
847 ASSERT(p); 847 ASSERT(p);
848 p->SetOpcode(tftp::opDATA); 848 p->SetOpcode(tftp::opDATA);
849 TRY{ 849 TRY{
850 m_File.Seek(m_ACK*m_blkSize,CFile::begin); 850 m_File.Seek(m_ACK*m_blkSize,CFile::begin);
851 int bytes = m_File.Read(p->data.m_DATA.data,m_blkSize); 851 int bytes = m_File.Read(p->data.m_DATA.data,m_blkSize);
852 p->data.m_DATA.SetBlock(m_ACK+1); 852 p->data.m_DATA.SetBlock(m_ACK+1);
853 p->length=p->length-m_blkSize+bytes; 853 p->length=p->length-m_blkSize+bytes;
854 m_LastSlack = m_blkSize-bytes; 854 m_LastSlack = m_blkSize-bytes;
855 PostTFTP(p); 855 PostTFTP(p);
856 if(bytes<m_blkSize){ 856 if(bytes<m_blkSize){
857 state=stateFinish; 857 state=stateClosing; m_ACKtoClose = m_ACK+1;
858 ASSERT(m_Daddy);
859 CString tmp;
860 tmp.Format(IDS_LOG_XFERRRQFINISHED,(LPCTSTR)m_FileName);
861 m_Daddy->LogLine(tmp);
862 } 858 }
863 }CATCH(CFileException,e){ 859 }CATCH(CFileException,e){
864 Deny(e); 860 Deny(e);
865 }END_CATCH 861 }END_CATCH
866} 862}
867 863
868UINT tftp::tftpDATA::tftpSize(UINT blkSize) 864UINT tftp::tftpDATA::tftpSize(UINT blkSize)
869{ 865{
870 return tftpHdrSize-tftpSlackSize+sizeof(tftp::tftpDATA) 866 return tftpHdrSize-tftpSlackSize+sizeof(tftp::tftpDATA)
871 -sizeof(BYTE)+blkSize; 867 -sizeof(BYTE)+blkSize;
872} 868}
873 869
874void CXferSocket::Deny(CFileException* e) 870void CXferSocket::Deny(CFileException* e)
875{ 871{
876 PostError(e); 872 PostError(e);
877 state=stateDeny; 873 state=stateDeny;
878} 874}
879 875
880void CXferSocket::PostError(UINT errCode,UINT errID) 876void CXferSocket::PostError(UINT errCode,UINT errID)
881{ 877{
882CString msg; 878CString msg;
883 msg.LoadString(errID); 879 msg.LoadString(errID);
884 ASSERT(m_Daddy); 880 ASSERT(m_Daddy);
885 /*// *** 881 /*// ***
886CString tmp; 882CString tmp;
887 tmp.Format(IDS_LOG_SENTTFTPERROR,errCode,(LPCTSTR)msg); 883 tmp.Format(IDS_LOG_SENTTFTPERROR,errCode,(LPCTSTR)msg);
888 m_Daddy->LogLine(tmp); 884 m_Daddy->LogLine(tmp);
889 */ 885 */
890tftp* err = tftp::Allocate(tftp::tftpERROR::tftpSize(msg)); 886tftp* err = tftp::Allocate(tftp::tftpERROR::tftpSize(msg));
891err->SetOpcode(tftp::opERROR); 887err->SetOpcode(tftp::opERROR);
892 err->errSet(errCode,msg); 888 err->errSet(errCode,msg);
893 PostTFTP(err); 889 PostTFTP(err);
894} 890}
895 891
896void CXferSocket::PostError(CFileException* e) 892void CXferSocket::PostError(CFileException* e)
897{ 893{
898UINT eCode; 894UINT eCode;
899UINT eMsgID; 895UINT eMsgID;
900 switch(e->m_cause){ 896 switch(e->m_cause){
901 case CFileException::fileNotFound: 897 case CFileException::fileNotFound:
902 eCode=tftp::errNotFound; 898 eCode=tftp::errNotFound;
903 eMsgID=IDS_TFTP_ERROR_NOTFOUND; 899 eMsgID=IDS_TFTP_ERROR_NOTFOUND;
904 break; 900 break;
905 case CFileException::accessDenied: 901 case CFileException::accessDenied:
906 eCode=tftp::errAccessViolation; 902 eCode=tftp::errAccessViolation;
907 eMsgID=IDS_TFTP_ERROR_ACCESS; 903 eMsgID=IDS_TFTP_ERROR_ACCESS;
908 break; 904 break;
909 case CFileException::directoryFull: 905 case CFileException::directoryFull:
910 eCode=tftp::errDiskFull; 906 eCode=tftp::errDiskFull;
911 eMsgID=IDS_TFTP_ERROR_DIRFULL; 907 eMsgID=IDS_TFTP_ERROR_DIRFULL;
912 break; 908 break;
913 case CFileException::sharingViolation: 909 case CFileException::sharingViolation:
914 eCode=tftp::errAccessViolation; 910 eCode=tftp::errAccessViolation;
915 eMsgID=IDS_TFTP_ERROR_SHARING; 911 eMsgID=IDS_TFTP_ERROR_SHARING;
916 break; 912 break;
917 case CFileException::diskFull: 913 case CFileException::diskFull:
918 eCode=tftp::errDiskFull; 914 eCode=tftp::errDiskFull;
919 eMsgID=IDS_TFTP_ERROR_DISKFULL; 915 eMsgID=IDS_TFTP_ERROR_DISKFULL;
920 break; 916 break;
921 default: 917 default:
922 eCode=tftp::errUndefined; 918 eCode=tftp::errUndefined;
923 eMsgID=IDS_TFTP_ERROR_UNDEFINED; 919 eMsgID=IDS_TFTP_ERROR_UNDEFINED;
924 break; 920 break;
925 } 921 }
926 PostError(eCode,eMsgID); 922 PostError(eCode,eMsgID);
927} 923}
928 924
929ULONG CRRQSocket::GetACK(void) 925ULONG CRRQSocket::GetACK(void)
930{ 926{
931 return (m_ACK*m_blkSize)-m_LastSlack; 927 return (m_ACK*m_blkSize)-m_LastSlack;
932} 928}
933 929
934BOOL CRRQSocket::OnTFTP(tftp* p) 930BOOL CRRQSocket::OnTFTP(tftp* p)
935{ 931{
936BOOL rv = TRUE; 932BOOL rv = TRUE;
937 switch(p->Opcode()){ 933 switch(p->Opcode()){
938 case tftp::opOACK: 934 case tftp::opOACK:
939 m_ACK=0; 935 {
940 ASSERT(state!=stateFinish); 936 m_ACK=0;
941 { 937 ASSERT(state!=stateFinish);
942 tftp::tftpOptions o; 938 tftp::tftpOptions o;
943 if(p->GetOptions(&o)){ 939 if(p->GetOptions(&o)){
944 CString v; 940 CString v;
945 if(o.Lookup(tftpoBSize,v)){ 941 if(o.Lookup(tftpoBSize,v)){
946 m_blkSize=atoi(v); 942 m_blkSize=atoi(v);
947 if(!m_blkSize){// *** More sanity checks 943 if(!m_blkSize){// *** More sanity checks
948 Deny(tftp::errOption,IDS_TFTP_ERROR_BSIZE); 944 Deny(tftp::errOption,IDS_TFTP_ERROR_BSIZE);
949 rv = TRUE; 945 rv = TRUE;
950 break; 946 break;
947 }
951 } 948 }
952 } 949 if(o.Lookup(tftpoTOut,v)){
953 if(o.Lookup(tftpoTOut,v)){ 950 m_timeOut=atoi(v);
954 m_timeOut=atoi(v); 951 if(!m_timeOut){// *** More sanity checks
955 if(!m_timeOut){// *** More sanity checks 952 Deny(tftp::errOption,IDS_TFTP_ERROR_TOUT);
956 Deny(tftp::errOption,IDS_TFTP_ERROR_TOUT); 953 rv = TRUE;
957 rv = TRUE; 954 break;
958 break; 955 }
956 }
957 if(o.Lookup(tftpoXResume,v)){
958 m_ACK=atoi(v);
959 } 959 }
960 } 960 }
961 if(o.Lookup(tftpoXResume,v)){ 961 UpdateList();
962 m_ACK=atoi(v); 962 DoXfer();
963 }
964 } 963 }
965 UpdateList();
966 DoXfer();
967 }
968 break; 964 break;
969 case tftp::opACK: 965 case tftp::opACK:
970 m_ACK=p->data.m_ACK.Block(); 966 m_ACK=p->data.m_ACK.Block();
971 if(state!=stateFinish){ 967 if(state==stateClosing && m_ACK==m_ACKtoClose) {
968 state = stateFinish;
969 ASSERT(m_Daddy);
970 CString tmp;
971 tmp.Format(IDS_LOG_XFERRRQFINISHED,(LPCTSTR)m_FileName);
972 m_Daddy->LogLine(tmp);
973 rv = FALSE;
974 DoSelect(TRUE);
975 }else if(state!=stateFinish){
972 UpdateList(); 976 UpdateList();
973 DoXfer(); 977 DoXfer();
974 } 978 }
975 break; 979 break;
976 case tftp::opERROR: 980 case tftp::opERROR:
977 { 981 {
978 ASSERT(m_Daddy); 982 ASSERT(m_Daddy);
979 CString tmp; 983 CString tmp;
980 tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage()); 984 tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage());
981 m_Daddy->LogLine(tmp); 985 m_Daddy->LogLine(tmp);
982 } 986 }
983 Destroy(FALSE); 987 Destroy(FALSE);
984 rv = FALSE; 988 rv = FALSE;
985 break; 989 break;
986 default: 990 default:
987 { 991 {
988 ASSERT(m_Daddy); 992 ASSERT(m_Daddy);
989 CString tmp; 993 CString tmp;
990 tmp.Format(IDS_LOG_XFEROPCODE,p->Opcode()); 994 tmp.Format(IDS_LOG_XFEROPCODE,p->Opcode());
991 m_Daddy->LogLine(tmp); 995 m_Daddy->LogLine(tmp);
992 // *** Self destruct maybe?? 996 // *** Self destruct maybe??
993 } 997 }
994 break; 998 break;
995 } 999 }
996 return rv; 1000 return rv;
997} 1001}
998 1002
999BOOL CWRQSocket::OnTFTP(tftp* p) 1003BOOL CWRQSocket::OnTFTP(tftp* p)
1000{ 1004{
1001 switch(p->Opcode()){ 1005 switch(p->Opcode()){
1002 case tftp::opOACK: 1006 case tftp::opOACK:
1003 ASSERT(state!=stateFinish); 1007 ASSERT(state!=stateFinish);
1004 { 1008 {
1005 if(m_bResume) 1009 if(m_bResume)
1006 m_ACK=m_File.GetLength()/m_blkSize; 1010 m_ACK=m_File.GetLength()/m_blkSize;
1007 else 1011 else
1008 m_ACK=0; 1012 m_ACK=0;
1009 tftp::tftpOptions o; 1013 tftp::tftpOptions o;
1010 if(p->GetOptions(&o)){ 1014 if(p->GetOptions(&o)){
1011 CString v; 1015 CString v;
1012 if(o.Lookup(tftpoBSize,v)){ 1016 if(o.Lookup(tftpoBSize,v)){
1013 m_blkSize=atoi(v); 1017 m_blkSize=atoi(v);
1014 if(!m_blkSize){// *** More sanity checks 1018 if(!m_blkSize){// *** More sanity checks
1015 Deny(tftp::errOption,IDS_TFTP_ERROR_BSIZE); 1019 Deny(tftp::errOption,IDS_TFTP_ERROR_BSIZE);
1016 return TRUE; 1020 return TRUE;
1017 } 1021 }
1018 } 1022 }
1019 if(o.Lookup(tftpoTOut,v)){ 1023 if(o.Lookup(tftpoTOut,v)){
1020 m_timeOut=atoi(v); 1024 m_timeOut=atoi(v);
1021 if(!m_timeOut){// *** More sanity checks 1025 if(!m_timeOut){// *** More sanity checks
1022 Deny(tftp::errOption,IDS_TFTP_ERROR_TOUT); 1026 Deny(tftp::errOption,IDS_TFTP_ERROR_TOUT);
1023 return TRUE; 1027 return TRUE;
1024 } 1028 }
1025 } 1029 }
1026 if(o.Lookup(tftpoTSize,v)){ 1030 if(o.Lookup(tftpoTSize,v)){
1027 m_xferSize=atoi(v); 1031 m_xferSize=atoi(v);
1028 } 1032 }
1029 } 1033 }
1030 UpdateList(); 1034 UpdateList();
1031 DoXfer(); 1035 DoXfer();
1032 } 1036 }
1033 break; 1037 break;
1034 case tftp::opDATA: 1038 case tftp::opDATA:
1035 { 1039 {
1036 UINTblock = p->data.m_DATA.Block(); 1040 UINTblock = p->data.m_DATA.Block();
1037 TRY{ 1041 TRY{
1038 m_File.Seek((block-1)*m_blkSize,CFile::begin); 1042 m_File.Seek((block-1)*m_blkSize,CFile::begin);
1039 int bytes = p->length-sizeof(p->data.m_DATA.block)-(tftpHdrSize-tftpSlackSize); 1043 int bytes = p->length-sizeof(p->data.m_DATA.block)-(tftpHdrSize-tftpSlackSize);
1040 if(bytes){ 1044 if(bytes){
1041 m_File.Write(p->data.m_DATA.data,bytes); 1045 m_File.Write(p->data.m_DATA.data,bytes);
1042 // *** Move to the other place where we can do it not that often 1046 // *** Move to the other place where we can do it not that often
1043 m_File.SetLength(m_File.GetPosition()); 1047 m_File.SetLength(m_File.GetPosition());
1044 } 1048 }
1045 if(bytes<m_blkSize){ 1049 if(bytes<m_blkSize){
1046 state=stateFinish; 1050 state=stateFinish;
1047 ASSERT(m_Daddy); 1051 ASSERT(m_Daddy);
1048 CString tmp; 1052 CString tmp;
1049 tmp.Format(IDS_LOG_XFERWRQFINISHED,(LPCTSTR)m_FileName); 1053 tmp.Format(IDS_LOG_XFERWRQFINISHED,(LPCTSTR)m_FileName);
1050 m_Daddy->LogLine(tmp); 1054 m_Daddy->LogLine(tmp);
1051 } 1055 }
1052 m_ACK=block; 1056 m_ACK=block;
1053 m_LastSlack=m_blkSize-bytes; 1057 m_LastSlack=m_blkSize-bytes;
1054 UpdateList(); 1058 UpdateList();
1055 DoXfer(); 1059 DoXfer();
1056 }CATCH(CFileException,e){ 1060 }CATCH(CFileException,e){
1057 Deny(e); 1061 Deny(e);
1058 }END_CATCH 1062 }END_CATCH
1059 } 1063 }
1060 break; 1064 break;
1061 case tftp::opERROR: 1065 case tftp::opERROR:
1062 { 1066 {
1063 ASSERT(m_Daddy); 1067 ASSERT(m_Daddy);
1064 CString tmp; 1068 CString tmp;
1065 tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage()); 1069 tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage());
1066 m_Daddy->LogLine(tmp); 1070 m_Daddy->LogLine(tmp);
1067 } 1071 }
1068 Destroy(FALSE); 1072 Destroy(FALSE);
1069 return FALSE; 1073 return FALSE;
1070 default: 1074 default:
1071 { 1075 {
1072 ASSERT(m_Daddy); 1076 ASSERT(m_Daddy);
1073 CString tmp; 1077 CString tmp;
1074 tmp.Format(IDS_LOG_XFEROPCODE,p->Opcode()); 1078 tmp.Format(IDS_LOG_XFEROPCODE,p->Opcode());
1075 m_Daddy->LogLine(tmp); 1079 m_Daddy->LogLine(tmp);
1076 // *** Self destruct maybe?? 1080 // *** Self destruct maybe??
1077 } 1081 }
1078 break; 1082 break;
1079 } 1083 }
1080 return TRUE; 1084 return TRUE;
1081} 1085}
1082 1086
1083void tftp::SetOpcode(WORD op) 1087void tftp::SetOpcode(WORD op)
1084{ 1088{
1085 opcode = REVERSEBYTES(op); 1089 opcode = REVERSEBYTES(op);
1086} 1090}
1087void tftp::tftpDATA::SetBlock(WORD b) 1091void tftp::tftpDATA::SetBlock(WORD b)
1088{ 1092{
1089 block=REVERSEBYTES(b); 1093 block=REVERSEBYTES(b);
1090} 1094}
1091WORD tftp::tftpDATA::Block() 1095WORD tftp::tftpDATA::Block()
1092{ 1096{
1093 return REVERSEBYTES(block); 1097 return REVERSEBYTES(block);
1094} 1098}
1095WORD tftp::tftpACK::Block() 1099WORD tftp::tftpACK::Block()
1096{ 1100{
1097 return REVERSEBYTES(block); 1101 return REVERSEBYTES(block);
1098} 1102}
1099void tftp::tftpACK::SetBlock(WORD b) 1103void tftp::tftpACK::SetBlock(WORD b)
1100{ 1104{
1101 block = REVERSEBYTES(b); 1105 block = REVERSEBYTES(b);
1102} 1106}
1103WORD tftp::tftpERROR::Code() 1107WORD tftp::tftpERROR::Code()
1104{ 1108{
1105 return REVERSEBYTES(code); 1109 return REVERSEBYTES(code);
1106} 1110}
1107void tftp::tftpERROR::SetCode(WORD c) 1111void tftp::tftpERROR::SetCode(WORD c)
1108{ 1112{
1109 code = REVERSEBYTES(c); 1113 code = REVERSEBYTES(c);
1110} 1114}
1111 1115
1112 1116
1113CString tftp::errMessage() 1117CString tftp::errMessage()
1114{ 1118{
1115CString rv; 1119CString rv;
1116 if(memchr(data.m_ERROR.data,0,length-(tftpHdrSize-tftpSlackSize)-sizeof(data.m_ERROR.code))) 1120 if(memchr(data.m_ERROR.data,0,length-(tftpHdrSize-tftpSlackSize)-sizeof(data.m_ERROR.code)))
1117 rv = (LPCTSTR)data.m_ERROR.data; 1121 rv = (LPCTSTR)data.m_ERROR.data;
1118 return rv; 1122 return rv;
1119} 1123}
1120 1124
1121void CXferSocket::Destroy(BOOL success) 1125void CXferSocket::Destroy(BOOL success)
1122{ 1126{
1123 if(m_wndResolver){ 1127 if(m_wndResolver){
1124 delete m_wndResolver; 1128 delete m_wndResolver;
1125 m_wndResolver=NULL; 1129 m_wndResolver=NULL;
1126 } 1130 }
1127 SetTry(); 1131 SetTry();
1128 m_Daddy->m_bnw.StartSound( 1132 m_Daddy->m_bnw.StartSound(
1129 success 1133 success
1130 ? m_Daddy->m_bnwSuccess 1134 ? m_Daddy->m_bnwSuccess
1131 : m_Daddy->m_bnwAbort 1135 : m_Daddy->m_bnwAbort
1132 ); 1136 );
1133 if(m_File.m_hFile!=CFile::hFileNull){ 1137 if(m_File.m_hFile!=CFile::hFileNull){
1134 TRY{ 1138 TRY{
1135 m_File.Close(); 1139 m_File.Close();
1136 }CATCH(CFileException,e){ 1140 }CATCH(CFileException,e){
1137 TRACE0("Error closing file\n"); 1141 TRACE0("Error closing file\n");
1138 }END_CATCH 1142 }END_CATCH
1139 } 1143 }
1140 ASSERT(m_Daddy); 1144 ASSERT(m_Daddy);
1141 m_Daddy->KillTimer(m_hSocket); 1145 m_Daddy->KillTimer(m_hSocket);
1142 m_Daddy->m_Xfers.RemoveKey(m_hSocket); 1146 m_Daddy->m_Xfers.RemoveKey(m_hSocket);
1143LV_FINDINFO lvf; 1147LV_FINDINFO lvf;
1144 memset(&lvf,0,sizeof(lvf)); 1148 memset(&lvf,0,sizeof(lvf));
1145 lvf.flags=LVFI_PARAM; 1149 lvf.flags=LVFI_PARAM;
1146 lvf.lParam=(LPARAM)this; 1150 lvf.lParam=(LPARAM)this;
1147int i = m_Daddy->m_List.FindItem(&lvf); 1151int i = m_Daddy->m_List.FindItem(&lvf);
1148 if(i>=0) 1152 if(i>=0)
1149 m_Daddy->m_List.DeleteItem(i); 1153 m_Daddy->m_List.DeleteItem(i);
1150 delete this; 1154 delete this;
1151} 1155}
1152 1156
1153void CPumpKINDlg::LogLineToScreen(LPCTSTR str) 1157void CPumpKINDlg::LogLineToScreen(LPCTSTR str)
1154{ 1158{
1155 ASSERT(m_LogLength); 1159 ASSERT(m_LogLength);
1156 while(m_Log.GetCount()>m_LogLength && m_Log.GetCount()!=LB_ERR){ 1160 while(m_Log.GetCount()>m_LogLength && m_Log.GetCount()!=LB_ERR){
1157 CTime *t = (CTime*)m_Log.GetItemData(0); 1161 CTime *t = (CTime*)m_Log.GetItemData(0);
1158 if(((DWORD)t)!=LB_ERR){ 1162 if(((DWORD)t)!=LB_ERR){
1159 ASSERT(t); 1163 ASSERT(t);
1160 m_LogTimes.RemoveKey(t); 1164 m_LogTimes.RemoveKey(t);
1161 delete t; 1165 delete t;
1162 } 1166 }
1163 m_Log.DeleteString(0); 1167 m_Log.DeleteString(0);
1164 } 1168 }
1165int i = m_Log.AddString(str); 1169int i = m_Log.AddString(str);
1166 ASSERT(i!=LB_ERR); 1170 ASSERT(i!=LB_ERR);
1167CTime *t = new CTime(CTime::GetCurrentTime()); 1171CTime *t = new CTime(CTime::GetCurrentTime());
1168 m_Log.SetItemData(i,(DWORD)(m_LogTimes[t]=t)); 1172 m_Log.SetItemData(i,(DWORD)(m_LogTimes[t]=t));
1169 m_Log.SetCurSel(i); 1173 m_Log.SetCurSel(i);
1170} 1174}
1171 1175
1172void CPumpKINDlg::LogLine(UINT msgID) 1176void CPumpKINDlg::LogLine(UINT msgID)
1173{ 1177{
1174CString tmp; 1178CString tmp;
1175 tmp.Format(msgID); 1179 tmp.Format(msgID);
1176 LogLine(tmp); 1180 LogLine(tmp);
1177} 1181}
1178 1182
1179void CXferSocket::TurnSlashes(CString& fn,BOOL bBack) 1183void CXferSocket::TurnSlashes(CString& fn,BOOL bBack)
1180{ 1184{
1181 ints = fn.Find(bBack?'/':'\\'); 1185 ints = fn.Find(bBack?'/':'\\');
1182 while(s>=0){ 1186 while(s>=0){
1183 fn.SetAt(s,bBack?'\\':'/'); 1187 fn.SetAt(s,bBack?'\\':'/');
1184 s = fn.Find(bBack?'/':'\\'); 1188 s = fn.Find(bBack?'/':'\\');
1185 } 1189 }
1186} 1190}
1187 1191
1188CString CXferSocket::ApplyRoot(LPCTSTR fileName) 1192CString CXferSocket::ApplyRoot(LPCTSTR fileName)
1189{ 1193{
1190 ASSERT(m_Daddy); 1194 ASSERT(m_Daddy);
1191CString fn = fileName; 1195CString fn = fileName;
1192CString rv = m_Daddy->m_TFTPRoot; 1196CString rv = m_Daddy->m_TFTPRoot;
1193 if(rv.IsEmpty()) 1197 if(rv.IsEmpty())
1194 rv = "."; 1198 rv = ".";
1195 if(rv[rv.GetLength()-1]!='\\') 1199 if(rv[rv.GetLength()-1]!='\\')
1196 rv+="\\"; 1200 rv+="\\";
1197 while((!fn.IsEmpty()) && fn[0]=='\\') 1201 while((!fn.IsEmpty()) && fn[0]=='\\')
1198 fn=fn.Mid(1); 1202 fn=fn.Mid(1);
1199 rv+=fn; 1203 rv+=fn;
1200 return rv; 1204 return rv;
1201} 1205}
1202 1206
1203void CPumpKINDlg::OnOptions() 1207void CPumpKINDlg::OnOptions()
1204{ 1208{
1205CPropertySheet cps(IDS_TITLE_OPTIONS,this); 1209CPropertySheet cps(IDS_TITLE_OPTIONS,this);
1206CPropsServer server; 1210CPropsServer server;
1207CPropsNetwork network; 1211CPropsNetwork network;
1208CPropsSounds sounds; 1212CPropsSounds sounds;
1209CPropsACL acl; 1213CPropsACL acl;
1210 1214
1211 server.m_RRQMode=m_RRQMode; 1215 server.m_RRQMode=m_RRQMode;
1212 server.m_TFTPRoot=m_TFTPRoot; 1216 server.m_TFTPRoot=m_TFTPRoot;
1213 server.m_TFTPSubdirs=m_bTFTPSubdirs; 1217 server.m_TFTPSubdirs=m_bTFTPSubdirs;
1214 server.m_WRQMode=m_WRQMode; 1218 server.m_WRQMode=m_WRQMode;
1215 server.m_PromptTimeOut=m_PromptTimeOut; 1219 server.m_PromptTimeOut=m_PromptTimeOut;
1216 server.m_LogFile=m_LogFile; 1220 server.m_LogFile=m_LogFile;
1217 1221
1218 network.m_ListenPort=m_ListenPort; 1222 network.m_ListenPort=m_ListenPort;
1219 network.m_SpeakPort=m_SpeakPort; 1223 network.m_SpeakPort=m_SpeakPort;
1220 network.m_TimeOut=m_TFTPTimeOut.GetTotalSeconds(); 1224 network.m_TimeOut=m_TFTPTimeOut.GetTotalSeconds();
1221 network.m_BlockSize=m_BlockSize; 1225 network.m_BlockSize=m_BlockSize;
1222 1226
1223 sounds.m_Request = m_bnwRequest; 1227 sounds.m_Request = m_bnwRequest;
1224 sounds.m_Success = m_bnwSuccess; 1228 sounds.m_Success = m_bnwSuccess;
1225 sounds.m_Abort = m_bnwAbort; 1229 sounds.m_Abort = m_bnwAbort;
1226 1230
1227 acl.m_rulist = m_aclRules; 1231 acl.m_rulist = m_aclRules;
diff --git a/PumpKINDlg.h b/PumpKINDlg.h
index c5469f1..23c2657 100644
--- a/PumpKINDlg.h
+++ b/PumpKINDlg.h
@@ -59,442 +59,443 @@ public:
59 BYTE data[1]; 59 BYTE data[1];
60 public: 60 public:
61 WORD Block(); 61 WORD Block();
62 void SetBlock(WORD b); 62 void SetBlock(WORD b);
63 static UINT tftpSize(UINT blkSize=512); 63 static UINT tftpSize(UINT blkSize=512);
64 }; 64 };
65 struct tftpACK { 65 struct tftpACK {
66 WORD block; 66 WORD block;
67 public: 67 public:
68 static UINT tftpSize(); 68 static UINT tftpSize();
69 void SetBlock(WORD b); 69 void SetBlock(WORD b);
70 WORD Block(); 70 WORD Block();
71 }; 71 };
72 structtftpERROR { 72 structtftpERROR {
73 typedef WORD tftpErrorCode; 73 typedef WORD tftpErrorCode;
74 tftpErrorCode code; 74 tftpErrorCode code;
75 BYTE data[1]; 75 BYTE data[1];
76 public: 76 public:
77 void SetCode(WORD c); 77 void SetCode(WORD c);
78 WORD Code(); 78 WORD Code();
79 static UINT tftpSize(LPCTSTR msg); 79 static UINT tftpSize(LPCTSTR msg);
80 }; 80 };
81 struct tftpOACK { 81 struct tftpOACK {
82 BYTE data[1]; 82 BYTE data[1];
83 public: 83 public:
84 void Set(tftpOptions* ops); 84 void Set(tftpOptions* ops);
85 static UINT tftpSize(tftpOptions* ops); 85 static UINT tftpSize(tftpOptions* ops);
86 }; 86 };
87 uniontftpPacket { 87 uniontftpPacket {
88 tftpUNKNOWN m_UNKNOWN; 88 tftpUNKNOWN m_UNKNOWN;
89 tftpRQ m_RQ; 89 tftpRQ m_RQ;
90 tftpRRQ m_RRQ; 90 tftpRRQ m_RRQ;
91 tftpWRQ m_WRQ; 91 tftpWRQ m_WRQ;
92 tftpDATA m_DATA; 92 tftpDATA m_DATA;
93 tftpACK m_ACK; 93 tftpACK m_ACK;
94 tftpERROR m_ERROR; 94 tftpERROR m_ERROR;
95 tftpOACK m_OACK; 95 tftpOACK m_OACK;
96 }data; 96 }data;
97 97
98 void *udpBase(void){ return &opcode; } 98 void *udpBase(void){ return &opcode; }
99public: 99public:
100 static tftp* Copy(tftp *src); 100 static tftp* Copy(tftp *src);
101 CString errMessage(); 101 CString errMessage();
102 void SetOpcode(WORD op); 102 void SetOpcode(WORD op);
103 void errSet(UINT code,LPCTSTR msg); 103 void errSet(UINT code,LPCTSTR msg);
104 static tftp* Allocate(UINT tftpSize=0); 104 static tftp* Allocate(UINT tftpSize=0);
105 BOOL Send(CAsyncSocket *socket,SOCKADDR_IN* saddr); 105 BOOL Send(CAsyncSocket *socket,SOCKADDR_IN* saddr);
106 CString rqType(); 106 CString rqType();
107 CString rqFileName(); 107 CString rqFileName();
108 UINT GetOptions(tftpOptions* ops); 108 UINT GetOptions(tftpOptions* ops);
109 tftp(); 109 tftp();
110 UINT Opcode(); 110 UINT Opcode();
111 BOOL Receive(CAsyncSocket* socket,UINT maxLength,SOCKADDR_IN *sin=NULL); 111 BOOL Receive(CAsyncSocket* socket,UINT maxLength,SOCKADDR_IN *sin=NULL);
112}; 112};
113 #define tftpHdrSize(sizeof(tftp)-sizeof(tftp::tftpPacket)) 113 #define tftpHdrSize(sizeof(tftp)-sizeof(tftp::tftpPacket))
114 #definetftpSlackSize sizeof(tftp::tftpLength) 114 #definetftpSlackSize sizeof(tftp::tftpLength)
115 115
116struct acl_rule { 116struct acl_rule {
117 enum { 117 enum {
118 opRRQ=tftp::opRRQ, opWRQ=tftp::opWRQ 118 opRRQ=tftp::opRRQ, opWRQ=tftp::opWRQ
119 }; 119 };
120 int op; 120 int op;
121 DWORD addr, mask; 121 DWORD addr, mask;
122 enum { 122 enum {
123 rrqGrant=0, rrqPrompt, rrqDeny, 123 rrqGrant=0, rrqPrompt, rrqDeny,
124 rrqRules, 124 rrqRules,
125 rrqNone=-1 125 rrqNone=-1
126 }; 126 };
127 enum { 127 enum {
128 wrqGrant=0, wrqPromptIfExists, wrqPrompt, wrqDeny, 128 wrqGrant=0, wrqPromptIfExists, wrqPrompt, wrqDeny,
129 wrqRules, 129 wrqRules,
130 wrqNone=-1 130 wrqNone=-1
131 }; 131 };
132 int target; 132 int target;
133 133
134 acl_rule() 134 acl_rule()
135 : op(-1), addr(0), mask(0), target(-1) { } 135 : op(-1), addr(0), mask(0), target(-1) { }
136 acl_rule(int o,DWORD a,DWORD m,int t) 136 acl_rule(int o,DWORD a,DWORD m,int t)
137 : op(o), addr(a), mask(m), target(t) { } 137 : op(o), addr(a), mask(m), target(t) { }
138 acl_rule(const acl_rule& s) 138 acl_rule(const acl_rule& s)
139 : op(s.op), addr(s.addr), mask(s.mask), target(s.target) { } 139 : op(s.op), addr(s.addr), mask(s.mask), target(s.target) { }
140 140
141 BOOL IsValid() { 141 BOOL IsValid() {
142 if(op==opRRQ) { 142 if(op==opRRQ) {
143 if(target<rrqNone || target>=rrqRules) 143 if(target<rrqNone || target>=rrqRules)
144 return FALSE; 144 return FALSE;
145 }else if(op==opWRQ) { 145 }else if(op==opWRQ) {
146 if(target<wrqNone || target>=wrqRules) 146 if(target<wrqNone || target>=wrqRules)
147 return FALSE; 147 return FALSE;
148 }else 148 }else
149 return FALSE; 149 return FALSE;
150 return TRUE; 150 return TRUE;
151 } 151 }
152 152
153 BOOL IsMatch(int o,DWORD a) { 153 BOOL IsMatch(int o,DWORD a) {
154 if(o!=op) return FALSE; 154 if(o!=op) return FALSE;
155 if( (a&mask) != (addr&mask)) return FALSE; 155 if( (a&mask) != (addr&mask)) return FALSE;
156 return TRUE; 156 return TRUE;
157 } 157 }
158 158
159 CString str_addr() { 159 CString str_addr() {
160 return inet_ntoa(*(struct in_addr*)&addr); 160 return inet_ntoa(*(struct in_addr*)&addr);
161 } 161 }
162 CString str_mask() { 162 CString str_mask() {
163 return inet_ntoa(*(struct in_addr*)&mask); 163 return inet_ntoa(*(struct in_addr*)&mask);
164 } 164 }
165 CString str_target() { 165 CString str_target() {
166 if(op==opRRQ) { 166 if(op==opRRQ) {
167 switch(target) { 167 switch(target) {
168 case rrqNone: return "fallback"; 168 case rrqNone: return "fallback";
169 case rrqGrant: return "grant"; 169 case rrqGrant: return "grant";
170 case rrqPrompt: return "prompt"; 170 case rrqPrompt: return "prompt";
171 case rrqDeny: return "deny"; 171 case rrqDeny: return "deny";
172 default: return "?"; 172 default: return "?";
173 } 173 }
174 }else if(op==opWRQ) { 174 }else if(op==opWRQ) {
175 switch(target) { 175 switch(target) {
176 case wrqNone: return "fallback"; 176 case wrqNone: return "fallback";
177 case wrqGrant: return "grant"; 177 case wrqGrant: return "grant";
178 case wrqPromptIfExists: return "prompt if exists"; 178 case wrqPromptIfExists: return "prompt if exists";
179 case wrqPrompt: return "prompt"; 179 case wrqPrompt: return "prompt";
180 case wrqDeny: return "deny"; 180 case wrqDeny: return "deny";
181 default: return "?"; 181 default: return "?";
182 } 182 }
183 }else 183 }else
184 return "?"; 184 return "?";
185 } 185 }
186 186
187 void SaveProfile(CWinApp* app,int i) { 187 void SaveProfile(CWinApp* app,int i) {
188 CString n; n.Format("%d",i); 188 CString n; n.Format("%d",i);
189 app->WriteProfileInt("ACL","op_"+n,op); 189 app->WriteProfileInt("ACL","op_"+n,op);
190 app->WriteProfileString("ACL","addr_"+n,str_addr()); 190 app->WriteProfileString("ACL","addr_"+n,str_addr());
191 app->WriteProfileString("ACL","mask_"+n,str_mask()); 191 app->WriteProfileString("ACL","mask_"+n,str_mask());
192 app->WriteProfileInt("ACL","target_"+n,target); 192 app->WriteProfileInt("ACL","target_"+n,target);
193 } 193 }
194 194
195 void LoadProfile(CWinApp* app,int i) { 195 void LoadProfile(CWinApp* app,int i) {
196 CString n; n.Format("%d",i); 196 CString n; n.Format("%d",i);
197 op=app->GetProfileInt("ACL","op_"+n,-1); 197 op=app->GetProfileInt("ACL","op_"+n,-1);
198 addr=inet_addr(app->GetProfileString("ACL","addr_"+n)); 198 addr=inet_addr(app->GetProfileString("ACL","addr_"+n));
199 mask=inet_addr(app->GetProfileString("ACL","mask_"+n)); 199 mask=inet_addr(app->GetProfileString("ACL","mask_"+n));
200 target=app->GetProfileInt("ACL","target_"+n,-1); 200 target=app->GetProfileInt("ACL","target_"+n,-1);
201 } 201 }
202 202
203}; 203};
204 204
205class acl_rules_t : public CArray<acl_rule,acl_rule&> { 205class acl_rules_t : public CArray<acl_rule,acl_rule&> {
206public: 206public:
207 207
208 acl_rules_t& operator=(const acl_rules_t& s) { 208 acl_rules_t& operator=(const acl_rules_t& s) {
209 // Copy(s); XXX: unsuprisingly, there's a bug in MFC Copy, *pDst++=*pSrc (no ++ for Src) 209 // Copy(s); XXX: unsuprisingly, there's a bug in MFC Copy, *pDst++=*pSrc (no ++ for Src)
210 RemoveAll(); 210 RemoveAll();
211 int ns = s.GetSize(); 211 int ns = s.GetSize();
212 SetSize(ns); 212 SetSize(ns);
213 for(int i=0;i<ns;++i) 213 for(int i=0;i<ns;++i)
214 m_pData[i]=s.m_pData[i]; 214 m_pData[i]=s.m_pData[i];
215 return *this; 215 return *this;
216 } 216 }
217 217
218 int AppendRule(acl_rule& r) { 218 int AppendRule(acl_rule& r) {
219 return Add(r); 219 return Add(r);
220 } 220 }
221 221
222 void DeleteRule(int r) { 222 void DeleteRule(int r) {
223 RemoveAt(r); 223 RemoveAt(r);
224 } 224 }
225 225
226 int FindRule(int op,DWORD ip) { 226 int FindRule(int op,DWORD ip) {
227 for(int i=0;i<GetSize();++i) 227 for(int i=0;i<GetSize();++i)
228 if(m_pData[i].IsMatch(op,ip)) 228 if(m_pData[i].IsMatch(op,ip))
229 return i; 229 return i;
230 return -1; 230 return -1;
231 } 231 }
232 232
233 int FindTarget(int op,DWORD ip) { 233 int FindTarget(int op,DWORD ip) {
234 int r=FindRule(op,ip); 234 int r=FindRule(op,ip);
235 if(r<0) return -1; 235 if(r<0) return -1;
236 return m_pData[r].target; 236 return m_pData[r].target;
237 } 237 }
238 238
239 void SaveProfile(CWinApp* app) { 239 void SaveProfile(CWinApp* app) {
240 int s=GetSize(); 240 int s=GetSize();
241 for(int i=0;i<s;++i) 241 for(int i=0;i<s;++i)
242 m_pData[i].SaveProfile(app,i); 242 m_pData[i].SaveProfile(app,i);
243 app->WriteProfileInt("ACL","rules",s); 243 app->WriteProfileInt("ACL","rules",s);
244 } 244 }
245 void LoadProfile(CWinApp* app) { 245 void LoadProfile(CWinApp* app) {
246 RemoveAll(); 246 RemoveAll();
247 int s=app->GetProfileInt("ACL","rules",0); 247 int s=app->GetProfileInt("ACL","rules",0);
248 for(int i=0;i<s;++i) { 248 for(int i=0;i<s;++i) {
249 acl_rule r; 249 acl_rule r;
250 r.LoadProfile(app,i); 250 r.LoadProfile(app,i);
251 if(r.IsValid()) 251 if(r.IsValid())
252 Add(r); 252 Add(r);
253 } 253 }
254 } 254 }
255}; 255};
256 256
257class CPumpKINDlg; 257class CPumpKINDlg;
258 class CListenSocket : public CAsyncSocket{ 258 class CListenSocket : public CAsyncSocket{
259public: 259public:
260 CPumpKINDlg* m_Daddy; 260 CPumpKINDlg* m_Daddy;
261 BOOL m_bListen; 261 BOOL m_bListen;
262 262
263 CListenSocket() 263 CListenSocket()
264 : m_bListen(FALSE), m_Daddy(0) { } 264 : m_bListen(FALSE), m_Daddy(0) { }
265 265
266 BOOL SetListen(BOOL b); 266 BOOL SetListen(BOOL b);
267 virtual void OnReceive(int nErrorCode); 267 virtual void OnReceive(int nErrorCode);
268}; 268};
269 269
270 typedef CList<tftp*,tftp*>CTFTPList; 270 typedef CList<tftp*,tftp*>CTFTPList;
271class CResolver; 271class CResolver;
272 class CXferSocket : public CAsyncSocket{ 272 class CXferSocket : public CAsyncSocket{
273public: 273public:
274 UINT m__timeOut; 274 UINT m__timeOut;
275 UINT m__blkSize; 275 UINT m__blkSize;
276 tftp::tftpOptions m_Options; 276 tftp::tftpOptions m_Options;
277 LONG m_xferSize; 277 LONG m_xferSize;
278 UINT m_timeOut; 278 UINT m_timeOut;
279 UINT m_blkSize; 279 UINT m_blkSize;
280 BOOL m_bRetry; 280 BOOL m_bRetry;
281 void SetTry(tftp *p=NULL); 281 void SetTry(tftp *p=NULL);
282 tftp* m_Retry; 282 tftp* m_Retry;
283 void OnRetry(); 283 void OnRetry();
284 BOOL CheckBadRelativeness(LPCTSTR file); 284 BOOL CheckBadRelativeness(LPCTSTR file);
285 CString ApplyRootGently(LPCTSTR fn); 285 CString ApplyRootGently(LPCTSTR fn);
286 CString m_HostName; 286 CString m_HostName;
287 virtual void OnResolved(); 287 virtual void OnResolved();
288 virtual void OnFailedToResolve(); 288 virtual void OnFailedToResolve();
289 CResolver *m_wndResolver; 289 CResolver *m_wndResolver;
290 BYTE m_ResolveBuff[MAXGETHOSTSTRUCT]; 290 BYTE m_ResolveBuff[MAXGETHOSTSTRUCT];
291 virtual void Abort(); 291 virtual void Abort();
292 void ResetTimeout(); 292 void ResetTimeout();
293 enum{ 293 enum{
294 stateNone, stateDeny, stateInit, stateOACK, stateXfer, stateFinish, stateClosing 294 stateNone, stateDeny, stateInit, stateOACK, stateXfer, stateFinish, stateClosing
295 }; 295 };
296 int state; 296 int state;
297 void Deny(UINT errCode,UINT errID); 297 void Deny(UINT errCode,UINT errID);
298 void Deny(CFileException* e); 298 void Deny(CFileException* e);
299 CString ApplyRoot(LPCTSTR fileName); 299 CString ApplyRoot(LPCTSTR fileName);
300 void TurnSlashes(CString& fn,BOOL bBack=TRUE); 300 void TurnSlashes(CString& fn,BOOL bBack=TRUE);
301 virtual void Destroy(BOOL success=TRUE); 301 virtual void Destroy(BOOL success=TRUE);
302 void PostError(CFileException* e); 302 void PostError(CFileException* e);
303 void PostError(UINT errCode,UINT errID); 303 void PostError(UINT errCode,UINT errID);
304 void PostTFTP(tftp* p,BOOL retryable=FALSE); 304 void PostTFTP(tftp* p,BOOL retryable=FALSE);
305 CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin); 305 CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin);
306 CFile m_File; 306 CFile m_File;
307 virtual ULONG GetACK(); 307 virtual ULONG GetACK();
308 CString m_Type; 308 CString m_Type;
309 CString m_FileName; 309 CString m_FileName;
310 CXferSocket(); 310 CXferSocket();
311 void UpdateList(); 311 void UpdateList();
312 void SetPeer(SOCKADDR_IN *sin); 312 void SetPeer(SOCKADDR_IN *sin);
313 virtual BOOL OnTFTP(tftp* p) = 0; 313 virtual BOOL OnTFTP(tftp* p) = 0;
314 virtual void OnReceive(int nErrorCode); 314 virtual void OnReceive(int nErrorCode);
315 void DoSelect(); 315 void DoSelect(BOOL do_select=FALSE);
316 SOCKADDR_IN m_Peer; 316 SOCKADDR_IN m_Peer;
317 virtual void OnSend(int nErrorCode); 317 virtual void OnSend(int nErrorCode);
318 CPumpKINDlg* m_Daddy; 318 CPumpKINDlg* m_Daddy;
319 CTFTPList m_Queue; 319 CTFTPList m_Queue;
320 320
321 DECLARE_DYNAMIC(CXferSocket) 321 DECLARE_DYNAMIC(CXferSocket)
322}; 322};
323class CWRQSocket : public CXferSocket { 323class CWRQSocket : public CXferSocket {
324public: 324public:
325 BOOL m_bResume; 325 BOOL m_bResume;
326 void OnHostKnown(); 326 void OnHostKnown();
327 virtual void OnResolved(); 327 virtual void OnResolved();
328 UINT m_LastSlack; 328 UINT m_LastSlack;
329 ULONG GetACK(); 329 ULONG GetACK();
330 void DoXfer(); 330 void DoXfer();
331 UINT m_ACK; 331 UINT m_ACK;
332 BOOL SaveAs(CString& fn); 332 BOOL SaveAs(CString& fn);
333 BOOL RenameFile(CString& fn); 333 BOOL RenameFile(CString& fn);
334 BOOL m_Rename; 334 BOOL m_Rename;
335 BOOL ConfirmRequest(); 335 BOOL ConfirmRequest();
336 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL); 336 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL);
337 CWRQSocket(CPumpKINDlg* daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin); 337 CWRQSocket(CPumpKINDlg* daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin);
338 BOOL OnTFTP(tftp* p); 338 BOOL OnTFTP(tftp* p);
339 339
340 DECLARE_DYNAMIC(CWRQSocket) 340 DECLARE_DYNAMIC(CWRQSocket)
341}; 341};
342class CRRQSocket : public CXferSocket { 342class CRRQSocket : public CXferSocket {
343public: 343public:
344 UINT m_ACKtoClose;
344 void OnHostKnown(); 345 void OnHostKnown();
345 virtual void OnResolved(); 346 virtual void OnResolved();
346 BOOL ConfirmRequest(); 347 BOOL ConfirmRequest();
347 WORD m_LastSlack; 348 WORD m_LastSlack;
348 UINT m_ACK; 349 UINT m_ACK;
349 BOOL OnTFTP(tftp* p); 350 BOOL OnTFTP(tftp* p);
350 ULONG GetACK(void); 351 ULONG GetACK(void);
351 void DoXfer(); 352 void DoXfer();
352 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin); 353 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin);
353 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL); 354 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL);
354 355
355 DECLARE_DYNAMIC(CRRQSocket) 356 DECLARE_DYNAMIC(CRRQSocket)
356}; 357};
357 358
358 typedef CMap<SOCKET,SOCKET,CXferSocket*,CXferSocket*>CTIDMap; 359 typedef CMap<SOCKET,SOCKET,CXferSocket*,CXferSocket*>CTIDMap;
359typedef CMap<CTime*,CTime*,CTime*,CTime*> CTimeMap; 360typedef CMap<CTime*,CTime*,CTime*,CTime*> CTimeMap;
360 361
361///////////////////////////////////////////////////////////////////////////// 362/////////////////////////////////////////////////////////////////////////////
362// CPumpKINDlg dialog 363// CPumpKINDlg dialog
363 364
364class CTrayer; 365class CTrayer;
365class CRetrier; 366class CRetrier;
366class CPumpKINDlg : public CDialog 367class CPumpKINDlg : public CDialog
367{ 368{
368// Construction 369// Construction
369public: 370public:
370 void AdjustButton(CWnd& w,CRect& wrc); 371 void AdjustButton(CWnd& w,CRect& wrc);
371 void RecalcLayout(int,int); 372 void RecalcLayout(int,int);
372 CSize m_MinSize; 373 CSize m_MinSize;
373 UINT m_bottomGapLog; 374 UINT m_bottomGapLog;
374 UINT m_bottomGapListen; 375 UINT m_bottomGapListen;
375 UINT m_rightGapList; 376 UINT m_rightGapList;
376 UINT m_rightGapButtons; 377 UINT m_rightGapButtons;
377 CString m_lastlogerr; 378 CString m_lastlogerr;
378 void LogLine(LPCTSTR str); 379 void LogLine(LPCTSTR str);
379 CString m_LogFile; 380 CString m_LogFile;
380 BOOL m_bListen; 381 BOOL m_bListen;
381 acl_rules_t m_aclRules; 382 acl_rules_t m_aclRules;
382 CString m_bnwRequest; 383 CString m_bnwRequest;
383 CString m_bnwSuccess; 384 CString m_bnwSuccess;
384 CString m_bnwAbort; 385 CString m_bnwAbort;
385 CBellsNWhistles m_bnw; 386 CBellsNWhistles m_bnw;
386 CTrayer *m_Trayer; 387 CTrayer *m_Trayer;
387 CTimeSpan m_RetryTimeOut; 388 CTimeSpan m_RetryTimeOut;
388 virtual ~CPumpKINDlg(); 389 virtual ~CPumpKINDlg();
389 CRetrier* m_Retrier; 390 CRetrier* m_Retrier;
390 virtual BOOL PreTranslateMessage(MSG* pMsg); 391 virtual BOOL PreTranslateMessage(MSG* pMsg);
391 BOOL m_bShown; 392 BOOL m_bShown;
392 BOOL m_bExiting; 393 BOOL m_bExiting;
393 void SaveSettings(); 394 void SaveSettings();
394 void LoadSettings(); 395 void LoadSettings();
395 void SetupButtons(); 396 void SetupButtons();
396 BITMAP m_bitmapBack; 397 BITMAP m_bitmapBack;
397 CBitmap m_bmpBack; 398 CBitmap m_bmpBack;
398 UINT m_PromptTimeOut; 399 UINT m_PromptTimeOut;
399 UINT m_SpeakPort; 400 UINT m_SpeakPort;
400 void LogLine(UINT msgID); 401 void LogLine(UINT msgID);
401 CTimeMap m_LogTimes; 402 CTimeMap m_LogTimes;
402 void LogLineToFile(LPCTSTR str); 403 void LogLineToFile(LPCTSTR str);
403 void LogLineToScreen(LPCTSTR str); 404 void LogLineToScreen(LPCTSTR str);
404 int m_LogLength; 405 int m_LogLength;
405 enum{ 406 enum{
406 subitemFile=0, subitemType, subitemPeer, subitemBytes, subitemTSize 407 subitemFile=0, subitemType, subitemPeer, subitemBytes, subitemTSize
407 }; 408 };
408 int m_iWRQ; 409 int m_iWRQ;
409 int m_iRRQ; 410 int m_iRRQ;
410 CImageList m_Images; 411 CImageList m_Images;
411 CTIDMap m_Xfers; 412 CTIDMap m_Xfers;
412 CTimeSpan m_TFTPTimeOut; 413 CTimeSpan m_TFTPTimeOut;
413 enum{ 414 enum{
414 rrqGiveAll=acl_rule::rrqGrant, 415 rrqGiveAll=acl_rule::rrqGrant,
415 rrqAlwaysConfirm=acl_rule::rrqPrompt, 416 rrqAlwaysConfirm=acl_rule::rrqPrompt,
416 rrqDenyAll=acl_rule::rrqDeny, 417 rrqDenyAll=acl_rule::rrqDeny,
417 rrqFallback=acl_rule::rrqNone, 418 rrqFallback=acl_rule::rrqNone,
418 rrqGrant=rrqGiveAll, rrqDeny=rrqDenyAll, rrqPrompt=rrqAlwaysConfirm 419 rrqGrant=rrqGiveAll, rrqDeny=rrqDenyAll, rrqPrompt=rrqAlwaysConfirm
419 }; 420 };
420 enum{ 421 enum{
421 wrqTakeAll=acl_rule::wrqGrant, 422 wrqTakeAll=acl_rule::wrqGrant,
422 wrqConfirmIfExists=acl_rule::wrqPromptIfExists, 423 wrqConfirmIfExists=acl_rule::wrqPromptIfExists,
423 wrqAlwaysConfirm=acl_rule::wrqPrompt, 424 wrqAlwaysConfirm=acl_rule::wrqPrompt,
424 wrqDenyAll=acl_rule::wrqDeny, 425 wrqDenyAll=acl_rule::wrqDeny,
425 wrqFallback=acl_rule::wrqNone, 426 wrqFallback=acl_rule::wrqNone,
426 wrqGrant=wrqTakeAll,wrqDeny=wrqDenyAll, wrqPrompt=wrqAlwaysConfirm 427 wrqGrant=wrqTakeAll,wrqDeny=wrqDenyAll, wrqPrompt=wrqAlwaysConfirm
427 }; 428 };
428 UINT m_RRQMode; 429 UINT m_RRQMode;
429 UINT m_WRQMode; 430 UINT m_WRQMode;
430 BOOL m_bTFTPSubdirs; 431 BOOL m_bTFTPSubdirs;
431 CString m_TFTPRoot; 432 CString m_TFTPRoot;
432 UINT m_ListenPort; 433 UINT m_ListenPort;
433 UINT m_BlockSize; 434 UINT m_BlockSize;
434 CListenSocket m_Listener; 435 CListenSocket m_Listener;
435 CPumpKINDlg(CWnd* pParent = NULL);// standard constructor 436 CPumpKINDlg(CWnd* pParent = NULL);// standard constructor
436 437
437// Dialog Data 438// Dialog Data
438 //{{AFX_DATA(CPumpKINDlg) 439 //{{AFX_DATA(CPumpKINDlg)
439 enum { IDD = IDD_PUMPKIN_DIALOG }; 440 enum { IDD = IDD_PUMPKIN_DIALOG };
440 CButtonm_HelpCtl; 441 CButtonm_HelpCtl;
441 CButtonm_PutCtl; 442 CButtonm_PutCtl;
442 CButtonm_GetCtl; 443 CButtonm_GetCtl;
443 CButtonm_ExitCtl; 444 CButtonm_ExitCtl;
444 CButtonm_ListenCtl; 445 CButtonm_ListenCtl;
445 CButtonm_AbortCtl; 446 CButtonm_AbortCtl;
446 CButtonm_OptionsCtl; 447 CButtonm_OptionsCtl;
447 CListBoxm_Log; 448 CListBoxm_Log;
448 CListCtrlm_List; 449 CListCtrlm_List;
449 //}}AFX_DATA 450 //}}AFX_DATA
450 451
451 // ClassWizard generated virtual function overrides 452 // ClassWizard generated virtual function overrides
452 //{{AFX_VIRTUAL(CPumpKINDlg) 453 //{{AFX_VIRTUAL(CPumpKINDlg)
453 protected: 454 protected:
454 virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support 455 virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support
455 //}}AFX_VIRTUAL 456 //}}AFX_VIRTUAL
456 457
457// Implementation 458// Implementation
458protected: 459protected:
459 CToolTipCtrl m_tooltip; 460 CToolTipCtrl m_tooltip;
460 HICON m_hIcon; 461 HICON m_hIcon;
461 462
462 // Generated message map functions 463 // Generated message map functions
463 //{{AFX_MSG(CPumpKINDlg) 464 //{{AFX_MSG(CPumpKINDlg)
464 virtual BOOL OnInitDialog(); 465 virtual BOOL OnInitDialog();
465 afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 466 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
466 afx_msg void OnDestroy(); 467 afx_msg void OnDestroy();
467 afx_msg void OnPaint(); 468 afx_msg void OnPaint();
468 afx_msg HCURSOR OnQueryDragIcon(); 469 afx_msg HCURSOR OnQueryDragIcon();
469 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 470 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
470 afx_msg void OnOptions(); 471 afx_msg void OnOptions();
471 afx_msg void OnTimer(UINT nIDEvent); 472 afx_msg void OnTimer(UINT nIDEvent);
472 afx_msg void OnExit(); 473 afx_msg void OnExit();
473 afx_msg void OnPut(); 474 afx_msg void OnPut();
474 afx_msg void OnGet(); 475 afx_msg void OnGet();
475 afx_msg void OnDeleteallitemsConnections(NMHDR* pNMHDR, LRESULT* pResult); 476 afx_msg void OnDeleteallitemsConnections(NMHDR* pNMHDR, LRESULT* pResult);
476 afx_msg void OnDeleteitemConnections(NMHDR* pNMHDR, LRESULT* pResult); 477 afx_msg void OnDeleteitemConnections(NMHDR* pNMHDR, LRESULT* pResult);
477 afx_msg void OnInsertitemConnections(NMHDR* pNMHDR, LRESULT* pResult); 478 afx_msg void OnInsertitemConnections(NMHDR* pNMHDR, LRESULT* pResult);
478 afx_msg void OnItemchangedConnections(NMHDR* pNMHDR, LRESULT* pResult); 479 afx_msg void OnItemchangedConnections(NMHDR* pNMHDR, LRESULT* pResult);
479 afx_msg void OnAbort(); 480 afx_msg void OnAbort();
480 afx_msg void OnClose(); 481 afx_msg void OnClose();
481 afx_msg void OnTrayShowpumpkinwindow(); 482 afx_msg void OnTrayShowpumpkinwindow();
482 afx_msg void OnTrayListen(); 483 afx_msg void OnTrayListen();
483 afx_msg void OnTrayExit(); 484 afx_msg void OnTrayExit();
484 afx_msg void OnTrayAboutpumpkin(); 485 afx_msg void OnTrayAboutpumpkin();
485 afx_msg void OnTrayFetchfile(); 486 afx_msg void OnTrayFetchfile();
486 afx_msg void OnTrayHelp(); 487 afx_msg void OnTrayHelp();
487 afx_msg void OnTrayOptions(); 488 afx_msg void OnTrayOptions();
488 afx_msg void OnTraySendfile(); 489 afx_msg void OnTraySendfile();
489 afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos); 490 afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);
490 afx_msg void OnSelchangeLog(); 491 afx_msg void OnSelchangeLog();
491 afx_msg void OnTrayOpenfilesfolder(); 492 afx_msg void OnTrayOpenfilesfolder();
492 afx_msg void OnDropFiles(HDROP hDropInfo); 493 afx_msg void OnDropFiles(HDROP hDropInfo);
493 virtual void OnCancel(); 494 virtual void OnCancel();
494 afx_msg void OnHelp(); 495 afx_msg void OnHelp();
495 afx_msg void OnListening(); 496 afx_msg void OnListening();
496 afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); 497 afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
497 afx_msg void OnSize(UINT nType, int cx, int cy); 498 afx_msg void OnSize(UINT nType, int cx, int cy);
498 //}}AFX_MSG 499 //}}AFX_MSG
499 DECLARE_MESSAGE_MAP() 500 DECLARE_MESSAGE_MAP()
500}; 501};
diff --git a/pumpkin.mak b/pumpkin.mak
index a22a6fa..bf9e895 100644
--- a/pumpkin.mak
+++ b/pumpkin.mak
@@ -433,1253 +433,1151 @@ CLEAN :
433CPP_PROJ=/nologo /MLd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\ 433CPP_PROJ=/nologo /MLd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\
434 /D "_MBCS" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c 434 /D "_MBCS" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
435CPP_OBJS=.\Install\Debug/ 435CPP_OBJS=.\Install\Debug/
436CPP_SBRS=.\. 436CPP_SBRS=.\.
437# ADD BASE MTL /nologo /D "_DEBUG" /win32 437# ADD BASE MTL /nologo /D "_DEBUG" /win32
438# ADD MTL /nologo /D "_DEBUG" /win32 438# ADD MTL /nologo /D "_DEBUG" /win32
439MTL_PROJ=/nologo /D "_DEBUG" /win32 439MTL_PROJ=/nologo /D "_DEBUG" /win32
440# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" 440# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
441# ADD RSC /l 0x409 /d "_DEBUG" 441# ADD RSC /l 0x409 /d "_DEBUG"
442RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "_DEBUG" 442RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "_DEBUG"
443BSC32=bscmake.exe 443BSC32=bscmake.exe
444# ADD BASE BSC32 /nologo 444# ADD BASE BSC32 /nologo
445# ADD BSC32 /nologo 445# ADD BSC32 /nologo
446BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc" 446BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc"
447BSC32_SBRS= \ 447BSC32_SBRS= \
448 448
449LINK32=link.exe 449LINK32=link.exe
450# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 450# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386
451# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /debug /machine:I386 451# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /debug /machine:I386
452LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ 452LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
453 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ 453 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
454 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:yes\ 454 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:yes\
455 /pdb:"$(OUTDIR)/Install.pdb" /debug /machine:I386 /out:"$(OUTDIR)/Install.exe" 455 /pdb:"$(OUTDIR)/Install.pdb" /debug /machine:I386 /out:"$(OUTDIR)/Install.exe"
456LINK32_OBJS= \ 456LINK32_OBJS= \
457 "$(INTDIR)\install.obj" \ 457 "$(INTDIR)\install.obj" \
458 "$(INTDIR)\Install.res" 458 "$(INTDIR)\Install.res"
459 459
460"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 460"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
461 $(LINK32) @<< 461 $(LINK32) @<<
462 $(LINK32_FLAGS) $(LINK32_OBJS) 462 $(LINK32_FLAGS) $(LINK32_OBJS)
463<< 463<<
464 464
465!ELSEIF "$(CFG)" == "Install - Win32 Pure" 465!ELSEIF "$(CFG)" == "Install - Win32 Pure"
466 466
467# PROP BASE Use_MFC 2 467# PROP BASE Use_MFC 2
468# PROP BASE Use_Debug_Libraries 0 468# PROP BASE Use_Debug_Libraries 0
469# PROP BASE Output_Dir "Install\Pure" 469# PROP BASE Output_Dir "Install\Pure"
470# PROP BASE Intermediate_Dir "Install\Pure" 470# PROP BASE Intermediate_Dir "Install\Pure"
471# PROP BASE Target_Dir "Install" 471# PROP BASE Target_Dir "Install"
472# PROP Use_MFC 0 472# PROP Use_MFC 0
473# PROP Use_Debug_Libraries 0 473# PROP Use_Debug_Libraries 0
474# PROP Output_Dir "Install\Pure" 474# PROP Output_Dir "Install\Pure"
475# PROP Intermediate_Dir "Install\Pure" 475# PROP Intermediate_Dir "Install\Pure"
476# PROP Target_Dir "Install" 476# PROP Target_Dir "Install"
477OUTDIR=.\Install\Pure 477OUTDIR=.\Install\Pure
478INTDIR=.\Install\Pure 478INTDIR=.\Install\Pure
479 479
480ALL : "$(OUTDIR)\Install.exe" "$(OUTDIR)\Install.bsc" 480ALL : "$(OUTDIR)\Install.exe" "$(OUTDIR)\Install.bsc"
481 481
482CLEAN : 482CLEAN :
483 -@erase "$(INTDIR)\install.obj" 483 -@erase "$(INTDIR)\install.obj"
484 -@erase "$(INTDIR)\Install.res" 484 -@erase "$(INTDIR)\Install.res"
485 -@erase "$(INTDIR)\install.sbr" 485 -@erase "$(INTDIR)\install.sbr"
486 -@erase "$(OUTDIR)\Install.bsc" 486 -@erase "$(OUTDIR)\Install.bsc"
487 -@erase "$(OUTDIR)\Install.exe" 487 -@erase "$(OUTDIR)\Install.exe"
488 488
489"$(OUTDIR)" : 489"$(OUTDIR)" :
490 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 490 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
491 491
492# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /YX /c 492# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /YX /c
493# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FR /YX /c 493# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FR /YX /c
494CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\ 494CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\
495 "_MBCS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /c 495 "_MBCS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /c
496CPP_OBJS=.\Install\Pure/ 496CPP_OBJS=.\Install\Pure/
497CPP_SBRS=.\Install\Pure/ 497CPP_SBRS=.\Install\Pure/
498# ADD BASE MTL /nologo /D "NDEBUG" /win32 498# ADD BASE MTL /nologo /D "NDEBUG" /win32
499# ADD MTL /nologo /D "NDEBUG" /win32 499# ADD MTL /nologo /D "NDEBUG" /win32
500MTL_PROJ=/nologo /D "NDEBUG" /win32 500MTL_PROJ=/nologo /D "NDEBUG" /win32
501# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" 501# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
502# ADD RSC /l 0x409 /d "NDEBUG" 502# ADD RSC /l 0x409 /d "NDEBUG"
503RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "NDEBUG" 503RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "NDEBUG"
504BSC32=bscmake.exe 504BSC32=bscmake.exe
505# ADD BASE BSC32 /nologo 505# ADD BASE BSC32 /nologo
506# ADD BSC32 /nologo 506# ADD BSC32 /nologo
507BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc" 507BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc"
508BSC32_SBRS= \ 508BSC32_SBRS= \
509 "$(INTDIR)\install.sbr" 509 "$(INTDIR)\install.sbr"
510 510
511"$(OUTDIR)\Install.bsc" : "$(OUTDIR)" $(BSC32_SBRS) 511"$(OUTDIR)\Install.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
512 $(BSC32) @<< 512 $(BSC32) @<<
513 $(BSC32_FLAGS) $(BSC32_SBRS) 513 $(BSC32_FLAGS) $(BSC32_SBRS)
514<< 514<<
515 515
516LINK32=link.exe 516LINK32=link.exe
517# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 517# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
518# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /machine:I386 518# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /machine:I386
519LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ 519LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
520 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ 520 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
521 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:no\ 521 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:no\
522 /pdb:"$(OUTDIR)/Install.pdb" /machine:I386 /out:"$(OUTDIR)/Install.exe" 522 /pdb:"$(OUTDIR)/Install.pdb" /machine:I386 /out:"$(OUTDIR)/Install.exe"
523LINK32_OBJS= \ 523LINK32_OBJS= \
524 "$(INTDIR)\install.obj" \ 524 "$(INTDIR)\install.obj" \
525 "$(INTDIR)\Install.res" 525 "$(INTDIR)\Install.res"
526 526
527"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 527"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
528 $(LINK32) @<< 528 $(LINK32) @<<
529 $(LINK32_FLAGS) $(LINK32_OBJS) 529 $(LINK32_FLAGS) $(LINK32_OBJS)
530<< 530<<
531 531
532!ELSEIF "$(CFG)" == "Install - Win32 Static" 532!ELSEIF "$(CFG)" == "Install - Win32 Static"
533 533
534# PROP BASE Use_MFC 2 534# PROP BASE Use_MFC 2
535# PROP BASE Use_Debug_Libraries 0 535# PROP BASE Use_Debug_Libraries 0
536# PROP BASE Output_Dir "Install\Static" 536# PROP BASE Output_Dir "Install\Static"
537# PROP BASE Intermediate_Dir "Install\Static" 537# PROP BASE Intermediate_Dir "Install\Static"
538# PROP BASE Target_Dir "Install" 538# PROP BASE Target_Dir "Install"
539# PROP Use_MFC 0 539# PROP Use_MFC 0
540# PROP Use_Debug_Libraries 0 540# PROP Use_Debug_Libraries 0
541# PROP Output_Dir "Install\Static" 541# PROP Output_Dir "Install\Static"
542# PROP Intermediate_Dir "Install\Static" 542# PROP Intermediate_Dir "Install\Static"
543# PROP Target_Dir "Install" 543# PROP Target_Dir "Install"
544OUTDIR=.\Install\Static 544OUTDIR=.\Install\Static
545INTDIR=.\Install\Static 545INTDIR=.\Install\Static
546 546
547ALL : "$(OUTDIR)\Install.exe" 547ALL : "$(OUTDIR)\Install.exe"
548 548
549CLEAN : 549CLEAN :
550 -@erase "$(INTDIR)\install.obj" 550 -@erase "$(INTDIR)\install.obj"
551 -@erase "$(INTDIR)\Install.res" 551 -@erase "$(INTDIR)\Install.res"
552 -@erase "$(OUTDIR)\Install.exe" 552 -@erase "$(OUTDIR)\Install.exe"
553 553
554"$(OUTDIR)" : 554"$(OUTDIR)" :
555 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 555 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
556 556
557# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /YX /c 557# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /YX /c
558# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "STATI_K" /YX /c 558# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "STATI_K" /YX /c
559CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\ 559CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\
560 "_MBCS" /D "STATI_K" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /c 560 "_MBCS" /D "STATI_K" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /c
561CPP_OBJS=.\Install\Static/ 561CPP_OBJS=.\Install\Static/
562CPP_SBRS=.\. 562CPP_SBRS=.\.
563# ADD BASE MTL /nologo /D "NDEBUG" /win32 563# ADD BASE MTL /nologo /D "NDEBUG" /win32
564# ADD MTL /nologo /D "NDEBUG" /win32 564# ADD MTL /nologo /D "NDEBUG" /win32
565MTL_PROJ=/nologo /D "NDEBUG" /win32 565MTL_PROJ=/nologo /D "NDEBUG" /win32
566# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" 566# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
567# ADD RSC /l 0x409 /d "NDEBUG" /d "STATI_K" 567# ADD RSC /l 0x409 /d "NDEBUG" /d "STATI_K"
568RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "NDEBUG" /d "STATI_K" 568RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "NDEBUG" /d "STATI_K"
569BSC32=bscmake.exe 569BSC32=bscmake.exe
570# ADD BASE BSC32 /nologo 570# ADD BASE BSC32 /nologo
571# ADD BSC32 /nologo 571# ADD BSC32 /nologo
572BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc" 572BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc"
573BSC32_SBRS= \ 573BSC32_SBRS= \
574 574
575LINK32=link.exe 575LINK32=link.exe
576# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 576# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
577# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /machine:I386 577# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /machine:I386
578LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ 578LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
579 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ 579 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
580 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:no\ 580 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:no\
581 /pdb:"$(OUTDIR)/Install.pdb" /machine:I386 /out:"$(OUTDIR)/Install.exe" 581 /pdb:"$(OUTDIR)/Install.pdb" /machine:I386 /out:"$(OUTDIR)/Install.exe"
582LINK32_OBJS= \ 582LINK32_OBJS= \
583 "$(INTDIR)\install.obj" \ 583 "$(INTDIR)\install.obj" \
584 "$(INTDIR)\Install.res" 584 "$(INTDIR)\Install.res"
585 585
586"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 586"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
587 $(LINK32) @<< 587 $(LINK32) @<<
588 $(LINK32_FLAGS) $(LINK32_OBJS) 588 $(LINK32_FLAGS) $(LINK32_OBJS)
589<< 589<<
590 590
591!ELSEIF "$(CFG)" == "Install - Win32 Canned" 591!ELSEIF "$(CFG)" == "Install - Win32 Canned"
592 592
593# PROP BASE Use_MFC 2 593# PROP BASE Use_MFC 2
594# PROP BASE Use_Debug_Libraries 0 594# PROP BASE Use_Debug_Libraries 0
595# PROP BASE Output_Dir "Install\Canned" 595# PROP BASE Output_Dir "Install\Canned"
596# PROP BASE Intermediate_Dir "Install\Canned" 596# PROP BASE Intermediate_Dir "Install\Canned"
597# PROP BASE Target_Dir "Install" 597# PROP BASE Target_Dir "Install"
598# PROP Use_MFC 0 598# PROP Use_MFC 0
599# PROP Use_Debug_Libraries 0 599# PROP Use_Debug_Libraries 0
600# PROP Output_Dir "Install\Canned" 600# PROP Output_Dir "Install\Canned"
601# PROP Intermediate_Dir "Install\Canned" 601# PROP Intermediate_Dir "Install\Canned"
602# PROP Target_Dir "Install" 602# PROP Target_Dir "Install"
603OUTDIR=.\Install\Canned 603OUTDIR=.\Install\Canned
604INTDIR=.\Install\Canned 604INTDIR=.\Install\Canned
605 605
606ALL : "$(OUTDIR)\Install.exe" 606ALL : "$(OUTDIR)\Install.exe"
607 607
608CLEAN : 608CLEAN :
609 -@erase "$(INTDIR)\install.obj" 609 -@erase "$(INTDIR)\install.obj"
610 -@erase "$(INTDIR)\Install.res" 610 -@erase "$(INTDIR)\Install.res"
611 -@erase "$(OUTDIR)\Install.exe" 611 -@erase "$(OUTDIR)\Install.exe"
612 612
613"$(OUTDIR)" : 613"$(OUTDIR)" :
614 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 614 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
615 615
616# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /YX /c 616# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /YX /c
617# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "K_ANNED" /YX /c 617# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "K_ANNED" /YX /c
618CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\ 618CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\
619 "_MBCS" /D "K_ANNED" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /c 619 "_MBCS" /D "K_ANNED" /Fp"$(INTDIR)/Install.pch" /YX /Fo"$(INTDIR)/" /c
620CPP_OBJS=.\Install\Canned/ 620CPP_OBJS=.\Install\Canned/
621CPP_SBRS=.\. 621CPP_SBRS=.\.
622# ADD BASE MTL /nologo /D "NDEBUG" /win32 622# ADD BASE MTL /nologo /D "NDEBUG" /win32
623# ADD MTL /nologo /D "NDEBUG" /win32 623# ADD MTL /nologo /D "NDEBUG" /win32
624MTL_PROJ=/nologo /D "NDEBUG" /win32 624MTL_PROJ=/nologo /D "NDEBUG" /win32
625# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" 625# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
626# ADD RSC /l 0x409 /d "NDEBUG" /d "K_ANNED" 626# ADD RSC /l 0x409 /d "NDEBUG" /d "K_ANNED"
627RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "NDEBUG" /d "K_ANNED" 627RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Install.res" /d "NDEBUG" /d "K_ANNED"
628BSC32=bscmake.exe 628BSC32=bscmake.exe
629# ADD BASE BSC32 /nologo 629# ADD BASE BSC32 /nologo
630# ADD BSC32 /nologo 630# ADD BSC32 /nologo
631BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc" 631BSC32_FLAGS=/nologo /o"$(OUTDIR)/Install.bsc"
632BSC32_SBRS= \ 632BSC32_SBRS= \
633 633
634LINK32=link.exe 634LINK32=link.exe
635# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 635# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
636# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /machine:I386 636# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib /nologo /subsystem:windows /machine:I386
637LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ 637LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
638 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ 638 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
639 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:no\ 639 odbccp32.lib version.lib /nologo /subsystem:windows /incremental:no\
640 /pdb:"$(OUTDIR)/Install.pdb" /machine:I386 /out:"$(OUTDIR)/Install.exe" 640 /pdb:"$(OUTDIR)/Install.pdb" /machine:I386 /out:"$(OUTDIR)/Install.exe"
641LINK32_OBJS= \ 641LINK32_OBJS= \
642 "$(INTDIR)\install.obj" \ 642 "$(INTDIR)\install.obj" \
643 "$(INTDIR)\Install.res" 643 "$(INTDIR)\Install.res"
644 644
645"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 645"$(OUTDIR)\Install.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
646 $(LINK32) @<< 646 $(LINK32) @<<
647 $(LINK32_FLAGS) $(LINK32_OBJS) 647 $(LINK32_FLAGS) $(LINK32_OBJS)
648<< 648<<
649 649
650!ENDIF 650!ENDIF
651 651
652.c{$(CPP_OBJS)}.obj: 652.c{$(CPP_OBJS)}.obj:
653 $(CPP) $(CPP_PROJ) $< 653 $(CPP) $(CPP_PROJ) $<
654 654
655.cpp{$(CPP_OBJS)}.obj: 655.cpp{$(CPP_OBJS)}.obj:
656 $(CPP) $(CPP_PROJ) $< 656 $(CPP) $(CPP_PROJ) $<
657 657
658.cxx{$(CPP_OBJS)}.obj: 658.cxx{$(CPP_OBJS)}.obj:
659 $(CPP) $(CPP_PROJ) $< 659 $(CPP) $(CPP_PROJ) $<
660 660
661.c{$(CPP_SBRS)}.sbr: 661.c{$(CPP_SBRS)}.sbr:
662 $(CPP) $(CPP_PROJ) $< 662 $(CPP) $(CPP_PROJ) $<
663 663
664.cpp{$(CPP_SBRS)}.sbr: 664.cpp{$(CPP_SBRS)}.sbr:
665 $(CPP) $(CPP_PROJ) $< 665 $(CPP) $(CPP_PROJ) $<
666 666
667.cxx{$(CPP_SBRS)}.sbr: 667.cxx{$(CPP_SBRS)}.sbr:
668 $(CPP) $(CPP_PROJ) $< 668 $(CPP) $(CPP_PROJ) $<
669 669
670################################################################################ 670################################################################################
671# Begin Target 671# Begin Target
672 672
673# Name "PumpKIN - Win32 Release" 673# Name "PumpKIN - Win32 Release"
674# Name "PumpKIN - Win32 Debug" 674# Name "PumpKIN - Win32 Debug"
675# Name "PumpKIN - Win32 Static" 675# Name "PumpKIN - Win32 Static"
676 676
677!IF "$(CFG)" == "PumpKIN - Win32 Release" 677!IF "$(CFG)" == "PumpKIN - Win32 Release"
678 678
679!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 679!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
680 680
681!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 681!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
682 682
683!ENDIF 683!ENDIF
684 684
685################################################################################ 685################################################################################
686# Begin Source File 686# Begin Source File
687 687
688SOURCE=.\PumpKIN.cpp 688SOURCE=.\PumpKIN.cpp
689
690!IF "$(CFG)" == "PumpKIN - Win32 Release"
691
692DEP_CPP_PUMPK=\ 689DEP_CPP_PUMPK=\
693 ".\pumpkin.h"\ 690 ".\pumpkin.h"\
694 ".\PumpKINDlg.h"\ 691 ".\PumpKINDlg.h"\
695 ".\shared-code\BellsNWhistles.h"\ 692 ".\shared-code\BellsNWhistles.h"\
696 ".\shared-code\kHelpers.h"\ 693 ".\shared-code\kHelpers.h"\
697 ".\stdafx.h"\ 694 ".\stdafx.h"\
698 695
699 696
697!IF "$(CFG)" == "PumpKIN - Win32 Release"
698
699
700"$(INTDIR)\PumpKIN.obj" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\ 700"$(INTDIR)\PumpKIN.obj" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\
701 "$(INTDIR)\pumpkin.pch" 701 "$(INTDIR)\pumpkin.pch"
702 702
703 703
704!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 704!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
705 705
706DEP_CPP_PUMPK=\
707 ".\pumpkin.h"\
708 ".\PumpKINDlg.h"\
709 ".\shared-code\BellsNWhistles.h"\
710 ".\shared-code\kHelpers.h"\
711 ".\stdafx.h"\
712
713 706
714"$(INTDIR)\PumpKIN.obj" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\ 707"$(INTDIR)\PumpKIN.obj" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\
715 "$(INTDIR)\pumpkin.pch" 708 "$(INTDIR)\pumpkin.pch"
716 709
717"$(INTDIR)\PumpKIN.sbr" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\ 710"$(INTDIR)\PumpKIN.sbr" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\
718 "$(INTDIR)\pumpkin.pch" 711 "$(INTDIR)\pumpkin.pch"
719 712
720 713
721!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 714!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
722 715
723DEP_CPP_PUMPK=\
724 ".\pumpkin.h"\
725 ".\PumpKINDlg.h"\
726 ".\shared-code\BellsNWhistles.h"\
727 ".\shared-code\kHelpers.h"\
728 ".\stdafx.h"\
729
730 716
731"$(INTDIR)\PumpKIN.obj" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\ 717"$(INTDIR)\PumpKIN.obj" : $(SOURCE) $(DEP_CPP_PUMPK) "$(INTDIR)"\
732 "$(INTDIR)\pumpkin.pch" 718 "$(INTDIR)\pumpkin.pch"
733 719
734 720
735!ENDIF 721!ENDIF
736 722
737# End Source File 723# End Source File
738################################################################################ 724################################################################################
739# Begin Source File 725# Begin Source File
740 726
741SOURCE=.\PumpKINDlg.cpp 727SOURCE=.\PumpKINDlg.cpp
728
729!IF "$(CFG)" == "PumpKIN - Win32 Release"
730
742DEP_CPP_PUMPKI=\ 731DEP_CPP_PUMPKI=\
743 ".\ACLTargetCombo.h"\ 732 ".\ACLTargetCombo.h"\
744 ".\ConfirmRRQDlg.h"\ 733 ".\ConfirmRRQDlg.h"\
745 ".\ConfirmWRQDlg.h"\ 734 ".\ConfirmWRQDlg.h"\
746 ".\PropsACL.h"\ 735 ".\PropsACL.h"\
747 ".\PropsNetwork.h"\ 736 ".\PropsNetwork.h"\
748 ".\PropsServer.h"\ 737 ".\PropsServer.h"\
749 ".\PropsSounds.h"\ 738 ".\PropsSounds.h"\
750 ".\pumpkin.h"\ 739 ".\pumpkin.h"\
751 ".\PumpKINDlg.h"\ 740 ".\PumpKINDlg.h"\
752 ".\RequestDlg.h"\ 741 ".\RequestDlg.h"\
753 ".\Resolver.h"\ 742 ".\Resolver.h"\
754 ".\Retrier.h"\ 743 ".\Retrier.h"\
755 ".\shared-code\BellsNWhistles.h"\ 744 ".\shared-code\BellsNWhistles.h"\
756 ".\shared-code\kHelpers.h"\ 745 ".\shared-code\kHelpers.h"\
757 ".\stdafx.h"\ 746 ".\stdafx.h"\
758 ".\Trayer.h"\ 747 ".\Trayer.h"\
759 748
760 749
761!IF "$(CFG)" == "PumpKIN - Win32 Release"
762
763
764"$(INTDIR)\PumpKINDlg.obj" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\ 750"$(INTDIR)\PumpKINDlg.obj" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\
765 "$(INTDIR)\pumpkin.pch" 751 "$(INTDIR)\pumpkin.pch"
766 752
767 753
768!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 754!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
769 755
756DEP_CPP_PUMPKI=\
757 ".\ACLTargetCombo.h"\
758 ".\ConfirmRRQDlg.h"\
759 ".\ConfirmWRQDlg.h"\
760 ".\PropsACL.h"\
761 ".\PropsNetwork.h"\
762 ".\PropsServer.h"\
763 ".\PropsSounds.h"\
764 ".\pumpkin.h"\
765 ".\PumpKINDlg.h"\
766 ".\RequestDlg.h"\
767 ".\Resolver.h"\
768 ".\Retrier.h"\
769 ".\shared-code\kHelpers.h"\
770 ".\stdafx.h"\
771 ".\Trayer.h"\
772
773NODEP_CPP_PUMPKI=\
774 ".\DoSelect"\
775
770 776
771"$(INTDIR)\PumpKINDlg.obj" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\ 777"$(INTDIR)\PumpKINDlg.obj" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\
772 "$(INTDIR)\pumpkin.pch" 778 "$(INTDIR)\pumpkin.pch"
773 779
774"$(INTDIR)\PumpKINDlg.sbr" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\ 780"$(INTDIR)\PumpKINDlg.sbr" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\
775 "$(INTDIR)\pumpkin.pch" 781 "$(INTDIR)\pumpkin.pch"
776 782
777 783
778!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 784!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
779 785
786DEP_CPP_PUMPKI=\
787 ".\ACLTargetCombo.h"\
788 ".\ConfirmRRQDlg.h"\
789 ".\ConfirmWRQDlg.h"\
790 ".\PropsACL.h"\
791 ".\PropsNetwork.h"\
792 ".\PropsServer.h"\
793 ".\PropsSounds.h"\
794 ".\pumpkin.h"\
795 ".\PumpKINDlg.h"\
796 ".\RequestDlg.h"\
797 ".\Resolver.h"\
798 ".\Retrier.h"\
799 ".\shared-code\BellsNWhistles.h"\
800 ".\shared-code\kHelpers.h"\
801 ".\stdafx.h"\
802 ".\Trayer.h"\
803
780 804
781"$(INTDIR)\PumpKINDlg.obj" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\ 805"$(INTDIR)\PumpKINDlg.obj" : $(SOURCE) $(DEP_CPP_PUMPKI) "$(INTDIR)"\
782 "$(INTDIR)\pumpkin.pch" 806 "$(INTDIR)\pumpkin.pch"
783 807
784 808
785!ENDIF 809!ENDIF
786 810
787# End Source File 811# End Source File
788################################################################################ 812################################################################################
789# Begin Source File 813# Begin Source File
790 814
791SOURCE=.\StdAfx.cpp 815SOURCE=.\StdAfx.cpp
792DEP_CPP_STDAF=\ 816DEP_CPP_STDAF=\
793 ".\shared-code\BellsNWhistles.h"\ 817 ".\shared-code\BellsNWhistles.h"\
794 ".\shared-code\kHelpers.h"\ 818 ".\shared-code\kHelpers.h"\
795 ".\stdafx.h"\ 819 ".\stdafx.h"\
796 820
797 821
798!IF "$(CFG)" == "PumpKIN - Win32 Release" 822!IF "$(CFG)" == "PumpKIN - Win32 Release"
799 823
800# ADD CPP /Yc"stdafx.h" 824# ADD CPP /Yc"stdafx.h"
801 825
802BuildCmds= \ 826BuildCmds= \
803 $(CPP) /nologo /Zp1 /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\ 827 $(CPP) /nologo /Zp1 /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\
804 "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)/pumpkin.pch" /Yc"stdafx.h" /Fo"$(INTDIR)/"\ 828 "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)/pumpkin.pch" /Yc"stdafx.h" /Fo"$(INTDIR)/"\
805 /c $(SOURCE) \ 829 /c $(SOURCE) \
806 830
807 831
808"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)" 832"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
809 $(BuildCmds) 833 $(BuildCmds)
810 834
811"$(INTDIR)\pumpkin.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)" 835"$(INTDIR)\pumpkin.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
812 $(BuildCmds) 836 $(BuildCmds)
813 837
814!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 838!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
815 839
816# ADD CPP /Yc"stdafx.h" 840# ADD CPP /Yc"stdafx.h"
817 841
818BuildCmds= \ 842BuildCmds= \
819 $(CPP) /nologo /Zp1 /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D\ 843 $(CPP) /nologo /Zp1 /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D\
820 "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/pumpkin.pch"\ 844 "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR"$(INTDIR)/" /Fp"$(INTDIR)/pumpkin.pch"\
821 /Yc"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c $(SOURCE) \ 845 /Yc"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c $(SOURCE) \
822 846
823 847
824"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)" 848"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
825 $(BuildCmds) 849 $(BuildCmds)
826 850
827"$(INTDIR)\StdAfx.sbr" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)" 851"$(INTDIR)\StdAfx.sbr" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
828 $(BuildCmds) 852 $(BuildCmds)
829 853
830"$(INTDIR)\pumpkin.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)" 854"$(INTDIR)\pumpkin.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
831 $(BuildCmds) 855 $(BuildCmds)
832 856
833!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 857!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
834 858
835# ADD BASE CPP /Yc"stdafx.h" 859# ADD BASE CPP /Yc"stdafx.h"
836# ADD CPP /Yc"stdafx.h" 860# ADD CPP /Yc"stdafx.h"
837 861
838BuildCmds= \ 862BuildCmds= \
839 $(CPP) /nologo /Zp1 /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\ 863 $(CPP) /nologo /Zp1 /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\
840 "_MBCS" /Fp"$(INTDIR)/pumpkin.pch" /Yc"stdafx.h" /Fo"$(INTDIR)/" /c $(SOURCE) \ 864 "_MBCS" /Fp"$(INTDIR)/pumpkin.pch" /Yc"stdafx.h" /Fo"$(INTDIR)/" /c $(SOURCE) \
841 865
842 866
843"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)" 867"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
844 $(BuildCmds) 868 $(BuildCmds)
845 869
846"$(INTDIR)\pumpkin.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)" 870"$(INTDIR)\pumpkin.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
847 $(BuildCmds) 871 $(BuildCmds)
848 872
849!ENDIF 873!ENDIF
850 874
851# End Source File 875# End Source File
852################################################################################ 876################################################################################
853# Begin Source File 877# Begin Source File
854 878
855SOURCE=.\pumpkin.rc 879SOURCE=.\pumpkin.rc
856DEP_RSC_PUMPKIN=\ 880DEP_RSC_PUMPKIN=\
857 ".\res\down.ico"\ 881 ".\res\down.ico"\
858 ".\res\failed.wav"\ 882 ".\res\failed.wav"\
859 ".\res\finished.wav"\ 883 ".\res\finished.wav"\
860 ".\res\PumpKIN.ico"\ 884 ".\res\PumpKIN.ico"\
861 ".\res\pumpkin.rc2"\ 885 ".\res\pumpkin.rc2"\
862 ".\res\remove.ico"\ 886 ".\res\remove.ico"\
863 ".\res\ring.wav"\ 887 ".\res\ring.wav"\
864 ".\res\rrq.ico"\ 888 ".\res\rrq.ico"\
865 ".\res\up.ico"\ 889 ".\res\up.ico"\
866 ".\res\wrq.ico"\ 890 ".\res\wrq.ico"\
867 ".\shared-data\browse-icon.ico"\ 891 ".\shared-data\browse-icon.ico"\
868 ".\shared-data\klever-background.bmp"\ 892 ".\shared-data\klever-background.bmp"\
869 ".\shared-data\play-icon.ico"\ 893 ".\shared-data\play-icon.ico"\
870 894
871 895
872!IF "$(CFG)" == "PumpKIN - Win32 Release" 896!IF "$(CFG)" == "PumpKIN - Win32 Release"
873 897
874 898
875"$(INTDIR)\pumpkin.res" : $(SOURCE) $(DEP_RSC_PUMPKIN) "$(INTDIR)" 899"$(INTDIR)\pumpkin.res" : $(SOURCE) $(DEP_RSC_PUMPKIN) "$(INTDIR)"
876 $(RSC) $(RSC_PROJ) $(SOURCE) 900 $(RSC) $(RSC_PROJ) $(SOURCE)
877 901
878 902
879!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 903!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
880 904
881 905
882"$(INTDIR)\pumpkin.res" : $(SOURCE) $(DEP_RSC_PUMPKIN) "$(INTDIR)" 906"$(INTDIR)\pumpkin.res" : $(SOURCE) $(DEP_RSC_PUMPKIN) "$(INTDIR)"
883 $(RSC) $(RSC_PROJ) $(SOURCE) 907 $(RSC) $(RSC_PROJ) $(SOURCE)
884 908
885 909
886!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 910!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
887 911
888 912
889"$(INTDIR)\pumpkin.res" : $(SOURCE) $(DEP_RSC_PUMPKIN) "$(INTDIR)" 913"$(INTDIR)\pumpkin.res" : $(SOURCE) $(DEP_RSC_PUMPKIN) "$(INTDIR)"
890 $(RSC) $(RSC_PROJ) $(SOURCE) 914 $(RSC) $(RSC_PROJ) $(SOURCE)
891 915
892 916
893!ENDIF 917!ENDIF
894 918
895# End Source File 919# End Source File
896################################################################################ 920################################################################################
897# Begin Source File 921# Begin Source File
898 922
899SOURCE=.\help\pumpkin.hpj 923SOURCE=.\help\pumpkin.hpj
900 924
901!IF "$(CFG)" == "PumpKIN - Win32 Release" 925!IF "$(CFG)" == "PumpKIN - Win32 Release"
902 926
903# Begin Custom Build - Making help files... 927# Begin Custom Build - Making help files...
904OutDir=.\Release 928OutDir=.\Release
905ProjDir=. 929ProjDir=.
906TargetName=pumpkin 930TargetName=pumpkin
907InputPath=.\help\pumpkin.hpj 931InputPath=.\help\pumpkin.hpj
908 932
909BuildCmds= \ 933BuildCmds= \
910 "$(ProjDir)\makehelp.bat" \ 934 "$(ProjDir)\makehelp.bat" \
911 compress $(OutDir)\$(TargetName).hlp $(OutDir)\$(TargetName).hl_ \ 935 compress $(OutDir)\$(TargetName).hlp $(OutDir)\$(TargetName).hl_ \
912 compress $(OutDir)\$(TargetName).cnt $(OutDir)\$(TargetName).cn_ \ 936 compress $(OutDir)\$(TargetName).cnt $(OutDir)\$(TargetName).cn_ \
913 937
914 938
915"$(OutDir)\$(TargetName).hlp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 939"$(OutDir)\$(TargetName).hlp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
916 $(BuildCmds) 940 $(BuildCmds)
917 941
918"$(OutDir)\$(TargetName).cnt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 942"$(OutDir)\$(TargetName).cnt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
919 $(BuildCmds) 943 $(BuildCmds)
920 944
921"$(OutDir)\$(TargetName).hl_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 945"$(OutDir)\$(TargetName).hl_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
922 $(BuildCmds) 946 $(BuildCmds)
923 947
924"$(OutDir)\$(TargetName).cn_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 948"$(OutDir)\$(TargetName).cn_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
925 $(BuildCmds) 949 $(BuildCmds)
926# End Custom Build 950# End Custom Build
927 951
928!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 952!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
929 953
930# Begin Custom Build - Making help files... 954# Begin Custom Build - Making help files...
931OutDir=.\Debug 955OutDir=.\Debug
932ProjDir=. 956ProjDir=.
933TargetName=pumpkin 957TargetName=pumpkin
934InputPath=.\help\pumpkin.hpj 958InputPath=.\help\pumpkin.hpj
935 959
936BuildCmds= \ 960BuildCmds= \
937 "$(ProjDir)\makehelp.bat" \ 961 "$(ProjDir)\makehelp.bat" \
938 compress $(OutDir)\$(TargetName).hlp $(OutDir)\$(TargetName).hl_ \ 962 compress $(OutDir)\$(TargetName).hlp $(OutDir)\$(TargetName).hl_ \
939 compress $(OutDir)\$(TargetName).cnt $(OutDir)\$(TargetName).cn_ \ 963 compress $(OutDir)\$(TargetName).cnt $(OutDir)\$(TargetName).cn_ \
940 964
941 965
942"$(OutDir)\$(TargetName).hlp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 966"$(OutDir)\$(TargetName).hlp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
943 $(BuildCmds) 967 $(BuildCmds)
944 968
945"$(OutDir)\$(TargetName).cnt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 969"$(OutDir)\$(TargetName).cnt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
946 $(BuildCmds) 970 $(BuildCmds)
947 971
948"$(OutDir)\$(TargetName).hl_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 972"$(OutDir)\$(TargetName).hl_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
949 $(BuildCmds) 973 $(BuildCmds)
950 974
951"$(OutDir)\$(TargetName).cn_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 975"$(OutDir)\$(TargetName).cn_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
952 $(BuildCmds) 976 $(BuildCmds)
953# End Custom Build 977# End Custom Build
954 978
955!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 979!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
956 980
957# Begin Custom Build - Making help files... 981# Begin Custom Build - Making help files...
958OutDir=.\Releast 982OutDir=.\Releast
959ProjDir=. 983ProjDir=.
960TargetName=pumpkin 984TargetName=pumpkin
961InputPath=.\help\pumpkin.hpj 985InputPath=.\help\pumpkin.hpj
962 986
963BuildCmds= \ 987BuildCmds= \
964 "$(ProjDir)\makehelp.bat" \ 988 "$(ProjDir)\makehelp.bat" \
965 compress $(OutDir)\$(TargetName).hlp $(OutDir)\$(TargetName).hl_ \ 989 compress $(OutDir)\$(TargetName).hlp $(OutDir)\$(TargetName).hl_ \
966 compress $(OutDir)\$(TargetName).cnt $(OutDir)\$(TargetName).cn_ \ 990 compress $(OutDir)\$(TargetName).cnt $(OutDir)\$(TargetName).cn_ \
967 991
968 992
969"$(OutDir)\$(TargetName).hlp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 993"$(OutDir)\$(TargetName).hlp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
970 $(BuildCmds) 994 $(BuildCmds)
971 995
972"$(OutDir)\$(TargetName).cnt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 996"$(OutDir)\$(TargetName).cnt" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
973 $(BuildCmds) 997 $(BuildCmds)
974 998
975"$(OutDir)\$(TargetName).hl_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 999"$(OutDir)\$(TargetName).hl_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
976 $(BuildCmds) 1000 $(BuildCmds)
977 1001
978"$(OutDir)\$(TargetName).cn_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" 1002"$(OutDir)\$(TargetName).cn_" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
979 $(BuildCmds) 1003 $(BuildCmds)
980# End Custom Build 1004# End Custom Build
981 1005
982!ENDIF 1006!ENDIF
983 1007
984# End Source File 1008# End Source File
985################################################################################ 1009################################################################################
986# Begin Source File 1010# Begin Source File
987 1011
988SOURCE=.\PropsServer.cpp 1012SOURCE=.\PropsServer.cpp
989
990!IF "$(CFG)" == "PumpKIN - Win32 Release"
991
992DEP_CPP_PROPS=\ 1013DEP_CPP_PROPS=\
993 ".\PropsServer.h"\ 1014 ".\PropsServer.h"\
994 ".\pumpkin.h"\ 1015 ".\pumpkin.h"\
995 ".\shared-code\BellsNWhistles.h"\ 1016 ".\shared-code\BellsNWhistles.h"\
996 ".\shared-code\kHelpers.h"\ 1017 ".\shared-code\kHelpers.h"\
997 ".\stdafx.h"\ 1018 ".\stdafx.h"\
998 1019
999 1020
1021!IF "$(CFG)" == "PumpKIN - Win32 Release"
1022
1023
1000"$(INTDIR)\PropsServer.obj" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\ 1024"$(INTDIR)\PropsServer.obj" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\
1001 "$(INTDIR)\pumpkin.pch" 1025 "$(INTDIR)\pumpkin.pch"
1002 1026
1003 1027
1004!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1028!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1005 1029
1006DEP_CPP_PROPS=\
1007 ".\PropsServer.h"\
1008 ".\pumpkin.h"\
1009 ".\shared-code\BellsNWhistles.h"\
1010 ".\shared-code\kHelpers.h"\
1011 ".\stdafx.h"\
1012
1013 1030
1014"$(INTDIR)\PropsServer.obj" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\ 1031"$(INTDIR)\PropsServer.obj" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\
1015 "$(INTDIR)\pumpkin.pch" 1032 "$(INTDIR)\pumpkin.pch"
1016 1033
1017"$(INTDIR)\PropsServer.sbr" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\ 1034"$(INTDIR)\PropsServer.sbr" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\
1018 "$(INTDIR)\pumpkin.pch" 1035 "$(INTDIR)\pumpkin.pch"
1019 1036
1020 1037
1021!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1038!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1022 1039
1023DEP_CPP_PROPS=\
1024 ".\PropsServer.h"\
1025 ".\pumpkin.h"\
1026 ".\shared-code\BellsNWhistles.h"\
1027 ".\shared-code\kHelpers.h"\
1028 ".\stdafx.h"\
1029
1030 1040
1031"$(INTDIR)\PropsServer.obj" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\ 1041"$(INTDIR)\PropsServer.obj" : $(SOURCE) $(DEP_CPP_PROPS) "$(INTDIR)"\
1032 "$(INTDIR)\pumpkin.pch" 1042 "$(INTDIR)\pumpkin.pch"
1033 1043
1034 1044
1035!ENDIF 1045!ENDIF
1036 1046
1037# End Source File 1047# End Source File
1038################################################################################ 1048################################################################################
1039# Begin Source File 1049# Begin Source File
1040 1050
1041SOURCE=.\PropsNetwork.cpp 1051SOURCE=.\PropsNetwork.cpp
1042DEP_CPP_PROPSN=\ 1052DEP_CPP_PROPSN=\
1043 ".\PropsNetwork.h"\ 1053 ".\PropsNetwork.h"\
1044 ".\pumpkin.h"\ 1054 ".\pumpkin.h"\
1045 ".\shared-code\BellsNWhistles.h"\ 1055 ".\shared-code\BellsNWhistles.h"\
1046 ".\shared-code\kHelpers.h"\ 1056 ".\shared-code\kHelpers.h"\
1047 ".\stdafx.h"\ 1057 ".\stdafx.h"\
1048 1058
1049 1059
1050!IF "$(CFG)" == "PumpKIN - Win32 Release" 1060!IF "$(CFG)" == "PumpKIN - Win32 Release"
1051 1061
1052 1062
1053"$(INTDIR)\PropsNetwork.obj" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\ 1063"$(INTDIR)\PropsNetwork.obj" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\
1054 "$(INTDIR)\pumpkin.pch" 1064 "$(INTDIR)\pumpkin.pch"
1055 1065
1056 1066
1057!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1067!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1058 1068
1059 1069
1060"$(INTDIR)\PropsNetwork.obj" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\ 1070"$(INTDIR)\PropsNetwork.obj" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\
1061 "$(INTDIR)\pumpkin.pch" 1071 "$(INTDIR)\pumpkin.pch"
1062 1072
1063"$(INTDIR)\PropsNetwork.sbr" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\ 1073"$(INTDIR)\PropsNetwork.sbr" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\
1064 "$(INTDIR)\pumpkin.pch" 1074 "$(INTDIR)\pumpkin.pch"
1065 1075
1066 1076
1067!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1077!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1068 1078
1069 1079
1070"$(INTDIR)\PropsNetwork.obj" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\ 1080"$(INTDIR)\PropsNetwork.obj" : $(SOURCE) $(DEP_CPP_PROPSN) "$(INTDIR)"\
1071 "$(INTDIR)\pumpkin.pch" 1081 "$(INTDIR)\pumpkin.pch"
1072 1082
1073 1083
1074!ENDIF 1084!ENDIF
1075 1085
1076# End Source File 1086# End Source File
1077################################################################################ 1087################################################################################
1078# Begin Source File 1088# Begin Source File
1079 1089
1080SOURCE=.\ConfirmRRQDlg.cpp 1090SOURCE=.\ConfirmRRQDlg.cpp
1081
1082!IF "$(CFG)" == "PumpKIN - Win32 Release"
1083
1084DEP_CPP_CONFI=\ 1091DEP_CPP_CONFI=\
1085 ".\ConfirmRRQDlg.h"\ 1092 ".\ConfirmRRQDlg.h"\
1086 ".\pumpkin.h"\ 1093 ".\pumpkin.h"\
1087 ".\PumpKINDlg.h"\ 1094 ".\PumpKINDlg.h"\
1088 ".\shared-code\BellsNWhistles.h"\ 1095 ".\shared-code\BellsNWhistles.h"\
1089 ".\shared-code\kHelpers.h"\ 1096 ".\shared-code\kHelpers.h"\
1090 ".\stdafx.h"\ 1097 ".\stdafx.h"\
1091 1098
1092 1099
1100!IF "$(CFG)" == "PumpKIN - Win32 Release"
1101
1102
1093"$(INTDIR)\ConfirmRRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\ 1103"$(INTDIR)\ConfirmRRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\
1094 "$(INTDIR)\pumpkin.pch" 1104 "$(INTDIR)\pumpkin.pch"
1095 1105
1096 1106
1097!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1107!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1098 1108
1099DEP_CPP_CONFI=\
1100 ".\ConfirmRRQDlg.h"\
1101 ".\pumpkin.h"\
1102 ".\PumpKINDlg.h"\
1103 ".\shared-code\BellsNWhistles.h"\
1104 ".\shared-code\kHelpers.h"\
1105 ".\stdafx.h"\
1106
1107 1109
1108"$(INTDIR)\ConfirmRRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\ 1110"$(INTDIR)\ConfirmRRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\
1109 "$(INTDIR)\pumpkin.pch" 1111 "$(INTDIR)\pumpkin.pch"
1110 1112
1111"$(INTDIR)\ConfirmRRQDlg.sbr" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\ 1113"$(INTDIR)\ConfirmRRQDlg.sbr" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\
1112 "$(INTDIR)\pumpkin.pch" 1114 "$(INTDIR)\pumpkin.pch"
1113 1115
1114 1116
1115!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1117!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1116 1118
1117DEP_CPP_CONFI=\
1118 ".\ConfirmRRQDlg.h"\
1119 ".\pumpkin.h"\
1120 ".\PumpKINDlg.h"\
1121 ".\shared-code\BellsNWhistles.h"\
1122 ".\shared-code\kHelpers.h"\
1123 ".\stdafx.h"\
1124
1125 1119
1126"$(INTDIR)\ConfirmRRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\ 1120"$(INTDIR)\ConfirmRRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"\
1127 "$(INTDIR)\pumpkin.pch" 1121 "$(INTDIR)\pumpkin.pch"
1128 1122
1129 1123
1130!ENDIF 1124!ENDIF
1131 1125
1132# End Source File 1126# End Source File
1133################################################################################ 1127################################################################################
1134# Begin Source File 1128# Begin Source File
1135 1129
1136SOURCE=.\ConfirmWRQDlg.cpp 1130SOURCE=.\ConfirmWRQDlg.cpp
1137
1138!IF "$(CFG)" == "PumpKIN - Win32 Release"
1139
1140DEP_CPP_CONFIR=\ 1131DEP_CPP_CONFIR=\
1141 ".\ConfirmWRQDlg.h"\ 1132 ".\ConfirmWRQDlg.h"\
1142 ".\pumpkin.h"\ 1133 ".\pumpkin.h"\
1143 ".\PumpKINDlg.h"\ 1134 ".\PumpKINDlg.h"\
1144 ".\shared-code\BellsNWhistles.h"\ 1135 ".\shared-code\BellsNWhistles.h"\
1145 ".\shared-code\kHelpers.h"\ 1136 ".\shared-code\kHelpers.h"\
1146 ".\stdafx.h"\ 1137 ".\stdafx.h"\
1147 1138
1148 1139
1140!IF "$(CFG)" == "PumpKIN - Win32 Release"
1141
1142
1149"$(INTDIR)\ConfirmWRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\ 1143"$(INTDIR)\ConfirmWRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\
1150 "$(INTDIR)\pumpkin.pch" 1144 "$(INTDIR)\pumpkin.pch"
1151 1145
1152 1146
1153!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1147!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1154 1148
1155DEP_CPP_CONFIR=\
1156 ".\ConfirmWRQDlg.h"\
1157 ".\pumpkin.h"\
1158 ".\PumpKINDlg.h"\
1159 ".\shared-code\BellsNWhistles.h"\
1160 ".\shared-code\kHelpers.h"\
1161 ".\stdafx.h"\
1162
1163 1149
1164"$(INTDIR)\ConfirmWRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\ 1150"$(INTDIR)\ConfirmWRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\
1165 "$(INTDIR)\pumpkin.pch" 1151 "$(INTDIR)\pumpkin.pch"
1166 1152
1167"$(INTDIR)\ConfirmWRQDlg.sbr" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\ 1153"$(INTDIR)\ConfirmWRQDlg.sbr" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\
1168 "$(INTDIR)\pumpkin.pch" 1154 "$(INTDIR)\pumpkin.pch"
1169 1155
1170 1156
1171!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1157!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1172 1158
1173DEP_CPP_CONFIR=\
1174 ".\ConfirmWRQDlg.h"\
1175 ".\pumpkin.h"\
1176 ".\PumpKINDlg.h"\
1177 ".\shared-code\BellsNWhistles.h"\
1178 ".\shared-code\kHelpers.h"\
1179 ".\stdafx.h"\
1180
1181 1159
1182"$(INTDIR)\ConfirmWRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\ 1160"$(INTDIR)\ConfirmWRQDlg.obj" : $(SOURCE) $(DEP_CPP_CONFIR) "$(INTDIR)"\
1183 "$(INTDIR)\pumpkin.pch" 1161 "$(INTDIR)\pumpkin.pch"
1184 1162
1185 1163
1186!ENDIF 1164!ENDIF
1187 1165
1188# End Source File 1166# End Source File
1189################################################################################ 1167################################################################################
1190# Begin Source File 1168# Begin Source File
1191 1169
1192SOURCE=.\RequestDlg.cpp 1170SOURCE=.\RequestDlg.cpp
1193DEP_CPP_REQUE=\ 1171DEP_CPP_REQUE=\
1194 ".\pumpkin.h"\ 1172 ".\pumpkin.h"\
1195 ".\RequestDlg.h"\ 1173 ".\RequestDlg.h"\
1196 ".\shared-code\BellsNWhistles.h"\ 1174 ".\shared-code\BellsNWhistles.h"\
1197 ".\shared-code\kHelpers.h"\ 1175 ".\shared-code\kHelpers.h"\
1198 ".\stdafx.h"\ 1176 ".\stdafx.h"\
1199 1177
1200 1178
1201!IF "$(CFG)" == "PumpKIN - Win32 Release" 1179!IF "$(CFG)" == "PumpKIN - Win32 Release"
1202 1180
1203 1181
1204"$(INTDIR)\RequestDlg.obj" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\ 1182"$(INTDIR)\RequestDlg.obj" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\
1205 "$(INTDIR)\pumpkin.pch" 1183 "$(INTDIR)\pumpkin.pch"
1206 1184
1207 1185
1208!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1186!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1209 1187
1210 1188
1211"$(INTDIR)\RequestDlg.obj" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\ 1189"$(INTDIR)\RequestDlg.obj" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\
1212 "$(INTDIR)\pumpkin.pch" 1190 "$(INTDIR)\pumpkin.pch"
1213 1191
1214"$(INTDIR)\RequestDlg.sbr" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\ 1192"$(INTDIR)\RequestDlg.sbr" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\
1215 "$(INTDIR)\pumpkin.pch" 1193 "$(INTDIR)\pumpkin.pch"
1216 1194
1217 1195
1218!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1196!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1219 1197
1220 1198
1221"$(INTDIR)\RequestDlg.obj" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\ 1199"$(INTDIR)\RequestDlg.obj" : $(SOURCE) $(DEP_CPP_REQUE) "$(INTDIR)"\
1222 "$(INTDIR)\pumpkin.pch" 1200 "$(INTDIR)\pumpkin.pch"
1223 1201
1224 1202
1225!ENDIF 1203!ENDIF
1226 1204
1227# End Source File 1205# End Source File
1228################################################################################ 1206################################################################################
1229# Begin Source File 1207# Begin Source File
1230 1208
1231SOURCE=.\Resolver.cpp 1209SOURCE=.\Resolver.cpp
1232
1233!IF "$(CFG)" == "PumpKIN - Win32 Release"
1234
1235DEP_CPP_RESOL=\ 1210DEP_CPP_RESOL=\
1236 ".\pumpkin.h"\ 1211 ".\pumpkin.h"\
1237 ".\PumpKINDlg.h"\ 1212 ".\PumpKINDlg.h"\
1238 ".\Resolver.h"\ 1213 ".\Resolver.h"\
1239 ".\shared-code\BellsNWhistles.h"\ 1214 ".\shared-code\BellsNWhistles.h"\
1240 ".\shared-code\kHelpers.h"\ 1215 ".\shared-code\kHelpers.h"\
1241 ".\stdafx.h"\ 1216 ".\stdafx.h"\
1242 1217
1243 1218
1219!IF "$(CFG)" == "PumpKIN - Win32 Release"
1220
1221
1244"$(INTDIR)\Resolver.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\ 1222"$(INTDIR)\Resolver.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\
1245 "$(INTDIR)\pumpkin.pch" 1223 "$(INTDIR)\pumpkin.pch"
1246 1224
1247 1225
1248!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1226!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1249 1227
1250DEP_CPP_RESOL=\
1251 ".\pumpkin.h"\
1252 ".\PumpKINDlg.h"\
1253 ".\Resolver.h"\
1254 ".\shared-code\BellsNWhistles.h"\
1255 ".\shared-code\kHelpers.h"\
1256 ".\stdafx.h"\
1257
1258 1228
1259"$(INTDIR)\Resolver.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\ 1229"$(INTDIR)\Resolver.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\
1260 "$(INTDIR)\pumpkin.pch" 1230 "$(INTDIR)\pumpkin.pch"
1261 1231
1262"$(INTDIR)\Resolver.sbr" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\ 1232"$(INTDIR)\Resolver.sbr" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\
1263 "$(INTDIR)\pumpkin.pch" 1233 "$(INTDIR)\pumpkin.pch"
1264 1234
1265 1235
1266!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1236!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1267 1237
1268DEP_CPP_RESOL=\
1269 ".\pumpkin.h"\
1270 ".\PumpKINDlg.h"\
1271 ".\Resolver.h"\
1272 ".\shared-code\BellsNWhistles.h"\
1273 ".\shared-code\kHelpers.h"\
1274 ".\stdafx.h"\
1275
1276 1238
1277"$(INTDIR)\Resolver.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\ 1239"$(INTDIR)\Resolver.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"\
1278 "$(INTDIR)\pumpkin.pch" 1240 "$(INTDIR)\pumpkin.pch"
1279 1241
1280 1242
1281!ENDIF 1243!ENDIF
1282 1244
1283# End Source File 1245# End Source File
1284################################################################################ 1246################################################################################
1285# Begin Source File 1247# Begin Source File
1286 1248
1287SOURCE=.\Retrier.cpp 1249SOURCE=.\Retrier.cpp
1288
1289!IF "$(CFG)" == "PumpKIN - Win32 Release"
1290
1291DEP_CPP_RETRI=\ 1250DEP_CPP_RETRI=\
1292 ".\pumpkin.h"\ 1251 ".\pumpkin.h"\
1293 ".\PumpKINDlg.h"\ 1252 ".\PumpKINDlg.h"\
1294 ".\Retrier.h"\ 1253 ".\Retrier.h"\
1295 ".\shared-code\BellsNWhistles.h"\ 1254 ".\shared-code\BellsNWhistles.h"\
1296 ".\shared-code\kHelpers.h"\ 1255 ".\shared-code\kHelpers.h"\
1297 ".\stdafx.h"\ 1256 ".\stdafx.h"\
1298 1257
1299 1258
1259!IF "$(CFG)" == "PumpKIN - Win32 Release"
1260
1261
1300"$(INTDIR)\Retrier.obj" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\ 1262"$(INTDIR)\Retrier.obj" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\
1301 "$(INTDIR)\pumpkin.pch" 1263 "$(INTDIR)\pumpkin.pch"
1302 1264
1303 1265
1304!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1266!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1305 1267
1306DEP_CPP_RETRI=\
1307 ".\pumpkin.h"\
1308 ".\PumpKINDlg.h"\
1309 ".\Retrier.h"\
1310 ".\shared-code\BellsNWhistles.h"\
1311 ".\shared-code\kHelpers.h"\
1312 ".\stdafx.h"\
1313
1314 1268
1315"$(INTDIR)\Retrier.obj" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\ 1269"$(INTDIR)\Retrier.obj" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\
1316 "$(INTDIR)\pumpkin.pch" 1270 "$(INTDIR)\pumpkin.pch"
1317 1271
1318"$(INTDIR)\Retrier.sbr" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\ 1272"$(INTDIR)\Retrier.sbr" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\
1319 "$(INTDIR)\pumpkin.pch" 1273 "$(INTDIR)\pumpkin.pch"
1320 1274
1321 1275
1322!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1276!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1323 1277
1324DEP_CPP_RETRI=\
1325 ".\pumpkin.h"\
1326 ".\PumpKINDlg.h"\
1327 ".\Retrier.h"\
1328 ".\shared-code\BellsNWhistles.h"\
1329 ".\shared-code\kHelpers.h"\
1330 ".\stdafx.h"\
1331
1332 1278
1333"$(INTDIR)\Retrier.obj" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\ 1279"$(INTDIR)\Retrier.obj" : $(SOURCE) $(DEP_CPP_RETRI) "$(INTDIR)"\
1334 "$(INTDIR)\pumpkin.pch" 1280 "$(INTDIR)\pumpkin.pch"
1335 1281
1336 1282
1337!ENDIF 1283!ENDIF
1338 1284
1339# End Source File 1285# End Source File
1340################################################################################ 1286################################################################################
1341# Begin Source File 1287# Begin Source File
1342 1288
1343SOURCE=.\Trayer.cpp 1289SOURCE=.\Trayer.cpp
1344
1345!IF "$(CFG)" == "PumpKIN - Win32 Release"
1346
1347DEP_CPP_TRAYE=\ 1290DEP_CPP_TRAYE=\
1348 ".\pumpkin.h"\ 1291 ".\pumpkin.h"\
1349 ".\PumpKINDlg.h"\ 1292 ".\PumpKINDlg.h"\
1350 ".\shared-code\BellsNWhistles.h"\ 1293 ".\shared-code\BellsNWhistles.h"\
1351 ".\shared-code\kHelpers.h"\ 1294 ".\shared-code\kHelpers.h"\
1352 ".\stdafx.h"\ 1295 ".\stdafx.h"\
1353 ".\Trayer.h"\ 1296 ".\Trayer.h"\
1354 1297
1355 1298
1299!IF "$(CFG)" == "PumpKIN - Win32 Release"
1300
1301
1356"$(INTDIR)\Trayer.obj" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\ 1302"$(INTDIR)\Trayer.obj" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\
1357 "$(INTDIR)\pumpkin.pch" 1303 "$(INTDIR)\pumpkin.pch"
1358 1304
1359 1305
1360!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1306!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1361 1307
1362DEP_CPP_TRAYE=\
1363 ".\pumpkin.h"\
1364 ".\PumpKINDlg.h"\
1365 ".\shared-code\BellsNWhistles.h"\
1366 ".\shared-code\kHelpers.h"\
1367 ".\stdafx.h"\
1368 ".\Trayer.h"\
1369
1370 1308
1371"$(INTDIR)\Trayer.obj" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\ 1309"$(INTDIR)\Trayer.obj" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\
1372 "$(INTDIR)\pumpkin.pch" 1310 "$(INTDIR)\pumpkin.pch"
1373 1311
1374"$(INTDIR)\Trayer.sbr" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\ 1312"$(INTDIR)\Trayer.sbr" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\
1375 "$(INTDIR)\pumpkin.pch" 1313 "$(INTDIR)\pumpkin.pch"
1376 1314
1377 1315
1378!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1316!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1379 1317
1380DEP_CPP_TRAYE=\
1381 ".\pumpkin.h"\
1382 ".\PumpKINDlg.h"\
1383 ".\shared-code\BellsNWhistles.h"\
1384 ".\shared-code\kHelpers.h"\
1385 ".\stdafx.h"\
1386 ".\Trayer.h"\
1387
1388 1318
1389"$(INTDIR)\Trayer.obj" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\ 1319"$(INTDIR)\Trayer.obj" : $(SOURCE) $(DEP_CPP_TRAYE) "$(INTDIR)"\
1390 "$(INTDIR)\pumpkin.pch" 1320 "$(INTDIR)\pumpkin.pch"
1391 1321
1392 1322
1393!ENDIF 1323!ENDIF
1394 1324
1395# End Source File 1325# End Source File
1396################################################################################ 1326################################################################################
1397# Begin Source File 1327# Begin Source File
1398 1328
1399SOURCE=.\help\pumpkin.cnt 1329SOURCE=.\help\pumpkin.cnt
1400 1330
1401!IF "$(CFG)" == "PumpKIN - Win32 Release" 1331!IF "$(CFG)" == "PumpKIN - Win32 Release"
1402 1332
1403# PROP Exclude_From_Build 1 1333# PROP Exclude_From_Build 1
1404 1334
1405!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1335!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1406 1336
1407# PROP Exclude_From_Build 1 1337# PROP Exclude_From_Build 1
1408 1338
1409!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1339!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1410 1340
1411# PROP Exclude_From_Build 1 1341# PROP Exclude_From_Build 1
1412 1342
1413!ENDIF 1343!ENDIF
1414 1344
1415# End Source File 1345# End Source File
1416################################################################################ 1346################################################################################
1417# Begin Source File 1347# Begin Source File
1418 1348
1419SOURCE=.\PropsSounds.cpp 1349SOURCE=.\PropsSounds.cpp
1420
1421!IF "$(CFG)" == "PumpKIN - Win32 Release"
1422
1423DEP_CPP_PROPSS=\ 1350DEP_CPP_PROPSS=\
1424 ".\PropsSounds.h"\ 1351 ".\PropsSounds.h"\
1425 ".\pumpkin.h"\ 1352 ".\pumpkin.h"\
1426 ".\PumpKINDlg.h"\ 1353 ".\PumpKINDlg.h"\
1427 ".\shared-code\BellsNWhistles.h"\ 1354 ".\shared-code\BellsNWhistles.h"\
1428 ".\shared-code\kHelpers.h"\ 1355 ".\shared-code\kHelpers.h"\
1429 ".\stdafx.h"\ 1356 ".\stdafx.h"\
1430 1357
1431 1358
1359!IF "$(CFG)" == "PumpKIN - Win32 Release"
1360
1361
1432"$(INTDIR)\PropsSounds.obj" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\ 1362"$(INTDIR)\PropsSounds.obj" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\
1433 "$(INTDIR)\pumpkin.pch" 1363 "$(INTDIR)\pumpkin.pch"
1434 1364
1435 1365
1436!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1366!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1437 1367
1438DEP_CPP_PROPSS=\
1439 ".\PropsSounds.h"\
1440 ".\pumpkin.h"\
1441 ".\PumpKINDlg.h"\
1442 ".\shared-code\BellsNWhistles.h"\
1443 ".\shared-code\kHelpers.h"\
1444 ".\stdafx.h"\
1445
1446 1368
1447"$(INTDIR)\PropsSounds.obj" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\ 1369"$(INTDIR)\PropsSounds.obj" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\
1448 "$(INTDIR)\pumpkin.pch" 1370 "$(INTDIR)\pumpkin.pch"
1449 1371
1450"$(INTDIR)\PropsSounds.sbr" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\ 1372"$(INTDIR)\PropsSounds.sbr" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\
1451 "$(INTDIR)\pumpkin.pch" 1373 "$(INTDIR)\pumpkin.pch"
1452 1374
1453 1375
1454!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1376!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1455 1377
1456DEP_CPP_PROPSS=\
1457 ".\PropsSounds.h"\
1458 ".\pumpkin.h"\
1459 ".\PumpKINDlg.h"\
1460 ".\shared-code\BellsNWhistles.h"\
1461 ".\shared-code\kHelpers.h"\
1462 ".\stdafx.h"\
1463
1464 1378
1465"$(INTDIR)\PropsSounds.obj" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\ 1379"$(INTDIR)\PropsSounds.obj" : $(SOURCE) $(DEP_CPP_PROPSS) "$(INTDIR)"\
1466 "$(INTDIR)\pumpkin.pch" 1380 "$(INTDIR)\pumpkin.pch"
1467 1381
1468 1382
1469!ENDIF 1383!ENDIF
1470 1384
1471# End Source File 1385# End Source File
1472################################################################################ 1386################################################################################
1473# Begin Source File 1387# Begin Source File
1474 1388
1475SOURCE=.\PropsACL.cpp 1389SOURCE=.\PropsACL.cpp
1476DEP_CPP_PROPSA=\ 1390DEP_CPP_PROPSA=\
1477 ".\ACLTargetCombo.h"\ 1391 ".\ACLTargetCombo.h"\
1478 ".\PropsACL.h"\ 1392 ".\PropsACL.h"\
1479 ".\pumpkin.h"\ 1393 ".\pumpkin.h"\
1480 ".\PumpKINDlg.h"\ 1394 ".\PumpKINDlg.h"\
1481 ".\shared-code\BellsNWhistles.h"\ 1395 ".\shared-code\BellsNWhistles.h"\
1482 ".\shared-code\kHelpers.h"\ 1396 ".\shared-code\kHelpers.h"\
1483 ".\stdafx.h"\ 1397 ".\stdafx.h"\
1484 1398
1485 1399
1486!IF "$(CFG)" == "PumpKIN - Win32 Release" 1400!IF "$(CFG)" == "PumpKIN - Win32 Release"
1487 1401
1488 1402
1489"$(INTDIR)\PropsACL.obj" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\ 1403"$(INTDIR)\PropsACL.obj" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\
1490 "$(INTDIR)\pumpkin.pch" 1404 "$(INTDIR)\pumpkin.pch"
1491 1405
1492 1406
1493!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1407!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1494 1408
1495 1409
1496"$(INTDIR)\PropsACL.obj" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\ 1410"$(INTDIR)\PropsACL.obj" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\
1497 "$(INTDIR)\pumpkin.pch" 1411 "$(INTDIR)\pumpkin.pch"
1498 1412
1499"$(INTDIR)\PropsACL.sbr" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\ 1413"$(INTDIR)\PropsACL.sbr" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\
1500 "$(INTDIR)\pumpkin.pch" 1414 "$(INTDIR)\pumpkin.pch"
1501 1415
1502 1416
1503!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1417!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1504 1418
1505 1419
1506"$(INTDIR)\PropsACL.obj" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\ 1420"$(INTDIR)\PropsACL.obj" : $(SOURCE) $(DEP_CPP_PROPSA) "$(INTDIR)"\
1507 "$(INTDIR)\pumpkin.pch" 1421 "$(INTDIR)\pumpkin.pch"
1508 1422
1509 1423
1510!ENDIF 1424!ENDIF
1511 1425
1512# End Source File 1426# End Source File
1513################################################################################ 1427################################################################################
1514# Begin Source File 1428# Begin Source File
1515 1429
1516SOURCE=.\ACLTargetCombo.cpp 1430SOURCE=.\ACLTargetCombo.cpp
1517
1518!IF "$(CFG)" == "PumpKIN - Win32 Release"
1519
1520DEP_CPP_ACLTA=\ 1431DEP_CPP_ACLTA=\
1521 ".\ACLTargetCombo.h"\ 1432 ".\ACLTargetCombo.h"\
1522 ".\pumpkin.h"\ 1433 ".\pumpkin.h"\
1523 ".\PumpKINDlg.h"\ 1434 ".\PumpKINDlg.h"\
1524 ".\shared-code\BellsNWhistles.h"\ 1435 ".\shared-code\BellsNWhistles.h"\
1525 ".\shared-code\kHelpers.h"\ 1436 ".\shared-code\kHelpers.h"\
1526 ".\stdafx.h"\ 1437 ".\stdafx.h"\
1527 1438
1528 1439
1440!IF "$(CFG)" == "PumpKIN - Win32 Release"
1441
1442
1529"$(INTDIR)\ACLTargetCombo.obj" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\ 1443"$(INTDIR)\ACLTargetCombo.obj" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\
1530 "$(INTDIR)\pumpkin.pch" 1444 "$(INTDIR)\pumpkin.pch"
1531 1445
1532 1446
1533!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug" 1447!ELSEIF "$(CFG)" == "PumpKIN - Win32 Debug"
1534 1448
1535DEP_CPP_ACLTA=\
1536 ".\ACLTargetCombo.h"\
1537 ".\pumpkin.h"\
1538 ".\PumpKINDlg.h"\
1539 ".\shared-code\BellsNWhistles.h"\
1540 ".\shared-code\kHelpers.h"\
1541 ".\stdafx.h"\
1542
1543 1449
1544"$(INTDIR)\ACLTargetCombo.obj" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\ 1450"$(INTDIR)\ACLTargetCombo.obj" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\
1545 "$(INTDIR)\pumpkin.pch" 1451 "$(INTDIR)\pumpkin.pch"
1546 1452
1547"$(INTDIR)\ACLTargetCombo.sbr" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\ 1453"$(INTDIR)\ACLTargetCombo.sbr" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\
1548 "$(INTDIR)\pumpkin.pch" 1454 "$(INTDIR)\pumpkin.pch"
1549 1455
1550 1456
1551!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static" 1457!ELSEIF "$(CFG)" == "PumpKIN - Win32 Static"
1552 1458
1553DEP_CPP_ACLTA=\
1554 ".\ACLTargetCombo.h"\
1555 ".\pumpkin.h"\
1556 ".\PumpKINDlg.h"\
1557 ".\shared-code\BellsNWhistles.h"\
1558 ".\shared-code\kHelpers.h"\
1559 ".\stdafx.h"\
1560
1561 1459
1562"$(INTDIR)\ACLTargetCombo.obj" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\ 1460"$(INTDIR)\ACLTargetCombo.obj" : $(SOURCE) $(DEP_CPP_ACLTA) "$(INTDIR)"\
1563 "$(INTDIR)\pumpkin.pch" 1461 "$(INTDIR)\pumpkin.pch"
1564 1462
1565 1463
1566!ENDIF 1464!ENDIF
1567 1465
1568# End Source File 1466# End Source File
1569# End Target 1467# End Target
1570################################################################################ 1468################################################################################
1571# Begin Target 1469# Begin Target
1572 1470
1573# Name "Install - Win32 Debug" 1471# Name "Install - Win32 Debug"
1574# Name "Install - Win32 Pure" 1472# Name "Install - Win32 Pure"
1575# Name "Install - Win32 Static" 1473# Name "Install - Win32 Static"
1576# Name "Install - Win32 Canned" 1474# Name "Install - Win32 Canned"
1577 1475
1578!IF "$(CFG)" == "Install - Win32 Debug" 1476!IF "$(CFG)" == "Install - Win32 Debug"
1579 1477
1580!ELSEIF "$(CFG)" == "Install - Win32 Pure" 1478!ELSEIF "$(CFG)" == "Install - Win32 Pure"
1581 1479
1582!ELSEIF "$(CFG)" == "Install - Win32 Static" 1480!ELSEIF "$(CFG)" == "Install - Win32 Static"
1583 1481
1584!ELSEIF "$(CFG)" == "Install - Win32 Canned" 1482!ELSEIF "$(CFG)" == "Install - Win32 Canned"
1585 1483
1586!ENDIF 1484!ENDIF
1587 1485
1588################################################################################ 1486################################################################################
1589# Begin Source File 1487# Begin Source File
1590 1488
1591SOURCE=.\Install\Install.rc 1489SOURCE=.\Install\Install.rc
1592DEP_RSC_INSTA=\ 1490DEP_RSC_INSTA=\
1593 ".\Install\Custom.rch"\ 1491 ".\Install\Custom.rch"\
1594 ".\shared-data\install-icon.ico"\ 1492 ".\shared-data\install-icon.ico"\
1595 1493
1596 1494
1597!IF "$(CFG)" == "Install - Win32 Debug" 1495!IF "$(CFG)" == "Install - Win32 Debug"
1598 1496
1599 1497
1600"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)" 1498"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)"
1601 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "_DEBUG"\ 1499 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "_DEBUG"\
1602 $(SOURCE) 1500 $(SOURCE)
1603 1501
1604 1502
1605!ELSEIF "$(CFG)" == "Install - Win32 Pure" 1503!ELSEIF "$(CFG)" == "Install - Win32 Pure"
1606 1504
1607 1505
1608"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)" 1506"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)"
1609 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "NDEBUG"\ 1507 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "NDEBUG"\
1610 $(SOURCE) 1508 $(SOURCE)
1611 1509
1612 1510
1613!ELSEIF "$(CFG)" == "Install - Win32 Static" 1511!ELSEIF "$(CFG)" == "Install - Win32 Static"
1614 1512
1615 1513
1616"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)" 1514"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)"
1617 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "NDEBUG" /d\ 1515 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "NDEBUG" /d\
1618 "STATI_K" $(SOURCE) 1516 "STATI_K" $(SOURCE)
1619 1517
1620 1518
1621!ELSEIF "$(CFG)" == "Install - Win32 Canned" 1519!ELSEIF "$(CFG)" == "Install - Win32 Canned"
1622 1520
1623 1521
1624"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)" 1522"$(INTDIR)\Install.res" : $(SOURCE) $(DEP_RSC_INSTA) "$(INTDIR)"
1625 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "NDEBUG" /d\ 1523 $(RSC) /l 0x409 /fo"$(INTDIR)/Install.res" /i "Install" /d "NDEBUG" /d\
1626 "K_ANNED" $(SOURCE) 1524 "K_ANNED" $(SOURCE)
1627 1525
1628 1526
1629!ENDIF 1527!ENDIF
1630 1528
1631# End Source File 1529# End Source File
1632################################################################################ 1530################################################################################
1633# Begin Source File 1531# Begin Source File
1634 1532
1635SOURCE=.\Install\install.cpp 1533SOURCE=.\Install\install.cpp
1636DEP_CPP_INSTAL=\ 1534DEP_CPP_INSTAL=\
1637 ".\shared-code\install.h"\ 1535 ".\shared-code\install.h"\
1638 1536
1639 1537
1640!IF "$(CFG)" == "Install - Win32 Debug" 1538!IF "$(CFG)" == "Install - Win32 Debug"
1641 1539
1642 1540
1643"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)" 1541"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)"
1644 $(CPP) $(CPP_PROJ) $(SOURCE) 1542 $(CPP) $(CPP_PROJ) $(SOURCE)
1645 1543
1646 1544
1647!ELSEIF "$(CFG)" == "Install - Win32 Pure" 1545!ELSEIF "$(CFG)" == "Install - Win32 Pure"
1648 1546
1649 1547
1650BuildCmds= \ 1548BuildCmds= \
1651 $(CPP) $(CPP_PROJ) $(SOURCE) \ 1549 $(CPP) $(CPP_PROJ) $(SOURCE) \
1652 1550
1653 1551
1654"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)" 1552"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)"
1655 $(BuildCmds) 1553 $(BuildCmds)
1656 1554
1657"$(INTDIR)\install.sbr" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)" 1555"$(INTDIR)\install.sbr" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)"
1658 $(BuildCmds) 1556 $(BuildCmds)
1659 1557
1660!ELSEIF "$(CFG)" == "Install - Win32 Static" 1558!ELSEIF "$(CFG)" == "Install - Win32 Static"
1661 1559
1662 1560
1663"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)" 1561"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)"
1664 $(CPP) $(CPP_PROJ) $(SOURCE) 1562 $(CPP) $(CPP_PROJ) $(SOURCE)
1665 1563
1666 1564
1667!ELSEIF "$(CFG)" == "Install - Win32 Canned" 1565!ELSEIF "$(CFG)" == "Install - Win32 Canned"
1668 1566
1669 1567
1670"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)" 1568"$(INTDIR)\install.obj" : $(SOURCE) $(DEP_CPP_INSTAL) "$(INTDIR)"
1671 $(CPP) $(CPP_PROJ) $(SOURCE) 1569 $(CPP) $(CPP_PROJ) $(SOURCE)
1672 1570
1673 1571
1674!ENDIF 1572!ENDIF
1675 1573
1676# End Source File 1574# End Source File
1677# End Target 1575# End Target
1678# End Project 1576# End Project
1679################################################################################ 1577################################################################################
1680################################################################################ 1578################################################################################
1681# Section PumpKIN : {4FD78B34-1FD7-11D0-A9FB-444553540000} 1579# Section PumpKIN : {4FD78B34-1FD7-11D0-A9FB-444553540000}
1682 # 2:11:CPumpKINDlg:1 1580 # 2:11:CPumpKINDlg:1
1683 # 2:11:CRequestDlg:1 1581 # 2:11:CRequestDlg:1
1684# End Section 1582# End Section
1685################################################################################ 1583################################################################################