From 45f5ec97a2657f3cda3a1989af8aec86f1d1b022 Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Mon, 31 Aug 2020 19:59:31 +0200 Subject: [PATCH 01/13] we are at 4.0.0 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d4e9362..2df2462 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ License Documentation -------------- -[Read the documentation](https://docs.kore.io/3.3.0/) +[Read the documentation](https://docs.kore.io/4.0.0/) Performance ----------- @@ -50,7 +50,7 @@ Platforms supported Building Kore ------------- -Clone this repository or get the latest release at [https://kore.io/releases/3.2.0](https://kore.io/releases/3.2.0). +Clone this repository or get the latest release at [https://kore.io/releases/4.0.0](https://kore.io/releases/4.0.0). Requirements * openssl (1.0.2, 1.1.0 or 1.1.1) From 85b26533b7a69623265154bc0eabcd28d27ba62a Mon Sep 17 00:00:00 2001 From: Tobias Kortkamp Date: Thu, 3 Sep 2020 11:32:55 +0200 Subject: [PATCH 02/13] Unbreak build with multiple make jobs Without it python_curlopt.h might not be available at the right time when using something like make -j4: src/python.c:50:10: fatal error: 'python_curlopt.h' file not found ^~~~~~~~~~~~~~~~~~ 1 error generated. Signed-off-by: Tobias Kortkamp --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 1ad1d81..b203661 100644 --- a/Makefile +++ b/Makefile @@ -203,6 +203,8 @@ uninstall: $(OBJDIR)/%.o: src/%.c $(CC) $(CFLAGS) -c $< -o $@ +src/python.c: $(PYTHON_CURLOPT) + clean: rm -f $(VERSION) find . -type f -name \*.o -exec rm {} \; From 58247eec4a7f2b0bb1f55a38e63fc85ced8981aa Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Thu, 3 Sep 2020 19:05:43 +0200 Subject: [PATCH 03/13] I don't support x86 on Linux, remove it. Pointed out by entitled end user. --- README.md | 2 + misc/linux-platform.sh | 4 - misc/linux/i386_syscall.h.in | 427 ----------------------------------- src/seccomp.c | 2 - 4 files changed, 2 insertions(+), 433 deletions(-) delete mode 100644 misc/linux/i386_syscall.h.in diff --git a/README.md b/README.md index 2df2462..de96ce3 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ Platforms supported * FreeBSD * MacOS +Kore only supports x64, arm and aarch64 architectures. + Building Kore ------------- Clone this repository or get the latest release at [https://kore.io/releases/4.0.0](https://kore.io/releases/4.0.0). diff --git a/misc/linux-platform.sh b/misc/linux-platform.sh index 2acde97..f3fe8b4 100755 --- a/misc/linux-platform.sh +++ b/misc/linux-platform.sh @@ -10,10 +10,6 @@ case "$PLATFORM" in seccomp_audit_arch=AUDIT_ARCH_X86_64 syscall_file=$BASE/linux/x86_64_syscall.h.in ;; - i*86*) - seccomp_audit_arch=AUDIT_ARCH_I386 - syscall_file=$BASE/linux/i386_syscall.h.in - ;; arm*) seccomp_audit_arch=AUDIT_ARCH_ARM syscall_file=$BASE/linux/arm_syscall.h.in diff --git a/misc/linux/i386_syscall.h.in b/misc/linux/i386_syscall.h.in deleted file mode 100644 index c95e108..0000000 --- a/misc/linux/i386_syscall.h.in +++ /dev/null @@ -1,427 +0,0 @@ -#define __NR_restart_syscall 0 -#define __NR_exit 1 -#define __NR_fork 2 -#define __NR_read 3 -#define __NR_write 4 -#define __NR_open 5 -#define __NR_close 6 -#define __NR_waitpid 7 -#define __NR_creat 8 -#define __NR_link 9 -#define __NR_unlink 10 -#define __NR_execve 11 -#define __NR_chdir 12 -#define __NR_time 13 -#define __NR_mknod 14 -#define __NR_chmod 15 -#define __NR_lchown 16 -#define __NR_break 17 -#define __NR_oldstat 18 -#define __NR_lseek 19 -#define __NR_getpid 20 -#define __NR_mount 21 -#define __NR_umount 22 -#define __NR_setuid 23 -#define __NR_getuid 24 -#define __NR_stime 25 -#define __NR_ptrace 26 -#define __NR_alarm 27 -#define __NR_oldfstat 28 -#define __NR_pause 29 -#define __NR_utime 30 -#define __NR_stty 31 -#define __NR_gtty 32 -#define __NR_access 33 -#define __NR_nice 34 -#define __NR_ftime 35 -#define __NR_sync 36 -#define __NR_kill 37 -#define __NR_rename 38 -#define __NR_mkdir 39 -#define __NR_rmdir 40 -#define __NR_dup 41 -#define __NR_pipe 42 -#define __NR_times 43 -#define __NR_prof 44 -#define __NR_brk 45 -#define __NR_setgid 46 -#define __NR_getgid 47 -#define __NR_signal 48 -#define __NR_geteuid 49 -#define __NR_getegid 50 -#define __NR_acct 51 -#define __NR_umount2 52 -#define __NR_lock 53 -#define __NR_ioctl 54 -#define __NR_fcntl 55 -#define __NR_mpx 56 -#define __NR_setpgid 57 -#define __NR_ulimit 58 -#define __NR_oldolduname 59 -#define __NR_umask 60 -#define __NR_chroot 61 -#define __NR_ustat 62 -#define __NR_dup2 63 -#define __NR_getppid 64 -#define __NR_getpgrp 65 -#define __NR_setsid 66 -#define __NR_sigaction 67 -#define __NR_sgetmask 68 -#define __NR_ssetmask 69 -#define __NR_setreuid 70 -#define __NR_setregid 71 -#define __NR_sigsuspend 72 -#define __NR_sigpending 73 -#define __NR_sethostname 74 -#define __NR_setrlimit 75 -#define __NR_getrlimit 76 /* Back compatible 2Gig limited rlimit */ -#define __NR_getrusage 77 -#define __NR_gettimeofday 78 -#define __NR_settimeofday 79 -#define __NR_getgroups 80 -#define __NR_setgroups 81 -#define __NR_select 82 -#define __NR_symlink 83 -#define __NR_oldlstat 84 -#define __NR_readlink 85 -#define __NR_uselib 86 -#define __NR_swapon 87 -#define __NR_reboot 88 -#define __NR_readdir 89 -#define __NR_mmap 90 -#define __NR_munmap 91 -#define __NR_truncate 92 -#define __NR_ftruncate 93 -#define __NR_fchmod 94 -#define __NR_fchown 95 -#define __NR_getpriority 96 -#define __NR_setpriority 97 -#define __NR_profil 98 -#define __NR_statfs 99 -#define __NR_fstatfs 100 -#define __NR_ioperm 101 -#define __NR_socketcall 102 -#define __NR_syslog 103 -#define __NR_setitimer 104 -#define __NR_getitimer 105 -#define __NR_stat 106 -#define __NR_lstat 107 -#define __NR_fstat 108 -#define __NR_olduname 109 -#define __NR_iopl 110 -#define __NR_vhangup 111 -#define __NR_idle 112 -#define __NR_vm86old 113 -#define __NR_wait4 114 -#define __NR_swapoff 115 -#define __NR_sysinfo 116 -#define __NR_ipc 117 -#define __NR_fsync 118 -#define __NR_sigreturn 119 -#define __NR_clone 120 -#define __NR_setdomainname 121 -#define __NR_uname 122 -#define __NR_modify_ldt 123 -#define __NR_adjtimex 124 -#define __NR_mprotect 125 -#define __NR_sigprocmask 126 -#define __NR_create_module 127 -#define __NR_init_module 128 -#define __NR_delete_module 129 -#define __NR_get_kernel_syms 130 -#define __NR_quotactl 131 -#define __NR_getpgid 132 -#define __NR_fchdir 133 -#define __NR_bdflush 134 -#define __NR_sysfs 135 -#define __NR_personality 136 -#define __NR_afs_syscall 137 -#define __NR_setfsuid 138 -#define __NR_setfsgid 139 -#define __NR__llseek 140 -#define __NR_getdents 141 -#define __NR__newselect 142 -#define __NR_flock 143 -#define __NR_msync 144 -#define __NR_readv 145 -#define __NR_writev 146 -#define __NR_getsid 147 -#define __NR_fdatasync 148 -#define __NR__sysctl 149 -#define __NR_mlock 150 -#define __NR_munlock 151 -#define __NR_mlockall 152 -#define __NR_munlockall 153 -#define __NR_sched_setparam 154 -#define __NR_sched_getparam 155 -#define __NR_sched_setscheduler 156 -#define __NR_sched_getscheduler 157 -#define __NR_sched_yield 158 -#define __NR_sched_get_priority_max 159 -#define __NR_sched_get_priority_min 160 -#define __NR_sched_rr_get_interval 161 -#define __NR_nanosleep 162 -#define __NR_mremap 163 -#define __NR_setresuid 164 -#define __NR_getresuid 165 -#define __NR_vm86 166 -#define __NR_query_module 167 -#define __NR_poll 168 -#define __NR_nfsservctl 169 -#define __NR_setresgid 170 -#define __NR_getresgid 171 -#define __NR_prctl 172 -#define __NR_rt_sigreturn 173 -#define __NR_rt_sigaction 174 -#define __NR_rt_sigprocmask 175 -#define __NR_rt_sigpending 176 -#define __NR_rt_sigtimedwait 177 -#define __NR_rt_sigqueueinfo 178 -#define __NR_rt_sigsuspend 179 -#define __NR_pread64 180 -#define __NR_pwrite64 181 -#define __NR_chown 182 -#define __NR_getcwd 183 -#define __NR_capget 184 -#define __NR_capset 185 -#define __NR_sigaltstack 186 -#define __NR_sendfile 187 -#define __NR_getpmsg 188 -#define __NR_putpmsg 189 -#define __NR_vfork 190 -#define __NR_ugetrlimit 191 -#define __NR_mmap2 192 -#define __NR_truncate64 193 -#define __NR_ftruncate64 194 -#define __NR_stat64 195 -#define __NR_lstat64 196 -#define __NR_fstat64 197 -#define __NR_lchown32 198 -#define __NR_getuid32 199 -#define __NR_getgid32 200 -#define __NR_geteuid32 201 -#define __NR_getegid32 202 -#define __NR_setreuid32 203 -#define __NR_setregid32 204 -#define __NR_getgroups32 205 -#define __NR_setgroups32 206 -#define __NR_fchown32 207 -#define __NR_setresuid32 208 -#define __NR_getresuid32 209 -#define __NR_setresgid32 210 -#define __NR_getresgid32 211 -#define __NR_chown32 212 -#define __NR_setuid32 213 -#define __NR_setgid32 214 -#define __NR_setfsuid32 215 -#define __NR_setfsgid32 216 -#define __NR_pivot_root 217 -#define __NR_mincore 218 -#define __NR_madvise 219 -#define __NR_getdents64 220 -#define __NR_fcntl64 221 -/* 223 is unused */ -#define __NR_gettid 224 -#define __NR_readahead 225 -#define __NR_setxattr 226 -#define __NR_lsetxattr 227 -#define __NR_fsetxattr 228 -#define __NR_getxattr 229 -#define __NR_lgetxattr 230 -#define __NR_fgetxattr 231 -#define __NR_listxattr 232 -#define __NR_llistxattr 233 -#define __NR_flistxattr 234 -#define __NR_removexattr 235 -#define __NR_lremovexattr 236 -#define __NR_fremovexattr 237 -#define __NR_tkill 238 -#define __NR_sendfile64 239 -#define __NR_futex 240 -#define __NR_sched_setaffinity 241 -#define __NR_sched_getaffinity 242 -#define __NR_set_thread_area 243 -#define __NR_get_thread_area 244 -#define __NR_io_setup 245 -#define __NR_io_destroy 246 -#define __NR_io_getevents 247 -#define __NR_io_submit 248 -#define __NR_io_cancel 249 -#define __NR_fadvise64 250 -/* 251 is available for reuse (was briefly sys_set_zone_reclaim) */ -#define __NR_exit_group 252 -#define __NR_lookup_dcookie 253 -#define __NR_epoll_create 254 -#define __NR_epoll_ctl 255 -#define __NR_epoll_wait 256 -#define __NR_remap_file_pages 257 -#define __NR_set_tid_address 258 -#define __NR_timer_create 259 -#define __NR_timer_settime (__NR_timer_create+1) -#define __NR_timer_gettime (__NR_timer_create+2) -#define __NR_timer_getoverrun (__NR_timer_create+3) -#define __NR_timer_delete (__NR_timer_create+4) -#define __NR_clock_settime (__NR_timer_create+5) -#define __NR_clock_gettime (__NR_timer_create+6) -#define __NR_clock_getres (__NR_timer_create+7) -#define __NR_clock_nanosleep (__NR_timer_create+8) -#define __NR_statfs64 268 -#define __NR_fstatfs64 269 -#define __NR_tgkill 270 -#define __NR_utimes 271 -#define __NR_fadvise64_64 272 -#define __NR_vserver 273 -#define __NR_mbind 274 -#define __NR_get_mempolicy 275 -#define __NR_set_mempolicy 276 -#define __NR_mq_open 277 -#define __NR_mq_unlink (__NR_mq_open+1) -#define __NR_mq_timedsend (__NR_mq_open+2) -#define __NR_mq_timedreceive (__NR_mq_open+3) -#define __NR_mq_notify (__NR_mq_open+4) -#define __NR_mq_getsetattr (__NR_mq_open+5) -#define __NR_kexec_load 283 -#define __NR_waitid 284 -/* #define __NR_sys_setaltroot 285 */ -#define __NR_add_key 286 -#define __NR_request_key 287 -#define __NR_keyctl 288 -#define __NR_ioprio_set 289 -#define __NR_ioprio_get 290 -#define __NR_inotify_init 291 -#define __NR_inotify_add_watch 292 -#define __NR_inotify_rm_watch 293 -#define __NR_migrate_pages 294 -#define __NR_openat 295 -#define __NR_mkdirat 296 -#define __NR_mknodat 297 -#define __NR_fchownat 298 -#define __NR_futimesat 299 -#define __NR_fstatat64 300 -#define __NR_unlinkat 301 -#define __NR_renameat 302 -#define __NR_linkat 303 -#define __NR_symlinkat 304 -#define __NR_readlinkat 305 -#define __NR_fchmodat 306 -#define __NR_faccessat 307 -#define __NR_pselect6 308 -#define __NR_ppoll 309 -#define __NR_unshare 310 -#define __NR_set_robust_list 311 -#define __NR_get_robust_list 312 -#define __NR_splice 313 -#define __NR_sync_file_range 314 -#define __NR_tee 315 -#define __NR_vmsplice 316 -#define __NR_move_pages 317 -#define __NR_getcpu 318 -#define __NR_epoll_pwait 319 -#define __NR_utimensat 320 -#define __NR_signalfd 321 -#define __NR_timerfd_create 322 -#define __NR_eventfd 323 -#define __NR_fallocate 324 -#define __NR_timerfd_settime 325 -#define __NR_timerfd_gettime 326 -#define __NR_signalfd4 327 -#define __NR_eventfd2 328 -#define __NR_epoll_create1 329 -#define __NR_dup3 330 -#define __NR_pipe2 331 -#define __NR_inotify_init1 332 -#define __NR_preadv 333 -#define __NR_pwritev 334 -#define __NR_rt_tgsigqueueinfo 335 -#define __NR_perf_event_open 336 -#define __NR_recvmmsg 337 -#define __NR_fanotify_init 338 -#define __NR_fanotify_mark 339 -#define __NR_prlimit64 340 -#define __NR_name_to_handle_at 341 -#define __NR_open_by_handle_at 342 -#define __NR_clock_adjtime 343 -#define __NR_syncfs 344 -#define __NR_sendmmsg 345 -#define __NR_setns 346 -#define __NR_process_vm_readv 347 -#define __NR_process_vm_writev 348 -#define __NR_kcmp 349 -#define __NR_finit_module 350 -#define __NR_sched_setattr 351 -#define __NR_sched_getattr 352 -#define __NR_renameat2 353 -#define __NR_seccomp 354 -#define __NR_getrandom 355 -#define __NR_memfd_create 356 -#define __NR_bpf 357 -#define __NR_execveat 358 -#define __NR_socket 359 -#define __NR_socketpair 360 -#define __NR_bind 361 -#define __NR_connect 362 -#define __NR_listen 363 -#define __NR_accept4 364 -#define __NR_getsockopt 365 -#define __NR_setsockopt 366 -#define __NR_getsockname 367 -#define __NR_getpeername 368 -#define __NR_sendto 369 -#define __NR_sendmsg 370 -#define __NR_recvfrom 371 -#define __NR_recvmsg 372 -#define __NR_shutdown 373 -#define __NR_userfaultfd 374 -#define __NR_membarrier 375 -#define __NR_mlock2 376 -#define __NR_copy_file_range 377 -#define __NR_preadv2 378 -#define __NR_pwritev2 379 -#define __NR_pkey_mprotect 380 -#define __NR_pkey_alloc 381 -#define __NR_pkey_free 382 -#define __NR_statx 383 -#define __NR_arch_prctl 384 -#define __NR_io_pgetevents 385 -#define __NR_rseq 386 -#define __NR_semget 393 -#define __NR_semctl 394 -#define __NR_shmget 395 -#define __NR_shmctl 396 -#define __NR_shmat 397 -#define __NR_shmdt 398 -#define __NR_msgget 399 -#define __NR_msgsnd 400 -#define __NR_msgrcv 401 -#define __NR_msgctl 402 -#define __NR_clock_gettime64 403 -#define __NR_clock_settime64 404 -#define __NR_clock_adjtime64 405 -#define __NR_clock_getres_time64 406 -#define __NR_clock_nanosleep_time64 407 -#define __NR_timer_gettime64 408 -#define __NR_timer_settime64 409 -#define __NR_timerfd_gettime64 410 -#define __NR_timerfd_settime64 411 -#define __NR_utimensat_time64 412 -#define __NR_pselect6_time64 413 -#define __NR_ppoll_time64 414 -#define __NR_io_pgetevents_time64 416 -#define __NR_recvmmsg_time64 417 -#define __NR_mq_timedsend_time64 418 -#define __NR_mq_timedreceive_time64 419 -#define __NR_semtimedop_time64 420 -#define __NR_rt_sigtimedwait_time64 421 -#define __NR_futex_time64 422 -#define __NR_sched_rr_get_interval_time64 423 -#define __NR_pidfd_send_signal 424 -#define __NR_io_uring_setup 425 -#define __NR_io_uring_enter 426 -#define __NR_io_uring_register 427 -#define __NR_open_tree 428 -#define __NR_move_mount 429 -#define __NR_fsopen 430 -#define __NR_fsconfig 431 -#define __NR_fsmount 432 -#define __NR_fspick 433 - diff --git a/src/seccomp.c b/src/seccomp.c index 505ac0b..d70d7c5 100644 --- a/src/seccomp.c +++ b/src/seccomp.c @@ -438,8 +438,6 @@ seccomp_register_violation(pid_t pid) #if SECCOMP_AUDIT_ARCH == AUDIT_ARCH_X86_64 sysnr = regs.orig_rax; -#elif SECCOMP_AUDIT_ARCH == AUDIT_ARCH_I386 - sysnr = regs.orig_ax; #elif SECCOMP_AUDIT_ARCH == AUDIT_ARCH_AARCH64 sysnr = regs.regs[8]; #else From b84c88a0e642e3f4594f181eaaabb9757b1e3d1b Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Thu, 3 Sep 2020 19:08:08 +0200 Subject: [PATCH 04/13] remove the yet wording. --- src/seccomp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/seccomp.c b/src/seccomp.c index d70d7c5..5dc1570 100644 --- a/src/seccomp.c +++ b/src/seccomp.c @@ -441,7 +441,7 @@ seccomp_register_violation(pid_t pid) #elif SECCOMP_AUDIT_ARCH == AUDIT_ARCH_AARCH64 sysnr = regs.regs[8]; #else -#error "platform not yet supported" +#error "platform not supported" #endif name = NULL; From 1d27558e39273f8c9d6547c9a842f3e00a40b570 Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Thu, 3 Sep 2020 19:24:26 +0200 Subject: [PATCH 05/13] nicer warning --- misc/linux-platform.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/misc/linux-platform.sh b/misc/linux-platform.sh index f3fe8b4..818e53b 100755 --- a/misc/linux-platform.sh +++ b/misc/linux-platform.sh @@ -10,6 +10,10 @@ case "$PLATFORM" in seccomp_audit_arch=AUDIT_ARCH_X86_64 syscall_file=$BASE/linux/x86_64_syscall.h.in ;; + i*86*) + >&2 echo "i386 not supported" + exit 1 + ;; arm*) seccomp_audit_arch=AUDIT_ARCH_ARM syscall_file=$BASE/linux/arm_syscall.h.in From 636469f555b0e95ed49cd30fcd0eb6136edff07b Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Tue, 8 Sep 2020 11:51:06 +0200 Subject: [PATCH 06/13] Only reset accept_avail if we grabbed the lock. Otherwise in certain scenarios it could mean that workers unsuccessfully grabbed the lock, reset accept_avail and no longer attempt to grab the lock afterwards. This can cause a complete stall in workers processing requests. --- src/worker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker.c b/src/worker.c index cc6f27a..ccb5e03 100644 --- a/src/worker.c +++ b/src/worker.c @@ -453,8 +453,8 @@ kore_worker_entry(struct kore_worker *kw) } if (!worker->has_lock && accept_avail) { - accept_avail = 0; if (worker_acceptlock_obtain()) { + accept_avail = 0; if (had_lock == 0) { kore_platform_enable_accept(); had_lock = 1; From d9673857d8553dfa00809deb8b1bd485c478217e Mon Sep 17 00:00:00 2001 From: Frederic Cambus Date: Tue, 8 Sep 2020 12:49:46 +0200 Subject: [PATCH 07/13] Fix a couple of typos in various places. --- examples/async-curl/src/http.c | 2 +- examples/generic/src/example.c | 2 +- examples/jsonrpc/README.md | 2 +- examples/nohttp/src/nohttp.c | 4 ++-- examples/parameters/README.md | 2 +- examples/python-pgsql/app.py | 2 +- share/man/kodev.1 | 2 +- src/keymgr.c | 2 +- src/worker.c | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/async-curl/src/http.c b/examples/async-curl/src/http.c index a05514b..2cc3688 100644 --- a/examples/async-curl/src/http.c +++ b/examples/async-curl/src/http.c @@ -112,7 +112,7 @@ state_result(struct http_request *req) /* Get the state attached to the HTTP request. */ client = http_state_get(req); - /* Check if we were succesfull, if not log an error. */ + /* Check if we were successful, if not log an error. */ if (!kore_curl_success(client)) { kore_curl_logerror(client); http_response(req, 500, NULL, 0); diff --git a/examples/generic/src/example.c b/examples/generic/src/example.c index 4d1e337..1d4b3c1 100644 --- a/examples/generic/src/example.c +++ b/examples/generic/src/example.c @@ -45,7 +45,7 @@ char *b64tests[] = { "any carnal pleasure.", "any carnal pleasure", "any carnal pleas", - "I am a nobody, nobody is perfect, therefor I am.", + "I am a nobody, nobody is perfect, therefore I am.", NULL }; diff --git a/examples/jsonrpc/README.md b/examples/jsonrpc/README.md index 8a1d00f..c8d8b18 100644 --- a/examples/jsonrpc/README.md +++ b/examples/jsonrpc/README.md @@ -56,7 +56,7 @@ syslog. Messages are added with jsonrpc_log(). By default messages of the log are added to the data member of the error responses if at levels EMERG, ERROR, WARNING and NOTICE. -If you dont want log messages to be outputted zero the log_levels flag of the +If you don't want log messages to be outputted zero the log_levels flag of the jsonrpc_request. diff --git a/examples/nohttp/src/nohttp.c b/examples/nohttp/src/nohttp.c index 8fda0f3..8c4e499 100644 --- a/examples/nohttp/src/nohttp.c +++ b/examples/nohttp/src/nohttp.c @@ -50,7 +50,7 @@ connection_setup(struct connection *c) } /* - * This function is called everytime a new event is triggered on the + * This function is called every time a new event is triggered on the * connection. In this demo we just use it as a stub for the normal * callback kore_connection_handle(). * @@ -69,7 +69,7 @@ connection_handle(struct connection *c) } /* - * This function is called everytime we get up to 128 bytes of data. + * This function is called every time we get up to 128 bytes of data. * The connection can be found under nb->owner. * The data received can be found under nb->buf. * The length of the received data can be found under s_off. diff --git a/examples/parameters/README.md b/examples/parameters/README.md index 834404d..ad165cb 100644 --- a/examples/parameters/README.md +++ b/examples/parameters/README.md @@ -10,5 +10,5 @@ Test: # curl -i -k https://127.0.0.1:8888/?id=123123 ``` -The output will differ based on wether or not id is a valid +The output will differ based on whether or not id is a valid u_int16_t number or not. (the string should always be present). diff --git a/examples/python-pgsql/app.py b/examples/python-pgsql/app.py index 8e89022..d0fb670 100644 --- a/examples/python-pgsql/app.py +++ b/examples/python-pgsql/app.py @@ -32,7 +32,7 @@ class KoreApp: # The query handler that fires of the query and returns a coroutine. # # Kore will resume this handler when the query returns a result or - # is succesfull. + # is successful. # # The kore.pgsql() method can throw exceptions, most notably a # GeneratorExit in case the client connection went away before diff --git a/share/man/kodev.1 b/share/man/kodev.1 index 9d6a60a..dcb6e70 100644 --- a/share/man/kodev.1 +++ b/share/man/kodev.1 @@ -161,7 +161,7 @@ If set to \fByes\fR the build system will produce a single binary containing both your application code and the Kore code allowing you to distribute your application more easily. -If set to \fBno\fR the build system will produce a standard dynamicly +If set to \fBno\fR the build system will produce a standard dynamically linked library that will be loaded into Kore at runtime. .RE .RE diff --git a/src/keymgr.c b/src/keymgr.c index 1a2aeaa..300ec42 100644 --- a/src/keymgr.c +++ b/src/keymgr.c @@ -1300,7 +1300,7 @@ keymgr_asn1_convert_utctime(const ASN1_TIME *na, time_t *out) year = (na->data[0] - '0') * 10 + (na->data[1] - '0'); - /* RFC 5280 says years >= 50 are intepreted as 19YY */ + /* RFC 5280 says years >= 50 are interpreted as 19YY */ if (year >= 50) year = 1900 + year; else diff --git a/src/worker.c b/src/worker.c index ccb5e03..55a538c 100644 --- a/src/worker.c +++ b/src/worker.c @@ -834,7 +834,7 @@ worker_unlock(void) { accept_lock->current = 0; if (!__sync_bool_compare_and_swap(&(accept_lock->lock), 1, 0)) - kore_log(LOG_NOTICE, "worker_unlock(): wasnt locked"); + kore_log(LOG_NOTICE, "worker_unlock(): wasn't locked"); } static void From 3ac956c67db22ee11f297846c170c831eb171cca Mon Sep 17 00:00:00 2001 From: Frederic Cambus Date: Tue, 8 Sep 2020 14:00:43 +0200 Subject: [PATCH 08/13] Use kore_worker_name() when logging worker shutdowns. --- src/worker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/worker.c b/src/worker.c index 55a538c..dbf8047 100644 --- a/src/worker.c +++ b/src/worker.c @@ -238,8 +238,8 @@ kore_worker_shutdown(void) kw->running = 0; if (!kore_quiet) { - kore_log(LOG_NOTICE, - "worker %d exited", kw->id); + kore_log(LOG_NOTICE, "worker %s exited", + kore_worker_name(kw->id)); } } } From 5a3e174439f09f182cb41ec5ed5688ab8c58b158 Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Tue, 8 Sep 2020 19:12:00 +0200 Subject: [PATCH 09/13] Add the BEERS file. --- BEERS | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 BEERS diff --git a/BEERS b/BEERS new file mode 100644 index 0000000..66c2fb8 --- /dev/null +++ b/BEERS @@ -0,0 +1,40 @@ +THE BEER LIST. + +Any contributer to Kore that submitted patches will be put on this list. + +If you are on this list, I owe you a beer if we ever run into +each other at any time. + +It is however your responsibility to remind me ;) + +I will note down the beer of your choice between the brackets. + +[] Andreas Pfohl +[] Ansen Dong +[] Carl Ekerot +[] Cleve Lendon +[] Corbin Hughes +[] Daniel Fahlgren +[] Dmitrii Golub +[] Elliot Schlegelmilch +[] Erik Karlsson +[] Frederic Cambus +[] Guy Nankivell +[] James Turner +[] Manuel Kniep +[] Marcin Szczepaniak +[] Matt Thompson +[] Nandor Kracser +[] Pascal Borreli +[] Quentin Perez +[] Raphaël Monrouzeau +[] Raymond Pasco +[] Remy Noulin +[] Shih-Yuan Lee +[] Stanislav Yudin +[] Stig Telfer +[] Thordur Bjornsson +[] Tobias Kortkamp +[] Yorick de Wid +[] Yvan Sraka +[] Ángel González From 4498270bbe31c1601526b4b9b6ba88dfd60306ad Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Tue, 8 Sep 2020 19:13:31 +0200 Subject: [PATCH 10/13] add missing contributer. --- BEERS | 1 + 1 file changed, 1 insertion(+) diff --git a/BEERS b/BEERS index 66c2fb8..f4752fa 100644 --- a/BEERS +++ b/BEERS @@ -30,6 +30,7 @@ I will note down the beer of your choice between the brackets. [] Raphaël Monrouzeau [] Raymond Pasco [] Remy Noulin +[] Rickard Lind [] Shih-Yuan Lee [] Stanislav Yudin [] Stig Telfer From aaf8be40c20dafbbb1b4e1693567f062beea9267 Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Tue, 8 Sep 2020 19:19:56 +0200 Subject: [PATCH 11/13] Add casts for isxdigit and isspace. The argument must be representable as an unsigned char or EOF. --- src/cli.c | 2 +- src/http.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cli.c b/src/cli.c index 62c2467..b8c6aec 100644 --- a/src/cli.c +++ b/src/cli.c @@ -1120,7 +1120,7 @@ cli_build_asset(char *fpath, struct dirent *dp) /* Replace dots, spaces, etc etc with underscores. */ for (p = name; *p != '\0'; p++) { - if (*p == '.' || isspace(*p) || *p == '-') + if (*p == '.' || isspace((unsigned char)*p) || *p == '-') *p = '_'; } diff --git a/src/http.c b/src/http.c index 82f5992..d8fef25 100644 --- a/src/http.c +++ b/src/http.c @@ -1002,7 +1002,8 @@ http_argument_urldecode(char *arg) return (KORE_RESULT_ERROR); } - if (!isxdigit(*(p + 1)) || !isxdigit(*(p + 2))) { + if (!isxdigit((unsigned char)*(p + 1)) || + !isxdigit((unsigned char)*(p + 2))) { *in++ = *p++; continue; } From f6af4a27f49d2fef33783066771fc0635288ecc5 Mon Sep 17 00:00:00 2001 From: Joris Vink Date: Tue, 8 Sep 2020 19:29:15 +0200 Subject: [PATCH 12/13] Enable type-limits warning. Remove unneeded comparison in the JSON code. via https://marc.info/?l=openbsd-ports&m=159958572325174&w=2 --- Makefile | 1 + src/json.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b203661..a92e0ae 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ FEATURES_INC= CFLAGS+=-Wall -Werror -Wstrict-prototypes -Wmissing-prototypes CFLAGS+=-Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual CFLAGS+=-Wsign-compare -Iinclude/kore -I$(OBJDIR) -std=c99 -pedantic +CFLAGS+=-Wtype-limits CFLAGS+=-DPREFIX='"$(PREFIX)"' -fstack-protector-all ifneq ("$(OPENSSL_PATH)", "") diff --git a/src/json.c b/src/json.c index 1dd7918..8cc9876 100644 --- a/src/json.c +++ b/src/json.c @@ -780,7 +780,7 @@ json_get_string(struct kore_json *json) if (ch == '"') break; - if (ch >= 0 && ch <= 0x1f) + if (ch <= 0x1f) goto cleanup; if (ch == '\\') { From 3bf5896cfb9400bb9cbebe895ae3bcdc5feaccd3 Mon Sep 17 00:00:00 2001 From: Frederic Cambus Date: Tue, 8 Sep 2020 20:54:34 +0200 Subject: [PATCH 13/13] Add DESTDIR support in both kore and kodev Makefiles. --- Makefile | 17 +++++++++-------- kodev/Makefile | 5 +++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index a92e0ae..945f260 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ # Kore Makefile CC?=cc +DESTDIR?= PREFIX?=/usr/local OBJDIR?=obj KORE=kore @@ -185,14 +186,14 @@ $(OBJDIR): @mkdir -p $(OBJDIR) install: - mkdir -p $(SHARE_DIR) - mkdir -p $(INCLUDE_DIR) - mkdir -p $(INSTALL_DIR) - mkdir -p $(MAN_DIR)/man1 - install -m 644 share/man/kodev.1 $(MAN_DIR)/man1/kodev.1 - install -m 555 $(KORE) $(INSTALL_DIR)/$(KORE) - install -m 644 kore.features $(SHARE_DIR)/features - install -m 644 include/kore/*.h $(INCLUDE_DIR) + mkdir -p $(DESTDIR)$(SHARE_DIR) + mkdir -p $(DESTDIR)$(INCLUDE_DIR) + mkdir -p $(DESTDIR)$(INSTALL_DIR) + mkdir -p $(DESTDIR)$(MAN_DIR)/man1 + install -m 644 share/man/kodev.1 $(DESTDIR)$(MAN_DIR)/man1/kodev.1 + install -m 555 $(KORE) $(DESTDIR)$(INSTALL_DIR)/$(KORE) + install -m 644 kore.features $(DESTDIR)$(SHARE_DIR)/features + install -m 644 include/kore/*.h $(DESTDIR)$(INCLUDE_DIR) $(MAKE) -C kodev install uninstall: diff --git a/kodev/Makefile b/kodev/Makefile index 5e9e346..baffd6e 100644 --- a/kodev/Makefile +++ b/kodev/Makefile @@ -4,6 +4,7 @@ CC?=cc PREFIX?=/usr/local OBJDIR?=obj KODEV=kodev +DESTDIR?= INSTALL_DIR=$(PREFIX)/bin S_SRC= ../src/cli.c @@ -42,8 +43,8 @@ $(OBJDIR): @mkdir -p $(OBJDIR) install: $(KODEV) - mkdir -p $(INSTALL_DIR) - install -m 555 $(KODEV) $(INSTALL_DIR)/$(KODEV) + mkdir -p $(DESTDIR)$(INSTALL_DIR) + install -m 555 $(KODEV) $(DESTDIR)$(INSTALL_DIR)/$(KODEV) uninstall: rm -f $(INSTALL_DIR)/$(KODEV)