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