00001 
00002 #ifndef  __JBXL_EXTEND_TOOLS_H_
00003 #define  __JBXL_EXTEND_TOOLS_H_
00004  
00013 #include "tlist.h"
00014 #include "network.h"
00015 
00016 #ifndef WIN32
00017     #include <dirent.h>
00018 #endif
00019 
00020 
00021 
00022 #define  JBXL_FIO_ANY          0x0000
00023 #define  JBXL_FIO_IPADDRESS    0x0001
00024 #define  JBXL_FIO_PRIV_KEY     0x000a
00025 #define  JBXL_FIO_PUB_KEY      0x000b
00026 #define  JBXL_FIO_SPKI         0x000c
00027 
00028 #define  JBXL_FIO_ORIGINAL     0x0000      // 本来のデータ形式.曖昧!!
00029 #define  JBXL_FIO_BIN          0x0000
00030 #define  JBXL_FIO_DER          0x0000
00031 #define  JBXL_FIO_BASE64       0x0010
00032 #define  JBXL_FIO_STRING       0x0030
00033 #define  JBXL_FIO_AES          0x00a0
00034 #define  JBXL_FIO_DES          0x00b0
00035 #define  JBXL_FIO_3DES         0x00c0
00036 
00037 
00039 
00040 
00041 
00042 int     udp_recv_Buffer_sockaddr_in(int sock, Buffer* buf, struct sockaddr_in* sv);     
00043 int     udp_send_Buffer_sockaddr_in(int sock, Buffer* buf, struct sockaddr_in* sv);     
00044 int     udp_send_sBuffer_sockaddr_in(int sock, Buffer* buf, struct sockaddr_in* sv);    
00045 int     udp_recv_Buffer_wait_sockaddr_in(int sock, Buffer* buf, struct sockaddr_in* sv_addr, int tm);   
00046 
00047 struct  sockaddr_in  get_sockaddr_in_Buffer(Buffer buf);                                
00048 
00049 
00050 
00051 int     udp_recv_Buffer(int sock, Buffer* buf, struct addrinfo* sv);                    
00052 int     udp_send_Buffer(int sock, Buffer* buf, struct addrinfo* sv);                    
00053 int     tcp_recv_Buffer(int sock, Buffer* buf);                                         
00054 int     tcp_send_Buffer(int sock, Buffer* buf);                                         
00055 
00056 int     udp_recv_Buffer_wait(int sock, Buffer* buf, struct addrinfo* sv_addr, int tm);  
00057 int     tcp_recv_Buffer_wait(int sock, Buffer* buf, int tm);                            
00058 
00059 int     tcp_recv_Buffer_tosize     (int sock, Buffer* b, Buffer* m, int sz);            
00060 int     tcp_recv_Buffer_tosize_wait(int sock, Buffer* b, Buffer* m, int sz, int tm);    
00061 
00062 int     udp_send_sBuffer   (int sock, Buffer* buf, struct addrinfo* sv);                
00063 int     tcp_send_sBuffer   (int sock, Buffer* buf);                                     
00064 int     tcp_send_sBufferln (int sock, Buffer* buf);                                     
00065 
00066 int     tcp_recv_mstream_Buffer(int sock, Buffer* buf, mstream* sb, int tm);            
00067 int     tcp_recv_lines_Buffer(int sock, Buffer* buf, int tm);                           
00068 
00069 
00070 
00071 Buffer  comp_hostport(char* ipaddr, unsigned short port);                               
00072 int     decomp_hostport(Buffer buf, Buffer* ipaddr, unsigned short* port);              
00073 
00074 Buffer  comp_url(char* protocol, char* host, unsigned short port, char* dir);           
00075 int     decomp_url(Buffer url, Buffer* srvurl, Buffer* protocol, Buffer* srvfqdn, unsigned short* sport, Buffer* srvdir);   
00076 
00077 Buffer  make_form_urlenc(const char* key, const char* val);                             
00078 void    add_form_urlenc(Buffer* buf, const char* key, const char* val);                 
00079 
00080 #define make_hostport(h, p)     comp_hostport((h), (p))                                 
00081 #define make_url(t, h, p, d)    comp_url((t), (h), (p), (d))                            
00082 
00083 
00084 
00086 
00087 int     save_tagged_Buffer(Buffer buf, FILE* fp, unsigned int mode, int prfm);  
00088 Buffer  read_tagged_Buffer(FILE* fp, unsigned int* mode);                       
00089 Buffer  fgets_mstream_Buffer(Buffer buf, mstream* sb);                          
00090 
00091 
00093 
00094 int     get_runlength_byte(unsigned char* buf, int len, int pos);   
00095 Buffer  decode_runlength  (unsigned char* buf, int len, int sz);    
00096 Buffer  encode_runlength  (unsigned char* buf, int len);            
00097 
00098 #define get_runlength_byte_Buffer(b, s)     get_runlength_byte((b).buf, (b).vldsz, (s))     
00099 #define decode_runlength_Buffer(b, s)       decode_runlength((b).buf, (b).vldsz, (s))       
00100 #define encode_runlength_Buffer(b)          encode_runlength((b).buf, (b).vldsz)            
00101 
00102 
00104 
00105 
00106 int      put_Buffer_ringBuffer(ringBuffer* rb, Buffer* buf);        
00107 Buffer*  get_Buffer_ringBuffer(ringBuffer* rb, int sz);             
00108 
00109 
00111 
00112 Buffer* get_Buffer_dim_tList(tList* lp);                
00113 Buffer* get_Buffer_dim_tList_value(tList* lp);          
00114 
00115 Buffer* awk_Buffer_dim (Buffer  buf, char cc);          
00116 Buffer* cawk_Buffer_dim(Buffer  buf, char cc);          
00117 Buffer  join_Buffer_dim(Buffer* dim, const char* deli); 
00118 
00119 Buffer* decompline_Buffer_dim(Buffer buf, int mode);    
00120 
00121 void    del_Buffer_dim(Buffer** buf);                   
00122 
00123 
00125 
00126 tList*  get_tList_line_Buffer(Buffer buf, int n);           
00127 tList*  get_tList_seq_data_Buffer(Buffer buf, int* ptr);    
00128 
00129 
00131 
00132 int     set_item_tList(tList* list, char* key, int no, char deli, int nm, char* value);     
00133 int     replace_item_tList(tList* list, char* key, int no, char deli, int nm, char* srcval, char* value); 
00134 int     set_item_tList_node(tList* list, char deli, int nm, char* value);                   
00135 int     replace_item_tList_node(tList* list, char deli, int nm, char* srcval, char* value); 
00136 
00137 
00139 
00140 tList*  get_dir_files(const char* dirn);                                
00141 tList*  get_dir_files_rcsv(const char* dirn);                           
00142 
00143 void    del_file_extension_Buffer(Buffer* path);                        
00144 void    change_file_extension_Buffer(Buffer* path, const char* ext);    
00145 
00146 
00148 
00149 char*   get_resource_path(char* name, tList* lp);                       
00150 tList*  add_resource_list(const char* path, int keylen, tList* list, tList* extn);  
00151 
00152 
00153 #endif  // __JBXL_EXTEND_TOOLS_H_
00154