-
Notifications
You must be signed in to change notification settings - Fork 528
/
HISTORY
508 lines (430 loc) · 18.3 KB
/
HISTORY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
Version 1.76 2024-11-01
* get_mounted_filesystems act as program df
* add function get_statfs_by_path
* add function is_rotational_device_by_path
Version 1.75 2024-09-22
* task init callback support extra argument
* connection pool performance optimization
Version 1.74 2024-05-18
* add functions: get_log_level and get_log_level_caption
* adapt to FreeBSD 13
Version 1.73 2024-03-05
* add macro FC_SET_STRING_EMPTY
* struct fast_task_info remove fields: connect_timeout and network_timeout
* format ip address for IPv6
Version 1.72 2024-01-21
* call fast_mblock_ref_counter_dec for delay free node correctly
* fc_queue.[hc]: add function fc_queue_remove
Version 1.71 2023-12-23
* full support IPv6 by pull request #47
* replace inet_ntop to getnameinfo for IPv6
Version 1.70 2023-09-30
* get full mac address of infiniband NIC under Linux
* struct fast_task_info add field conn for RDMA connection
* server_id_func.[hc]: support communication type
* connection_pool.[hc] support callbacks for RDMA
* nio thread data support busy_polling_callback
* connection_pool.[hc] support thread local for performance
* struct fast_task_info support send and recv double buffers
* add functions: fc_queue_push_with_check and fc_queue_peek
Version 1.69 2023-08-05
* bugfixed: array_allocator_alloc MUST init the array
* uniq_skiplist support arg for free callback
Version 1.68 2023-07-05
* sorted_queue.[hc]: pop_compare_func support argument
Version 1.67 2023-05-29
* lc_pair in struct fc_queue change to lcp
* sorted queue use double link chain for quick push
* add function uniq_skiplist_clear
* fast_mblock_malloc_trunk_notify_func prototype changed
* fast_mblock_init_ex2 add parameter prealloc_trunk_count
* sorted_queue.[hc] support pop_compare_func
* bugfixed: fast_mblock_batch_alloc correct return value
* add function fc_safe_writev
Version 1.66 2023-02-12
* struct fast_task_info add field: notify_next for nio notify queue
Version 1.65 2023-01-09
* locked_list.h: add functions locked_list_move and locked_list_move_tail
* add function tcp_socket_connected
* parse_bytes support space charactors (before and after the unit)
* add function get_groups
Version 1.64 2022-11-19
* shared_func.[hc]: normalize_path use type string_t for general purpose
* bugfixed: common_blocked_queue_[alloc|free]_node must use lock
* bugfixed: can't use global malloc_allocator
Version 1.63 2022-10-16
* sockopt.[hc]: getIpAndPort support ipv6
Version 1.62 2022-09-28
* add function fc_sleep_us
* add function fc_itoa
Version 1.61 2022-09-21
* get_base_path_from_conf_file_ex support parameter: noent_log_level
* add function common_blocked_queue_push_chain
Version 1.60 2022-08-27
* normalize_path for base_path
* struct fast_task_info add field recv_body for dynamic recv buffer
* add functions: iniGetDoubleCorrectValueEx and iniGetPercentCorrectValueEx
* fast_allocator.[hc] support object size and callbacks
Version 1.59 2022-07-21
* open file with flag O_CLOEXEC
* add global var g_set_cloexec and macro FC_SET_CLOEXEC
* add function fc_get_first_lines
Version 1.58 2022-06-04
* add function conn_pool_connect_server_ex1 to support service name
* add function conn_pool_get_connection_ex to support service name
* add function iniGetCharValueEx
* json_parser.[hc] refined for better performance
Version 1.57 2022-04-22
* add function fc_format_path
* add functions: fc_get_path_child_count and fc_copy_file
* fast_mblock.[hc] support object destroy callback
* bugfixed: fc_get_file_line_count_ex should rewind file
Version 1.56 2022-03-09
* add function fc_gettid
* function normalize_path: NULL from parameter for getcwd
* sockopt.[hc] support tcpwritev and tcpreadv
* add function fc_iov_get_bytes
* rename hash_xxx to fc_hash_xxx
* rename trim to fc_trim
* add function fc_check_rename_ex
Version 1.55 2022-01-12
* fastcommon php extension adapt to php 8
* function fast_mblock_batch_alloc changed
* add function sched_delay_free_ptr
Version 1.54 2021-12-23
* fast_allocator.[hc]: correct reclaim_interval logic
* shared_func.[hc]: add functions getFileContentEx1 and getFileContent1
* fc_queue.[hc]: add function fc_queue_timedpeek
* pthread_func.[hc]: add function init_pthread_rwlock
* add files: sorted_queue.[hc]
* add files: array_allocator.[hc]
* add files: sorted_array.[hc]
* shared_func.[hc]: add function fc_read_lines
* normalize_path removes prefix one ./ and multi ../
Version 1.53 2021-06-30
* process_action support action status
* uniq_skiplist.h: add function uniq_skiplist_iterator_at
Version 1.52 2021-06-08
* process_stop more gracefully (kill -9 on timeout)
* add function fc_queue_pop_to_queue_ex
* add function get_path_block_size and get_device_block_size
* add function fc_check_realloc_iovec_array
Version 1.51 2021-05-27
* fast_mblock.[hc]: support batch alloc and batch free
* uniq_skiplist.[hc]: init function add parameter: allocator_use_lock
* add function normalize_path_ex and normalize_uri
* use libcurl to fetch URL resource
* add function get_kernel_version
Version 1.50 2021-05-11
* add function is_digital_string
* add function fc_server_load_from_ini_context
* set thread name as necessary
* add macro fc_fallocate
Version 1.49 2021-04-17
* add macros: FC_ABS and FC_NEGATIVE
* uniq_skiplist.c: add uniq_skiplist_pair struct and init function
* add functions: fc_mkdirs and str_replace
* add FilenameString type and macro
* add functions: fc_string_case_compare, fc_string_case_equal etc.
* add function: fc_check_filename_ex
* add functions: fc_queue_push_queue_to_tail etc.
* add file locked_list.h
* parse_bytes function more graceful
Version 1.48 2021-02-01
* fast_buffer.[hc]: add function fast_buffer_append_binary
* fc_check_mkdir_ex return 0 when mkdir with errno EEXIST
* add function common_blocked_queue_timedpop
* add function fc_queue_timedpop
Version 1.47 2021-01-20
* fc_atomic.h: add FC_ATOMIC_GET and FC_ATOMIC_SET etc.
* fast_mblock.[hc]: support wait with element limit
Version 1.46 2020-12-29
* add function get_time_item_from_conf_ex
* INI_FIND_ITEM just break instead of return
Version 1.45 2020-12-24
* add function uniq_skiplist_find_node_ex
* use readdir instead of readdir_r in Linux
Version 1.44 2020-12-06
* add test file src/tests/test_pthread_lock.c
* add uniq_skiplist.[hc]
* add function split_string_ex
* fast_mblock.[hc]: add init_args for init_func
* struct fast_task_info add field: nio_stage
* add function fc_memrchr
* add function is_network_error
* add function fast_mpool_log_stats
* add files: server_id_func.[hc]
* common_blocked_queue support pop all nodes
* shared_func.[hc]: add functions fc_floor_prime and fc_ceil_prime
* fast_mpool.[hc]: change function fast_mpool_strdup
* fast_allocator.[hc]: add function fast_allocator_strdup
* shared_func.[hc]: add function getFileSize
* char_converter.[hc]: add function fast_char_unescape
* struct fast_task_info add ctx pointer for libserverframe nio
* struct thread_data add waiting_queue for Linux eventfd notify
* struct fast_task_info add canceled field for complicated thread model
* nio_thread_data support thread notify
* pthread_func.[hc] add functions: create_work_threads_ex and fc_create_thread
* sched_add_entries use temp ScheduleArray for rare case
* add function common_blocked_queue_return_nodes
* add functions getIpAndPort and getPeerIpAndPort
* bugfixed: call fast_mblock_destroy in common_blocked_queue_destroy
* add function fc_get_file_line_count_ex
* uniq_skiplist add function find_ge and support bidirection
* connection_pool support validate connection on error
* fast_task_queue.[hc]: free_queue support init_callback
* ini_file_reader.c: use mutex lock when access dynamic content array
* uniq_skiplist add function uniq_skiplist_replace_ex
* add files: fc_queue.[hc]
* add files: fc_memory.[hc]
* add files: shared_buffer.[hc]
* add files: thread_pool.[hc]
* shared_func.[hc]: add function fc_path_contains
* fast_mblock.[hc]: support alloc elements limit
* sockopt.[hc]: add function asyncconnectserverbyip
* add locked_timer.[hc]: time wheel timer with lock
* tcp_quick_ack option for Linux
Version 1.43 2019-12-25
* replace function call system to getExecResult,
system is the deprecated function in iOS 11
* correct function skiplist_iterator in skiplist.h
* add buffered_file_writer.[hc]
* add function fc_delete_file_ex
Version 1.42 2019-12-03
* add function get_gzip_command_filename
* function create_work_threads changed
Version 1.41 2019-09-30
* change CIDR network_bits range from [16, 32) to [10, 32)
* ini_file_reader.c: fix empty string compare
* multi_socket_client.c: code refine
* sockopt.[hc] support IPv6
Version 1.40 2018-11-09
* add function conn_pool_parse_server_info and conn_pool_load_server_info
* support directive: #@add_annotation, for example:
#@add_annotation CONFIG_GET /usr/lib/libshmcache.so /etc/libshmcache.conf
* add function fc_split_string and fc_match_delim
* add json_parser.[hc] for parse json array and map
* add function fc_strdup
* add function fc_memmem
* add function format_http_date
* add function hash_find1 and hash_find2
* add function resolve_path and fast_buffer_append_file
* add function id_generator_next_extra_ptr, with NULL pointer to set
extra data to sn % (1 << extra_bits)
Version 1.39 2018-07-31
* add #@function REPLACE_VARS
* #@set value can embed %{VARIABLE}
* shared_func.h: add function starts_with and ends_with
* common_blocked_queue.h: add function common_blocked_queue_try_pop
* sched_thread.c: fix first schedule time
* ini_file_reader add function iniGetRequiredStrValueEx
* add file fc_list.h
* sockopt.c: add global variable try_again_when_interrupt
Version 1.38 2018-06-26
* connection_pool.c: set err_no to 0 when success
* shared_func.h: add functions float2buff / buff2float, double2buff / buff2double
* logger.h: add function log_get_level_caption
* add files: common_blocked_queue.[hc]
* add files: multi_socket_client.[hc]
* ioevent.[hc]: remove care_events in FreeBSD or MacOS
* add skiplist_set.[hc] and skiplist bug fixed
* correct CRC32
* shared_func.h: add functions int2str and long2str
* sched_thread.h: add function sched_print_all_entries
Version 1.37 2018-02-24
* ini_file_reader.c function annotations LOCAL_IP_GET support index, such as:
#@function LOCAL_IP_GET
bind_addr=private[0]
Version 1.36 2017-03-08
* correct getFileContentEx read bytes
Version 1.35 2017-03-02
* logger judge log_level in function log_it_ex and log_it_ex1
* add php extension function: fastcommon_file_put_contents
* add function fc_safe_read and fc_safe_write
* add function fc_ftok
* add function fc_trim to avoid conflict with trim
* ini_file_reader support annotataion map set incrementally
* init context support dynamic annotations and build-in annotations
* ini_file_reader disable shell execute in default
Version 1.34 2017-02-06
* ini_file_reader: LOCAL_IP support CIDR addresses
* ini_file_reader: return the last when get single value,
such as iniGetStrValue and iniGetIntValue
* ini_file_reader support #@set directive
* ini_file_reader use extra context for compatible
Version 1.33 2017-01-04
* add function hash_get_prime_capacity
* refine getFileContent log info
* show resource label when setrlimit fail
Version 1.32 2016-12-01
* downgrade log level from warning to debug
Version 1.31 2016-11-26
* move SET_SOCKOPT_NOSIGPIPE from sockopt.c to sockopt.h
* add function get_time_item_from_str
* add file trylock functions
* add files: char_converter.h and char_converter.c
* add files: char_convert_loader.h and char_convert_loader.c
Version 1.30 2016-10-31
* modify php-fastcommon/test.php
* php7_ext_wrapper.h: fix memory leak in php 7
* setsockopt SO_NOSIGPIPE when nessary
* add function iovent_add_to_deleted_list
* fixbug for select with microseconds
* id generator support file mode
Version 1.29 2016-06-17
* ini_file_reader support #@if
* ini_file_reader support #@for
* add function id_generator_get_timestamp
Version 1.28 2016-06-08
* id generator support extra bits
* change inet_aton to inet_pton
* connect by ip and connection pool support ipv6
* id generator in php extension support multi instance
* add function http_parse_url_params
* check g_free_queue.head == NULL before free_queue_realloc()
Version 1.27 2016-04-15
* add function fd_set_cloexec
* php-fastcommon.spec.in support PHP 7
* add file lock and unlock functions
* add id generator for multi processes
* php extension support id generator
Version 1.26 2016-03-16
* add logger parameter: compress_log_days_before
Version 1.25 2016-03-01
* php7_ext_wrapper.h add more macro defines
* compile passed in FreeBSD 10.2
* bugfixed: free task point correctly in free_queue_destroy
* logger support compress the log file
Version 1.24 2016-02-15
* php extension compiled on PHP 7
* add skiplist which support stable sort
* make.sh: use sed to replace perl
* support get local mac addresses
* add system_info.h and system_info.c
* add function get_mounted_filesystems
* add function get_processes for Linux
* ini_file_reader add iniGetSectionNames and iniGetSectionItems
* add fast_blocked_queue.[hc]
* iovent bug fixed for FreeBSD
* sysinfo for FreeBSD
* add php7_ext_wrapper.h for php7 migration
Version 1.23 2015-11-16
* sched_thread.c: task can execute in a new thread
* sched_thread.c: support delay tasks
* add function get_current_time_us and get_current_time_ms
* mblock add stat function
* add function get_sys_total_mem_size and get_sys_cpu_count,
ONLY support Linux and FreeBSD
* delay task can execute in a new thread
* fast_mblock reclaimed object pool
* add fast_allocator
* add fast_buffer
Version 1.22 2015-10-10
* export php function: fastcommon_get_first_local_ip
* add function is_private_ip
* add function get_next_local_ip
* export php function: fastcommon_get_next_local_ip
* export php function: fastcommon_is_private_ip
Version 1.21 2015-09-14
* ini_file_reader support annotation function
* correct PTHREAD_MUTEX_ERRORCHECK define
* support 32 bit OS
* allow_ips support CIDR addresses such as 172.16.12.0/22
* add function get_first_local_ip
* ioevent for BSD ok
* iniGetValues use iniGetValuesEx
Version 1.20 2015-08-06
* add GEO function get_line_distance_km
Version 1.19 2015-07-24
* correct logger rotate time near 0 clock
Version 1.18 2015-07-15
* OS macro defines put in _os_define.h
* remove file _os_bits.h
* schedule task support second field
Version 1.17 2015-07-14
* ini_file_reader.c change PJWHash to Time33Hash and increase capacity
* ini_file_reader.c realloc change to malloc and memcpy
Version 1.16 2015-07-01
* fast_mblock add fast_mblock_delay_free
* add fast_mpool.h and fast_mpool.c
Version 1.15 2015-06-16
* fast_mblock.c support none lock
* ioevent support set timeout
* fast_mblock support alloc and free object
* ini_file_reader set global section before and after directive #include
Version 1.14 2015-06-12
* fast_task_info support set_buffer_size and realloc_buffer
* use file lock when write logger header
* bugfixed: sockopt.c correct fsbytes to sbytes in FreeBSD
* macro FDFS_WRITE_BUFF_SIZE change to FAST_WRITE_BUFF_SIZE
* logger.c call log_check_rotate in lock
* bug fixed: log header correctly when rotate
Version 1.13 2015-02-27
* support php extension
* php extention export simple_hash and time33_hash
* set_run_by log more info
Version 1.12 2014-12-05
* bug fixed: must check the return value of vsnprintf
* can call sched_add_entries many times before schedule
Version 1.11 2014-11-20
* remove usleep call in logger.c
* bug fixed: NOT set last_block->next when realloc
Version 1.10 2014-10-31
* correct iovent macro define
* must set timeout entry's dlink to NULL because NOT in time wheel
Version 1.09 2014-10-26
* Version struct add variable: patch
* get local ipaddr support interface based 1
* mblock support alloc_init_func
Version 1.08 2014-10-09
* sched_thread.c: calculate next_call_time correctly
Version 1.07 2014-09-16
* increment alloc task buffer
* add function free_queue_alloc_connections
* check file size before log access header
* conn_pool_destroy close connections and free memory
* delete log old files with any time format affix
Version 1.06 2014-08-27
* update source code from FastDFS V5.02
* add function short2buff and buff2short
* add object memory pool (fast_mblock.h and fast_mblock.c)
* add member thread_loop_callback in nio_thread_data
* bug fixed: ini_file_reader.c can't include relative path sub config,
such as #include ../../conf/common.conf
* add get_url_content_ex to support buffer passed by caller
* logger can set rotate time format
* add connection pool
* logger can log header line
* #include <stdbool.h> to use C99 bool
* add libfastcommon.spec for building RPM
* logger can delete old rotated files
* bug fixed: connection pool should NOT increase counter when connect fail
* logger.c do NOT call fsync after write
* sockopt.c add tcprecvdata_nb_ms to support millisecond timeout
* change req_count from int to int64_t
* logger can take over stderr and stdout
* replace INT64_PRINTF_FORMAT with PRId64
* support OS Darwin
* socket send and recv ignore erno EINTR
* http_parse_query_ex support binary buffer, and set both lengths of key and name
* add function ioevent_remove
* add function log_reopen_ex
* extern function log_rotate
* add function log_set_fd_flags
Version 1.05 2012-07-08
* update source code from FastDFS V3.09
Version 1.04 2011-01-31
* update source code from FastDFS V2.08
Version 1.03 2010-11-16
* add local ip functions local_ip_func.c
Version 1.02 2010-07-02
* sockopt.c: tcprecvfile and tcpdiscard add parameter total_recv_bytes
* sockopt.h add non-block connect function connectserverbyip_nb
* log_init set log to cache to false (no cache)
Version 1.01 2010-05-15
* source file move to directory src
* header files add comments
* logger.h: correct function name from log_destory_ex to log_destroy_ex
* shared_func.h: getExeAbsolutePath change to getAbsolutePath
Version 1.00 2010-05-08
* first version