diff options
| author | 2024-06-24 14:34:21 -0400 | |
|---|---|---|
| committer | 2024-06-24 14:34:21 -0400 | |
| commit | a320ee672ccf52297dc509b25ed263f165709b31 (patch) | |
| tree | ef78116173aa19c28ee4a46f861861f700528c50 /src/util | |
| parent | 3d1ab87859a291cf8965b56703931193d5e6ae25 (diff) | |
| download | libnaunet-a320ee672ccf52297dc509b25ed263f165709b31.tar.gz libnaunet-a320ee672ccf52297dc509b25ed263f165709b31.tar.bz2 libnaunet-a320ee672ccf52297dc509b25ed263f165709b31.zip | |
Add multiplex, a bunch of cleanup
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/util')
| -rw-r--r-- | src/util/file/file_linux.c | 13 | ||||
| -rw-r--r-- | src/util/packet.c | 28 | ||||
| -rw-r--r-- | src/util/packet.h | 7 |
3 files changed, 24 insertions, 24 deletions
diff --git a/src/util/file/file_linux.c b/src/util/file/file_linux.c index 403d685..ac78bd8 100644 --- a/src/util/file/file_linux.c +++ b/src/util/file/file_linux.c @@ -5,14 +5,9 @@ #include "file.h" -static bool lock_file_internal(s32 fd) +static bool lock_file_internal(s32 fd, size_t size) { - struct flock l = { - .l_type = F_WRLCK, - .l_whence = SEEK_SET, - .l_start = 0, - .l_len = 0 - }; + struct flock l = { .l_type = F_WRLCK, .l_whence = SEEK_SET, .l_start = 0, .l_len = size }; if (fcntl(fd, F_SETLKW, &l) == -1) { al_log_error("file", "fcntl(F_SETLKW) failed (%s).", aki_strerror(errno)); close(fd); @@ -27,7 +22,7 @@ bool aki_file_open(struct aki_file *file, str *path, s32 flags) char *c_str = al_str_to_c_str(path); s32 oflags = (flags & AKI_FILE_READONLY) ? O_RDONLY : O_RDWR; if (flags & AKI_FILE_CREATE) oflags |= O_CREAT; - file->fd = open(c_str, oflags, 0666); + file->fd = open(c_str, oflags, 0644); al_free(c_str); if (file->fd == -1) { al_log_error("file", "open(%.*s) failed (%s).", AL_STR_PRINTF(path), aki_strerror(errno)); @@ -41,7 +36,7 @@ bool aki_file_open(struct aki_file *file, str *path, s32 flags) return false; } file->filesize = sb.st_size; - if (flags & AKI_FILE_LOCK) lock_file_internal(file->fd); + if (flags & AKI_FILE_LOCK) lock_file_internal(file->fd, file->filesize); return true; } diff --git a/src/util/packet.c b/src/util/packet.c index 2d8b440..373a3a3 100644 --- a/src/util/packet.c +++ b/src/util/packet.c @@ -58,12 +58,6 @@ void aki_packet_write_str(struct aki_packet *packet, str *s) AKI_PACKET_WRITE_DATA(packet, s->data, s->len); } -void aki_packet_write_wstr(struct aki_packet *packet, wstr *w) -{ - AKI_PACKET_WRITE_TYPE(packet, u32, w->len); - AKI_PACKET_WRITE_DATA(packet, w->data, w->len * sizeof(wchar_t)); -} - void aki_packet_write_buffer(struct aki_packet *packet, struct aki_buffer *buf) { AKI_PACKET_WRITE_TYPE(packet, size_t, buf->size); @@ -96,13 +90,6 @@ void aki_packet_read_str(struct aki_packet *packet, str *s) s->alloc = 0; } -void aki_packet_read_wstr(struct aki_packet *packet, wstr *w) -{ - AKI_PACKET_READ_TYPE(packet, u32, w->len); - AKI_PACKET_READ_DATA(packet, w->len * sizeof(wchar_t), w->data); - w->alloc = 0; -} - void aki_packet_read_buffer(struct aki_packet *packet, struct aki_buffer *buf) { AKI_PACKET_READ_TYPE(packet, size_t, buf->size); @@ -110,6 +97,21 @@ void aki_packet_read_buffer(struct aki_packet *packet, struct aki_buffer *buf) buf->alloc = 0; } +#ifdef AL_HAVE_WIDE_STRING +void aki_packet_write_wstr(struct aki_packet *packet, wstr *w) +{ + AKI_PACKET_WRITE_TYPE(packet, u32, w->len); + AKI_PACKET_WRITE_DATA(packet, w->data, w->len * sizeof(wchar_t)); +} + +void aki_packet_read_wstr(struct aki_packet *packet, wstr *w) +{ + AKI_PACKET_READ_TYPE(packet, u32, w->len); + AKI_PACKET_READ_DATA(packet, w->len * sizeof(wchar_t), w->data); + w->alloc = 0; +} +#endif + void aki_packet_free(struct aki_packet *packet) { aki_buffer_free(&packet->buffer); diff --git a/src/util/packet.h b/src/util/packet.h index f877c72..cacd82c 100644 --- a/src/util/packet.h +++ b/src/util/packet.h @@ -53,7 +53,6 @@ void aki_packet_write_u64(struct aki_packet *packet, u64 v); void aki_packet_write_f32(struct aki_packet *packet, f32 v); void aki_packet_write_f64(struct aki_packet *packet, f64 v); void aki_packet_write_str(struct aki_packet *packet, str *s); -void aki_packet_write_wstr(struct aki_packet *packet, wstr *w); void aki_packet_write_buffer(struct aki_packet *packet, struct aki_buffer *buf); s8 aki_packet_read_s8(struct aki_packet *packet); @@ -67,7 +66,11 @@ u64 aki_packet_read_u64(struct aki_packet *packet); f32 aki_packet_read_f32(struct aki_packet *packet); f64 aki_packet_read_f64(struct aki_packet *packet); void aki_packet_read_str(struct aki_packet *packet, str *s); -void aki_packet_read_wstr(struct aki_packet *packet, wstr *w); void aki_packet_read_buffer(struct aki_packet *packet, struct aki_buffer *buf); +#ifdef AL_HAVE_WIDE_STRING +void aki_packet_write_wstr(struct aki_packet *packet, wstr *w); +void aki_packet_read_wstr(struct aki_packet *packet, wstr *w); +#endif + void aki_packet_free(struct aki_packet *packet); |