lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

June 2023

  • 1 participants
  • 2480 discussions
[M] Change in osmo-bts[master]: ECU in UL path: make it optional per vty config
by fixeria 27 Jun '23

27 Jun '23
Attention is currently required from: falconia. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32110 ) Change subject: ECU in UL path: make it optional per vty config ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0acca9c6d7da966a623287563e0789db9e0fae8e Gerrit-Change-Number: 32110 Gerrit-PatchSet: 6 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: falconia <falcon(a)freecalypso.org> Gerrit-Comment-Date: Tue, 27 Jun 2023 08:10:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmocore[master]: osmo_io: Use LOGPIO instead of LOGP
by daniel 27 Jun '23

27 Jun '23
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/33494 ) Change subject: osmo_io: Use LOGPIO instead of LOGP ...................................................................... osmo_io: Use LOGPIO instead of LOGP Change-Id: I4ee256b18544f7ca6bff6b7c6ebcce15546bb1f2 --- M src/core/osmo_io_poll.c 1 file changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/33494/1 diff --git a/src/core/osmo_io_poll.c b/src/core/osmo_io_poll.c index c4819fa..571f2bb 100644 --- a/src/core/osmo_io_poll.c +++ b/src/core/osmo_io_poll.c @@ -51,7 +51,7 @@ struct iofd_msghdr hdr; msg = iofd_msgb_pending_or_alloc(iofd); if (!msg) { - LOGP(DLIO, LOGL_ERROR, "iofd(%s): Could not get msgb for reading\n", iofd->name); + LOGPIO(iofd, LOGL_ERROR, "Could not allocate msgb for reading\n"); OSMO_ASSERT(0); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/33494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4ee256b18544f7ca6bff6b7c6ebcce15546bb1f2 Gerrit-Change-Number: 33494 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmocore[master]: osmo_io: Use bitfield for various boolean flags
by daniel 27 Jun '23

27 Jun '23
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/33495 ) Change subject: osmo_io: Use bitfield for various boolean flags ...................................................................... osmo_io: Use bitfield for various boolean flags Change-Id: Ic134e4c8d791c34778202fea98a70bc04007a113 --- M src/core/osmo_io.c M src/core/osmo_io_internal.h M src/core/osmo_io_poll.c 3 files changed, 37 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/33495/1 diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c index b00da63..d06e804 100644 --- a/src/core/osmo_io.c +++ b/src/core/osmo_io.c @@ -388,6 +388,7 @@ iofd->fd = fd; iofd->mode = mode; + IOFD_FLAG_SET(iofd, IOFD_FLAG_CLOSED); if (name) iofd->name = talloc_strdup(iofd, name); @@ -427,7 +428,7 @@ if (rc) return rc; - iofd->closed = false; + IOFD_FLAG_UNSET(iofd, IOFD_FLAG_CLOSED); osmo_iofd_ops.read_enable(iofd); osmo_iofd_ops.write_enable(iofd); @@ -483,12 +484,12 @@ osmo_iofd_close(iofd); - if (!iofd->in_callback) { + if (!IOFD_FLAG_ISSET(iofd, IOFD_FLAG_IN_CALLBACK)) { talloc_free(iofd); } else { /* Prevent our parent context from freeing us prematurely */ talloc_steal(NULL, iofd); - iofd->to_free = true; + IOFD_FLAG_SET(iofd, IOFD_FLAG_TO_FREE); } } @@ -503,10 +504,10 @@ { int rc = 0; - if (iofd->closed) + if (IOFD_FLAG_ISSET(iofd, IOFD_FLAG_CLOSED)) return rc; - iofd->closed = true; + IOFD_FLAG_SET(iofd, IOFD_FLAG_CLOSED); /* Free pending msgs in tx queue */ osmo_iofd_txqueue_clear(iofd); diff --git a/src/core/osmo_io_internal.h b/src/core/osmo_io_internal.h index cd620e7..bd2e655 100644 --- a/src/core/osmo_io_internal.h +++ b/src/core/osmo_io_internal.h @@ -29,6 +29,23 @@ void (*read_disable)(struct osmo_io_fd *iofd); }; +#define IOFD_FLAG_CLOSED (1<<0) +#define IOFD_FLAG_IN_CALLBACK (1<<1) +#define IOFD_FLAG_TO_FREE (1<<2) +#define IOFD_FLAG_NOTIFY_CONNECTED (1<<3) + +#define IOFD_FLAG_SET(iofd, flag) \ + do { \ + iofd->flags |= (flag); \ + } while (0) + +#define IOFD_FLAG_UNSET(iofd, flag) \ + do { \ + iofd->flags &= ~(flag); \ + } while (0) + +#define IOFD_FLAG_ISSET(iofd, flag) (iofd->flags & flag) + struct osmo_io_fd { /*! linked list for internal management */ struct llist_head list; @@ -39,9 +56,7 @@ /*! flags to guard closing/freeing of iofd */ /* TODO: Move to bitfield */ - bool closed; - bool in_callback; - bool to_free; + uint32_t flags; /*! human-readable name to associte with fd */ char *name; diff --git a/src/core/osmo_io_poll.c b/src/core/osmo_io_poll.c index 571f2bb..a5fc881 100644 --- a/src/core/osmo_io_poll.c +++ b/src/core/osmo_io_poll.c @@ -81,7 +81,7 @@ } } - if (iofd->closed) + if (FLAG_ISSET(iofd, IOFD_FLAG_CLOSED)) return; if (what & OSMO_FD_WRITE) { @@ -126,11 +126,11 @@ { struct osmo_io_fd *iofd = ofd->data; - iofd->in_callback = true; + FLAG_SET(iofd, IOFD_FLAG_IN_CALLBACK); iofd_poll_ofd_cb_recvmsg_sendmsg(ofd, what); - iofd->in_callback = false; + FLAG_UNSET(iofd, IOFD_FLAG_IN_CALLBACK); - if (iofd->to_free) { + if (FLAG_ISSET(iofd, IOFD_FLAG_TO_FREE)) { talloc_free(iofd); return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/33495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic134e4c8d791c34778202fea98a70bc04007a113 Gerrit-Change-Number: 33495 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmocore[master]: osmo_io: Return early on error in osmo_iofd_register()
by daniel 27 Jun '23

