|
|
| version 1.2.2.13, 2010/12/07 15:09:02 | version 1.3.2.1, 2011/03/16 17:43:07 |
|---|---|
| Line 216 inline int cli_GetErrno(); | Line 216 inline int cli_GetErrno(); |
| inline const char *cli_GetError(); | inline const char *cli_GetError(); |
| /* TELNET support for CLI */ | |
| #define MAX_SUB_LEN 255 | |
| struct telnetAttrs { | |
| unsigned char ta_cmd; | |
| unsigned char ta_opt; | |
| unsigned char ta_sublen; | |
| unsigned char ta_sub[MAX_SUB_LEN]; | |
| }; | |
| #ifndef NDEBUG | |
| /* | |
| * cli_telnetDumpAttrs() Telnet debug attributes list, if NDEBUG defined not include | |
| * @attr = attributes list | |
| * @nAttr = attributes list size | |
| * return: none | |
| */ | |
| void cli_telnetDumpAttrs(struct telnetAttrs *attr, int nAttr); | |
| #else | |
| extern void cli_telnetDumpAttrs(struct telnetAttrs *, int); | |
| #endif | |
| /* | |
| * cli_telnetRecv() Telnet receive commands, negotiate with telnet peer | |
| * @sock = socket for communication | |
| * @attr = received attributes list, must be free after use, but if NULL receive in binary mode | |
| * @nAttr = received attributes list size, if is NULL receive in binary mode | |
| * @pdata = received data in supplied buffer | |
| * @datLen = buffer pdata size | |
| * return: 0 not present data; -1 error:: can`t read; -2 timeout; -3 EOF; >0 number of received bytes | |
| */ | |
| int cli_telnetRecv(int sock, struct telnetAttrs **attr, int *nAttr, void *data, int datLen); | |
| /* | |
| * cli_telnetSend() Telnet send commands, negotiate with telnet peer | |
| * @sock = socket for communication | |
| * @attr = send attributes list | |
| * @nAttr = send attributes list size | |
| * @data = data for send | |
| * @datLen = data size | |
| * @Term = Terminate with GA (Go Ahead), 1 send after data GA command | |
| * return: 0 not sended commands; -1 error:: can`t send; >0 number of sended bytes | |
| */ | |
| int cli_telnetSend(int sock, struct telnetAttrs *attr, int nAttr, void *data, int datLen, int Term); | |
| /* | |
| * cli_telnet_Get_SubOpt() Telnet get sub option function | |
| * @attr = input attribute | |
| * @code = sub-option code for opt | |
| * @data = sub-option data | |
| * @datLen = data size set max size in input, output return copy size | |
| * return: -1 can`t get option; !=-1 option code | |
| */ | |
| inline int cli_telnet_Get_SubOpt(struct telnetAttrs *attr, unsigned char *code, | |
| void *data, unsigned char *datLen); | |
| /* | |
| * cli_telnet_Set_SubOpt() Telnet set sub option function | |
| * @attr = output attribute | |
| * @opt = attribute option | |
| * @code = sub-option code for opt, if 0xff not specified | |
| * @data = sub-option data, if NULL not specified | |
| * @datLen = data size, if 0 not specified | |
| * return: -1 can`t set sub-otion; 0 ok | |
| */ | |
| inline int cli_telnet_Set_SubOpt(struct telnetAttrs *attr, unsigned char opt, unsigned char code, | |
| void *data, unsigned char datLen); | |
| /* | |
| * cli_telnet_GetCmd() Telnet get command | |
| * @attr = input attribute | |
| * return: -1 can`t get command; !=-1 command <<24 return sublen, <<8 return option, <<0 command | |
| */ | |
| inline unsigned int cli_telnet_GetCmd(struct telnetAttrs *attr); | |
| /* | |
| * cli_telnet_SetCmd() Telnet set command | |
| * @attr = input attribute | |
| * @cmd = command | |
| * @opt = option, if 0xff not specified | |
| * @arg1 = sub-option code, if 0xff not specified | |
| * @arg2 = sub-option data, if NULL not specified | |
| * @arg3 = sub-option data size, if 0 not specified data | |
| * return: -1 can`t set command; !=-1 ok | |
| */ | |
| inline int cli_telnet_SetCmd(struct telnetAttrs *attr, unsigned char cmd, unsigned char opt, ...); | |
| /* | |
| * cli_telnet_Answer() Automatic generate commands answer to send from telnet | |
| * @caps = Array of capability options | |
| * @nCaps = number of capability options | |
| * @attr = input attribute | |
| * @nAttr = number of input attributes | |
| * @ans = output answered attributes, must be free() after use | |
| * @Ans = number of output answered attributes | |
| * return: -1 can`t answer; !=-1 ok | |
| */ | |
| int cli_telnet_Answer(unsigned char *caps, int nCaps, struct telnetAttrs *attr, int nAttr, | |
| struct telnetAttrs **ans, int *Ans); | |
| // Add capability option, x = 0 false, 1 true | |
| #define ADD_CAPS(opt, x) ((opt) | (x) ? 0x80 : 0) | |
| // Is supported this option ... | |
| #define SUP_CAPS(caps) ((caps) & 0x80) | |
| // get capability option | |
| #define CAP(caps) ((caps) & 0x7f) | |
| /* CLI Helper functions */ | /* CLI Helper functions */ |
| /* | /* |