- Timestamp:
- 06/03/00 09:45:59 (9 years ago)
- Location:
- trunk/rms/src
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/rms/src/rms.cpp
r1865 r1902 35 35 const unsigned short CODE_USERxINFO = 201; 36 36 const unsigned short CODE_STATUS = 202; 37 const unsigned short CODE_ EVENTxSUCCESS = 203;37 const unsigned short CODE_RESULTxSUCCESS = 203; 38 38 const unsigned short CODE_LISTxUSER = 204; 39 39 const unsigned short CODE_LISTxGROUP = 205; … … 63 63 const unsigned short STATE_ENTERxURLxDESCRIPTION = 5; 64 64 const unsigned short STATE_ENTERxURL = 6; 65 const unsigned short STATE_ENTERxAUTOxRESPONSE = 7; 65 66 66 67 #define NEXT_WORD(s) while (*s != '\0' && *s == ' ') s++; … … 73 74 }; 74 75 75 static const unsigned short NUM_COMMANDS = 1 0;76 static const unsigned short NUM_COMMANDS = 11; 76 77 static struct Command commands[NUM_COMMANDS] = 77 78 { … … 95 96 "Dump log messages { <log types> }." }, 96 97 { "VIEW", &CRMSClient::Process_VIEW, 97 "View event { <uin> }." } 98 "View event { <uin> } (not yet implemented)." }, 99 { "AR", &CRMSClient::Process_AR, 100 "Set your (or a user custom) auto response { [ <uin> ] }." } 98 101 }; 99 102 … … 357 360 m_nState = STATE_UIN; 358 361 m_nLogTypes = 0; 362 data_line_pos = 0; 359 363 } 360 364 … … 390 394 case EVENT_ACKED: 391 395 case EVENT_SUCCESS: 392 nCode = CODE_ EVENTxSUCCESS;396 nCode = CODE_RESULTxSUCCESS; 393 397 szr = "done"; 394 398 break; … … 445 449 data_line[data_line_pos] = '\0'; 446 450 in++; 447 448 451 if (StateMachine() == -1) return -1; 449 452 … … 520 523 return Process_URL_url(); 521 524 } 525 case STATE_ENTERxAUTOxRESPONSE: 526 { 527 if (AddLineToText()) 528 return Process_AR_text(); 529 break; 530 } 522 531 } 523 532 return 0; … … 626 635 fflush(fs); 627 636 licqDaemon->icqLogoff(); 628 fprintf(fs, "%d [0] Event done.\n", CODE_ EVENTxSUCCESS);637 fprintf(fs, "%d [0] Event done.\n", CODE_RESULTxSUCCESS); 629 638 return fflush(fs); 630 639 } … … 793 802 * CODE_COMMANDxSTART 794 803 * < ...time... > 795 * CODE_ EVENTxSUCCESS | CODE_EVENTxTIMEDOUT | CODE_EVENTxERROR804 * CODE_RESULTxSUCCESS | CODE_EVENTxTIMEDOUT | CODE_EVENTxERROR 796 805 *-------------------------------------------------------------------------*/ 797 806 int CRMSClient::Process_MESSAGE() … … 847 856 * CODE_COMMANDxSTART 848 857 * < ...time... > 849 * CODE_ EVENTxSUCCESS | CODE_EVENTxTIMEDOUT | CODE_EVENTxERROR858 * CODE_RESULTxSUCCESS | CODE_EVENTxTIMEDOUT | CODE_EVENTxERROR 850 859 *-------------------------------------------------------------------------*/ 851 860 int CRMSClient::Process_URL() … … 895 904 return fflush(fs); 896 905 } 906 907 908 /*--------------------------------------------------------------------------- 909 * CRMSClient::Process_AR 910 * 911 * Command: 912 * AR [ <uin> ] 913 * 914 * Response: 915 * CODE_ENTERxTEXT | CODE_INVALIDxUIN 916 * At which point the auto response should be entered line by line and 917 * terminated by entering a "." on a line by itself. 918 * CODE_RESULTxSUCCESS 919 *-------------------------------------------------------------------------*/ 920 int CRMSClient::Process_AR() 921 { 922 /* 923 if (data_arg[0] == '\0') 924 { 925 ICQOwner *o = gUserManager.FetchOwner(LOCK_R); 926 // print... 927 gUserManager.DropOwner(); 928 return fflush(fs); 929 } 930 */ 931 unsigned long nUin = atol(data_arg); 932 933 if (nUin != 0 && !gUserManager.IsOnList(nUin)) 934 { 935 fprintf(fs, "%d Invalid UIN.\n", CODE_INVALIDxUSER); 936 return fflush(fs); 937 } 938 939 fprintf(fs, "%d Enter %sauto response, terminate with a . on a line by itself:\n", 940 CODE_ENTERxTEXT, nUin == 0 ? "" : "custom " ); 941 942 m_nUin = nUin; 943 m_szText[0] = '\0'; 944 m_nTextPos = 0; 945 946 m_nState = STATE_ENTERxAUTOxRESPONSE; 947 return fflush(fs); 948 } 949 950 int CRMSClient::Process_AR_text() 951 { 952 if (m_nUin == 0) 953 { 954 ICQOwner *o = gUserManager.FetchOwner(LOCK_W); 955 o->SetAutoResponse(m_szText); 956 gUserManager.DropOwner(); 957 } 958 else 959 { 960 ICQUser *u = gUserManager.FetchUser(m_nUin, LOCK_W); 961 u->SetCustomAutoResponse(m_szText); 962 gUserManager.DropUser(u); 963 } 964 965 fprintf(fs, "%d Auto response saved.\n", CODE_RESULTxSUCCESS); 966 m_nState = STATE_COMMAND; 967 return fflush(fs); 968 } 969 970 897 971 898 972 -
trunk/rms/src/rms.h
r1865 r1902 74 74 int Process_LOG(); 75 75 int Process_VIEW(); 76 int Process_AR(); 76 77 77 78 protected: … … 99 100 int Process_URL_url(); 100 101 int Process_URL_text(); 102 int Process_AR_text(); 101 103 102 104