27 Jun '23
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/33493 ) Change subject: osmo_io: Return early on error in osmo_iofd_register() ...................................................................... osmo_io: Return early on error in osmo_iofd_register() Change-Id: I2561c82e6bf7e2bb5fd699c899238f9c43ea4d9c --- M src/core/osmo_io.c 1 file changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/33493/1 diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c index c9b0b29..b00da63 100644 --- a/src/core/osmo_io.c +++ b/src/core/osmo_io.c @@ -421,11 +421,13 @@ if (fd >= 0) iofd->fd = fd; - iofd->closed = false; if (osmo_iofd_ops.register_fd) rc = osmo_iofd_ops.register_fd(iofd); + if (rc) + return rc; + iofd->closed = false; osmo_iofd_ops.read_enable(iofd); osmo_iofd_ops.write_enable(iofd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/33493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2561c82e6bf7e2bb5fd699c899238f9c43ea4d9c Gerrit-Change-Number: 33493 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmocore[master]: osmo_io: Make the test more deterministic between backends
by daniel 27 Jun '23

27 Jun '23
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/33496 ) Change subject: osmo_io: Make the test more deterministic between backends ...................................................................... osmo_io: Make the test more deterministic between backends Change-Id: Ibdd26a4aeadfbd6c5039c8a31cc120d3c98be727 --- M tests/osmo_io/osmo_io_test.c 1 file changed, 22 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/33496/1 diff --git a/tests/osmo_io/osmo_io_test.c b/tests/osmo_io/osmo_io_test.c index 3683ee3..74fe64d 100644 --- a/tests/osmo_io/osmo_io_test.c +++ b/tests/osmo_io/osmo_io_test.c @@ -38,6 +38,11 @@ #define TEST_START() printf("Running %s\n", __func__) +static uint8_t TESTDATA[] = { + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 +}; + + static void *ctx = NULL; static void read_cb(struct osmo_io_fd *iofd, int rc, struct msgb *msg) @@ -51,7 +56,15 @@ static void write_cb(struct osmo_io_fd *iofd, int rc, struct msgb *msg) { + uint8_t *buf; printf("%s: write() returned rc=%d\n", osmo_iofd_get_name(iofd), rc); + if (rc == 0) { + msg = msgb_alloc(1024, "Test data"); + buf = msgb_put(msg, sizeof(TESTDATA)); + memcpy(buf, TESTDATA, sizeof(TESTDATA)); + + osmo_iofd_write_msgb(iofd, msg); + } } struct osmo_io_ops ioops_conn_read_write = { @@ -59,10 +72,6 @@ .write_cb = write_cb, }; -uint8_t TESTDATA[] = { - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 -}; - static void test_connected(void) { int fds[2] = {0, 0}, rc; @@ -80,13 +89,6 @@ iofd2 = osmo_iofd_setup(ctx, fds[1], "ep2", OSMO_IO_FD_MODE_READ_WRITE, &ioops_conn_read_write, NULL); osmo_iofd_register(iofd2, fds[1]); - msg = msgb_alloc(1024, "Test data"); - buf = msgb_put(msg, sizeof(TESTDATA)); - memcpy(buf, TESTDATA, sizeof(TESTDATA)); - - osmo_iofd_write_msgb(iofd1, msg); - - /* Allow enough cycles to handle the messages */ for (int i = 0; i < 128; i++) osmo_select_main(1); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/33496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibdd26a4aeadfbd6c5039c8a31cc120d3c98be727 Gerrit-Change-Number: 33496 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmocore[master]: osmo_io: Add osmo_iofd_notify_connected()
by daniel 27 Jun '23

27 Jun '23
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/33497 ) Change subject: osmo_io: Add osmo_iofd_notify_connected() ...................................................................... osmo_io: Add osmo_iofd_notify_connected() Don't call write_enable() in osmo_iofd_register(). This was used to detect whether a socket is connected or not, but would always be enabled, even on unconnected sockets. Instead make this behaviour explicit by calling osmo_iofd_notify_connected(). Change-Id: Ieed10bc94c8aad821c0a8f7764db0e05c054c1e3 --- M include/osmocom/core/osmo_io.h M src/core/libosmocore.map M src/core/osmo_io.c M tests/osmo_io/osmo_io_test.c M tests/osmo_io/osmo_io_test.ok 5 files changed, 30 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/33497/1 diff --git a/include/osmocom/core/osmo_io.h b/include/osmocom/core/osmo_io.h index aac25a3..932b909 100644 --- a/include/osmocom/core/osmo_io.h +++ b/include/osmocom/core/osmo_io.h @@ -75,6 +75,8 @@ int osmo_iofd_close(struct osmo_io_fd *iofd); void osmo_iofd_free(struct osmo_io_fd *iofd); +void osmo_iofd_notify_connected(struct osmo_io_fd *iofd); + int osmo_iofd_write_msgb(struct osmo_io_fd *iofd, struct msgb *msg); int osmo_iofd_sendto_msgb(struct osmo_io_fd *iofd, struct msgb *msg, int sendto_flags, const struct osmo_sockaddr *dest); diff --git a/src/core/libosmocore.map b/src/core/libosmocore.map index 68f7270..50be67c 100644 --- a/src/core/libosmocore.map +++ b/src/core/libosmocore.map @@ -262,8 +262,6 @@ osmo_iofd_get_priv_nr; osmo_iofd_init; osmo_iofd_ops; -osmo_iofd_read_disable; -osmo_iofd_read_enable; osmo_iofd_register; osmo_iofd_sendto_msgb; osmo_iofd_set_alloc_info; @@ -275,8 +273,7 @@ osmo_iofd_txqueue_len; osmo_iofd_unregister; osmo_iofd_uring_init; -osmo_iofd_write_disable; -osmo_iofd_write_enable; +osmo_iofd_notify_connected; osmo_iofd_write_msgb; osmo_ip_str_type; osmo_isdnhdlc_decode; diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c index d06e804..c7c4e48 100644 --- a/src/core/osmo_io.c +++ b/src/core/osmo_io.c @@ -430,7 +430,6 @@ IOFD_FLAG_UNSET(iofd, IOFD_FLAG_CLOSED); osmo_iofd_ops.read_enable(iofd); - osmo_iofd_ops.write_enable(iofd); return rc; } @@ -599,4 +598,14 @@ iofd->io_ops = *ioops; } +/*! Notify the user if/when the socket is connected + * When the socket is connected the write_cb will be called. + * \param[in] iofd the file descriptor */ +void osmo_iofd_notify_connected(struct osmo_io_fd *iofd) +{ + OSMO_ASSERT(iofd->mode == OSMO_IO_FD_MODE_READ_WRITE); + osmo_iofd_ops.write_enable(iofd); +} + + #endif /* defined(__linux__) */ diff --git a/tests/osmo_io/osmo_io_test.c b/tests/osmo_io/osmo_io_test.c index 74fe64d..bef1316 100644 --- a/tests/osmo_io/osmo_io_test.c +++ b/tests/osmo_io/osmo_io_test.c @@ -88,6 +88,8 @@ osmo_iofd_register(iofd1, fds[0]); iofd2 = osmo_iofd_setup(ctx, fds[1], "ep2", OSMO_IO_FD_MODE_READ_WRITE, &ioops_conn_read_write, NULL); osmo_iofd_register(iofd2, fds[1]); + // Explicitly check if ep1 is connected through write_cb + osmo_iofd_notify_connected(iofd1); /* Allow enough cycles to handle the messages */ for (int i = 0; i < 128; i++) diff --git a/tests/osmo_io/osmo_io_test.ok b/tests/osmo_io/osmo_io_test.ok index 43e5464..6527c19 100644 --- a/tests/osmo_io/osmo_io_test.ok +++ b/tests/osmo_io/osmo_io_test.ok @@ -1,6 +1,6 @@ Running test_connected +ep1: write() returned rc=0 ep1: write() returned rc=16 -ep2: write() returned rc=0 ep2: read() msg with len=16 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 Running test_unconnected -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/33497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ieed10bc94c8aad821c0a8f7764db0e05c054c1e3 Gerrit-Change-Number: 33497 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in pysim[master]: ts_31_103: enable encode tests for files containing single TLV IE
by fixeria 27 Jun '23

27 Jun '23
Attention is currently required from: laforge. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/33452 ) Change subject: ts_31_103: enable encode tests for files containing single TLV IE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/33452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I79bfc5b77122907d6cc2f75605f9331b5e650286 Gerrit-Change-Number: 33452 Gerrit-PatchSet: 2 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Tue, 27 Jun 2023 08:06:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in pysim[master]: tlv: Fix IE.from_dict() method
by fixeria 27 Jun '23

27 Jun '23
Attention is currently required from: laforge. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/33451 ) Change subject: tlv: Fix IE.from_dict() method ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/33451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3dd5204510e5c32ef1c4a999258d87cb3f1df8c8 Gerrit-Change-Number: 33451 Gerrit-PatchSet: 2 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Tue, 27 Jun 2023 08:05:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in pysim[master]: cosmetic: Implement cmd2.Settable backwards-compat via wrapper class
by fixeria 27 Jun '23

27 Jun '23
Attention is currently required from: laforge. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/33421 ) Change subject: cosmetic: Implement cmd2.Settable backwards-compat via wrapper class ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/33421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id234f3fa56fe7eff8e1153d71b9be8a2e88dd112 Gerrit-Change-Number: 33421 Gerrit-PatchSet: 3 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Tue, 27 Jun 2023 08:05:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in pysim[master]: work-around what appears to be a pylint bug
by fixeria 27 Jun '23

27 Jun '23
Attention is currently required from: laforge. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/33492 ) Change subject: work-around what appears to be a pylint bug ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/33492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iab34bae06940fecf681af9f45b8657e9be8cbc7b Gerrit-Change-Number: 33492 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-CC: Jenkins Builder Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Tue, 27 Jun 2023 08:03:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • ...
  • 248
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.